CtrlK
BlogDocsLog inGet started
Tessl Logo

cleanup-health-inline

Inline orchestration workflow for dead code detection and removal with Beads integration. Provides step-by-step phases for dead-code-hunter detection, priority-based cleanup with dead-code-remover, and verification cycles.

60

Quality

70%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./.claude/skills/cleanup-health-inline/SKILL.md
SKILL.md
Quality
Evals
Security

Cleanup Health Check (Inline Orchestration)

You ARE the orchestrator. Execute this workflow directly without spawning a separate orchestrator agent.

Workflow Overview

Beads Init → Detection → Create Issues → Remove by Priority → Close Issues → Verify → Beads Complete

Max iterations: 3 Priorities: critical → high → medium → low Beads integration: Automatic issue tracking


Phase 1: Pre-flight & Beads Init

  1. Setup directories:

    mkdir -p .tmp/current/{plans,changes,backups}
  2. Validate environment:

    • Check package.json exists
    • Check type-check and build scripts exist
  3. Create Beads wisp:

    bd mol wisp exploration --vars "question=Dead code cleanup scan"

    IMPORTANT: Save the wisp ID (e.g., mc2-xxx) for later use.

  4. Initialize TodoWrite:

    [
      {"content": "Dead code detection", "status": "in_progress", "activeForm": "Detecting dead code"},
      {"content": "Create Beads issues", "status": "pending", "activeForm": "Creating issues"},
      {"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"},
      {"content": "Complete Beads wisp", "status": "pending", "activeForm": "Completing wisp"}
    ]

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:

  1. Read dead-code-report.md
  2. Parse dead code counts by priority
  3. If zero dead code → skip to Phase 7 (Final Summary)
  4. Update TodoWrite: mark detection complete

Phase 3: Create Beads Issues

For each dead code item found, create a Beads issue:

# Critical (P1)
bd create "CLEANUP: {item_title}" -t chore -p 1 -d "{description}" \
  --deps discovered-from:{wisp_id}

# High (P2)
bd create "CLEANUP: {item_title}" -t chore -p 2 -d "{description}" \
  --deps discovered-from:{wisp_id}

# Medium (P3)
bd create "CLEANUP: {item_title}" -t chore -p 3 -d "{description}" \
  --deps discovered-from:{wisp_id}

# Low (P4)
bd create "CLEANUP: {item_title}" -t chore -p 4 -d "{description}" \
  --deps discovered-from:{wisp_id}

Track issue IDs in a mapping for later closure.

Update TodoWrite: mark "Create Beads issues" complete.


Phase 4: Quality Gate (Pre-removal)

Run inline validation:

pnpm type-check
pnpm build
  • If both pass → proceed to removal
  • If fail → report to user, exit

Phase 5: Removal Loop

For each priority (critical → high → medium → low):

  1. Check if dead code exists for this priority

    • If zero → skip to next priority
  2. Update TodoWrite: mark current priority in_progress

  3. Claim issues in Beads:

    bd update {issue_id} --status in_progress
  4. 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, list of removed item IDs.
  5. Quality Gate (inline):

    pnpm type-check
    pnpm build
    • If FAIL → report error, suggest rollback, exit
    • If PASS → continue
  6. Close removed issues in Beads:

    bd close {issue_id_1} {issue_id_2} ... --reason "Removed in cleanup"
  7. Update TodoWrite: mark priority complete

  8. Repeat for next priority


Phase 6: Verification

After all priorities cleaned:

  1. Update TodoWrite: mark verification in_progress

  2. 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)
  3. Decision:

    • If dead_code_remaining == 0 → Phase 7
    • If iteration < 3 AND dead_code_remaining > 0 → Go to Phase 2
    • If iteration >= 3 → Phase 7 with remaining items

Phase 7: Final Summary & Beads Complete

  1. Complete Beads wisp:

    # If all cleaned
    bd mol squash {wisp_id}
    
    # If nothing found
    bd mol burn {wisp_id}
  2. Create issues for remaining items (if any):

    bd create "REMAINING: {item_title}" -t chore -p {priority} \
      -d "Not removed in cleanup. See dead-code-report.md"
  3. Generate summary for user:

## Cleanup Health Check Complete

**Wisp ID**: {wisp_id}
**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}

### Beads Issues
- Created: {count}
- Closed: {count}
- Remaining: {count}

### Validation
- Type Check: {status}
- Build: {status}

### Artifacts
- Detection: `dead-code-report.md`
- Cleanup: `dead-code-cleanup-summary.md`
  1. Update TodoWrite: mark wisp complete

  2. SESSION CLOSE PROTOCOL:

    git status
    git add .
    bd sync
    git commit -m "chore: cleanup - {removed} dead code items removed ({wisp_id})"
    bd sync
    git push

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
  • Keep Beads wisp open for manual completion
  • Suggest manual intervention
  • Exit workflow

If Beads command fails:

  • Log error but continue workflow
  • Beads tracking is enhancement, not blocker

Quick Reference

PhaseBeads Action
1. Pre-flightbd mol wisp exploration
3. After detectionbd create for each item
5. Before removalbd update --status in_progress
5. After removalbd close --reason "Removed"
7. Completebd mol squash/burn
7. Remainingbd create for unremoved items
Repository
maslennikov-ig/claude-code-orchestrator-kit
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.