news 2026/9/7 1:27:17

spec-kit 社区实战 Walkthrough:七种真实场景拆解规范驱动开发的绿场、棕场与定制玩法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
spec-kit 社区实战 Walkthrough:七种真实场景拆解规范驱动开发的绿场、棕场与定制玩法

spec-kit 社区实战 Walkthrough:七种真实场景拆解规范驱动开发的绿场、棕场与定制玩法

【免费下载链接】spec-kit💫 Toolkit to help you get started with Spec-Driven Development项目地址: https://gitcode.com/GitHub_Trending/sp/spec-kit

Community Walkthroughs 是 spec-kit 仓库中专收社区贡献实战案例的入口文档(docs/community/walkthroughs.md),它收录了七个完整跑通 Spec-Driven Development(SDD)工作流的演示项目,覆盖从零搭建(greenfield)与存量代码扩展(brownfield)两大场景,并分别验证了 preset 与 extension 两种官方定制机制。读完本篇,你不仅能快速判断哪个 walkthrough 与自己的技术栈和场景匹配,还能理解这些演示背后依赖的 preset 模板解析、extension 命令注册等底层机制,把"照着看"升级为"照着做"。

一、社区 Walkthrough 是什么、不是什么

在进入具体案例之前,必须先明确 docs/community/walkthroughs.md 中对这类内容的官方定位,这决定了你使用它们时的正确姿势:

  • 独立创作与维护:每个 walkthrough 由其作者独立创建和维护,未经官方审查、背书或支持。跟做之前请先审阅其内容,风险自负。
  • 只读示例而非黄金输出:它们是"已完成流程"的有用只读示例(useful read-only examples of completed flows),但不是对 spec、plan、tasks 产物的官方黄金输出。也就是说,演示项目中生成的spec.mdplan.mdtasks.md只是"某一次运行"的结果,官方并不保证这些产物是最优写法。
  • 学习价值在于流程形态:每个案例真正值得研究的是它如何把 constitution → specify → plan → tasks → implement 这条主线(以及 clarify、analyze 等质量门)套用到不同约束条件上——不同语言、不同体量、不同起点。

二、七个 Walkthrough 全景

docs/community/walkthroughs.md 当前收录的七个案例可以按"起点"与"机制验证点"两个维度归纳:

#案例起点技术栈核心演示点
1Greenfield .NET CLI 工具空白目录.NET 单二进制 CLI完整走通 constitution → specify → plan → tasks → 多轮 implement,使用 GitHub Copilot agents
2Greenfield Spring Boot + React 平台从零搭建Spring Boot + React + PostgreSQL + Docker Compose构建 LLM 性能分析平台(REST API、图表、迭代追踪),额外加入 clarify 步骤和跨产物一致性分析
3Brownfield ASP.NET CMS 扩展存量开源 CMS(CarrotCakeCMS-Core,约 30.7 万行 C#/Razor/SQL/JS/配置)ASP.NET为存量系统加两个新特性:跨平台 Docker Compose 基础设施 + 令牌认证的 headless REST API,演示无 spec、无 constitution 前提下的落地方式
4Brownfield Java 运行时扩展存量开源 Jakarta EE 运行时(Piranha,约 42 万行 Java/XML/JSP/HTML/配置,180 个 Maven 模块)Java增加带密码保护的 Server Admin Console,演示大型多模块 Java 工程在无既有 spec/constitution 时如何使用 spec-kit
5Brownfield Go / React 仪表盘存量开源系统(NASA Hermes 地面支持系统,Go)Go + React全程仅在终端内通过 GitHub Copilot CLI 驱动spec-kit,为 Hermes 扩展轻量级 Web 遥测仪表盘,证明 constitution → specify → plan → tasks → implement 全流程可以在终端完成
6Greenfield Spring Boot MVC + 自定义 preset从零搭建Spring Boot MVC使用自定义"海盗语"preset 重塑整个 spec-kit 体验:spec 变成 "Voyage Manifests"、plan 变成 "Battle Plans"、tasks 变成 "Crew Assignments",全篇海盗腔生成而不改动任何工具链
7Greenfield Spring Boot + React + 自定义 extension从零搭建Spring Boot 4 + React 19 + PostgreSQL + Docker Compose走通社区 AIDE 扩展——用"高层 spec(vision)+ 低层 spec(work items)"组织 7 步迭代生命周期(vision → roadmap → 进度追踪 → 工作队列 → 工作项 → 执行 → 反馈回路),以家庭交易平台为场景,演示不碰核心工具链即可换一种 SDD 风格

其中案例 1、2、5 分别对应"标准流程"、"标准流程 + 质量门"、"纯终端流程"三种执行形态;案例 3、4 展示棕场大工程;案例 6、7 则是对 spec-kit 两大扩展机制(preset / extension)的端到端验证。

三、绿场案例:从空白目录到多轮实现

3.1 标准主线:.NET CLI 工具演示

第一个案例(Timezone Utility)的看点在于它完整覆盖了 docs/quickstart.md 中"较短路径"的四步主线,并用 GitHub Copilot agents 执行:

/speckit.constitution → /speckit.specify → /speckit.plan → /speckit.tasks → /speckit.implement(多轮)

"多轮 implement"(multi-pass implement)是实践中的关键技巧。docs/reference/agentic-sdd.md 对/speckit.implement的说明指出:小功能可以一次跑完;大功能应分阶段执行,每轮用参数圈定范围、验证结果后再继续。例如:

/speckit.implement Implement only the Setup and Foundational phases: project scaffolding and the data model with basic CRUD. Stop before the user-story features.
/speckit.implement Now implement the Kanban board user story: drag-and-drop between columns.

这样做的目的是避免一次性吞掉 agent 的全部上下文窗口,让每一轮实现都可独立验证。

3.2 加入质量门:Spring Boot + React 平台演示

第二个案例在标准主线上插入了两个质量门,这也是 docs/quickstart.md 中"完整路径"的形态:

  1. /speckit.constitution
  2. /speckit.specify
  3. /speckit.clarify—— 针对欠规格部分提出定点问题并把答案回写进 spec
  4. /speckit.plan—— 技术栈与架构归属此步
  5. /speckit.checklist—— "需求的单元测试"
  6. /speckit.tasks
  7. /speckit.analyze—— 只读跨产物一致性检查
  8. /speckit.implement
  9. /speckit.converge—— 只追加不删改的收敛检查

该案例额外做了一次"跨产物一致性分析"(cross-artifact consistency analysis),即对spec.mdplan.mdtasks.md三者做冲突/缺口/歧义扫描。这正是/speckit.analyze的定义行为:从源码结构看,它被设计为从不编辑文件——只产出报告并可选给出修复建议,发现问题时回到负责该问题的上游命令(需求问题回 specify/clarify,设计问题回 plan,任务问题回 tasks)在源头修复后重跑,直到报告干净。

3.3 纯终端形态:Go / React 仪表盘演示

第五个案例的特殊性在于交互入口:它没有依赖 IDE 集成,而是完全在终端中使用 GitHub Copilot CLI驱动整个流程。该案例证明了两件事:

  • spec-kit 的工作流不绑定特定宿主环境,命令序列在任何能执行/speckit.*(或 agent 暴露的等价形式,如$speckit-*/skill:speckit-*)的界面中都能运行;
  • 棕场对象是一个真实的开源系统(NASA Hermes,Go 语言),新增的 React 遥测仪表盘只是"下一个有界变更",而非对存量系统的整体重写——这与 docs/guides/existing-projects.md 的主张完全一致。

四、棕场案例:无 Spec、无 Constitution 的存量工程

案例 3(ASP.NET CMS)与案例 4(Piranha Java 运行时)是棕场实践的范本。它们共同验证了 docs/guides/existing-projects.md 给出的棕场接入方法论:

4.1 原地初始化,不做逆向规格化

该指南开宗明义:不需要先用规格重建整个现有系统。棕场的正确起点是原地初始化:

specify init --here --force --integration <key>
  • --here指向当前目录;
  • --force允许在非空目录初始化,并可能替换冲突管理路径下的文件,因此指南要求在运行前先 commit/stash 现有工作、开一个分支,保证所有生成文件都能出现在一次正常的代码评审 diff 中;
  • 初始化只会添加共享的.specify/项目文件和所选集成所需的命令/技能文件,不会重写你的应用,也不会为既有行为推断规格

4.2 用仓库证据写 Constitution

/speckit.constitution应只写"对仓库已经为真"或"团队明确同意采纳"的原则,证据来源是 README、架构决策、贡献指南和 CI 配置。指南中的示例:

/speckit.constitution Preserve public API compatibility. Follow the existing service boundaries. Every database migration must include a rollback plan. Run the repository's established unit and integration test suites.

指南明确警告:不要为了填满 constitution 模板而发明标准——不切实际的规则会在后续 plan/analyze 阶段制造噪音而非有用的约束。

4.3 选择"有界"的首个变更

两个棕场案例都选择了可独立评审的变更切片:案例 3 选了"Docker Compose 基础设施 + headless REST API"两个特性,案例 4 选了"Server Admin Console"。/speckit.specify的描述同时给出期望结果与兼容边界,例如:

/speckit.specify Add CSV export to the existing orders page. Preserve current filters and authorization behavior. Export only the rows visible to the signed-in user, and do not change the existing JSON API response.

代码库在此扮演"实现上下文"(implementation context)角色:新的spec.md定义的是你打算做的变更,而不是对每个既有行为的追溯规格化。

完成首个变更之后,团队还需按 docs/guides/existing-projects.md 第 5 节决定"规格如何随时间演化"(特性目录作为不可变历史记录 / spec.md 作为活契约 / 允许发现回流后重新调和全套产物),这部分可继续对照 docs/concepts/spec-persistence.md 与 docs/guides/evolving-specs.md。

五、机制深挖(一):Preset 如何"重塑整个体验"

案例 6(海盗语 preset)演示了 spec-kit 的定制能力上限:不 fork、不改核心文件,仅靠一个 preset 就让所有产物和命令以海盗口吻运转。这背后是仓库内实现完整的模板解析栈

5.1 运行时解析栈

按 presets/README.md 与 presets/ARCHITECTURE.md,当 spec-kit 需要某个模板(如spec-template)时,PresetResolver会自顶向下走一个解析栈:

优先级来源路径用途
1(最高)Override.specify/templates/overrides/项目本地一次性微调
2Preset.specify/presets/<preset-id>/templates/可分享、可叠加的定制(按 priority 排序)
3Extension.specify/extensions/<ext-id>/templates/扩展提供的模板
4(最低)Core.specify/templates/随 spec-kit 分发的默认模板

注意两个要点:

  • 解析发生在运行时:preset 文件虽在安装时拷贝进.specify/presets/<id>/,但每次模板查找都重新走解析栈,而不是合并到单一位置。
  • 组合策略(composition strategies):preset 不必全量替换。preset.yml中每个条目可声明strategy——
策略行为templatecommandscript
replace(默认)完全替换低优先级内容
prepend内容置于低优先级模板之前(空行分隔)
append内容置于低优先级模板之后(空行分隔)
wrap内容中的{CORE_TEMPLATE}(脚本为$CORE_SCRIPT)占位符被低优先级内容替换

多个组合型 preset 会递归链式叠加,例如一个prepend的安全 preset 加一个append的合规 preset,最终产出"安全头部 + 核心内容 + 合规尾部"。

解析逻辑在三种运行时各有一份实现以保证一致:Python 的PresetResolver(位于 src/specify_cli/presets/init.py,类定义约在 L4999,resolve_content()约在 L5715)、Bash 的resolve_template()(scripts/bash/common.sh)、PowerShell 的Resolve-Template(scripts/powershell/common.ps1)。

5.2 命令覆盖:安装期注册

模板定义"产出什么",命令定义"LLM 如何产出"。与模板的运行时解析不同,preset 中的type: "command"条目是安装期生效的:安装时注册进所有被检测到的 agent 目录(.claude/commands/.gemini/commands/等)并按各 agent 格式渲染(Markdown、TOML 或 Copilot 的.agent.md + .prompt.md,参数占位符也随格式切换);卸载 preset 时注册的文件会被清理。安全细节:命令名形如speckit.<ext-id>.<cmd>且含 3 段以上时,系统会先检查对应扩展是否已安装,未安装则跳过注册,避免产生指向不存在扩展的孤儿文件。

仓库自带可参照的实现样本:

  • presets/lean/preset.yml —— 官方"精简工作流" preset,仅覆盖speckit.specifyspeckit.planspeckit.tasksspeckit.implementspeckit.constitution五个核心命令,示范了最典型的"纯命令覆盖"preset;
  • presets/scaffold/preset.yml —— 用于创建自有 preset 的脚手架,内含 strategy、replaces字段、命令覆盖、extension 模板覆盖等全部要点的注释;
  • presets/catalog.json 与 presets/catalog.community.json —— 官方与社区 preset 目录,对应 CLI 侧的specify preset search/specify preset add

5.3 海盗语 preset 说明了什么

结合 docs/community/walkthroughs.md 的描述,案例 6 的价值在于证明:改模板名、改命令提示词、改产物措辞,足以让"整个 spec-kit 体验"换一副面孔,而工具链零改动。这正是"preset 不 fork 核心文件"这一设计目标的直接回报——定制的是内容层,不变的是 templates/ 中 core 模板的分发与 scripts/python/ 等自动化脚本的执行逻辑。

六、机制深挖(二):Extension 换一种 SDD 风格

案例 7 走通的 AIDE 扩展,是 spec-kit 扩展机制的端到端示范:扩展带来一条替代性的规范驱动工作流——高层 spec(vision)与低层 spec(work items)分两层,按 7 步迭代生命周期推进(vision → roadmap → 进度追踪 → 工作队列 → 工作项 → 执行 → 反馈回路),全程不触碰核心工具链。

仓库内扩展机制的一手资料包括:

  • extensions/README.md 与 extensions/EXTENSION-DEVELOPMENT-GUIDE.md —— 扩展的目录约定、extension.yml元数据、命令与脚本布局;
  • extensions/EXTENSION-API-REFERENCE.md —— 扩展可挂载的命令与钩子接口;
  • extensions/catalog.json 与 extensions/catalog.community.json —— 官方与社区扩展目录。官方收录的扩展自带commands/scripts/(bash/powershell/python 三平台对等实现)与extension.yml等结构,仓库内的 extensions/git/(版本分支与自动提交)、extensions/assess/(intake/research/shape 等评估命令)都是可直接阅读的参考实现;
  • docs/community/extensions.md —— 社区扩展清单,AIDE 即在其中(类别process,效果 Read+Write)。

从 docs/community/walkthroughs.md 原文的措辞看,作者有意用这个案例来兑现项目名中"Kit"的含义:spec-kit 的"kit"不仅是命令集合,还是一套可插拔机制——preset 定制内容与措辞,extension 换流程骨架。

七、如何从这些 Walkthrough 中取用

结合 docs/community/walkthroughs.md 的定位声明与仓库内的配套文档,建议的取用路径是:

  1. 按起点选型:新项目从案例 1/2 入手,对照 docs/quickstart.md 的 Taskify 运行示例逐命令跟做;存量项目从案例 3/4/5 入手,先读 docs/guides/existing-projects.md 的五步方法(可评审基线 → 仓库证据写 constitution → 有界首个变更 → 对仓库规划 → 决定规格演化策略);
  2. 按机制选型:想改产物风格/措辞,研究 preset 体系(presets/README.md、presets/ARCHITECTURE.md);想加新的工作流步骤或命令,研究 extension 体系(extensions/EXTENSION-DEVELOPMENT-GUIDE.md);
  3. 保持正确预期:walkthrough 产物是只读示例而非官方黄金输出,命令的完整参数、输出与交互语义以 docs/reference/agentic-sdd.md 为准;跟做社区内容前自行审阅,因为社区案例独立于官方审查与支持体系之外。

八、小结

docs/community/walkthroughs.md 收录的七个社区 walkthrough 构成了一张实用的场景地图:三个绿场案例分别验证标准主线、质量门加强线与纯终端执行线,两个棕场大工程(约 30.7 万行与约 42 万行代码的存量系统)证明无 spec 与 constitution 前提下的接入路径,另两个案例则把 preset 与 extension 两大定制机制推到了"不改任何工具链即可重塑体验"的极限。配合 docs/quickstart.md 的命令级快速上手、docs/guides/existing-projects.md 的棕场方法论,以及 presets/ARCHITECTURE.md、extensions/EXTENSION-DEVELOPMENT-GUIDE.md 等仓库内的一手机制文档,你可以把这些演示从"看一遍"落实为"在自己项目中跑一遍"。

【免费下载链接】spec-kit💫 Toolkit to help you get started with Spec-Driven Development项目地址: https://gitcode.com/GitHub_Trending/sp/spec-kit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 1:25:13

成都太古里设计研究:历史街区更新、商业空间与动线逻辑全拆解

简介&#xff1a;这是一份关于成都远洋太古里商业综合体的专题设计研究报告&#xff0c;面向商业地产策划、招商运营及建筑设计从业者&#xff0c;可作为同类城市更新项目前期调研、定位分析与业态规划的参考。资源为1个doc文档&#xff0c;大小约4.23MB&#xff0c;内容覆盖项…

作者头像 李华
网站建设 2026/9/7 1:23:17

UVR 人声提取入门:第一次导出干净干声,从选模型到调参数

UVR 人声提取入门&#xff1a;第一次导出干净干声&#xff0c;从选模型到调参数 【免费下载链接】ultimatevocalremovergui GUI for a Vocal Remover that uses Deep Neural Networks. 项目地址: https://gitcode.com/GitHub_Trending/ul/ultimatevocalremovergui 做混…

作者头像 李华
网站建设 2026/9/7 1:22:48

Pipeline ADC工作原理详解:余差传递与数字校正如何实现高速高分辨率

ADC 这东西&#xff0c;搞过几年数据采集或者信号链设计的人都不陌生。但 Pipeline ADC 和其他类型的结构比&#xff0c;确实存在一些理解门槛&#xff0c;很多初学者拿着数据手册看半天&#xff0c;知道它能跑到几百 MSPS、分辨率做到 12 到 16 位&#xff0c;但一碰上“余差传…

作者头像 李华
网站建设 2026/9/7 1:22:39

从业务需求到技术实现:动态工作流引擎的构建与应用

目录 一、业界开源工作流处理引擎系统介绍 二、思考关键实现手段 三、实现动态配置执行工作流 (一)整体架构简易版分析 (二)核心工作流实现 定义动态配置工作流执行上下文信息 定义工作流 定义执行节点 节点执行接口定义 节点执行模版定义 任务执行器定义 执行…

作者头像 李华
网站建设 2026/9/7 1:22:32

MYSQL数据库基本操作:创建、查看、修改、删除

目录 一、创建和查看数据库 &#xff08;一&#xff09;创建数据库 1.使用默认字符集 2.使用指定的字符集 &#xff08;二&#xff09;查看数据库 二、修改数据库 三、删除数据库 四、注意事项 五、总结 参考资料 干货分享&#xff0c;感谢您的阅读&#xff01; …

作者头像 李华