ワンクリックで
dead-code-cleanup
Identify and safely remove dead code, deprecated code, and unused exports from codebase
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Identify and safely remove dead code, deprecated code, and unused exports from codebase
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | dead-code-cleanup |
| description | Identify and safely remove dead code, deprecated code, and unused exports from codebase |
| allowed-tools | Glob, Grep, Read, Edit, Bash(npm:*), Bash(pnpm:*), Bash(yarn:*), Bash(go:*), Bash(git status:*), Bash(tsc:*), Task |
| disable-model-invocation | true |
Systematically identify and remove unused code while maintaining project integrity.
Target Code:
Critical Constraint: Project must build and pass all tests after cleanup.
$ARGUMENTS
Interpretation:
| Input | Action |
|---|---|
| Empty | Analyze entire codebase |
Path (e.g., src/legacy/) | Analyze specified directory |
--dry-run | Report only, no deletions |
--auto | Delete HIGH confidence items without confirmation |
| Category | Detection Method | Examples |
|---|---|---|
| Public API | package.json exports, index.ts re-exports | Library entry points |
| Planned Features | TODO/FIXME with ticket/issue | // TODO(#123): implement |
| Framework Conventions | Path-based (pages/, app/, api/) | Next.js routes, NestJS modules |
| Test Infrastructure | Imported by *.test.*, *.spec.* | Fixtures, mocks, test utils |
| Dynamic Imports | import(), require() patterns | Lazy loading, code splitting |
| Build Dependencies | Referenced in package.json scripts | Build tools, CLI scripts |
| External Contracts | GraphQL types, API schemas | Schema definitions |
Exported but unused internally:
Deprecated with timeline:
1.1 Detect Project Type
# Framework detection
[ -f "next.config.js" ] && echo "Next.js"
[ -f "tsconfig.json" ] && echo "TypeScript"
[ -f "go.mod" ] && echo "Go"
1.2 Identify Package Scope
# Public library vs private app
grep '"private": false' package.json && echo "PUBLIC_LIBRARY"
1.3 Map Public API Surface
package.json exports fieldindex.ts re-exports2.1 Unused Exports
For each export statement:
2.2 Deprecated Code
grep -rn "@deprecated" --include="*.ts" --include="*.go"
grep -rn "DEPRECATED" --include="*.ts" --include="*.go"
Evaluate:
2.3 Orphaned Files
Files not imported anywhere:
2.4 Unreachable Code
For each candidate:
Confidence Classification:
| Level | Criteria | Action |
|---|---|---|
| HIGH | No references, not preserved, clear dead code | Auto-delete (with --auto) |
| MEDIUM | No direct refs, but string/comment mentions | Ask confirmation |
| LOW | Exported publicly, ambiguous usage | Report only |
4.1 Pre-Deletion
# Warn if uncommitted changes
git status --porcelain | grep -q . && echo "⚠️ Uncommitted changes exist"
4.2 Incremental Deletion
4.3 Post-Deletion Verification
# Must pass after each batch
{build_command} # npm run build / go build ./...
{test_command} # npm test / go test ./...
{lint_command} # npm run lint / golangci-lint run
4.4 Rollback on Failure
git checkout -- {failed_files}
🔍 Analyzing codebase...
**Project**: TypeScript (Next.js)
**Scope**: Entire codebase
**Mode**: Standard
---
## Context ✓
- Public API: 12 exports in src/index.ts
- Framework: Next.js (preserving pages/, app/, api/)
- Test utils: 5 shared utilities
## Detection Progress
- Scanning exports... (45/120)
- Checking deprecated markers...
# 🧹 Dead Code Cleanup Report
**Generated**: {timestamp}
**Scope**: {analyzed_paths}
---
## 📊 Summary
| Category | Count | Lines |
| --------------- | ------- | ----------- |
| Unused Exports | {n} | {lines} |
| Deprecated Code | {n} | {lines} |
| Orphaned Files | {n} | {lines} |
| **TOTAL** | **{n}** | **{lines}** |
---
## 🔴 DELETED (HIGH Confidence)
### {file_path}:{line}
- **Type**: {function/class/variable}
- **Reason**: No references found
- **Verification**: Build ✓ Tests ✓
---
## 🟡 SKIPPED - Needs Review
### {file_path}:{line}
- **Type**: {function/class/variable}
- **Reason**: {why detected as dead}
- **Skip Reason**: {why preserved}
- **Action**: {recommended next step}
---
## 🟢 PRESERVED (Matched Rules)
### {file_path}:{line}
- **Rule**: {which preservation rule}
- **Detail**: {specifics}
---
## ⚠️ MANUAL REVIEW REQUIRED
Items requiring human decision:
1. **{file_path}:{line}**
- Detected: {what was found}
- Concern: {why uncertain}
- Suggestion: {recommended action}
---
## ✅ Verification Results
- Build: {PASS/FAIL}
- Tests: {PASS/FAIL} ({passed}/{total})
- Lint: {PASS/FAIL}
---
## 📋 Next Steps
### Immediate
- [ ] Review {n} SKIPPED items
- [ ] Investigate {n} MANUAL REVIEW items
### Recommended
- [ ] Add deprecation notices before removing LOW confidence items
- [ ] Update documentation for removed APIs
- [ ] Configure lint rules to prevent future dead code
---
## 📝 Session Summary
- Analyzed: {total_files} files, {total_lines} lines
- Deleted: {deleted_count} items ({deleted_lines} lines)
- Skipped: {skipped_count} items (see reasons above)
- Preserved: {preserved_count} items (matched rules)
--dry-run, --auto flagsgit status --porcelain
For TypeScript/JavaScript:
# Find exports
grep -rn "export \(function\|class\|const\|interface\|type\)" src/
# For each, check imports
grep -r "import.*{.*ExportName.*}" --exclude-dir=node_modules
For Go:
# Find exported symbols
grep -rn "^func [A-Z]" --include="*.go"
grep -rn "^type [A-Z]" --include="*.go"
For each candidate:
Based on mode:
--dry-run: Generate report only--auto: Delete HIGH confidence, report restAfter each batch:
# Detect package manager and run
npm run build && npm test
# OR
pnpm build && pnpm test
# OR
go build ./... && go test ./...
Generate comprehensive report with:
CRITICAL: Always include skipped items in final report.
# Report only (no deletions)
/dead-code-cleanup --dry-run
# Analyze specific directory
/dead-code-cleanup src/legacy/
# Auto-delete HIGH confidence items
/dead-code-cleanup --auto
# Default: interactive mode
/dead-code-cleanup
Symptom: Code flagged but actually needed
Check:
Action:
git checkout -- .Solutions:
Transform verbose natural language requests into structured bilingual documentation (Korean for review + English for AI prompts)
Review current git changes or latest commit using code-reviewer and architect-reviewer agents
Review comments and suggest cleanup (identify unnecessary comments, recommend improvements)
Generate Conventional Commits-compliant messages (feat/fix/docs/chore) in Korean and English
Generate business rule documentation from domain knowledge and requirements
Implement UI E2E tests sequentially using Playwright MCP, stop on bug discovery