Two-agent cleanup pattern. Implementer works freely, then a dedicated cleanup agent removes unused imports, console.logs, commented-out code, dead code, and formatting issues. Produces a diff of what was cleaned.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
A direct command skips the review prompt. Inspect the source before running it.
Two-agent cleanup pattern. Implementer works freely, then a dedicated cleanup agent removes unused imports, console.logs, commented-out code, dead code, and formatting issues. Produces a diff of what was cleaned.
["Always run implementer phase first — cleanup phase only runs on committed/staged work","Cleanup agent must not change behavior — structural only","Produce a diff so reviewers can verify no logic was altered","Run pnpm lint:fix and pnpm format after cleanup completes"]
error_handling
strict
source
builtin
trust_score
100
provenance_sha
48a60a5cbfbc95d4
De-Sloppify
Overview
De-Sloppify implements a two-agent pattern for code cleanup:
Implementer — works freely, writes code without worrying about polish
Cleanup Agent — runs after implementation, removes all slop without touching logic
This separation prevents "cleanup anxiety" from slowing down implementation while still producing clean final code.
When to Use
Skill({ skill: 'de-sloppify' });
Invoke when:
Implementation is complete but the code contains known slop (unused imports, leftover console.logs, commented-out code)
Before committing a feature branch
After a rapid prototyping session
As a post-implementation cleanup gate
Iron Law
CLEANUP AGENT MUST NOT CHANGE BEHAVIOR.
Every removal must be verifiable as dead code, unused import,
or formatting-only. If there is any doubt — LEAVE IT.
What Gets Cleaned
Category
Examples
Safe to Remove
Unused imports
import foo from 'foo' — never referenced
YES
console.log / debug
console.log('debug here'), console.error
YES
Commented-out code
// const old = foo() (code, not docs)
YES
Dead code
Unreachable branches, unused variables
YES
Trailing whitespace
Spaces at end of lines
YES
Extra blank lines
3+ consecutive blank lines
YES
TODO with no context
// TODO (no ticket, no description)
On flag only
What Must NOT Be Cleaned
Category
Why
Commented doc blocks
/** ... */ JSDoc, /* ... */ section notes
console.error in catch
May be intentional error logging
Disabled test blocks
// it.skip(...) — intentional
Feature-flag dead code
May be awaiting activation
Complex logic
Even if it looks unused — leave it
Workflow
Phase 1: Implementer Works Freely
The implementer completes the feature without cleanup overhead. This is normal development.
Phase 2: Cleanup Agent Runs
After implementation, invoke de-sloppify. The cleanup agent runs these checks in order:
Step 1: Snapshot Pre-Cleanup State
Command:
git diff HEAD -- {{target_files}} > C:/dev/projects/agent-studio/.claude/context/tmp/pre-cleanup-snapshot.diff
Expected output: A diff file capturing current state.
Verify: File exists at .claude/context/tmp/pre-cleanup-snapshot.diff.
Expected output: JSON array of candidate commented-out code blocks.
Verify: Exit code 0 and valid JSON array.
Step 5: Apply Cleanup
For each finding that is safe to remove, use Edit to remove the line(s). Apply changes conservatively — when in doubt, leave it.
Step 6: Format and Lint
Command:
cd C:/dev/projects/agent-studio && pnpm lint:fix && pnpm format
Expected output:0 errors, 0 warnings from lint; no changes from format.
Verify: Both commands exit 0 with no output indicating issues.
Step 7: Generate Cleanup Diff
Command:
git diff -- {{target_files}}
Expected output: A diff showing only removals (lines starting with -). No additions should appear unless they are indentation fixes.
Verify: Review the diff — confirm every removed line was dead code or formatting. If any functional line was removed, revert with git checkout -- <file>.
Step 8: Report
Produce a cleanup summary:
De-Sloppify Report
==================
Files processed: N
Unused imports removed: N
Console.logs removed: N
Commented-out code blocks removed: N
Dead code blocks removed: N
Formatting fixes applied: N
Diff: git diff HEAD -- <files>
Anti-Patterns
Never remove a console.error inside a catch block without confirming it is debug-only
Never remove commented code that contains a ticket reference or TODO explanation
Never run cleanup on uncommitted work from the implementer — take a snapshot first
Never combine cleanup and logic changes in the same commit
Never use regex to find "unused" code — use the CLI scanner or lint output only
Enforcement Hooks
Input validated against schemas/input.schema.json before execution.
Output contract defined in schemas/output.schema.json.