SuperAPI AI 工具集

spec-miner

编程与开发

查看项目

更新于 10-15 16:29

技能介绍

Spec Miner 是一个逆向工程专用技能,用于从现有代码库中提取规格说明。它适用于理解遗留或无文档系统、为已有代码编写文档、上手新代码库、规划对现有功能的增强,以及从实现中提取需求。

角色定位

该技能以两种视角运作:架构视角(Arch Hat)负责系统架构与数据流,QA 视角(QA Hat)负责可观测行为与边界情况。

核心工作流

  1. 范围(Scope):确定分析边界,是整个系统还是特定功能。
  2. 探索(Explore):使用 Glob、Grep、Read 工具映射代码结构。此处设有验证检查点:在继续之前确认文件覆盖是否充分;如果关键入口点、配置文件或核心模块尚未阅读,应继续探索而不是开始写文档。
  3. 追踪(Trace):跟踪数据流与请求路径。
  4. 记录(Document):以 EARS 格式编写观察到的需求。
  5. 标注(Flag):标记需要澄清的区域。

探索模式示例

文档给出了若干探索模式示例,用于查找入口点与公共接口、定位技术债标记(TODO、FIXME、HACK、XXX)、发现配置与环境变量使用、映射 API 路由定义(Flask/Django/Express 示例)。

EARS 格式速查

EARS(Easy Approach to Requirements Syntax)用于把观察到的行为结构化为需求,分为四类:

  • 通用型(Ubiquitous):The <system> shall <action>. 例:The API shall return JSON responses.
  • 事件驱动型(Event-driven):When <trigger>, the <system> shall <action>. 例:When a request lacks an auth token, the system shall return HTTP 401.
  • 状态驱动型(State-driven):While <state>, the <system> shall <action>. 例:While in maintenance mode, the system shall reject all write operations.
  • 可选型(Optional):Where <feature> is supported, the <system> shall <action>. 例:Where caching is enabled, the system shall store responses for 60 seconds.

完整 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 格式)、非功能性观察、推断的验收标准、不确定项与疑问、建议。