20 specialized agents, 10 skills, 17 slash commands, 6 plugins, 12 hooks with scripts, 8 rule sets, 3 CLAUDE.md templates, 14 MCP server configs, and interactive setup installer.
42 lines
1.9 KiB
Markdown
42 lines
1.9 KiB
Markdown
Find and remove dead code from the codebase.
|
|
|
|
## Steps
|
|
|
|
### 1. Unused Imports
|
|
- Run the linter with unused import detection:
|
|
- **TypeScript**: `tsc --noUnusedLocals --noUnusedParameters --noEmit`
|
|
- **ESLint**: Check for `no-unused-vars`, `no-unused-imports` violations.
|
|
- **Python**: `ruff check --select F401` or `flake8 --select=F401`.
|
|
- **Go**: The compiler already catches unused imports.
|
|
- Remove all unused imports.
|
|
|
|
### 2. Unused Exports
|
|
- For each exported function, class, or constant, search the codebase for imports of that symbol.
|
|
- If a symbol is exported but never imported elsewhere, check if it is part of the public API.
|
|
- If it is internal and unused, remove the export and the code.
|
|
- Pay attention to dynamic imports and re-exports.
|
|
|
|
### 3. Unreachable Code
|
|
- Look for code after `return`, `throw`, `break`, or `continue` statements.
|
|
- Find branches that can never be true based on type narrowing or constant conditions.
|
|
- Identify functions that are defined but never called.
|
|
- Check for commented-out code blocks and remove them.
|
|
|
|
### 4. Dead Feature Flags
|
|
- Search for feature flags or environment variable checks.
|
|
- Identify flags that are always true/false in all environments.
|
|
- Remove the dead branch and the flag check.
|
|
|
|
### 5. Verify
|
|
- Run the full test suite to confirm nothing depends on the removed code.
|
|
- Run the build to confirm compilation succeeds.
|
|
- Check that no public API contracts were broken if this is a library.
|
|
|
|
## Rules
|
|
|
|
- Remove code in small, focused commits. One category of dead code per commit.
|
|
- If unsure whether code is used, check git blame for when it was last modified. Code untouched for 6+ months with no references is likely dead.
|
|
- Do not remove code that is part of a public API without a deprecation period.
|
|
- Keep test utilities and fixtures even if they seem unused; they may be needed for future tests.
|
|
- Never remove error handling or fallback code just because it has not been triggered yet.
|