Cleanup Audit
Audit the codebase for technical debt, code smells, and improvement opportunities.
Steps
-
Identify tech stack from package.json, tsconfig.json, etc.
-
Search for debt markers:
# Comments rg -n "TODO|FIXME|HACK|XXX|BUG|WARN" -t ts -t js src/ # Linter disables rg -n "eslint-disable|biome-ignore|prettier-ignore|oxlint-ignore" -t ts -t js src/ -
Search for type safety violations (high priority):
# TypeScript directive escapes rg -n "@ts-ignore|@ts-expect-error|@ts-nocheck" -t ts src/ # Type assertions (as Type) - should use type guards or proper typing rg -n " as [A-Z]| as any| as unknown" -t ts src/ # Non-null assertions (!) - should use proper null checks rg -n "!\.|!\[|!;|!\)|!," -t ts src/ # Explicit any types - should use proper types or unknown rg -n ": any|<any>|any\[\]" -t ts src/ -
Check for common issues:
console.logleft in code (not in dev/debug files)- Empty catch blocks
- Unused imports/variables (if no linter)
- Hardcoded values that should be config
- Dead code / unused exports
- Missing error handling
- Async functions without try/catch or .catch()
-
Framework-specific checks:
- React: missing keys, inline functions in render, missing deps in useEffect
- Effect: not using Effect patterns where appropriate
- Node: sync fs operations, missing await
-
Pattern violations:
- Review CLAUDE.md/AGENTS.md for stated patterns
- Look for inconsistencies with established patterns in the codebase
Output
Create a report organized by category:
- Critical (should fix now)
- High (fix soon)
- Medium (tech debt to track)
- Low (nice to have)
For each item include:
- File and line number
- What was found
- Suggested fix or action
Ask if you should:
- Create beads issues for items (
bd create) - Fix any items directly
- Just report findings