remove-dead-code
<essential_principles>
Safety-first dead code removal. Every removal is protected by an automatic backup branch. Multi-agent analysis reduces false positives. No code is deleted without cross-validation.
1. Backup Before Everything
Before any modification, create a timestamped backup branch from the current HEAD. This is non-negotiable. The branch name format is backup/dead-code-removal/{timestamp}.
2. Parallel Scout + Validator Pattern
Multiple scout agents analyze different aspects of dead code in parallel. A validator agent then cross-checks all findings against the full codebase before anything is flagged for removal. Only code confirmed dead by both scouts AND validator gets removed.
3. Conservative by Default
When in doubt, keep the code. False negatives (missing some dead code) are acceptable. False positives (removing live code) are not. Dynamic imports, reflection, test utilities, and public API surface are always treated as potentially live.
4. Never Remove Without Reporting First
The scan workflow produces a report. The user reviews the report. Only then does the remove workflow execute against confirmed items.
</essential_principles>
- Scan - Analyze codebase for dead code (read-only, produces report)
- Remove - Remove confirmed dead code (requires prior scan report)
- Validate - Verify removal didn't break anything (post-removal checks)
Wait for response before proceeding.
Default flow: Scan → Review report → Remove → Validate
After reading the workflow, follow it exactly.
<safety_rules>
- NEVER remove code without creating a backup branch first
- NEVER remove code that appears in test files as a test subject (test helpers ARE candidates)
- NEVER remove re-exported types that could be part of a public API
- NEVER remove files matching patterns:
*.config.*,*.setup.*,*.d.ts, entry points - ALWAYS preserve code referenced by dynamic imports (
import()expressions) - ALWAYS preserve code that might be used via string-based lookups or reflection
- ALWAYS check
package.jsonexports,main,types, andbinfields before removing - ALWAYS check framework conventions (Next.js pages/routes, Convex functions, etc.) </safety_rules>
<reference_index>
All domain knowledge in references/:
Detection: detection-patterns.md - What to scan for and how to identify dead code Agents: agent-coordination.md - How multi-agent parallel analysis works </reference_index>
<workflows_index>
| Workflow | Purpose |
|---|---|
| scan-dead-code.md | Multi-agent analysis producing a dead code report |
| remove-dead-code.md | Safe removal with backup branch and atomic commits |
| validate-removal.md | Post-removal build, test, and type-check verification |
| </workflows_index> |
<success_criteria> Dead code removal is successful when:
- Backup branch exists with pre-removal state
- All flagged items were cross-validated by multiple agents
- Build passes after removal (
tsc --noEmit,npm run build) - All tests pass after removal
- No new TypeScript errors introduced
- Removal summary report generated with what was removed and why </success_criteria>
More from qdhenry/claude-command-suite
cloudflare manager
Comprehensive Cloudflare account management for deploying Workers, KV Storage, R2, Pages, DNS, and Routes. Use when deploying cloudflare services, managing worker containers, configuring KV/R2 storage, or setting up DNS/routing. Requires CLOUDFLARE_API_KEY in .env and Bun runtime with dependencies installed.
21linear todo sync
This skill fetches open tasks assigned to the user from the Linear API and generates a markdown todo list file in the project root. This skill should be used when the user asks about their work items, wants to see what they need to work on, or requests to load/sync their Linear tasks. Requires Python 3.7+, requests, mdutils, and python-dotenv packages. Requires LINEAR_API_KEY in .env file.
18bigcommerce-api
BigCommerce API expert for building integrations, apps, headless storefronts, and automations. Full lifecycle - REST APIs, GraphQL Storefront, webhooks, authentication, app development, and multi-storefront. Use when working with BigCommerce platform APIs.
14webmcp
Implement WebMCP in web projects — add browser-native structured tools for AI agents using imperative JS or declarative HTML APIs. Full lifecycle from setup through testing and optimization.
13setup-portless
Sets up Portless for a project to replace port numbers with stable named .localhost URLs. Use when configuring local development routing, fixing port conflicts, or setting up monorepo dev environments.
13file-watcher
Chokidar-based file watcher that triggers `claude -p` on changes. Useful for automated AI reactions to file changes — design sync, code validation, config regeneration, etc.
13