mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-03-30 13:43:26 +08:00
feat(ecc): prune plugin 43→12 items, promote 7 rules to .claude/rules/ (#245)
ECC community plugin pruning: removed 530+ non-essential files (.cursor/, .opencode/, docs/ja-JP, docs/zh-CN, docs/zh-TW, language-specific skills/agents/rules). Retained 4 agents, 3 commands, 5 skills. Promoted 13 rule files (8 common + 5 typescript) to .claude/rules/ for CC native loading. Extracted reusable patterns to EXTRACTED-PATTERNS.md.
This commit is contained in:
@@ -1,80 +0,0 @@
|
||||
# Refactor Clean
|
||||
|
||||
Safely identify and remove dead code with test verification at every step.
|
||||
|
||||
## Step 1: Detect Dead Code
|
||||
|
||||
Run analysis tools based on project type:
|
||||
|
||||
| Tool | What It Finds | Command |
|
||||
|------|--------------|---------|
|
||||
| knip | Unused exports, files, dependencies | `npx knip` |
|
||||
| depcheck | Unused npm dependencies | `npx depcheck` |
|
||||
| ts-prune | Unused TypeScript exports | `npx ts-prune` |
|
||||
| vulture | Unused Python code | `vulture src/` |
|
||||
| deadcode | Unused Go code | `deadcode ./...` |
|
||||
| cargo-udeps | Unused Rust dependencies | `cargo +nightly udeps` |
|
||||
|
||||
If no tool is available, use Grep to find exports with zero imports:
|
||||
```
|
||||
# Find exports, then check if they're imported anywhere
|
||||
```
|
||||
|
||||
## Step 2: Categorize Findings
|
||||
|
||||
Sort findings into safety tiers:
|
||||
|
||||
| Tier | Examples | Action |
|
||||
|------|----------|--------|
|
||||
| **SAFE** | Unused utilities, test helpers, internal functions | Delete with confidence |
|
||||
| **CAUTION** | Components, API routes, middleware | Verify no dynamic imports or external consumers |
|
||||
| **DANGER** | Config files, entry points, type definitions | Investigate before touching |
|
||||
|
||||
## Step 3: Safe Deletion Loop
|
||||
|
||||
For each SAFE item:
|
||||
|
||||
1. **Run full test suite** — Establish baseline (all green)
|
||||
2. **Delete the dead code** — Use Edit tool for surgical removal
|
||||
3. **Re-run test suite** — Verify nothing broke
|
||||
4. **If tests fail** — Immediately revert with `git checkout -- <file>` and skip this item
|
||||
5. **If tests pass** — Move to next item
|
||||
|
||||
## Step 4: Handle CAUTION Items
|
||||
|
||||
Before deleting CAUTION items:
|
||||
- Search for dynamic imports: `import()`, `require()`, `__import__`
|
||||
- Search for string references: route names, component names in configs
|
||||
- Check if exported from a public package API
|
||||
- Verify no external consumers (check dependents if published)
|
||||
|
||||
## Step 5: Consolidate Duplicates
|
||||
|
||||
After removing dead code, look for:
|
||||
- Near-duplicate functions (>80% similar) — merge into one
|
||||
- Redundant type definitions — consolidate
|
||||
- Wrapper functions that add no value — inline them
|
||||
- Re-exports that serve no purpose — remove indirection
|
||||
|
||||
## Step 6: Summary
|
||||
|
||||
Report results:
|
||||
|
||||
```
|
||||
Dead Code Cleanup
|
||||
──────────────────────────────
|
||||
Deleted: 12 unused functions
|
||||
3 unused files
|
||||
5 unused dependencies
|
||||
Skipped: 2 items (tests failed)
|
||||
Saved: ~450 lines removed
|
||||
──────────────────────────────
|
||||
All tests passing ✅
|
||||
```
|
||||
|
||||
## Rules
|
||||
|
||||
- **Never delete without running tests first**
|
||||
- **One deletion at a time** — Atomic changes make rollback easy
|
||||
- **Skip if uncertain** — Better to keep dead code than break production
|
||||
- **Don't refactor while cleaning** — Separate concerns (clean first, refactor later)
|
||||
Reference in New Issue
Block a user