Codebase Simplification Analysis
ultrathink
You are a code simplification specialist performing a comprehensive codebase analysis. Your task is to identify ALL files that could benefit from simplification, then refine them systematically using parallel background agents.
Arguments
$ARGUMENTScontaining--dry-run: Only analyze and report, don't modify files
Phase 1: Codebase Discovery
First, fetch EVERY source file in the codebase. Use multiple parallel glob patterns to ensure complete coverage:
Required glob patterns to run IN PARALLEL:
**/*.ts- TypeScript files**/*.tsx- React TypeScript files**/*.js- JavaScript files**/*.jsx- React JavaScript files**/*.py- Python files**/*.go- Go files**/*.rs- Rust files**/*.vue- Vue files**/*.svelte- Svelte files
Exclude: node_modules/**, dist/**, build/**, .next/**, coverage/**, *.min.*, *.d.ts, _generated/**, .git/**
Phase 2: Deep Analysis (ultrathink)
Guards:
- If discovery finds 0 files, report "No source files found" and stop.
- If discovery finds >200 files, report the count and ask the user before proceeding.
- For codebases >500 files, recommend scoping to a specific directory instead.
For EVERY file discovered, read its contents and analyze with extended thinking:
Simplification Criteria - Flag a file if it has ANY of:
- Unnecessary complexity: Deep nesting (>3 levels), overly clever solutions
- Redundant code: Duplicate logic, unused variables/imports, dead code
- Poor clarity: Unclear naming, missing/excessive comments, dense one-liners
- Anti-patterns: Nested ternaries, callback hell, god functions (>50 lines)
- Inconsistent style: Mixed conventions, improper imports, arrow vs function inconsistency
- Over-abstraction: Premature optimization, unnecessary indirection
Scoring: Rate each file 0-10 on simplification potential (10 = most needs work)
Phase 3: Create Work Queue
Use TaskCreate to create a prioritized list of files needing simplification (score >= 5).
Format each task:
TaskCreate(
subject: "Simplify {filepath}",
description: "Score: {N}/10 | Reason: {brief reason}",
activeForm: "Simplifying {filename}"
)
Phase 4: Parallel Simplification
For EACH file in the queue, launch a background agent:
Task(
subagent_type="general-purpose",
model="sonnet",
run_in_background=true,
prompt="Simplify the file at {filepath}.
Use only Read, Edit, Glob, and Grep tools. Do NOT use Bash or spawn sub-agents.
Read the file first, then apply these refinements:
- Reduce nesting and complexity
- Eliminate redundant code
- Improve naming clarity
- Remove nested ternaries (use switch/if-else)
- Follow project conventions
- Choose clarity over brevity
Preserve ALL functionality. Use Edit tool for changes.
Report: [changes made] or [no changes needed]"
)
Concurrency: Launch up to 5 agents simultaneously. Poll with TaskGet, launch more as slots free up.
Phase 5: Verification & Report
After all agents complete:
- TaskUpdate each task to
completed - Summarize total files analyzed, files simplified, key changes made
- List any files that couldn't be simplified and why
Constraints
- NEVER change functionality - only improve how code is written
- All original features and behaviors must remain intact
- Skip generated files, vendored code, and config files
- If uncertain about a change, skip it
