원클릭으로
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 직업 분류 기준
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
| 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: