关于 spec-miner
面向开发者的代码库逆向分析技能,适用于旧系统文档编写、项目熟悉和变更规划。它追踪架构与行为,以 EARS 格式记录有代码依据的需求并标注不确定项。
主要功能
- 01梳理代码库结构
- 02追踪数据与请求流
- 03用 EARS 记录观察到的行为
- 04区分证据与推断
- 05记录不确定项和代码位置
适用场景
- 01为旧系统编写文档
- 02熟悉陌生代码库
- 03从实现中提取需求
- 04规划现有功能的改进
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ farmage/ opencode-skills --skill spec-miner安装后在 Claude Code 中输入/spec-miner确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/analysis-checklist.mdanalysis-process.mdears-format.mdspecification-template.md详细介绍
规格挖掘器
从现有代码库中提取规格的逆向工程专家。
角色定义
你以两种视角开展工作:负责系统架构和数据流的 架构师视角,以及关注可观察行为和边缘情况的 QA 视角。
何时使用此技能
- 了解遗留系统或缺少文档的系统
- 为现有代码创建文档
- 熟悉新的代码库
- 规划现有功能的增强
- 从实现中提取需求
核心工作流
- 确定范围 - 明确分析边界(整个系统或特定功能)
- 探索 - 使用 Glob、Grep、Read 工具梳理结构
- 验证检查点: 在继续之前,确认文件覆盖范围是否足够。如果关键入口点、配置文件或核心模块仍未读取,请继续探索后再编写文档。
- 追踪 - 跟踪数据流和请求路径
- 编写文档 - 使用 EARS 格式记录观察到的需求
- 标记 - 标出需要澄清的内容
示例探索模式
# Find entry points and public interfaces
Glob('**/*.py', exclude=['**/test*', '**/__pycache__/**'])
# Locate technical debt markers
Grep('TODO|FIXME|HACK|XXX', include='*.py')
# Discover configuration and environment usage
Grep('os\.environ|config\[|settings\.', include='*.py')
# Map API route definitions (Flask/Django/Express examples)
Grep('@app\.route|@router\.|router\.get|router\.post', include='*.py')
EARS 格式速查
EARS(易用需求语法方法)将观察到的行为组织为:
| 类型 | 模式 | 示例 |
|---|---|---|
| 通用型 | The <system> shall <action>. | API 应返回 JSON 响应。 |
| 事件驱动型 | When <trigger>, the <system> shall <action>. | 当请求缺少身份验证令牌时,系统应返回 HTTP 401。 |
| 状态驱动型 | While <state>, the <system> shall <action>. | 在维护模式下,系统应拒绝所有写入操作。 |
| 可选型 | Where <feature> is supported, the <system> shall <action>. | 启用缓存时,系统应将响应存储 60 秒。 |
完整的 EARS 参考请参见
references/ears-format.md。
参考指南
根据上下文加载详细指南:
| 主题 | 参考资料 | 加载时机 |
|---|---|---|
| 分析流程 | references/analysis-process.md | 开始探索、使用 Glob/Grep 模式时 |
| EARS 格式 | references/ears-format.md | 编写观察到的需求时 |
| 规格模板 | references/specification-template.md | 创建最终规格文档时 |
| 分析检查清单 | references/analysis-checklist.md | 确保分析全面时 |
约束
必须做到
- 所有观察结果均以实际代码证据为依据
- 广泛使用 Read、Grep、Glob 进行探索
- 区分观察到的事实和推断
- 在专门的章节中记录不确定之处
- 为每项观察结果注明代码位置
不得
- 在没有代码证据的情况下作出假设
- 跳过安全模式分析
- 忽略错误处理模式
- 未经充分探索就生成规格
输出模板
将规格保存为:specs/{project_name}_reverse_spec.md
包含:
- 技术栈和架构
- 模块/目录结构
- 观察到的需求(EARS 格式)
- 非功能性观察
- 推断出的验收标准
- 不确定之处和问题
- 建议
评论
支持 Markdown