skill-stocktake

skill-stocktake

热门

用于对 Claude Skill 和 Command 进行质量审计。支持 Quick Scan 快速扫描(仅针对变动的 Skill)和 Full Stocktake 全面盘点模式,并采用子 Agent 顺序分批评估机制。

24万Star
3.6万Fork
更新于 2026/8/2
SKILL.md
只读
名称
skill-stocktake
描述

用于对 Claude Skill 和 Command 进行质量审计。支持 Quick Scan 快速扫描(仅针对变动的 Skill)和 Full Stocktake 全面盘点模式,并采用子 Agent 顺序分批评估机制。

skill-stocktake

斜杠命令(/skill-stocktake),结合质量自查清单与 AI 综合评估,全面审计所有 Claude Skill 和 Command。支持两种模式:针对近期变更 Skill 的 Quick Scan 快速扫描,以及进行完整复盘的 Full Stocktake 全面盘点。

作用范围

该命令针对以下路径进行审计(相对于执行该命令时的工作目录):

路径 说明
~/.claude/skills/ 全局 Skill(适用于所有项目)
{cwd}/.claude/skills/ 项目级 Skill(如果该目录存在)

在阶段 1 开始时,命令会明确列出检测到并已扫描的路径。

指定特定项目

如需将项目级 Skill 纳入审计,请在对应项目的根目录下运行命令:

cd ~/path/to/my-project
/skill-stocktake

如果项目下没有 .claude/skills/ 目录,则仅会对全局 Skill 和 Command 进行评估。

模式说明

模式 触发条件 预计耗时
Quick Scan(快速扫描) 存在 results.json(默认模式) 5–10 分钟
Full Stocktake(全面盘点) 缺失 results.json,或输入 /skill-stocktake full 20–30 分钟

结果缓存路径: ~/.claude/skills/skill-stocktake/results.json

Quick Scan 流程

仅重新评估自上次运行以来发生过变更的 Skill(耗时 5–10 分钟)。

  1. 读取 ~/.claude/skills/skill-stocktake/results.json
  2. 运行命令:bash ~/.claude/skills/skill-stocktake/scripts/quick-diff.sh \ ~/.claude/skills/skill-stocktake/results.json
    (项目目录会自动从 $PWD/.claude/skills 中识别;仅在必要时显式传入)
  3. 如果输出为 []:提示 "No changes since last run." 并终止流程
  4. 仅使用阶段 2 的同一套标准重新评估发生变更的文件
  5. 继承上次结果中未发生变更的 Skill
  6. 仅输出 Diff 差异结果
  7. 运行命令:bash ~/.claude/skills/skill-stocktake/scripts/save-results.sh \ ~/.claude/skills/skill-stocktake/results.json <<< "$EVAL_RESULTS"

Full Stocktake 流程

阶段 1 — 资产盘点(Inventory)

运行命令:bash ~/.claude/skills/skill-stocktake/scripts/scan.sh

脚本会自动枚举 Skill 文件、提取 Frontmatter 头部元数据并收集 UTC 修改时间(mtime)。
项目目录会自动从 $PWD/.claude/skills 中识别;仅在必要时显式传入。
展示脚本输出的扫描摘要及清单表格:

Scanning:
  ✓ ~/.claude/skills/         (17 files)
  ✗ {cwd}/.claude/skills/    (not found — global skills only)
Skill 7 天使用频次 30 天使用频次 描述

阶段 2 — 质量评估(Quality Evaluation)

启动 Agent 工具的子 Agent(通用 Agent / general-purpose agent),并传入完整的盘点清单与检查项:

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\": \"...\" }
"
)

子 Agent 会逐个读取 Skill,对照检查项进行评估,并返回每个 Skill 的 JSON 评估结果:

{ "verdict": "Keep"|"Improve"|"Update"|"Retire"|"Merge into [X]", "reason": "..." }

分块处理建议(Chunk guidance): 每次子 Agent 调用处理约 20 个 Skill,以保持上下文大小可控。每处理完一块,将中间结果写入 results.json(标记 status: "in_progress")。

所有 Skill 评估完成后:将 status 设置为 "completed",并进入阶段 3。

断点续传检测(Resume detection): 若启动时检测到 status: "in_progress",则从第一个未评估的 Skill 继续执行。

每个 Skill 均对照以下检查清单(Checklist)进行评估:

- [ ] 是否检查了与其他 Skill 的内容重叠
- [ ] 是否检查了与 MEMORY.md / CLAUDE.md 的重叠
- [ ] 是否验证了技术引用的时效性(若存在工具名/CLI 参数/API,需使用 WebSearch 查验)
- [ ] 是否考量了使用频率

结论(Verdict)判定标准:

结论 含义
Keep 实效性强且具备实用价值
Improve 值得保留,但有具体的改进空间
Update 引用的技术已过时(需通过 WebSearch 验证)
Retire 质量低下、陈旧废弃或投产比失衡
Merge into [X] 与其他 Skill 严重重叠;需明确合并目标

评估采用 AI 综合主观判断 —— 而非硬性的数字打分机制。参考维度如下:

  • 可操作性(Actionability):提供代码示例、命令或步骤,能直接上手落地
  • 定位契合度(Scope fit):名称、触发条件与实际内容一致;不过宽亦不过窄
  • 独特性(Uniqueness):价值无法被 MEMORY.md / CLAUDE.md 或其他 Skill 替代
  • 时效性(Currency):技术引用在当前环境下依然有效可用

原因描述(Reason)质量要求 —— reason 字段必须信息自洽,能够直接支撑决策:

  • 严禁仅填写 "unchanged" —— 必须重新阐述核心依据
  • 针对 Retire:需说明 (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."
  • 针对 Merge:需指明目标名称,并说明具体整合哪些内容
    • 差例:"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."
  • 针对 Improve:描述具体的修改动作(相关章节、具体操作、建议缩减到的目标行数等)
    • 差例:"Too long"
    • 好例:"276 lines; Section 'Framework Comparison' (L80–140) duplicates ai-era-architecture-principles; delete it to reach ~150 lines."
  • 针对 Keep(Quick Scan 中仅 mtime 修改的情况):重新阐述原有的评估依据,不要只写 "unchanged"
    • 差例:"Unchanged"
    • 好例:"mtime updated but content unchanged. Unique Python reference explicitly imported by rules/python/; no overlap found."

阶段 3 — 汇总表格(Summary Table)

Skill 7 天使用频次 评估结论 原因说明

阶段 4 — 整理与收尾(Consolidation)

  1. Retire / Merge:在向用户确认前,为每个文件提供详细的合理性依据:
    • 发现的具体问题(内容重叠、陈旧废弃、引用失效等)
    • 涵盖相同功能的替代方案(对于 Retire:指明现有哪个 Skill/规则可替代;对于 Merge:明确目标文件及需合并的具体内容)
    • 移除影响(对依赖项 Skill、MEMORY.md 引用或工作流的影响)
  2. Improve:提供带有合理依据的具体改进建议:
    • 修改内容及原因(例如:"因 X/Y 章节与 python-patterns 重叠,建议由 430 行精简至 200 行")
    • 由用户决定是否采纳实施
  3. Update:展示经核对数据源后更新的内容
  4. 检查 MEMORY.md 的行数;若超过 100 行,提议进行压缩

结果文件 Schema

~/.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"
    }
  }
}

注意事项

  • 评估遵循无偏见原则:无论 Skill 来源如何(ECC 导入、自主编写、自动提取),均适用同一套检查清单
  • 归档/删除等破坏性操作一律需要用户明确确认
  • 评估结论不会因 Skill 来源差异而产生分支逻辑