mcpField
S
spec-mining

spec-mining

github.com/alexander-danilenko开发1788 次安装5 天前更新
代码仓库

关于 spec-mining

spec-mining 是一项从代码中提取可验证规格说明的技能,适用于缺少可用文档的系统。它引导维护者追踪请求路径、检查测试和迁移记录,并区分证据与不确定事项。

主要功能

  1. 01由外向内追踪代码
  2. 02检查测试与迁移记录
  3. 03使用 EARS 编写需求
  4. 04为结论标注证据
  5. 05单独列出不确定事项

适用场景

  1. 01记录缺少文档的服务
  2. 02规划系统迁移
  3. 03帮助维护者熟悉系统

安装

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

$npx skills add https://github.com/alexander-danilenko/cortex-claude-code-plugins --skill spec-mining

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

附带文件references/specification-template.md

详细介绍

规格挖掘

通过阅读实际运行的代码,从缺乏可用文档的系统中提取规格说明。

让输出值得信赖的关键原则是:将观察到的内容与推断出的内容分开。 读者会依据这份文档采取行动——重建服务、规划迁移、熟悉系统等。听起来信心十足的猜测比明确承认存在缺口更糟糕,因为没人会回头核实。

方法

从外向内开展:先看入口点,再看路由,然后看路由背后的服务,最后看数据层。沿着实际请求路径追踪,能让你了解系统真实的结构,而它的目录名称所暗示的结构往往并不准确。

也要阅读测试。它们记录了预期行为,以及有人在生产环境中遇到的边界情况;通常比仓库中的任何注释或 README 都更坦诚。

还要阅读迁移历史。迁移有日期且顺序明确,因此能展现架构如何演变成当前形态——哪些列是在紧迫情况下添加的、哪些数据被回填了、哪些字段被重命名后却从未删除。这个演变过程往往是关于数据模型为何如此的唯一留存记录。

每项观察都要引用其证据——src/auth/jwt.strategy.ts:42。没有位置,读者就无法核实声明;无法核实的声明会让逆向工程得到的规格说明逐渐失去价值。

编写观察到的需求 — EARS

EARS 通过强制在句子中写明触发条件和状态,让需求明确无歧义,从而避免“系统验证令牌”这句话掩盖了_何时_验证。

模式形式
通用系统应当[执行操作]。
事件当[触发条件]时,系统应当[执行操作]。
状态在[状态]期间,系统应当[执行操作]。
条件在[状态]期间,当[触发条件]时,应当……
可选在[功能已启用]时,应当……

按领域编号,以便之后引用——OBS-AUTH-001、OBS-USER-002:

OBS-AUTH-001
While credentials are valid, when POST /auth/login is called, the system
shall return a JWT access token (15m) and a refresh token (7d).
Evidence: src/auth/auth.controller.ts:31, src/auth/auth.service.ts:88

不确定之处也是交付内容

所有无法从代码中确定的内容,都应单独列为问题,而不是猜测:什么会触发状态转换,删除是否为软删除,哪个外部系统负责某个字段。本节往往是文档中最有价值的部分——它列出了维护者必须先回答的问题,之后才有人能依赖其余内容。

输出

保存到 specs/{project_name}_reverse_spec.md。结构和章节顺序:references/specification-template.md。

评论

支持 Markdown