Agent Skills
返回列表
Spec驱动编程

Spec驱动编程

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_58fad8c3/spec-coding-plus。

技能介绍

要解决什么问题

很多团队在「写规格」和「写代码」之间缺一层硬约束:Spec 里全是 TODO 和占位符照样进开发;范围在迭代里悄悄变大,却从没有「本次明确不做」的章节;规格批准后,编码代理只能从自然语言里猜输入字段和验收方式。SkillHub 上的 spec-coding 已有「模板即契约 + 状态机」思路,但缺少 Non-Goals 护栏、可执行的 DoD 闸门,以及和落地编码之间的结构化闭环。

Spec Coding Plus 是在不改动本机 ~/.workbuddy/skills/spec-coding 的前提下,用 fork 技能补齐上述缺口:模板、状态流转、scripts/check_spec.py 与保存即校验机制绑在一起,让「不过闸门不交付」成为默认纪律。

技能如何工作

规格类型与模板:按场景选 feature-spec.md、api-spec.md、component-spec.md;数据管道、算法、Infra 等第四类用 generic-spec.md;小改动用内置 tier: lite 的 minimal-spec.md,硬闸门从八道减为 G1/G2/G7/G8。

状态机:draft → review → approved → in-progress → done。新项目生成规格时,头部须含状态、创建日期、负责人;不得从 draft 直接跳到 approved,必须经过 review。

DoD 闸门:交付开发前运行 python scripts/check_spec.py {spec}.md。full 档下 G1–G8 任一 FAIL(含缺 Non-Goals、输入输出表占位、验收清单空壳等)则退出码 1,禁止交付。v1.3.5 起不只验「章节存在」,还验占位符与实质内容下限。lite 档下 G3–G6 降为建议项(ADV),不阻塞交付。

下游契约:approved 后的整份 Spec 即编码代理的输入契约;frontmatter 中的 agent_contract 提供 inputs[] 与 acceptance[](可执行命令 + 期望),便于 parse 而非从 prose 推断。验收阶段对照同一份 Spec 的验收 Checklist 逐项核对至 done。

保存即校验:含 spec_type frontmatter 的 .md 可被 watch_gate.py 监视或经 hook_gate.py 挂到 on-save;默认 warn-only 不阻断保存,--strict 时 FAIL 才 exit 1。

适用边界与注意

  • 本技能是 spec-coding 的 fork;上游更新由 SkillHub 覆盖原包,合并上游修复需手动迁入 fork,勿整包覆盖以免丢失 Non-Goals、闸门与 agent_contract 等改动。
  • 逆向生成规格默认 review,结构类闸门须过,「待确认」项不计 FAIL,但验收清单应列待补项。
  • agent_contract 与 lite 档部分闸门为建议项,不替代 full 档下对边界与 Non-Goals 的严肃写作习惯。

使用场景

  • 新功能立项时,按 feature-spec 或 generic-spec 填齐 Non-Goals 与验收 Checklist,跑 `check_spec.py` 全过后再从 approved 交给编码代理实现。
  • 维护缺少文档的 REST/GraphQL 接口时,从源码逆向生成 api-spec,未知项标「待确认」,以 review 状态过结构闸门后补全。
  • 单次改字段、修 bug 或补配置时,用 `minimal-spec` 的 lite 档只卡 G1/G2/G7/G8,写清验收项即可进入 in-progress。
  • 设计 React/Vue 组件时,用 component-spec 写输入输出、正常与异常行为流程,开发完成后按同一份 Checklist 勾验至 done。

适合人员

  • 在迭代开始前负责把用户故事写成可验收规格、并用 Non-Goals 卡住范围蔓延的产品或工程负责人
  • 接手无接口文档的遗留服务、需要从源码反推 api-spec 并标注待确认项的后端维护工程师
  • 通过 WorkBuddy 等把 approved Spec(含 agent_contract)作为首条上下文交给编码子代理实现功能的全栈开发者
  • 希望团队规格 `.md` 保存时自动跑闸门、避免 TODO 空壳文档进入 in-progress 的技术规范维护者