A

spec-driven-development

作者 addyosmani

spec-driven-development 是一项工作流技能:先写规格,再写代码,并在规划、任务拆分和实现的每个阶段都经过人工审阅。

Stars18.8k
收藏0
评论0
收录时间2026年4月21日
分类Skill 编写
安装命令
npx skills add addyosmani/agent-skills --skill spec-driven-development
编辑评分

这项技能得分为 74/100,属于表现扎实但还不是顶级的目录候选。对目录用户来说,它确实适合需要 spec-first 工作流的智能体,结构也足够清晰,能减少试错;但它仍缺少配套文件和成体系的引导,因此落地时不会特别省心。

74/100
亮点
  • 触发场景明确:适合从新项目、新功能或需求不清的变更开始使用,并明确不适用于简单修复。
  • 工作流设计扎实:四个带关口的阶段(Specify → Plan → Tasks → Implement),每一步都有人工审阅。
  • 实用深度不错:SKILL.md 内容较充实,包含多个标题、约束和代码示例,便于智能体按流程执行。
注意点
  • 没有支持文件或安装命令:几乎完全依赖 SKILL.md 里的说明来完成接入。
  • 单文件交付:缺少脚本、参考资料或其他资源来强化工作流,或处理边缘情况。
概览

spec-driven-development 技能概览

spec-driven-development 是一种工作流技能:先写清晰的 spec,再用这个 spec 来指导规划、任务拆分和实现。对于 spec-driven-development 技能来说,当你要从零开始做新功能、调整架构,或者面对需求模糊、希望最终实现尽量少做假设时,它最适合用。

这个技能适合做什么

当主要风险是“做错东西”,而不只是“做得不好”时,就该用这份 spec-driven-development 指南。它能帮助你把一个粗略想法变成共同认可的单一事实来源,在动手实现前先定义好范围、行为、约束和验收标准。

最适合的使用场景

这项 spec-driven-development 技能适合希望与人工审阅者保持更紧密对齐的团队和个人开发者,尤其适用于跨文件、依赖产品决策,或者规模大到“直接开写代码”会带来返工的任务。它也很适合用于 Skill Authoring 场景下的 spec-driven-development,当你希望这个技能本身输出更有纪律、可审阅的结果时尤为如此。

它的不同之处

它的价值在于有门槛的工作流:先写 spec,再做 plan,再拆 tasks,最后才 implement,而且每一步都要经过人工审阅。这比普通 prompt 更强,因为它减少了隐藏假设,并且把关键决策提前到修改成本更低的时候。

如何使用 spec-driven-development 技能

安装并加载上下文

如果要安装 spec-driven-development,先把这个 skill 加到你的 agent skills 配置里,然后先打开 skill 文件:

npx skills add addyosmani/agent-skills --skill spec-driven-development

接着先读 SKILL.md,再开始做任何别的事。这个仓库没有 rules/references/scripts/ 之类的辅助目录,所以这个 skill 的上下文几乎完全都在主 skill 文件里。

给技能一个明确的起点

spec-driven-development 的使用方式在你提供目标、约束和已知未知项时效果最好。差的输入像“做一个 dashboard”。好的输入会像这样:

“创建一个 dashboard 的 spec,用来展示订阅健康状态,支持基于角色的访问控制,并且必须兼容我们现有的 REST API。在起草 spec 之前先问澄清问题。暂时不要提出实现细节。”

这样能给 skill 足够的上下文,去暴露假设并避免过早设计。

按照有门槛的工作流执行

这个 skill 的设计就是在每个阶段都停下来,直到得到验证为止。实际使用时,它会按下面的顺序走:

  1. 说明问题和假设。
  2. 在 spec 被批准后再规划方案。
  3. 把计划拆成任务。
  4. 只在任务审阅通过后再实现。

如果跳过审阅关卡,你就会失去这个 skill 最核心的价值:减少因未经验证的假设而导致的返工。

先读什么,再怎么用

先看 SKILL.md,然后把其中关于 overview、when to use 和 gated workflow 的部分当作你的操作规则。如果你要把它改造成自己的 agent flow,请保留审阅检查点和“追问到足够具体”为止的行为,因为这些部分最有可能提升输出质量。

spec-driven-development 技能常见问题

spec-driven-development 比普通 prompt 更好吗?

通常是的,尤其是在任务模糊、牵涉面广或者返工成本高的时候。普通 prompt 可以更快产出代码,但当你需要先就“要做什么”达成一致时,spec-driven-development 会更合适。

什么时候不该用它?

不要把 spec-driven-development 技能用在小修小补、明显的 bug 修复,或者没有明显产品歧义的独立改动上。这些情况下,完整 spec 流程的额外开销可能比工作本身还慢。

它适合新手吗?

适合,只要你愿意回答澄清问题并审阅草稿就行。这个 skill 比自己临时发明一套流程更容易上手,因为它会明确要求 agent 停下来、暴露假设,并按阶段依次推进。

它适合 Skill Authoring 工作流吗?

适合,尤其适合 spec-driven-development for Skill Authoring 这种场景:当你希望为编写新 skill 或升级现有 skill 建立一套可重复的流程时,它会很有用。它最适合用于那些需要清晰范围、审阅关卡,以及在实现前就能验证 spec 的 authoring 任务。

如何改进 spec-driven-development 技能

事先提供更精准的输入

最好的结果来自清楚说明目标用户、期望结果、约束条件,以及哪些内容还不确定。比如:“在不改动 public API 的前提下迁移 checkout flow,保留现有 analytics events,并在进入 planning 之前先识别任何依赖风险。”

强制技能明确列出假设

一个常见失败模式是 spec 看起来很完整,实际上却掩盖了关键决策。可以要求模型在起草 spec 之前先列出假设,然后在进入 planning 之前由人类工程师一起审查这些假设。这通常正是 spec-driven-development 最能省时间的地方。

迭代 spec,而不是代码

如果第一版不对,先修改范围、验收标准或约束,再要求实现。这个工作流最适合在每次修订时不断收紧契约,因为后续阶段都依赖 spec 的精确度。

在审阅成本高的时候使用它

当错误假设会带来高成本时,这个 skill 的价值最大:比如跨文件改动、架构调整,或者会影响多个相关方的功能。如果 spec 的第一稿仍然模糊,就让它多停留在 spec 阶段一会儿,不要过早推进到 tasks 或 code。

评分与评论

暂无评分
分享你的评价
登录后即可为这个技能评分并发表评论。
G
0/10000
最新评论
保存中...