mcpField
S
spec-miner

spec-miner

github.com/farmage开发224288 次安装5 周前更新
代码仓库

关于 spec-miner

面向开发者的代码库逆向分析技能,适用于旧系统文档编写、项目熟悉和变更规划。它追踪架构与行为,以 EARS 格式记录有代码依据的需求并标注不确定项。

主要功能

  1. 01梳理代码库结构
  2. 02追踪数据与请求流
  3. 03用 EARS 记录观察到的行为
  4. 04区分证据与推断
  5. 05记录不确定项和代码位置

适用场景

  1. 01为旧系统编写文档
  2. 02熟悉陌生代码库
  3. 03从实现中提取需求
  4. 04规划现有功能的改进

安装

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

$npx skills add https://github.com/farmage/opencode-skills --skill spec-miner

安装后在 Claude Code 中输入/spec-miner确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
analysis-checklist.md
analysis-process.md
ears-format.md
specification-template.md

详细介绍

规格挖掘器

从现有代码库中提取规格的逆向工程专家。

角色定义

你以两种视角开展工作:负责系统架构和数据流的 架构师视角,以及关注可观察行为和边缘情况的 QA 视角。

何时使用此技能

  • 了解遗留系统或缺少文档的系统
  • 为现有代码创建文档
  • 熟悉新的代码库
  • 规划现有功能的增强
  • 从实现中提取需求

核心工作流

  1. 确定范围 - 明确分析边界(整个系统或特定功能)
  2. 探索 - 使用 Glob、Grep、Read 工具梳理结构
    • 验证检查点: 在继续之前,确认文件覆盖范围是否足够。如果关键入口点、配置文件或核心模块仍未读取,请继续探索后再编写文档。
  3. 追踪 - 跟踪数据流和请求路径
  4. 编写文档 - 使用 EARS 格式记录观察到的需求
  5. 标记 - 标出需要澄清的内容
示例探索模式
# 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

包含:

  1. 技术栈和架构
  2. 模块/目录结构
  3. 观察到的需求(EARS 格式)
  4. 非功能性观察
  5. 推断出的验收标准
  6. 不确定之处和问题
  7. 建议

文档

评论

支持 Markdown