Back to skills
SKILL.md
Cleanup Code
ASecurity'Comprehensive codebase cleanup across 11 quality dimensions: dead code,
- 2,688 stars
- 0 votes
- 0 copies
- 2 views
- Added May 29, 2026
Works with
Security analysis
100/100Pro scans all 5 files and shows the line behind each finding
npx -y skills add jeremylongshore/claude-code-plugins-plus-skills --skill cleanup-code --agent claude-codeAre you the author of Cleanup Code?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/jeremylongshore-cleanup-code)---
name: cleanup-code
description: 'Comprehensive codebase cleanup across 11 quality dimensions: dead code,
duplication,
weak types, circular deps, defensive cruft, legacy code, AI slop, type consolidation,
security, performance, and async patterns. Analyzes code with confidence scoring
and
verifies changes with build/test gates. Use when codebase has accumulated tech debt,
after major feature work, before releases, or when code quality metrics are declining.
Trigger with "/cleanup-code-code", "clean up the codebase", "remove dead code",
"fix code quality".
'
allowed-tools: Read, Write, Edit, Glob, Grep, Bash(git:*), Bash(npm:*), Bash(npx:*),
Bash(pnpm:*), Bash(python3:*), Bash(tsc:*), Bash(wc:*), Bash(ls:*), AskUserQuestion
version: 1.0.0
author: Jeremy Longshore <jeremy@intentsolutions.io>
license: MIT
tags:
- code-quality
- cleanup
- refactoring
- dead-code
- deduplication
- type-safety
- security
argument-hint: '[scope] [--dimensions d1,d2,...] [--changed]'
compatibility: Designed for Claude Code, also compatible with Codex and OpenClaw
---
# Codebase Cleanup
Systematic code cleanup across 11 quality dimensions, ordered by risk. Each finding includes
confidence scoring (HIGH/MEDIUM/LOW) and all changes are verified through build/test gates.
## Environment Detection
!`git rev-parse --show-toplevel 2>/dev/null && echo "---" && git diff --stat HEAD~5 2>/dev/null | tail -5`
!`ls package.json pyproject.toml Cargo.toml go.mod Makefile 2>/dev/null | head -5`
!`cat package.json 2>/dev/null | head -3; echo "---"; ls tsconfig.json .eslintrc* 2>/dev/null`
## Prerequisites
- Git repository with clean working tree (no uncommitted changes)
- Language toolchain installed (Node.js/Python/Go/Rust as applicable)
- Optional: `knip`, `madge`, `jscpd`, `ruff`, `bandit` for tool-verified scanning
## Overview
This skill orchestrates cleanup across **11 dimensions**, each with a dedicated agent.
Dimensions are ordered LOW → HIGH risk. See [dimensions reference](references/dimensions.md)
for full detection criteria, verification steps, and risk profiles.
**The 11 Dimensions** (by risk level):
| # | Dimension | Key | Risk | Auto-apply? |
|---|-----------|-----|------|-------------|
| 1 | Dead code removal | `dead` | LOW | Yes (after build) |
| 2 | AI slop removal | `slop` | LOW | Comments only |
| 3 | Weak type elimination | `types` | MED | Yes (after typecheck) |
| 4 | Security cleanup | `security` | MED | Flag only |
| 5 | Legacy code removal | `legacy` | MED | With confirmation |
| 6 | Type consolidation | `typecons` | MED | Yes (after typecheck) |
| 7 | Defensive code cleanup | `defensive` | MED | Flag only |
| 8 | Performance optimization | `perf` | MED | Flag only |
| 9 | DRY deduplication | `dry` | HIGH | Flag only (>=10 lines) |
| 10 | Async pattern fixes | `async` | HIGH | Flag only |
| 11 | Circular dep untangling | `circular` | HIGH | Flag only |
## Instructions
### Step 1: Safety Checkpoint
Before any changes:
1. Verify clean git state: `git status --porcelain` must be empty (or stash changes)
2. Record baseline: `git rev-parse HEAD` as rollback point
3. Run existing tests to confirm green baseline
4. See [safety protocol](references/safety.md) for revert procedures
### Step 2: Determine Scope
Parse user arguments to set scope:
- **Full codebase** (default): scan all source files
- **Specific path**: `cleanup src/api/` — limit to directory
- **Changed files only**: `--changed` flag — `git diff --name-only HEAD~10`
- **Specific dimensions**: `--dimensions dead,types,security`
- **Single dimension**: `cleanup --dimensions dry`
Exclude from all scans: `node_modules/`, `dist/`, `build/`, `.git/`, vendor dirs, generated files.
### Step 3: Execute Dimensions
For each selected dimension (in risk order):
1. **Scan** using patterns from [patterns reference](references/patterns.md)
2. **Score confidence** — HIGH (certain, safe to fix), MEDIUM (likely, needs review), LOW (possible, flag only)
3. **Apply or flag** based on the dimension's auto-apply policy (see table above)
4. **Verify** — run build/typecheck/tests after each dimension with auto-apply
Use [tools reference](references/tools.md) for language-specific tool commands (knip, madge, ruff, jscpd, etc.).
### Step 4: Build Verification Gate
After each auto-applied dimension:
```text
# TypeScript/JavaScript
npx tsc --noEmit 2>&1 | tail -20
npm test 2>&1 | tail -30
# Python
python3 -m py_compile <changed_files>
python3 -m pytest --tb=short 2>&1 | tail -30
# General
git diff --stat # Show what changed
```
If verification fails, revert that dimension: `git checkout -- .`
### Step 5: Generate Report
Produce a cleanup report in this format:
```
## Cleanup Report
**Scope:** [path or "full codebase"]
**Baseline:** [commit hash]
**Dimensions:** [list of dimensions run]
### Summary
| Dimension | Findings | Applied | Flagged | Confidence |
|-----------|----------|---------|---------|------------|
| dead | 12 | 10 | 2 | HIGH |
| types | 8 | 8 | 0 | HIGH |
| security | 3 | 0 | 3 | MEDIUM |
### Changes Applied
- [file:line] description of change
### Flagged for Review
- [file:line] description + reasoning + suggested fix
### Lines Removed: N | Lines Modified: N | Files Touched: N
```
## Output
A structured cleanup report containing:
- Summary table with findings per dimension (count, applied, flagged, confidence)
- List of changes applied with file:line references
- List of flagged items with reasoning and suggested fixes
- Stats: lines removed, lines modified, files touched
## Error Handling
| Error | Recovery |
|-------|----------|
| Dirty git state | Ask user to commit or stash first |
| Build fails after cleanup | `git checkout -- .` to revert dimension |
| No test command found | Skip verification, flag all as "unverified" |
| Tool not installed | Fall back to grep patterns (see references/patterns.md) |
| Confidence unclear | Default to flag-only, never auto-apply |
## Examples
**Full cleanup:**
```
/cleanup-code
```
**Security-focused:**
```
/cleanup-code --dimensions security,async
```
**Changed files only:**
```
/cleanup-code src/api/ --changed
```
**Single dimension deep-dive:**
```
/cleanup-code --dimensions dead
```
## Resources
- [All 11 Dimensions](references/dimensions.md) — detection criteria, verification, risk profiles
- [Tool Reference](references/tools.md) — language-specific cleanup tools
- [Grep Patterns](references/patterns.md) — detection patterns by dimension
- [Safety Protocol](references/safety.md) — revert procedures, confidence scoring
Files in this skill
- SKILL.md
- references/dimensions.md
- references/patterns.md
- references/safety.md
- references/tools.md
Attribution
Comments
Loading comments…