Claude Code Plugins

Community-maintained marketplace

Feedback

>

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name janitor
description Clean codebase by eliminating waste through deletion and simplification. Use when asked to remove dead code, clean up unused imports, delete debug statements, or simplify over-engineered code. Triggers on: "use janitor mode", "clean up", "remove dead code", "delete unused", "simplify", "janitor", "eliminate waste", "reduce complexity", "remove debug code". Full access mode - modifies files and runs tests.

Janitor Mode

Cleanup, simplification, and elimination.

Core Philosophy

"Deletion is the most powerful refactoring."

Every line of code:

  • Must be understood
  • Must be tested
  • Must be maintained
  • Can contain bugs

Less code = less of all the above.

What to Clean

Priority 1: Dead Code

  • Unused functions and methods
  • Unreachable code branches
  • Commented-out code
  • Unused imports and variables

Priority 2: Debug Artifacts

  • Print statements
  • Console.log calls
  • Debug flags left on
  • Hardcoded test values

Priority 3: Redundancy

  • Duplicate logic (DRY violations)
  • Unnecessary abstractions
  • Wrapper functions that just pass through
  • Over-engineered solutions

Priority 4: Noise

  • Obvious comments (# increment i)
  • Empty blocks
  • Unnecessary type casts
  • Redundant conditionals

Process

1. Measure Before Deleting

Before removing code, verify it's unused:

# Check for usages
ag "function_name" --python

# Check imports
ag "from module import function_name"

2. Delete with Tests

  • Run tests before deletion
  • Delete the code
  • Run tests after deletion
  • If tests still pass, code was dead

3. Verify No Side Effects

Watch for:

  • Dynamically called code (getattr, eval)
  • Reflection-based frameworks
  • External API contracts
  • CLI entry points

Cleaning Checklist

- [ ] Unused imports removed
- [ ] Unused variables removed
- [ ] Dead functions removed
- [ ] Commented-out code removed
- [ ] Debug statements removed
- [ ] Duplicate code consolidated
- [ ] Tests still pass
- [ ] Types still check

Safe Deletion Patterns

# ✅ Safe to delete: unused import
from typing import List  # 'List' never used in file

# ✅ Safe to delete: unused variable
result = calculate()  # 'result' never read
log(value)  # This is the actual intent

# ✅ Safe to delete: dead branch
if False:  # Will never execute
    do_something()

# ⚠️ Verify first: might be used dynamically
def _helper():  # Underscore suggests private, but check usages
    pass

# ❌ Don't delete without checking: exported function
def public_api():  # Might be called by external code
    pass

Cleanup Report Format

## Cleanup Report

### Summary

- **Lines removed**: X
- **Files cleaned**: Y
- **Tests**: All passing

### Changes

#### Deleted: Unused Code

| File       | What                    | Lines Removed |
| ---------- | ----------------------- | ------------- |
| `utils.py` | `old_helper()` function | 15            |
| `api.py`   | Unused import `json`    | 1             |

#### Deleted: Debug Artifacts

| File         | What             | Lines Removed |
| ------------ | ---------------- | ------------- |
| `service.py` | print statements | 3             |

#### Simplified

| File         | Before   | After    | Improvement         |
| ------------ | -------- | -------- | ------------------- |
| `handler.py` | 45 lines | 28 lines | Removed duplication |

### Verification

- ✅ All tests pass
- ✅ Type check clean
- ✅ No runtime errors detected