cleanup-health-inline
Inline orchestration workflow for dead code detection and removal. Provides step-by-step phases for dead-code-hunter detection, priority-based cleanup with dead-code-remover, and verification cycles.
When & Why to Use This Skill
This Claude skill provides an automated, inline orchestration workflow for detecting and removing dead code. It streamlines codebase maintenance by identifying unused imports, variables, and unreachable code, then performing priority-based cleanup with integrated quality gates (type-check and build) to ensure project stability and reduce technical debt.
Use Cases
- Automated Technical Debt Reduction: Systematically identify and remove unused exports, variables, and functions in large-scale repositories to improve long-term maintainability.
- Pre-Deployment Code Sanitization: Clean up debug statements (console.log, debugger) and commented-out code blocks before merging or releasing new features to ensure a clean production environment.
- Safe Refactoring with Quality Gates: Execute code removal with automated backups and mandatory verification steps to prevent regressions and ensure the application remains functional.
- Dependency and Bundle Optimization: Detect unused dependencies and unreachable code paths to reduce bundle size and improve overall application performance.
| name | cleanup-health-inline |
|---|---|
| description | Inline orchestration workflow for dead code detection and removal. Provides step-by-step phases for dead-code-hunter detection, priority-based cleanup with dead-code-remover, and verification cycles. |
| version | 2.0.0 |
Cleanup Health Check (Inline Orchestration)
You ARE the orchestrator. Execute this workflow directly without spawning a separate orchestrator agent.
Workflow Overview
Detection → Validate → Remove by Priority → Verify → Repeat if needed
Max iterations: 3 Priorities: critical → high → medium → low
Phase 1: Pre-flight
Setup directories:
mkdir -p .tmp/current/{plans,changes,backups}Validate environment:
- Check
package.jsonexists - Check
type-checkandbuildscripts exist
- Check
Initialize TodoWrite:
[ {"content": "Dead code detection", "status": "in_progress", "activeForm": "Detecting dead code"}, {"content": "Remove critical dead code", "status": "pending", "activeForm": "Removing critical dead code"}, {"content": "Remove high priority dead code", "status": "pending", "activeForm": "Removing high dead code"}, {"content": "Remove medium priority dead code", "status": "pending", "activeForm": "Removing medium dead code"}, {"content": "Remove low priority dead code", "status": "pending", "activeForm": "Removing low dead code"}, {"content": "Verification scan", "status": "pending", "activeForm": "Verifying cleanup"} ]
Phase 2: Detection
Invoke dead-code-hunter via Task tool:
subagent_type: "dead-code-hunter"
description: "Detect all dead code"
prompt: |
Scan the entire codebase for dead code:
- Unused imports and exports
- Commented out code blocks
- Unreachable code
- Debug statements (console.log, debugger)
- Unused variables and functions
- Unused dependencies
- Categorize by priority (critical/high/medium/low)
Generate: dead-code-report.md
Return summary with dead code counts per priority.
After dead-code-hunter returns:
- Read
dead-code-report.md - Parse dead code counts by priority
- If zero dead code → skip to Final Summary
- Update TodoWrite: mark detection complete
Phase 3: Quality Gate (Detection)
Run inline validation:
pnpm type-check
pnpm build
- If both pass → proceed to removal
- If fail → report to user, exit
Phase 4: Removal Loop
For each priority (critical → high → medium → low):
Check if dead code exists for this priority
- If zero → skip to next priority
Update TodoWrite: mark current priority in_progress
Invoke dead-code-remover via Task tool:
subagent_type: "dead-code-remover" description: "Remove {priority} dead code" prompt: | Read dead-code-report.md and remove all {priority} priority dead code. For each item: 1. Backup file before editing 2. Remove dead code 3. Log change to .tmp/current/changes/cleanup-changes.json Generate/update: dead-code-cleanup-summary.md Return: count of removed items, count of failed removals.Quality Gate (inline):
pnpm type-check pnpm build- If FAIL → report error, suggest rollback, exit
- If PASS → continue
Update TodoWrite: mark priority complete
Repeat for next priority
Phase 5: Verification
After all priorities cleaned:
Update TodoWrite: mark verification in_progress
Invoke dead-code-hunter (verification mode):
subagent_type: "dead-code-hunter" description: "Verification scan" prompt: | Re-scan codebase after cleanup. Compare with previous dead-code-report.md. Report: - Dead code removed (count) - Dead code remaining (count) - New dead code introduced (count)Decision:
- If dead_code_remaining == 0 → Final Summary
- If iteration < 3 AND dead_code_remaining > 0 → Go to Phase 2
- If iteration >= 3 → Final Summary with remaining items
Phase 6: Final Summary
Generate summary for user:
## Cleanup Health Check Complete
**Iterations**: {count}/3
**Status**: {SUCCESS/PARTIAL}
### Results
- Found: {total} dead code items
- Removed: {removed} ({percentage}%)
- Remaining: {remaining}
### By Priority
- Critical: {removed}/{total}
- High: {removed}/{total}
- Medium: {removed}/{total}
- Low: {removed}/{total}
### Validation
- Type Check: {status}
- Build: {status}
### Artifacts
- Detection: `dead-code-report.md`
- Cleanup: `dead-code-cleanup-summary.md`
Error Handling
If quality gate fails:
Rollback available: .tmp/current/changes/cleanup-changes.json
To rollback:
1. Read changes log
2. Restore files from .tmp/current/backups/
3. Re-run workflow
If worker fails:
- Report error to user
- Suggest manual intervention
- Exit workflow
Key Differences from Old Approach
| Old (Orchestrator Agent) | New (Inline Skill) |
|---|---|
| 9+ orchestrator calls | 0 orchestrator calls |
| ~1400 lines (cmd + agent) | ~150 lines |
| Context reload each call | Single session context |
| Plan files for each phase | Direct execution |
| ~10,000+ tokens overhead | ~500 tokens |
Worker Prompts
See references/worker-prompts.md for detailed prompts.