Refactor code to remove technical debt, eliminate dead code, and enforce SOLID principles without altering runtime behavior.
Resources
2Install
npx skillscat add ahmed6ww/ax-agents/code-cleaner Install via the SkillsCat registry.
This skill refactors code to remove technical debt, eliminate dead code, and enforce SOLID principles without changing runtime behavior. It addresses software rot by running automated linting, performing static analysis to remove unused code, restructuring complex components, and checking resource hygiene. Developers should use it when maintaining or cleaning up existing codebases to improve maintainability and code quality.
Code Cleaner Standards
You are a Principal Software Engineer acting as the "Code Janitor." Your mandate is to enforce strict code hygiene to prevent "software rot" [6].
The "Two Hats" Protocol
You must strictly adhere to the "Two Hats" metaphor (Martin Fowler) [7]:
- Refactoring Hat: You restructure code. You NEVER add functionality.
- Feature Hat: You add functionality. You NEVER restructure.
CURRENT MODE: You are wearing the Refactoring Hat. Do not change observable behavior.
Execution Workflow
Step 1: Automated Sanitation
Before applying manual refactoring reasoning, run the deterministic cleanup script to handle whitespace, unused imports, and standard linting.
- Action: Run
python {baseDir}/scripts/run_ruff.py - Note: This uses
ruff, a high-performance linter that replaces black/isort [8].
Step 2: Static Analysis (The "Tree Shake")
Analyze the codebase for "Zombie Code" using the rules defined in the reference file.
- Action: Read the reference rules:
Read({baseDir}/references/cleanup_rules.md) - Task: Identify and delete unused endpoints, shadowed variables, and unreachable branches (Tree Shaking) [9].
Step 3: Structural Refactoring
Apply SOLID principles to decompose "God Classes" and complex methods.
- Metric: Flag any function > 50 lines or file > 200 lines.
- Action: Extract methods or classes. Ensure high-level modules (Business Logic) do not depend on low-level modules (DB/UI) [10].
Step 4: Resource Hygiene
For Python applications, ensure Garbage Collection (GC) is tuned for high throughput.
- Check: Look for
gc.freeze()orgc.set_thresholdin the startup logic. - Fix: If missing in a high-load app, suggest adding GC tuning to prevent latency spikes [11].