name: spec-discovery description: “解析规格文档以提取ID、标题和可追溯元数据(仓库、路径、哈希)。”
规格文档发现技能
定位规格文档和外部请求头,提取ID(例如REQ-NOTIFY-001),并返回可追溯元数据供下游代理使用。
变量
| 变量 | 默认值 | 描述 |
|---|---|---|
| ROOT | . | 主仓库根目录 |
| EXTRA_REPOS | [] | 包含specs/的额外仓库根目录 |
| INCLUDE_EXTERNAL_REQUESTS | true | 扫描specs/external-requests/ |
| OUTPUT_FORMAT | json | json或toon清单输出 |
工作流程(强制)
- 加载仓库:ROOT + EXTRA_REPOS
- 遍历规格文档:
specs/、specs/external-requests/,跳过specs/templates/ - 解析标题:匹配
^#+\s*(REQ-[A-Za-z0-9_-]+)\s*:?\s*(.*)$ - 规范化:路径相对于仓库根目录,锚点基于ID + 标题
- 可追溯性:计算文件内容的SHA-256;记录
source_repo、path、hash - 生成清单:按仓库 → 路径 → ID排序,输出JSON/TOON格式(见输出模式)
红色标志(停止并验证)
- 规格文件中未检测到ID → 在跳过前确认标题格式
- 跨仓库的重复规格ID → 在清单
notes字段中标记 - 缺少
specs/目录 → 报告空结果而非失败
输出模式
{
"format": "spec-manifest/v1",
"generated_at": "<ISO-8601 UTC>",
"sources": [
{"repository": "<repo-name>", "root": "<abs-path>"}
],
"specs": [
{
"id": "REQ-NOTIFY-001",
"title": "邮件发送端点",
"source_repo": "ai-dev-kit",
"path": "specs/external-requests/notify.md",
"link": "specs/external-requests/notify.md#req-notify-001-邮件发送端点",
"hash": "<sha256-of-file>"
}
]
}
提供者说明
- 当其他命令请求
/ai-dev-kit:specs-find或规格可追溯性时使用此技能。 - 机器工作流首选JSON;紧凑提示嵌入使用TOON。
- 保留ID/标题大小写;锚点应为小写 + 连字符分隔。