Ensure accessibility in UI components including semantic HTML, ARIA attributes, keyboard navigation, and WCAG 2.2 AA compliance.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Ripgrep-powered dead-code crawler that finds stale, broken, or orphaned JavaScript/CJS/MJS modules in the Agent Studio framework. Walks a target directory, checks each file for external references, and surfaces (or deletes) unreferenced files. Prevents registry bloat and silent tool dropouts from modules no one calls.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Ripgrep-powered dead-code crawler for the Agent Studio framework. Walks a target
directory (default: .claude/lib), then for each .js/.cjs/.mjs file checks
whether its module name appears in any other file across the codebase. Files with
no external references are flagged as STALE and optionally deleted.
Core principle: Dead modules that stay in .claude/lib/ create false positive
references in the ecosystem scanner, inflate the registry, and mislead other tools
about what capabilities are actually active. Regular pruning keeps the framework
lean and the scanner signal clean.
Skill({ skill: 'stale-module-pruner' });
Invoke when:
_archive/, run pruner on lib/validate-ecosystem-integrity.cjs to reduce noise| Skill | Purpose | When |
|---|---|---|
task-management-protocol | Track pruning progress | Always |
ripgrep | Search for module references | During scan |
code-semantic-search | Verify intent when uncertain | On ambiguous hits |
context-compressor | Compress large result sets | When output is large |
verification-before-completion | Gate completion | Before marking done |
memory-search | Check prior pruning patterns | At start |
Always dry-run first. Run without --delete and save the STALE list before
any destructive pass. Never delete files on a first invocation without reviewing
the candidates. One false positive can remove an actively-used module.
Never rely on filename alone. The pruner matches by module name (filename
without extension). Files named utils.cjs may be legitimately unreferenced by
that exact name but still used via a barrel import or index re-export. Verify
ambiguous hits against barrel/index files before treating as truly stale.
Always check test files. A module may have zero production references but an
active test. The pruner skips .json and .md matches but not test .cjs files.
If the only reference is in a test, the module may still be needed.
Never delete archived modules as stale. Modules in _archive/ or
_archive/dead/ are already archived — the pruner skips _archive/ dirs by
default. Do not point --targetDir at an archive path.
Always save the prune report before completing. Write findings to
.claude/context/reports/qa/stale-module-prune-{ISO-date}.md before marking
the task complete.
| Anti-Pattern | Risk | Correct Approach |
|---|---|---|
Running with --delete on first invocation | Destroys modules with barrel/index re-exports | Always dry-run first, review candidates, then delete |
| Treating zero-reference as definitive stale | Barrel imports and test-only references create false stale | Verify each STALE candidate against index files + tests |
| Running from a non-project-root CWD | All path resolution breaks; misleading output | Always run from project root (process.cwd()) |
Pointing --targetDir at .claude/lib only | Misses stale modules in scripts/ or tools/ | Run separate passes with different --targetDir values |
| Deleting without a prune report artifact | No audit trail; next session can't identify what was lost | Always save report before deletion |
# Default: scan .claude/lib for stale CJS/MJS/JS modules (dry-run)
node .claude/skills/stale-module-pruner/scripts/main.cjs
# Scan a different target directory
node .claude/skills/stale-module-pruner/scripts/main.cjs --targetDir .claude/tools/cli
# Scan with custom search scope
node .claude/skills/stale-module-pruner/scripts/main.cjs --targetDir .claude/lib \
--searchDirs .claude,tests,scripts,package.json
The script outputs one line per stale module:
STALE: .claude/lib/utils/old-helper.cjs
STALE: .claude/lib/routing/deprecated-matcher.cjs
Total stale items processed: 2
For each STALE: line:
require('./'), index.cjs re-exportsgrep -r "{filename}" tests/Create a prune report at .claude/context/reports/qa/stale-module-prune-{ISO-date}.md:
# Stale Module Prune Report
<!-- Agent: developer | Task: #{id} | Session: {date} -->
**Date:** YYYY-MM-DD
**Target:** .claude/lib
**Candidates:** N
## Confirmed Stale (delete)
- .claude/lib/utils/old-helper.cjs — no references, no tests, no barrel export
## Kept (false positive)
- .claude/lib/utils/common.cjs — referenced by index.cjs barrel (not caught by name match)
Only after the prune report is reviewed and candidates confirmed:
node .claude/skills/stale-module-pruner/scripts/main.cjs \
--targetDir .claude/lib --delete
After deletion, re-run validate-ecosystem-integrity.cjs to confirm no new
[PHANTOM_REQUIRE] errors were introduced.
Before starting:
cat .claude/context/memory/learnings.md
cat .claude/context/memory/issues.md
Review prior pruning patterns and known barrel-import false positives.
After completing:
.claude/context/memory/learnings.md.claude/context/memory/decisions.md.claude/context/memory/issues.mdAssume interruption: If the prune report isn't saved to disk, it didn't happen.
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Ensure accessibility in UI components including semantic HTML, ARIA attributes, keyboard navigation, and WCAG 2.2 AA compliance.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when you want to improve response quality through meta-cognitive reasoning. Applies 15+ reasoning methods to reconsider and refine initial outputs.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
N-round opposing-stance debates for trade-off analysis. Assigns pro/con roles to agents, runs structured debate rounds with quality scoring, and produces a moderator synthesis with confidence-rated recommendation. Generalizable to architecture, technology, security, and design decisions.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Force adversarial code review stance that eliminates confirmation bias — reviewer must find issues or re-analyze
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Creates specialized AI agents on-demand when no existing agent matches a request. Use when the Router cannot find a suitable agent for a task. Enables self-evolution by generating persistent agents.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
LLM-as-judge evaluation framework with 5-dimension rubric (accuracy, groundedness, coherence, completeness, helpfulness) for scoring AI-generated content quality with weighted composite scores and evidence citations
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.