--- description: Remove AI-generated code slop from your branch argument-hint: [base-branch] allowed-tools: Bash(git:*) --- # Remove AI Code Slop Clean up AI-generated code patterns that don't match your codebase's style and conventions. This command uses a systematic multi-phase approach to safely identify and remove slop. ## Core Principles - **Safety first**: Always get user confirmation before making changes - **Transparency**: Show exactly what will be changed and why - **Context-aware**: Understand existing codebase patterns before removing code - **Use TodoWrite**: Track progress through all phases --- ## Arguments **Base branch**: $ARGUMENTS (defaults to main if not provided) --- ## Phase 1: Setup & Analysis **Goal**: Understand the current state and prepare for slop detection **Actions**: 1. Create a todo list with all phases 2. Determine the base branch (from arguments or default to `main`) 3. Verify git status: - Check current branch name - Check if there are uncommitted changes - If uncommitted changes exist, ask user to confirm if they want to proceed anyway - Verify base branch exists 4. Get the diff against base branch: `git diff ...HEAD` 5. Analyze the diff: - Count total files changed - List all modified files - Estimate lines added in this branch 6. Present summary to user: - Current branch: `feature-x` - Comparing against: `main` - Files modified: 12 - Lines added: 450 --- ## Phase 2: Codebase Style Learning **Goal**: Understand the existing codebase's conventions and patterns **Actions**: 1. For each modified file, read a few similar files from the base branch to understand: - Comment density and style (JSDoc vs inline, verbosity) - Error handling patterns (when try-catch is used vs not) - Type safety patterns (use of `any`, type assertions, strictness) - Defensive coding patterns (null checks, validation) - Naming conventions (verbosity, patterns) 2. Build a "style profile" for reference: - "This codebase uses minimal inline comments" - "Error handling is only in top-level API handlers" - "`any` types are never used except in `legacy/` directory" - "Null checks are only at API boundaries" 3. Present style profile to user for confirmation --- ## Phase 3: Slop Detection **Goal**: Identify AI-generated patterns that don't match the codebase style **Actions**: 1. For each file in the diff, analyze added lines for these patterns: **Comments**: - JSDoc that merely restates the function name - Inline comments explaining obvious code - Comment density higher than similar files - "AI-style" verbose explanations **Over-defensive code**: - Try-catch blocks in areas where similar code doesn't use them - Null/undefined checks in trusted code paths - Duplicate validation already done upstream - Redundant type guards **Type safety issues**: - Casts to `any` to bypass type errors - Unnecessary type assertions (`as Type`) - Non-null assertions (like !) without clear justification **Style inconsistencies**: - Naming patterns different from surrounding code - Overly verbose variable names - Unnecessary intermediate variables - Single-use helper functions 2. Categorize each slop instance: - File path and line numbers - Slop category (comment/defensive/type/style) - Confidence level (high/medium/low) - Risk level if removed (safe/review/risky) 3. Create a detailed removal plan with file-by-file breakdown --- ## Phase 4: User Review & Confirmation **Goal**: Get explicit approval before making any changes **DO NOT PROCEED WITHOUT USER APPROVAL** **Actions**: 1. Present detailed report: ``` ## Deslop Analysis Report ### Summary Found 145 lines of potential AI-generated slop across 12 files ### By Category - Comments: 45 lines (31%) - mostly redundant explanations - Defensive code: 67 lines (46%) - unnecessary try-catch and null checks - Type casts: 23 lines (16%) - any casts and assertions - Style fixes: 10 lines (7%) - verbose naming and intermediate vars ### Files to be Modified 1. src/auth/login.ts (34 lines to remove) HIGH CONFIDENCE: - Lines 23-25: Redundant JSDoc comment - Lines 45-52: Try-catch around sync operation (inconsistent with codebase) - Line 78: Cast to `any` to bypass type error MEDIUM CONFIDENCE: - Lines 89-91: Defensive null check (may be intentional) 2. src/utils/helpers.ts (23 lines to remove) HIGH CONFIDENCE: - Lines 12-15: Inline comments explaining obvious code - Lines 34-38: Unnecessary intermediate variables [... continue for all files ...] ### Risk Assessment - Safe changes: 120 lines (83%) - Need review: 20 lines (14%) - marked above - Risky: 5 lines (3%) - removing error handling ### High-Risk Changes Requiring Review ⚠️ src/payment/process.ts:67 - Removing try-catch in processPayment() ⚠️ src/api/user.ts:123 - Removing type cast may need proper type fix ``` 2. **Ask user**: "Do you want to proceed with removing this slop? You can: - Approve all changes - Skip high-risk changes and only apply safe ones - Review specific files before applying - Cancel" 3. Wait for explicit user approval --- ## Phase 5: Application **Goal**: Apply approved changes safely **DO NOT START WITHOUT USER APPROVAL** **Actions**: 1. For each approved file: - Read the current file - Apply the slop removals - Use Edit tool to make precise changes - Update todos as you progress through files 2. After all changes applied: - Show git diff summary: `git diff --stat` - Optionally run linter if configured in project --- ## Phase 6: Verification & Reporting **Goal**: Confirm changes are safe and provide detailed summary **Actions**: 1. Run verification checks: - Show `git status` to confirm files changed - Check if any linter errors were introduced - Optionally offer to run tests: `npm test` or equivalent 2. Present final detailed report: ``` ## Deslop Completion Report ### Summary Successfully cleaned 12 files, removing 145 lines of AI-generated slop ### Changes Applied - Comments removed: 45 lines (31%) - Defensive code removed: 67 lines (46%) - Type casts removed: 23 lines (16%) - Style improvements: 10 lines (7%) ### Files Modified 1. src/auth/login.ts - 34 lines removed ✓ Removed 1 redundant JSDoc block ✓ Removed 1 unnecessary try-catch ✓ Removed 1 any cast ⚠️ Skipped 1 high-risk change (defensive null check) 2. src/utils/helpers.ts - 23 lines removed ✓ Removed 4 inline comments ✓ Simplified variable declarations [... continue for all files ...] ### Statistics - Total lines removed: 145 - Files modified: 12 - Safe changes applied: 120 - High-risk changes skipped: 25 ### Next Steps 1. Review the changes: `git diff` 2. Run tests: `npm test` (or your test command) 3. Commit changes: `git add . && git commit -m "chore: remove AI-generated slop"` 4. To undo: `git restore .` will revert uncommitted changes if needed ``` 3. Mark all todos complete --- ## Error Handling If at any point: - Base branch doesn't exist → ask user for correct branch name - Working directory has uncommitted changes → ask user to confirm if they want to proceed anyway - No diff found → inform user and exit gracefully - User cancels → exit cleanly without making changes