skill-stocktake
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chineseskill-stocktake
skill-stocktake
Slash command () that audits all Claude skills and commands using a quality checklist + AI holistic judgment. Supports two modes: Quick Scan for recently changed skills, and Full Stocktake for a complete review.
/skill-stocktake斜杠命令 (),通过质量检查表+AI整体判断来审计所有Claude技能和命令。支持两种模式:针对近期更改技能的快速扫描,以及全面审查的完整盘点。
/skill-stocktakeScope
适用范围
The command targets the following paths relative to the directory where it is invoked:
| Path | Description |
|---|---|
| Global skills (all projects) |
| Project-level skills (if the directory exists) |
At the start of Phase 1, the command explicitly lists which paths were found and scanned.
该命令针对以下相对于调用目录的路径:
| 路径 | 描述 |
|---|---|
| 全局技能(所有项目通用) |
| 项目级技能(仅当目录存在时) |
在第一阶段开始时,命令会明确列出已找到并扫描的路径。
Targeting a specific project
针对特定项目
To include project-level skills, run from that project's root directory:
bash
cd ~/path/to/my-project
/skill-stocktakeIf the project has no directory, only global skills and commands are evaluated.
.claude/skills/如需包含项目级技能,请从该项目的根目录运行命令:
bash
cd ~/path/to/my-project
/skill-stocktake如果项目没有 目录,则仅评估全局技能和命令。
.claude/skills/Modes
运行模式
| Mode | Trigger | Duration |
|---|---|---|
| Quick Scan | | 5–10 min |
| Full Stocktake | | 20–30 min |
Results cache:
~/.claude/skills/skill-stocktake/results.json| 模式 | 触发条件 | 耗时 |
|---|---|---|
| 快速扫描 | 存在 | 5–10分钟 |
| 完整盘点 | 不存在 | 20–30分钟 |
结果缓存路径:
~/.claude/skills/skill-stocktake/results.jsonQuick Scan Flow
快速扫描流程
Re-evaluate only skills that have changed since the last run (5–10 min).
- Read
~/.claude/skills/skill-stocktake/results.json - Run: (Project dir is auto-detected from
bash ~/.claude/skills/skill-stocktake/scripts/quick-diff.sh \ ~/.claude/skills/skill-stocktake/results.json; pass it explicitly only if needed)$PWD/.claude/skills - If output is : report "No changes since last run." and stop
[] - Re-evaluate only those changed files using the same Phase 2 criteria
- Carry forward unchanged skills from previous results
- Output only the diff
- Run:
bash ~/.claude/skills/skill-stocktake/scripts/save-results.sh \ ~/.claude/skills/skill-stocktake/results.json <<< "$EVAL_RESULTS"
仅重新评估自上次运行以来已更改的技能(耗时5–10分钟)。
- 读取
~/.claude/skills/skill-stocktake/results.json - 执行:(项目目录会从
bash ~/.claude/skills/skill-stocktake/scripts/quick-diff.sh \ ~/.claude/skills/skill-stocktake/results.json自动检测;仅在需要时显式传入)$PWD/.claude/skills - 若输出为 :报告“自上次运行以来无更改。”并终止流程
[] - 使用与第二阶段相同的标准仅重新评估已更改的文件
- 沿用上次结果中未更改的技能
- 仅输出差异内容
- 执行:
bash ~/.claude/skills/skill-stocktake/scripts/save-results.sh \ ~/.claude/skills/skill-stocktake/results.json <<< "$EVAL_RESULTS"
Full Stocktake Flow
完整盘点流程
Phase 1 — Inventory
第一阶段 — 盘点
Run:
bash ~/.claude/skills/skill-stocktake/scripts/scan.shThe script enumerates skill files, extracts frontmatter, and collects UTC mtimes.
Project dir is auto-detected from ; pass it explicitly only if needed.
Present the scan summary and inventory table from the script output:
$PWD/.claude/skillsScanning:
✓ ~/.claude/skills/ (17 files)
✗ {cwd}/.claude/skills/ (not found — global skills only)| Skill | 7d use | 30d use | Description |
|---|
执行:
bash ~/.claude/skills/skill-stocktake/scripts/scan.sh该脚本会枚举技能文件、提取前置元数据并收集UTC修改时间。项目目录会从 自动检测;仅在需要时显式传入。展示脚本输出中的扫描摘要和盘点表格:
$PWD/.claude/skillsScanning:
✓ ~/.claude/skills/ (17 files)
✗ {cwd}/.claude/skills/ (not found — global skills only)| Skill | 7d use | 30d use | Description |
|---|
Phase 2 — Quality Evaluation
第二阶段 — 质量评估
Launch an Agent tool subagent (general-purpose agent) with the full inventory and checklist:
text
Agent(
subagent_type="general-purpose",
prompt="
Evaluate the following skill inventory against the checklist.
[INVENTORY]
[CHECKLIST]
Return JSON for each skill:
{ \"verdict\": \"Keep\"|\"Improve\"|\"Update\"|\"Retire\"|\"Merge into [X]\", \"reason\": \"...\" }
"
)The subagent reads each skill, applies the checklist, and returns per-skill JSON:
{ "verdict": "Keep"|"Improve"|"Update"|"Retire"|"Merge into [X]", "reason": "..." }Chunk guidance: Process ~20 skills per subagent invocation to keep context manageable. Save intermediate results to () after each chunk.
results.jsonstatus: "in_progress"After all skills are evaluated: set , proceed to Phase 3.
status: "completed"Resume detection: If is found on startup, resume from the first unevaluated skill.
status: "in_progress"Each skill is evaluated against this checklist:
- [ ] Content overlap with other skills checked
- [ ] Overlap with MEMORY.md / CLAUDE.md checked
- [ ] Freshness of technical references verified (use WebSearch if tool names / CLI flags / APIs are present)
- [ ] Usage frequency consideredVerdict criteria:
| Verdict | Meaning |
|---|---|
| Keep | Useful and current |
| Improve | Worth keeping, but specific improvements needed |
| Update | Referenced technology is outdated (verify with WebSearch) |
| Retire | Low quality, stale, or cost-asymmetric |
| Merge into [X] | Substantial overlap with another skill; name the merge target |
Evaluation is holistic AI judgment — not a numeric rubric. Guiding dimensions:
- Actionability: code examples, commands, or steps that let you act immediately
- Scope fit: name, trigger, and content are aligned; not too broad or narrow
- Uniqueness: value not replaceable by MEMORY.md / CLAUDE.md / another skill
- Currency: technical references work in the current environment
Reason quality requirements — the field must be self-contained and decision-enabling:
reason- Do NOT write "unchanged" alone — always restate the core evidence
- For Retire: state (1) what specific defect was found, (2) what covers the same need instead
- Bad:
"Superseded" - Good:
"disable-model-invocation: true already set; superseded by continuous-learning-v2 which covers all the same patterns plus confidence scoring. No unique content remains."
- Bad:
- For Merge: name the target and describe what content to integrate
- Bad:
"Overlaps with X" - Good:
"42-line thin content; Step 4 of chatlog-to-article already covers the same workflow. Integrate the 'article angle' tip as a note in that skill."
- Bad:
- For Improve: describe the specific change needed (what section, what action, target size if relevant)
- Bad:
"Too long" - Good:
"276 lines; Section 'Framework Comparison' (L80–140) duplicates ai-era-architecture-principles; delete it to reach ~150 lines."
- Bad:
- For Keep (mtime-only change in Quick Scan): restate the original verdict rationale, do not write "unchanged"
- Bad:
"Unchanged" - Good:
"mtime updated but content unchanged. Unique Python reference explicitly imported by rules/python/; no overlap found."
- Bad:
传入完整盘点清单和检查表,启动一个Agent工具子代理(通用代理):
text
Agent(
subagent_type="general-purpose",
prompt="
Evaluate the following skill inventory against the checklist.
[INVENTORY]
[CHECKLIST]
Return JSON for each skill:
{ \"verdict\": \"Keep\"|\"Improve\"|\"Update\"|\"Retire\"|\"Merge into [X]\", \"reason\": \"...\" }
"
)子代理会读取每个技能,应用检查表,并返回每个技能的JSON结果:
{ "verdict": "Keep"|"Improve"|"Update"|"Retire"|"Merge into [X]", "reason": "..." }分块处理指南: 每次调用子代理时处理约20个技能,以确保上下文可控。每处理完一个分块后,将中间结果保存到 ()。
results.jsonstatus: "in_progress"所有技能评估完成后:将 设为 ,进入第三阶段。
status"completed"续处理检测: 启动时如果发现 ,则从第一个未评估的技能开始续处理。
status: "in_progress"每个技能将根据以下检查表进行评估:
- [ ] Content overlap with other skills checked
- [ ] Overlap with MEMORY.md / CLAUDE.md checked
- [ ] Freshness of technical references verified (use WebSearch if tool names / CLI flags / APIs are present)
- [ ] Usage frequency considered判定标准:
| 判定结果 | 含义 |
|---|---|
| Keep | 有用且内容最新 |
| Improve | 值得保留,但需要特定改进 |
| Update | 引用的技术已过时(需通过WebSearch验证) |
| Retire | 质量低下、内容陈旧或投入产出比失衡 |
| Merge into [X] | 与另一技能存在大量重叠;请指定合并目标 |
评估采用AI整体判断——而非量化评分。评估维度包括:
- 可操作性:提供可直接执行的代码示例、命令或步骤
- 范围匹配度:技能名称、触发条件和内容一致;既不过宽也不过窄
- 独特性:具备MEMORY.md / CLAUDE.md / 其他技能无法替代的价值
- 时效性:技术参考在当前环境中仍有效
理由质量要求——字段必须完整且可支撑决策:
reason- 不得仅写"unchanged"——必须重述核心依据
- 对于淘汰:说明(1) 发现的具体问题,(2) 可替代的方案
- 错误示例:
"Superseded" - 正确示例:
"disable-model-invocation: true already set; superseded by continuous-learning-v2 which covers all the same patterns plus confidence scoring. No unique content remains."
- 错误示例:
- 对于合并:指定目标技能并说明需整合的内容
- 错误示例:
"Overlaps with X" - 正确示例:
"42-line thin content; Step 4 of chatlog-to-article already covers the same workflow. Integrate the 'article angle' tip as a note in that skill."
- 错误示例:
- 对于优化:说明具体的修改需求(哪部分内容、修改动作、目标篇幅等)
- 错误示例:
"Too long" - 正确示例:
"276 lines; Section 'Framework Comparison' (L80–140) duplicates ai-era-architecture-principles; delete it to reach ~150 lines."
- 错误示例:
- 对于保留(快速扫描中仅修改时间变化):重述原判定理由,不得仅写"unchanged"
- 错误示例:
"Unchanged" - 正确示例:
"mtime updated but content unchanged. Unique Python reference explicitly imported by rules/python/; no overlap found."
- 错误示例:
Phase 3 — Summary Table
第三阶段 — 汇总表
| Skill | 7d use | Verdict | Reason |
|---|
| Skill | 7d use | 判定结果 | 理由 |
|---|
Phase 4 — Consolidation
第四阶段 — 整合
- Retire / Merge: present detailed justification per file before confirming with user:
- What specific problem was found (overlap, staleness, broken references, etc.)
- What alternative covers the same functionality (for Retire: which existing skill/rule; for Merge: the target file and what content to integrate)
- Impact of removal (any dependent skills, MEMORY.md references, or workflows affected)
- Improve: present specific improvement suggestions with rationale:
- What to change and why (e.g., "trim 430→200 lines because sections X/Y duplicate python-patterns")
- User decides whether to act
- Update: present updated content with sources checked
- Check MEMORY.md line count; propose compression if >100 lines
- 淘汰/合并: 在获得用户确认前,为每个文件提供详细理由:
- 发现的具体问题(重叠、陈旧、无效引用等)
- 可替代的功能方案(淘汰:现有技能/规则;合并:目标文件及需整合的内容)
- 删除的影响(是否有依赖技能、MEMORY.md引用或工作流受影响)
- 优化: 提供具体的改进建议及理由:
- 需修改的内容及原因(例如:“从430行精简至200行,因为X/Y章节与python-patterns重复”)
- 由用户决定是否执行
- 更新: 提供经来源验证的更新内容
- 检查MEMORY.md的行数;如果超过100行,建议压缩
Results File Schema
结果文件结构
~/.claude/skills/skill-stocktake/results.jsonevaluated_atdate -u +%Y-%m-%dT%H:%M:%SZT00:00:00Zjson
{
"evaluated_at": "2026-02-21T10:00:00Z",
"mode": "full",
"batch_progress": {
"total": 80,
"evaluated": 80,
"status": "completed"
},
"skills": {
"skill-name": {
"path": "~/.claude/skills/skill-name/SKILL.md",
"verdict": "Keep",
"reason": "Concrete, actionable, unique value for X workflow",
"mtime": "2026-01-15T08:30:00Z"
}
}
}~/.claude/skills/skill-stocktake/results.jsonevaluated_atdate -u +%Y-%m-%dT%H:%M:%SZT00:00:00Zjson
{
"evaluated_at": "2026-02-21T10:00:00Z",
"mode": "full",
"batch_progress": {
"total": 80,
"evaluated": 80,
"status": "completed"
},
"skills": {
"skill-name": {
"path": "~/.claude/skills/skill-name/SKILL.md",
"verdict": "Keep",
"reason": "Concrete, actionable, unique value for X workflow",
"mtime": "2026-01-15T08:30:00Z"
}
}
}Notes
注意事项
- Evaluation is blind: the same checklist applies to all skills regardless of origin (ECC, self-authored, auto-extracted)
- Archive / delete operations always require explicit user confirmation
- No verdict branching by skill origin
- 评估采用盲审机制:所有技能无论来源(ECC、自行编写、自动提取)均适用同一检查表
- 归档/删除操作始终需要用户明确确认
- 不会根据技能来源进行差异化判定