skill-stocktake 是做什么的?
斜杠命令(/skill-stocktake),使用质量检查清单和 AI 综合判断来审计所有 Claude 技能和命令。支持两种模式:快速扫描(仅检查近期变更的技能)和全量盘点(完整审查所有技能)。
范围
该命令针对 调用所在目录的相对路径 下的文件:
| 路径 | 描述 |
|---|---|
~/.claude/skills/ | 全局技能(所有项目) |
{cwd}/.claude/skills/ | 项目级技能(如果该目录存在) |
在第一阶段开始时,命令会明确列出已找到并扫描的路径。
针对特定项目
要包含项目级技能,请从项目根目录运行:
cd ~/path/to/my-project
/skill-stocktake
如果项目没有 .claude/skills/ 目录,则仅评估全局技能和命令。
模式
| 模式 | 触发条件 | 耗时 |
|---|---|---|
| 快速扫描 | results.json 存在(默认) | 5–10 分钟 |
| 全量盘点 | results.json 不存在,或 /skill-stocktake full | 20–30 分钟 |
结果缓存: ~/.claude/skills/skill-stocktake/results.json
快速扫描流程
只重新评估自上次运行以来发生变化的技能(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"
全量盘点流程
第一阶段 — 盘点
运行:bash ~/.claude/skills/skill-stocktake/scripts/scan.sh
该脚本枚举技能文件,提取前置元数据,并收集 UTC 修改时间。
项目目录从 $PWD/.claude/skills 自动检测;仅在需要时显式传入。
从脚本输出中展示扫描摘要和盘点表:
扫描中:
✓ ~/.claude/skills/ (17 个文件)
✗ {cwd}/.claude/skills/ (未找到 — 仅全局技能)
| 技能 | 7天使用 | 30天使用 | 描述 |
|---|
第二阶段 — 质量评估
使用完整的盘点和检查清单启动一个 Agent 工具子代理(通用型代理):
Agent(
subagent_type="general-purpose",
prompt="
请对照以下检查清单评估给出的技能盘点表。
[盘点表]
[检查清单]
为每个技能返回 JSON:
{ "verdict": "Keep"|"Improve"|"Update"|"Retire"|"Merge into [X]", "reason": "..." }
"
)
子代理读取每个技能,应用检查清单,并为每个技能返回 JSON:
{ "verdict": "保留"|"改进"|"更新"|"淘汰"|"合并至 [X]", "reason": "..." }
分块指导: 每次子代理调用处理约 20 个技能,以保持上下文可管理。每处理完一个块后,将中间结果保存到 results.json(status: "in_progress")。
所有技能评估完成后:设置 status: "completed",进入第三阶段。
断点续评检测: 如果在启动时发现 status: "in_progress",则从第一个未评估的技能继续。
每个技能都对照以下检查清单进行评估:
- [ ] 已检查与其他技能的内容重叠
- [ ] 已检查与 MEMORY.md / CLAUDE.md 的重叠
- [ ] 已检查技术引用的时效性(如果存在工具名称 / CLI 标志 / API,则使用 WebSearch)
- [ ] 已考虑使用频率
判定标准:
| 判定 | 含义 |
|---|---|
| 保留 | 有用且符合当前情况 |
| 改进 | 值得保留,但需要特定的改进 |
| 更新 | 引用的技术已过时(使用 WebSearch 验证) |
| 淘汰 | 质量低、过时或性价比不对称 |
| 合并至 [X] | 与另一个技能有大量重叠;指出合并目标 |
评估基于 AI 综合判断 —— 而非数字评分。指导维度:
- 可操作性:提供代码示例、命令或步骤,使你能立即行动
- 范围匹配:名称、触发条件和内容一致;不过宽或过窄
- 独特性:价值不能被 MEMORY.md / CLAUDE.md / 其他技能替代
- 时效性:技术引用在当前环境下能正常工作
理由质量要求 —— reason 字段必须内容完整且支持决策:
- 不要仅写“未变更”——始终重申核心依据
- 对于 淘汰:说明(1)发现了什么具体缺陷,(2)什么替代方案能满足相同需求
- 错误:
"已被取代" - 正确:
"disable-model-invocation: true 已设置;已被 continuous-learning-v2 取代,该技能覆盖所有相同模式并增加了置信度评分。没有保留任何独特内容。"
- 错误:
- 对于 合并:指出目标并描述要整合的内容
- 错误:
"与 X 重叠" - 正确:
"42 行薄内容;chatlog-to-article 的步骤 4 已涵盖相同工作流。将'文章角度'技巧作为注释集成到该技能中。"
- 错误:
- 对于 改进:描述所需的具体变更(哪个部分、什么操作、相关目标大小)
- 错误:
"太长" - 正确:
"276 行;'Framework Comparison' 部分(第 80–140 行)与 ai-era-architecture-principles 重复;删除它以达到约 150 行。"
- 错误:
- 对于 保留(快速扫描中仅 mtime 变更):重申原始判定的理由,不要写“未变更”
- 错误:
"未变更" - 正确:
"mtime 已更新但内容未变。独特的 Python 引用,由 rules/python/ 显式导入;未发现重叠。"
- 错误:
第三阶段 — 总结表
| 技能 | 7天使用 | 判定 | 理由 |
|---|
第四阶段 — 整合
- 淘汰 / 合并:在征得用户确认前,为每个文件提供详细的论证:
- 发现了什么具体问题(重叠、过时、引用失效等)
- 什么替代方案能覆盖相同功能(对于淘汰:哪个现有技能/规则;对于合并:目标文件以及要整合的内容)
- 移除的影响(任何依赖的技能、MEMORY.md 引用或受影响的工作流)
- 改进:提供具体的改进建议并说明理由:
- 要更改什么及原因(例如,“因为 X/Y 部分与 python-patterns 重复,将 430 行缩减至 200 行”)
- 用户决定是否执行
- 更新:提供已更新内容,并附上已检查的来源
- 检查 MEMORY.md 行数;如果超过 100 行,建议压缩
结果文件结构
~/.claude/skills/skill-stocktake/results.json:
evaluated_at:必须设置为评估完成时的实际 UTC 时间。
通过 Bash 获取:date -u +%Y-%m-%dT%H:%M:%SZ。绝不使用仅日期的近似值,如 T00:00:00Z。
{
"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"
}
}
}
备注
- 评估是无偏见的:无论技能来源(ECC、自创、自动提取),均使用相同的检查清单
- 存档/删除操作总是需要用户显式确认
- 不根据技能来源进行判定分支