mcpField
S
skill-graph-audit

skill-graph-audit

github.com/atholaAgent 工作流34373 次安装1 天前更新
代码仓库

关于 skill-graph-audit

skill-graph-audit 构建 marketplace 中 Skill 调用关系的有向图,供维护者检查组合结构和引用完整性。它可识别高引用节点、编排型 Skill、孤立节点及失效引用,并支持 JSON 输出。

主要功能

  1. 01从 Skill(plugin:name) 调用构建有向图
  2. 02识别高引用节点和编排型 Skill
  3. 03发现孤立节点与失效引用
  4. 04按类别区分失效引用
  5. 05支持 JSON 格式报告

适用场景

  1. 01重命名或弃用后检查断裂引用
  2. 02审查 Skill 组合文档
  3. 03季度检查孤立 Skill
  4. 04评估合并候选项的影响

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/athola/claude-night-market --skill skill-graph-audit

安装后在 Claude Code 中输入/skill-graph-audit确认已加载。

附带文件modules/interpretation.mdmodules/usage.md

详细介绍

技能图谱审计

概述

构建一个有向图,展示整个 marketplace 中的 Skill(plugin:name) 调用,并呈现组合模式:哪些技能被大量引用(枢纽),哪些技能会编排多个其他技能(编排者),哪些技能没有入向或出向引用(孤立节点),以及哪些技能引用了不存在的技能(悬空引用)。

现在可以根据源代码推导出联邦图谱,而不必手动维护。

适用场景

  • 在审查技能组合相关文档之前
  • 重命名或停用技能后,检查是否存在失效的 Skill() 引用
  • 在季度审计期间,找出孤立技能
  • 评估适合合并的候选项时(枢纽合并风险更高)
  • 需要对新技能的出向引用进行合理性检查时

不适用场景

  • 如需对单个技能进行质量评分,请改用 Skill(abstract:skills-eval)
  • 如需验证 frontmatter/结构,请改用 Skill(abstract:plugin-review)
  • 如需进行钩子专项审计,请改用 Skill(abstract:hooks-eval)

快速开始

# Positive control first. The fixture tree has a known answer (1
# bug-class dangling ref, 1 isolate, 2 edges); a regex that stopped
# matching would report plugins/ as clean, and this catches it.
uv run pytest -o addopts= -q plugins/abstract/tests/scripts/test_skill_graph.py -k Planted

python3 plugins/abstract/scripts/skill_graph.py \
  --plugins-root plugins --top-n 10

如需机器可读的输出:

python3 plugins/abstract/scripts/skill_graph.py \
  --plugins-root plugins --format json --output reports/skill-graph.json

完整的 CLI 参考和工作流示例请参阅 modules/usage.md。

核心输出

输出含义数值较高时的处理方式
枢纽被引用次数最多的技能将其视为核心 API;停用时务必格外谨慎
编排者会调用多个其他技能的技能确认每个引用仍然有效
孤立节点入向和出向引用均为零检查其作用:是库?入口点?还是拼写错误?
悬空引用:错误缺失的内部目标立即修复(拼写错误或已停用的技能)
悬空引用:外部对外部插件的引用记录插件依赖
悬空引用:占位符类似 -NAME 的模板文本确认是否有意保留

关于误报的指导和孤立节点分类,请参阅 modules/interpretation.md。

Dogfood 证据

此技能本身采用 TDD 优先的方式搭建;首次针对 plugins/ 运行时,它发现了两个真实的悬空引用,而人工 审计(2026-04-25)未能发现:

  • attune:makefile-generation -> abstract:makefile-dogfooder (脚本名称与技能名称混淆)
  • imbue:karpathy-principles -> spec-kit:speckit-clarify (命令被引用为技能)

两处引用都在同一会话中改为正确的命令式引用。

验证

有两种方法可验证审计输出是否可信:

  1. 测试套件正确性检查:运行 pytest -o addopts= plugins/abstract/tests/scripts/test_skill_graph.py,确认当前代码中的 提取、图构建、排名、孤立节点检测和悬空引用分类均通过。 -o addopts= 标志会绕过整个包的覆盖率门槛,否则单文件运行 会导致失败。
  2. 往返冒烟检查:记录基线运行的悬空引用数量,修复一条或多条 标记出的引用,然后重新运行并确认数量至少减少修复数量。 如果数量没有变化,则报告已过时,或正则表达式未匹配到某种 语法变体。

完成标准

  • 在运行审计之前,预置样例测试已通过;若未通过,则不能将 plugins/ 上的干净报告视为有效报告
  • 图谱成功构建:skill_graph.py 在 plugins/ 上运行时 不报错,并输出节点/边数量。
  • 悬空引用已分类为错误、外部和占位符(核心输出中的三行 均得到处理)。
  • 每个“悬空引用:错误”条目都已在同一会话中修复,或已登记为 可跟踪的问题。
  • pytest -o addopts= plugins/abstract/tests/scripts/test_skill_graph.py 通过。
  • 往返冒烟检查显示,悬空引用数量至少减少了已修复的引用数量。

相关技能

  • Skill(abstract:skills-eval):单个技能的质量评分
  • Skill(abstract:plugin-review):插件清单和结构
  • Skill(abstract:hooks-eval):钩子专项验证
  • Skill(abstract:rules-eval):规则目录验证

参考资料

  • 实现:plugins/abstract/scripts/skill_graph.py
  • 测试:plugins/abstract/tests/scripts/test_skill_graph.py
  • 组合文档: docs/quality-gates.md#skill-level-quality-gate-composition
  • 技能角色分类:docs/skill-integration-guide.md#skill-role-taxonomy

评论

支持 Markdown