<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>AI Coding on Tyritic</title>
        <link>https://Tyritic.github.io/categories/ai-coding/</link>
        <description>Recent content in AI Coding on Tyritic</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en-us</language>
        <copyright>Tyritic</copyright><atom:link href="https://Tyritic.github.io/categories/ai-coding/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>OpenSpec的概念与基本使用</title>
        <link>https://Tyritic.github.io/p/openspec%E7%9A%84%E6%A6%82%E5%BF%B5%E4%B8%8E%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8/</link>
        <pubDate>Sun, 28 Jun 2026 10:00:00 +0800</pubDate>
        
        <guid>https://Tyritic.github.io/p/openspec%E7%9A%84%E6%A6%82%E5%BF%B5%E4%B8%8E%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8/</guid>
        <description>&lt;h2 id=&#34;-vibe-coding-的痛点和-spec-driven-development-的优势&#34;&gt;🧠 Vibe Coding 的痛点和 Spec-Driven Development 的优势
&lt;/h2&gt;&lt;p&gt;现在用 Cursor、Claude Code 这类 AI 编码助手已经是日常了。大家应该都有一个共同感受：AI 确实能写代码，但要让它持续、稳定地写出你想要的东西，没那么容易。
理想状态下，我们希望自己的角色能逐步转变——从纯粹的“代码执行者”，更多地转向“指挥者”和“把关人”：AI 负责具体的代码产出，人负责架构决策、逻辑审批和质量把关。
听起来很美好，对吧？但现实往往很骨感。如果在实际操作中缺乏规范，这种协作很容易退化成一种非常随意的状态，也就是现在常说的 &amp;ldquo;Vibe coding&amp;rdquo;（凭感觉编程）——脚踩西瓜皮，想到哪写到哪。人边想边写，AI 边猜边生成。这种缺乏约束的开发方式，很快就会暴露出几个致命痛点：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;痛点&lt;/th&gt;
					&lt;th&gt;具体表现&lt;/th&gt;
					&lt;th&gt;后果&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;上下文丢失&lt;/td&gt;
					&lt;td&gt;聊天记录太长，AI 开始&amp;quot;失忆&amp;quot;&lt;/td&gt;
					&lt;td&gt;反复解释同一件事，心智负担重&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;AI 自由发挥&lt;/td&gt;
					&lt;td&gt;没有明确约束，AI 按自己的喜好补全&lt;/td&gt;
					&lt;td&gt;代码风格混乱，逻辑容易跑偏&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;需求偏移&lt;/td&gt;
					&lt;td&gt;边聊边做，缺乏锚点，做着做着就变形了&lt;/td&gt;
					&lt;td&gt;频繁返工、疯狂 debug&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;无法追溯&lt;/td&gt;
					&lt;td&gt;只有最终代码，不知道当初为什么这么设计&lt;/td&gt;
					&lt;td&gt;维护和交接都很困难&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;（Spec-Driven Development，规范驱动开发）的核心思想很简单：先写规范，再写代码，用规范约束 AI 的行为边界。&lt;/p&gt;
&lt;p&gt;更具体地说，两者的差异可以总结为下面这张表：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;维度&lt;/th&gt;
					&lt;th&gt;传统 AI 编程 (Vibe Coding)&lt;/th&gt;
					&lt;th&gt;OpenSpec (SDD)&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;核心驱动&lt;/td&gt;
					&lt;td&gt;基于对话和感觉&lt;/td&gt;
					&lt;td&gt;基于结构化规范文档&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;上下文管理&lt;/td&gt;
					&lt;td&gt;依赖聊天记录，易丢失&lt;/td&gt;
					&lt;td&gt;单一真相源 (Single Source of Truth)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;可追溯性&lt;/td&gt;
					&lt;td&gt;难以审计变更原因&lt;/td&gt;
					&lt;td&gt;完整的提案与决策日志&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;执行精度&lt;/td&gt;
					&lt;td&gt;AI 自由发挥空间大&lt;/td&gt;
					&lt;td&gt;严格按任务清单 (Tasks) 执行&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;用一个比喻来说：传统的 AI 编程像是&amp;quot;口头协议&amp;quot;——你说一句，AI 做一句，做完就忘；而 SDD 像是&amp;quot;签合同&amp;quot;——先把需求、设计、任务清单白纸黑字写下来，AI 严格按合同执行，执行完还要归档备查 。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-openspec-的核心定位与设计哲学&#34;&gt;🏗️ OpenSpec 的核心定位与设计哲学
&lt;/h2&gt;&lt;h3 id=&#34;-openspec是什么&#34;&gt;📖 OpenSpec是什么
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Fission-AI/OpenSpec&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenSpec&lt;/a&gt; 是由 &lt;a class=&#34;link&#34; href=&#34;https://openspec.dev/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Fission-AI&lt;/a&gt; 开源的一套 &lt;strong&gt;Spec-Driven Development 框架 + CLI 工具&lt;/strong&gt;。它形态非常轻量，它通过一套结构化的文件组织方式和指令系统，让 AI 编程助手（如 Codex、CodeBuddy、Claude）能够在明确的&amp;quot;合同&amp;quot;约束下工作。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一组本地 Markdown 文档（&lt;code&gt;openspec/specs/&lt;/code&gt; 与 &lt;code&gt;openspec/changes/&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;一组斜杠命令（&lt;code&gt;/opsx:propose&lt;/code&gt;、&lt;code&gt;/opsx:apply&lt;/code&gt;、&lt;code&gt;/opsx:archive&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;一个 npm 包：&lt;code&gt;@fission-ai/openspec&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;和 Spec Kit 相比，OpenSpec 没有&amp;quot;Constitution 强制条款&amp;quot;那一层；和 Kiro 相比，OpenSpec 不绑定特定 IDE。一句话——&lt;strong&gt;它只做&amp;quot;把变更规格化&amp;quot;这一件事，并把这件事做到极致轻量&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id=&#34;-核心口号align-before-code&#34;&gt;🎯 核心口号：Align before code
&lt;/h3&gt;&lt;p&gt;OpenSpec 的官方口号是 &lt;strong&gt;&amp;ldquo;Align before code&amp;rdquo;（在写代码之前先对齐）&lt;/strong&gt;。它强调的是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;需求是合约，不是注释。&lt;/li&gt;
&lt;li&gt;规范是 AI 的上下文，不是给人看的文档。&lt;/li&gt;
&lt;li&gt;变更必须可追溯、可审计、可回放。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;整个工具的设计都围绕这一句话展开——&lt;strong&gt;所有功能都为了把&amp;quot;模糊意图&amp;quot;压缩成&amp;quot;AI 能直接消费的契约&amp;quot;&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id=&#34;-与其他-sdd-工具的对比&#34;&gt;⚖️ 与其他 SDD 工具的对比
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;维度&lt;/th&gt;
					&lt;th&gt;OpenSpec&lt;/th&gt;
					&lt;th&gt;GitHub Spec Kit&lt;/th&gt;
					&lt;th&gt;AWS Kiro&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;形态&lt;/td&gt;
					&lt;td&gt;本地 CLI + Markdown&lt;/td&gt;
					&lt;td&gt;Python CLI + Markdown&lt;/td&gt;
					&lt;td&gt;IDE 内置（基于 Code OSS）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;工作流&lt;/td&gt;
					&lt;td&gt;propose → apply → archive&lt;/td&gt;
					&lt;td&gt;specify → plan → tasks → implement&lt;/td&gt;
					&lt;td&gt;requirements → design → tasks&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;产物&lt;/td&gt;
					&lt;td&gt;proposal / design / specs / tasks&lt;/td&gt;
					&lt;td&gt;spec / plan / tasks / constitution&lt;/td&gt;
					&lt;td&gt;requirements / design / tasks&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;强项&lt;/td&gt;
					&lt;td&gt;增量变更、归档&lt;/td&gt;
					&lt;td&gt;完整宪法、跨工具兼容&lt;/td&gt;
					&lt;td&gt;IDE 原生、EARS 格式、Agent Hooks&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;弱项&lt;/td&gt;
					&lt;td&gt;无项目级强制条款&lt;/td&gt;
					&lt;td&gt;流程相对重&lt;/td&gt;
					&lt;td&gt;绑死 IDE、生态封闭&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;适合&lt;/td&gt;
					&lt;td&gt;增量功能、长期维护&lt;/td&gt;
					&lt;td&gt;团队级、企业级&lt;/td&gt;
					&lt;td&gt;多人协作、复杂项目&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;一句话选型：&lt;strong&gt;想轻、想快、想要变更可追溯，用 OpenSpec；想严肃、想统一、想给 AI 立宪法，用 Spec Kit；想 IDE 全家桶、用 Kiro&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-openspec-的安装和使用&#34;&gt;🛠️ OpenSpec 的安装和使用
&lt;/h2&gt;&lt;p&gt;环境要求:OpenSpec 基于 Node.js 开发，安装前请确保你的环境满足：Node.js：版本 &amp;gt;= 20.19&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 1. 全局安装最新版&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g @fission-ai/openspec@latest
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 2. 验证安装&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openspec --version
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 3. 进入你的项目目录，初始化 OpenSpec&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; /path/to/your/python/project
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openspec init
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 4. 在交互式菜单中选择你使用的编辑器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;-openspec-工作目录&#34;&gt;🧩 OpenSpec 工作目录
&lt;/h2&gt;&lt;h3 id=&#34;-整体结构&#34;&gt;🗂️ 整体结构
&lt;/h3&gt;&lt;p&gt;这是理解 OpenSpec 的关键部分。用下面这张图来展示整体架构：&lt;/p&gt;
&lt;div align=&#34;center&#34;&gt;
  &lt;img src=&#34;ea52e0ee389511f1b9b8260bb3baec80.png&#34; alt=&#34;OpenSpec 工作目录&#34; width=&#34;82%&#34;&gt;
&lt;/div&gt;
执行 openspec init 后，会在项目根目录创建 openspec/ 文件夹，这是整个框架的&#34;大本营&#34;：
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openspec/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── config.yaml          ← 🌐 全局配置（影响所有新变更，归档不动它）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── specs/               ← 📚 主规范库（真相源，已归档的功能规范）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── changes/             ← 🔥 活跃变更区
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ├── my-feature/      ← 当前正在开发的变更
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │   ├── .openspec.yaml   ← 变更元数据（schema + 创建日期）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │   ├── proposal.md      ← 为什么做（背景/目标）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │   ├── design.md        ← 怎么做（技术方案）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │   ├── tasks.md         ← 任务清单（To-Do）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │   └── specs/           ← 增量规范（Delta Specs）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    └── archive/         ← 📦 归档区
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        └── 2026-04-07-my-feature/  ← 归档后的变更（整个目录原封不动搬过来）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;用一张表把这三个区域的分工与状态总结一下：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;区域&lt;/th&gt;
					&lt;th&gt;路径&lt;/th&gt;
					&lt;th&gt;作用&lt;/th&gt;
					&lt;th&gt;状态&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;真相源&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;specs/&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;存放已归档、稳定的功能规范&lt;/td&gt;
					&lt;td&gt;🟢 稳定&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;活跃变更区&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;changes/xxx/&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;正在开发的功能提案&lt;/td&gt;
					&lt;td&gt;🟠 活跃&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;归档区&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;changes/archive/&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;已完成变更的历史记录&lt;/td&gt;
					&lt;td&gt;⚪ 历史&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;这一设计借鉴了传统软件工程里的&amp;quot;&lt;strong&gt;主干 + 变更集&lt;/strong&gt;&amp;ldquo;思想：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;specs/&lt;/code&gt; 是已经定稿的规范库，是 AI 读&amp;quot;系统当前是什么&amp;quot;的入口。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;changes/&lt;/code&gt; 是正在进行的&amp;quot;草稿区&amp;rdquo;，每一个子目录代表一个待合并的变更。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;新功能先在 &lt;code&gt;changes/&lt;/code&gt; 里起草，完工后通过 &lt;code&gt;/opsx:archive&lt;/code&gt; 合并到 &lt;code&gt;specs/&lt;/code&gt;，&lt;strong&gt;整个生命周期都有完整的文件留痕&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id=&#34;-核心工件&#34;&gt;🧾 核心工件
&lt;/h3&gt;&lt;p&gt;在 OpenSpec 工作流的语境中，Artifact（工件）是指在一个变更（Change）推进过程中，按步骤依次创建的结构化文档或文件。&lt;/p&gt;
&lt;p&gt;每个变更包含 四个核心工件，我把它们比作&amp;quot;合同的四个章节&amp;quot;：四个文件各司其职：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th style=&#34;text-align: left&#34;&gt;工件&lt;/th&gt;
					&lt;th&gt;文件&lt;/th&gt;
					&lt;th&gt;回答的问题&lt;/th&gt;
					&lt;th&gt;谁来读&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;提案&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;proposal.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;为什么要做？影响哪些模块？&lt;/td&gt;
					&lt;td&gt;人 + AI&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;设计&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;design.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;用什么技术方案？关键决策是什么？&lt;/td&gt;
					&lt;td&gt;人 + AI&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;规范&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;specs/*.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;具体怎么做&lt;/td&gt;
					&lt;td&gt;AI 实现时对齐&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;任务&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;tasks.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;具体要做哪些事？&lt;/td&gt;
					&lt;td&gt;AI 实施时逐项打勾&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;一个常见的反模式是把 &lt;code&gt;proposal.md&lt;/code&gt; 写得很长、&lt;code&gt;spec.md&lt;/code&gt; 写得很短。事实上 &lt;strong&gt;&lt;code&gt;spec.md&lt;/code&gt;&lt;/strong&gt; &lt;strong&gt;才是 AI 实现时的&amp;quot;事实来源&amp;quot;&lt;/strong&gt;——它写得越具体，AI 跑偏的概率越低。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;-变更的delta思想&#34;&gt;➕ 变更的&amp;quot;delta&amp;quot;思想
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;specs/&lt;/code&gt; 下的子目录是按&amp;quot;能力（capability）&amp;ldquo;组织的，例如 &lt;code&gt;auth/spec.md&lt;/code&gt;、&lt;code&gt;billing/spec.md&lt;/code&gt;。一次新变更只会产生&amp;quot;差异（delta）&amp;quot;——只描述**新增（ADDED）、修改（MODIFIED）、删除（REMOVED）**的能力，不重写整个文件。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openspec/changes/add-oauth-login/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── specs/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    └── auth/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        └── spec.md   # 只描述 ADDED Requirements: OAuth 登录相关
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;归档时 OpenSpec 会自动把这些 delta 合并到 &lt;code&gt;openspec/specs/auth/spec.md&lt;/code&gt;，&lt;strong&gt;形成活文档&lt;/strong&gt;。这样既保留了变更历史，又让 &lt;code&gt;specs/&lt;/code&gt; 始终是当前系统的真实写照。&lt;/p&gt;
&lt;h2 id=&#34;-核心工作流propose--apply--archive&#34;&gt;🔄 核心工作流：Propose → Apply → Archive
&lt;/h2&gt;&lt;h3 id=&#34;-三个核心命令&#34;&gt;⌨️ 三个核心命令
&lt;/h3&gt;&lt;p&gt;OpenSpec 默认是 &lt;strong&gt;Core 模式&lt;/strong&gt;，只有三个核心命令：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/opsx:propose  →  /opsx:apply  →  /opsx:archive
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;/opsx:propose &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/strong&gt;：根据自然语言需求，一键生成 &lt;code&gt;proposal.md&lt;/code&gt; + &lt;code&gt;design.md&lt;/code&gt; + &lt;code&gt;specs/&lt;/code&gt; + &lt;code&gt;tasks.md&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;/opsx:apply&lt;/code&gt;&lt;/strong&gt;：按 &lt;code&gt;tasks.md&lt;/code&gt; 逐项实现，每完成一项打勾。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;/opsx:archive &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/strong&gt;：把变更归档，delta 合并到 &lt;code&gt;specs/&lt;/code&gt;，整个目录从 &lt;code&gt;changes/&lt;/code&gt; 移除。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;三个命令的边界极其清楚：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;propose&lt;/code&gt; 阶段只动 Markdown，不动代码。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;apply&lt;/code&gt; 阶段才真正写代码。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;archive&lt;/code&gt; 阶段关闭变更，留下审计痕迹。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;-探索模式-opsxexplore&#34;&gt;🔍 探索模式 /opsx:explore
&lt;/h3&gt;&lt;p&gt;需求不清时还有 &lt;code&gt;/opsx:explore&lt;/code&gt; 兜底。它和 &lt;code&gt;propose&lt;/code&gt; 的区别是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;propose&lt;/code&gt; 会&lt;strong&gt;生成正式文档&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;explore&lt;/code&gt; &lt;strong&gt;不产生产物&lt;/strong&gt;，只和 AI 一起梳理思路，把模糊意图问清楚。&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;实操经验：拿到一个不清晰的需求时，先 &lt;code&gt;/opsx:explore&lt;/code&gt; 把问题问透；等需求清晰、边界明确后，再 &lt;code&gt;/opsx:propose&lt;/code&gt; 生成正式规范。&lt;strong&gt;避免边探索边写规范，导致 spec 反复返工&lt;/strong&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;-完整生命周期&#34;&gt;🪞 完整生命周期
&lt;/h3&gt;&lt;p&gt;一个 OpenSpec 变更的完整生命周期是这样的：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;需求提出
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/opsx:explore（可选，需求不清时）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/opsx:propose &amp;lt;name&amp;gt;     → 生成 proposal / design / specs / tasks
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;人工 review + 修订规范
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/opsx:apply              → 按 tasks 逐项实现
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;测试与验证
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/opsx:archive &amp;lt;name&amp;gt;     → 合并 delta 到 specs/，删除 changes/&amp;lt;name&amp;gt;/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这个流程里有两个**人在环路（Human-in-the-Loop）**的检查点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;propose&lt;/code&gt; 之后必须 review 规范。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;archive&lt;/code&gt; 之前必须验证实现。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;跳过任何一个检查点，OpenSpec 就退化为&amp;quot;自动写代码的脚手架&amp;rdquo;，失去意义。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-安装与初始化&#34;&gt;💻 安装与初始化
&lt;/h2&gt;&lt;h3 id=&#34;-前置要求&#34;&gt;📦 前置要求
&lt;/h3&gt;&lt;p&gt;OpenSpec 的安装门槛非常低：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Node.js 18+&lt;/li&gt;
&lt;li&gt;任意一个支持的 AI 工具（Claude Code、Cursor、Codex、Copilot、Windsurf、Gemini CLI、Cline、Trae 等 25+ 工具）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;-项目初始化&#34;&gt;⚙️ 项目初始化
&lt;/h3&gt;&lt;p&gt;在项目根目录运行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 全局安装&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g @fission-ai/openspec
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 初始化（按提示选择 AI 工具）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; your-project
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openspec init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;openspec init&lt;/code&gt; 会做三件事：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;创建 &lt;code&gt;openspec/&lt;/code&gt; 目录。&lt;/li&gt;
&lt;li&gt;在所选 AI 工具的配置目录（如 &lt;code&gt;.claude/commands/opsx/&lt;/code&gt;）写入斜杠命令定义。&lt;/li&gt;
&lt;li&gt;生成一份默认的 &lt;code&gt;AGENTS.md&lt;/code&gt; 提示词（告诉 AI 如何使用 OpenSpec）。&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;提示：如果想用非交互式初始化，可以直接指定工具：&lt;code&gt;openspec init --tools claude&lt;/code&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;-切换工作模式&#34;&gt;🎛️ 切换工作模式
&lt;/h3&gt;&lt;p&gt;OpenSpec 提供两种工作模式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Core 模式&lt;/strong&gt;（默认）：3 个核心命令够用，适合大多数项目。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expanded 模式&lt;/strong&gt;：解锁更多细粒度命令（&lt;code&gt;/opsx:new&lt;/code&gt;、&lt;code&gt;/opsx:continue&lt;/code&gt;、&lt;code&gt;/opsx:ff&lt;/code&gt;、&lt;code&gt;/opsx:verify&lt;/code&gt;、&lt;code&gt;/opsx:bulk-archive&lt;/code&gt;、&lt;code&gt;/opsx:onboard&lt;/code&gt;）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;切换方法：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 查看当前配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openspec config profile
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 勾选需要的命令（例如 new、continue、ff、verify、bulk-archive、onboard）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 然后让 AI 重新识别&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openspec update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;经验之谈&lt;/strong&gt;：除非项目特别复杂，否则 &lt;strong&gt;Core 模式完全够用&lt;/strong&gt;。命令越多，记忆负担越大，反而拖慢节奏。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-基本使用一个最小例子&#34;&gt;🧪 基本使用：一个最小例子
&lt;/h2&gt;&lt;p&gt;下面用一个最小例子把整套流程跑通。需求是&amp;quot;做一个 CLI 工具，能把文本按行编号输出&amp;quot;。&lt;/p&gt;
&lt;h3 id=&#34;-需求描述&#34;&gt;💡 需求描述
&lt;/h3&gt;&lt;p&gt;在 Claude Code 对话框里输入：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;帮我用 OpenSpec 写一个 CLI 工具，名字叫 &lt;code&gt;linenumber&lt;/code&gt;，支持读取文件路径参数，把每一行加上行号后输出到标准输出。要求：空行也要编号；如果不传文件参数，从 stdin 读取。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;-step-1发起提案&#34;&gt;📋 Step 1：发起提案
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/opsx:propose linenumber
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;OpenSpec 会在 &lt;code&gt;openspec/changes/linenumber/&lt;/code&gt; 下生成四个文件。其中 &lt;code&gt;tasks.md&lt;/code&gt; 大致长这样：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 1. 工程初始化
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; 1.1 初始化 Node.js 项目（package.json、bin 入口）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; 1.2 解析命令行参数（支持文件路径或 stdin）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 2. 核心逻辑
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; 2.1 实现 &lt;span class=&#34;sb&#34;&gt;`numberLines(input: string): string`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; 2.2 处理 stdin / 文件两种输入源
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; 2.3 空行也要带行号
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 3. 测试
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; 3.1 单元测试：numberLines 在空字符串、普通文本、含空行文本下的输出
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; 3.2 集成测试：从文件读入、从 stdin 读入
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 4. 文档
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; 4.1 写 README，给出 &lt;span class=&#34;sb&#34;&gt;`linenumber file.txt`&lt;/span&gt; 和 &lt;span class=&#34;sb&#34;&gt;`cat file.txt | linenumber`&lt;/span&gt; 两个示例
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;specs/cli/linenumber/spec.md&lt;/code&gt; 会长这样（节选）：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;# Capability: linenumber
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## ADDED Requirements
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;### Requirement: 给文本按行编号
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;系统 SHALL 读取输入文本（来自文件参数或 stdin），对每一行加上&amp;#34;行号 + 跳格 + 内容&amp;#34;格式的前缀，并把结果输出到 stdout。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;#### Scenario: 来自文件的普通文本
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; WHEN 用户执行 &lt;span class=&#34;sb&#34;&gt;`linenumber sample.txt`&lt;/span&gt;，且 &lt;span class=&#34;sb&#34;&gt;`sample.txt`&lt;/span&gt; 包含 3 行文本
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; THEN stdout 输出形如 &lt;span class=&#34;sb&#34;&gt;`1\t第一行\n2\t第二行\n3\t第三行`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;#### Scenario: 空行也要带行号
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; WHEN 输入包含空行
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; THEN 空行也以行号占位（不跳过）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;关键动作：在这个阶段，&lt;strong&gt;仔细 review 每一个 Scenario&lt;/strong&gt;。如果验收条件不严密，AI 在 apply 阶段就会跑偏。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;-step-2执行实现&#34;&gt;🔧 Step 2：执行实现
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/opsx:apply
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;AI 会按 &lt;code&gt;tasks.md&lt;/code&gt; 逐项推进，每完成一项就勾掉一项。期间你也可以随时打断，要求它重写或调整。&lt;/p&gt;
&lt;p&gt;如果你有 TDD 习惯，可以叠加 Superpowers 的 &lt;code&gt;test-driven-development&lt;/code&gt; 技能：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/superpowers:test-driven-development
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;它会强制 AI 走&amp;quot;红-绿-重构&amp;quot;循环，&lt;strong&gt;先写失败测试，再写最小实现&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id=&#34;-step-3归档变更&#34;&gt;🗃️ Step 3：归档变更
&lt;/h3&gt;&lt;p&gt;实现完成、测试通过后：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/opsx:archive linenumber
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;OpenSpec 会自动：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;把 &lt;code&gt;changes/linenumber/specs/cli/linenumber/spec.md&lt;/code&gt; 中的 ADDED Requirements 合并到 &lt;code&gt;openspec/specs/cli/linenumber/spec.md&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;删除 &lt;code&gt;openspec/changes/linenumber/&lt;/code&gt; 目录。&lt;/li&gt;
&lt;li&gt;留下一条归档记录，方便日后回溯。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;此时 &lt;code&gt;openspec/specs/&lt;/code&gt; 就成了&lt;strong&gt;这个 CLI 工具的活文档&lt;/strong&gt;——任何人 onboarding 都可以直接读 &lt;code&gt;spec.md&lt;/code&gt; 了解这个工具的全部行为。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-命令速查表&#34;&gt;📚 命令速查表
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;命令&lt;/th&gt;
					&lt;th&gt;阶段&lt;/th&gt;
					&lt;th&gt;作用&lt;/th&gt;
					&lt;th&gt;是否动代码&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;openspec init&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;初始化&lt;/td&gt;
					&lt;td&gt;初始化 OpenSpec，写入 AI 工具命令&lt;/td&gt;
					&lt;td&gt;✗&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;openspec config profile&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;配置&lt;/td&gt;
					&lt;td&gt;查看/切换工作模式&lt;/td&gt;
					&lt;td&gt;✗&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;openspec update&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;配置&lt;/td&gt;
					&lt;td&gt;让 AI 重新识别命令&lt;/td&gt;
					&lt;td&gt;✗&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/opsx:explore&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;设计前&lt;/td&gt;
					&lt;td&gt;与 AI 梳理思路，不产生产物&lt;/td&gt;
					&lt;td&gt;✗&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/opsx:propose &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;设计&lt;/td&gt;
					&lt;td&gt;生成 proposal / design / specs / tasks&lt;/td&gt;
					&lt;td&gt;✗&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/opsx:apply&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;实施&lt;/td&gt;
					&lt;td&gt;按 tasks.md 逐项实现&lt;/td&gt;
					&lt;td&gt;✓&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/opsx:archive &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;归档&lt;/td&gt;
					&lt;td&gt;合并 delta 到 specs/，删除变更目录&lt;/td&gt;
					&lt;td&gt;✗&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/opsx:bulk-archive&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;归档&lt;/td&gt;
					&lt;td&gt;一次性归档多个已完成变更&lt;/td&gt;
					&lt;td&gt;✗&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/opsx:onboard&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;学习&lt;/td&gt;
					&lt;td&gt;把现有代码反向生成 specs/ 草稿&lt;/td&gt;
					&lt;td&gt;✗&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/opsx:ff&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;实施&lt;/td&gt;
					&lt;td&gt;Fast Forward，跳过部分审批&lt;/td&gt;
					&lt;td&gt;✓&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/opsx:verify&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;验证&lt;/td&gt;
					&lt;td&gt;让 AI 自检当前实现是否符合 spec&lt;/td&gt;
					&lt;td&gt;✗&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;表中 &lt;code&gt;openspec&lt;/code&gt; 前缀的是 CLI 命令（在终端跑），&lt;code&gt;/opsx:&lt;/code&gt; 前缀的是 Skill 命令（在 AI 对话框里跑）。&lt;strong&gt;别把它们搞混&lt;/strong&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-适用场景与局限&#34;&gt;⚠️ 适用场景与局限
&lt;/h2&gt;&lt;h3 id=&#34;-适合用-openspec-的场景&#34;&gt;✅ 适合用 OpenSpec 的场景
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;长期维护的项目&lt;/strong&gt;：规范合并到 &lt;code&gt;specs/&lt;/code&gt; 后就是活文档，新成员 onboarding 直接读 spec 即可。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;需要审计的变更&lt;/strong&gt;：每次新功能都有完整的 &lt;code&gt;proposal.md&lt;/code&gt; + &lt;code&gt;specs/&lt;/code&gt; + &lt;code&gt;tasks.md&lt;/code&gt; 留痕。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多 Agent 协作&lt;/strong&gt;：把 OpenSpec 仓库和任务交给多个 AI 工具，它们读同一份 &lt;code&gt;specs/&lt;/code&gt;，行为是一致的。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨会话延续&lt;/strong&gt;：规范是文件系统级的，&lt;strong&gt;新开会话也能立刻接上&lt;/strong&gt;——不依赖对话历史。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;-不适合用-openspec-的场景&#34;&gt;❌ 不适合用 OpenSpec 的场景
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;小修小补&lt;/strong&gt;：改文案、修样式、hot fix 走完整流程反而拖慢节奏（参考 [Spec Coding 的踩坑实录](../Spec Coding的踩坑实录/index.zh-cn.md)）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;探索性 PoC&lt;/strong&gt;：需求还没定型，频繁改 spec 成本太高。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;只有一两人的小项目&lt;/strong&gt;：维护 spec 的边际收益可能不够抵消写作成本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;强实时性的项目&lt;/strong&gt;：spec 写完到代码合入有延迟，不适合需要快速响应的场景。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;-几条经验&#34;&gt;💎 几条经验
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;propose 的输入质量决定产物质量&lt;/strong&gt;：需求描述越具体，生成的 spec 越准；模糊的输入会产生模糊的 spec。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;apply 之前一定要 review spec&lt;/strong&gt;：设计阶段返工成本低，实现阶段返工成本高 10 倍。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;archive 之前一定要 verify&lt;/strong&gt;：跑测试、对照 spec 逐条勾选验收条件，别让&amp;quot;看起来对&amp;quot;变成&amp;quot;实际对&amp;quot;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;保持 spec 文件的精简&lt;/strong&gt;：每个 Scenario 描述一个具体行为，&lt;strong&gt;不要把 spec 写成&amp;quot;伪代码&amp;quot;&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;配合 TDD 纪律使用&lt;/strong&gt;：OpenSpec 管&amp;quot;做什么&amp;quot;，TDD 管&amp;quot;做得对不对&amp;quot;，两者缺一不可。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h3 id=&#34;-参考资料&#34;&gt;📖 参考资料
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;OpenSpec 官方仓库：&lt;a class=&#34;link&#34; href=&#34;https://github.com/Fission-AI/OpenSpec&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/Fission-AI/OpenSpec&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenSpec 官网：&lt;a class=&#34;link&#34; href=&#34;https://openspec.dev/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://openspec.dev/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub Spec Kit：&lt;a class=&#34;link&#34; href=&#34;https://github.com/github/spec-kit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/github/spec-kit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;AWS Kiro：&lt;a class=&#34;link&#34; href=&#34;https://kiro.dev/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://kiro.dev/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fission-AI 组织：&lt;a class=&#34;link&#34; href=&#34;https://github.com/Fission-AI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/Fission-AI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Spec Coding的踩坑实录</title>
        <link>https://Tyritic.github.io/p/spec-coding%E7%9A%84%E8%B8%A9%E5%9D%91%E5%AE%9E%E5%BD%95/</link>
        <pubDate>Sat, 27 Jun 2026 20:45:00 +0800</pubDate>
        
        <guid>https://Tyritic.github.io/p/spec-coding%E7%9A%84%E8%B8%A9%E5%9D%91%E5%AE%9E%E5%BD%95/</guid>
        <description>&lt;h2 id=&#34;-目前的落地方式&#34;&gt;🛠️ 目前的落地方式
&lt;/h2&gt;&lt;p&gt;SDD（Spec-Driven Development）可以先简单理解成：先写一份“规格说明书”，再让 AI 按照说明书写代码。类比盖房子，就是先画图纸，再让施工队施工。&lt;/p&gt;
&lt;p&gt;目前采用的是 OpenSpec + Superpowers 的融合方案。OpenSpec 负责定义“做什么”（What），产出 proposal、spec、design 等结构化文档；Superpowers 负责“怎么做”（How），用 Skills 推着 AI 走 brainstorming、writing-plans、TDD、code review 这条执行链路。&lt;/p&gt;
&lt;div align=&#34;center&#34;&gt;
  &lt;img src=&#34;ee0c481c-64c6-11f1-8b2b-360751745e63.png&#34; alt=&#34;完整协作流程&#34; width=&#34;78%&#34; /&gt;
&lt;/div&gt;
&lt;p&gt;一开始想得很理想：OpenSpec 像图纸，Superpowers 像施工队，各管一段。但真正跑起来以后，我们发现两套工具不是简单拼起来就能协作，很多地方反而互相抢活。最明显的冲突有三个：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Superpowers 的 brainstorming 也会产出 design doc，和 OpenSpec 的 design 职责重叠。&lt;/li&gt;
&lt;li&gt;OpenSpec 里的验收标准，后面又会被 Superpowers 的 TDD plan 转成 test case，原来的 spec 反而不再是主要验证手段。&lt;/li&gt;
&lt;li&gt;两层审批互不信任，开发者经常不知道到底该以哪一层为准。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-不是所有需求都需要-spec-coding有的时候-plan-mode-就足够&#34;&gt;⚖️ 不是所有需求都需要 Spec Coding，有的时候 Plan Mode 就足够
&lt;/h2&gt;&lt;p&gt;业界常说 Spec Coding 有三条铁律：No Spec, No Code；Spec is Truth；Reverse Sync。听起来很合理，实践里却很容易变成误区。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No Spec, No Code。如果需求本身是“一个人半天能搞定”的小任务，写 spec 的时间可能已经超过直接改代码的时间。这时候坚持 no spec no code，最后就变成了为了流程而流程。&lt;/li&gt;
&lt;li&gt;Spec is Truth。Spec 是自然语言写的，AI 再按自己的理解生成代码。中间至少经历两次翻译：人把意图翻译成 spec，AI 把 spec 翻译成 code。每一层都会丢信息。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;真正能代表系统状态的，不是 spec，而是跑得通、测得过、能在线上工作的代码。&lt;/p&gt;
&lt;h3 id=&#34;-损耗发生在哪里&#34;&gt;📉 损耗发生在哪里
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;第一层损耗：意图 → spec。很多隐性知识很难完整写出来。比如你觉得“余额不能为负”显而易见，但如果没有写进约束里，AI 未必会自动补上。&lt;/li&gt;
&lt;li&gt;第二层损耗：spec → code。AI 对同一段 spec 的理解并不完全稳定。通常能遵循 70%—90%，但复杂需求里，总会有一部分需要人工改。&lt;/li&gt;
&lt;li&gt;两层叠加后，差距会被放大。如果每层损失 20% 信息，最终保真度大概是 0.8 × 0.8 ≈ 64%。这和我们在复杂需求里的体感很接近：生成代码经常需要改 30%—40%。&lt;/li&gt;
&lt;/ul&gt;
&lt;div align=&#34;center&#34;&gt;
  &lt;img src=&#34;31242d5464c711f19b2b9e8f68088af4.png&#34; alt=&#34;完整协作流程&#34; width=&#34;78%&#34; /&gt;
&lt;/div&gt;
相比之下，Plan Mode 是“意图 → 代码”一步到位。人在交互过程中可以随时补充遗漏细节，用即时反馈替代静态文档。对简单任务来说，这种方式的对齐度反而更高。
&lt;p&gt;因此建议做出以下调整&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Spec 不追求绝对精确。写得越像代码，成本越接近代码本身。&lt;/li&gt;
&lt;li&gt;Spec 更适合作为“验收基准”，不是“生成蓝图”。它应该回答怎么判断对不对，而不是要求 AI 一比一照抄。&lt;/li&gt;
&lt;li&gt;简单任务优先 Plan Mode，不是偷懒，而是减少中间损耗。&lt;/li&gt;
&lt;li&gt;Code 才是最终事实依据。Spec 更像脚手架，帮 AI 生成第一版，后续真正被维护的是代码和测试。&lt;/li&gt;
&lt;li&gt;过时的 spec 不只是没用，还可能误导 Agent。留在仓库里的错误前提，会变成下一次生成代码时的噪音。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-业界主流-spec-框架不一定适配模型能力&#34;&gt;⚠️ 业界主流 Spec 框架不一定适配模型能力
&lt;/h2&gt;&lt;p&gt;这个坑来自时间错配：工具的默认流程，往往跟不上模型能力的变化。Superpowers、Spec Kit、Kiro 等 SDD 工具，大多是在 2024—2025 年形成的。那时模型还没现在强，确实需要更细的 spec 才能生成可用代码。到了 2026 年，强模型在很多单模块任务里，已经能根据很短的意图描述生成 80% 以上可用代码。&lt;/p&gt;
&lt;p&gt;问题是，很多工具的默认流程还停留在旧假设里：先写大段 spec，再写 design，再写 tasks，再审批，再执行。模型变强后，这套流程的边际收益变低，但写作、阅读、审批、维护成本仍然存在。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;OpenAI Codex 团队（Harness Engineering，2026.02）。他们更强调四象限轻量 prompt：Goal、Context、Constraints、Done-When，再配合 AGENTS.md 约束项目边界。架构一致性靠 linter、structural test 和 CI 守住，而不是靠人反复 review spec。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Anthropic Claude Code 团队。CLAUDE.md 控制在较短篇幅，每个需求主要写验收标准和关键约束，而不是把完整实现方案写成蓝图。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一个趋势很明显：模型越强，spec 越薄。真正需要补足的不是流程控制，而是上下文、边界和验证。&lt;/p&gt;
&lt;p&gt;换句话说，更应该追求 More Context, Less Control。Context 是信息，能帮助模型做判断；Control 是流程约束，过多时会变成负担。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-不是只有独立的-spec-文件才是-sdd&#34;&gt;📚 不是只有独立的 Spec 文件才是 SDD
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;实践&lt;/th&gt;
					&lt;th&gt;是不是 Spec&lt;/th&gt;
					&lt;th&gt;为什么&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;OpenSpec 的 &lt;code&gt;spec.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;是&lt;/td&gt;
					&lt;td&gt;显式描述 What 的结构化文件&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Superpowers 的 &lt;code&gt;design doc&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;是&lt;/td&gt;
					&lt;td&gt;描述 What + How 的设计边界&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Plan Mode 的 prompt&lt;/td&gt;
					&lt;td&gt;是&lt;/td&gt;
					&lt;td&gt;&amp;ldquo;先调研、给方案、确认后再写代码&amp;quot;本身就是轻量 spec&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; / &lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;是&lt;/td&gt;
					&lt;td&gt;项目级约束，是持久化的 spec&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;验收测试&lt;/td&gt;
					&lt;td&gt;是&lt;/td&gt;
					&lt;td&gt;可执行的 spec，也是最强的约束形式&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;一句话口头意图&lt;/td&gt;
					&lt;td&gt;边界形态&lt;/td&gt;
					&lt;td&gt;很轻，但仍然在约束实现空间。&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;经常有人说：“Plan Mode 不算 SDD，因为它没有写 spec 文件。”也有人说：“Superpowers 才是正统 SDD，因为它有 design doc。”这些说法背后有一个默认前提：只有独立的 spec 文件，才算 Spec-Driven。&lt;/p&gt;
&lt;p&gt;实际上Spec 是一个光谱，不是某一种固定格式。从一句口头意图，到 AGENTS.md，再到验收测试，都是不同浓度的 spec。重新定义 SDD 的成功标准，也许更合理：不是“有没有写 spec 文件”，而是“AI 是否在正确的约束空间内工作”。例如&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Plan Mode 不是没有 spec，而是 spec 和执行发生在同一条交互链里。&lt;/li&gt;
&lt;li&gt;AGENTS.md 不是普通配置文件，它记录的是项目级行为边界。&lt;/li&gt;
&lt;li&gt;TDD 的测试不只是测试，它也是最严格、最可执行的 spec。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-不需要-100-走-spec-流程&#34;&gt;🎯 不需要 100% 走 Spec 流程
&lt;/h2&gt;&lt;p&gt;最开始，默认所有需求都走 Superpowers 完整流程。结果连改一行文案，也要先brainstorming，再生成 design doc，再 review，再写 plan，再 TDD，再执行，再code review。&lt;/p&gt;
&lt;p&gt;对于“一个人半天能搞定”的小需求。它们走完整流程时，brainstorming + design 的时间约等于编码时间的 60%—80%，端到端反而更慢，也就是说，超过一半需求被套上了过重流程。&lt;/p&gt;
&lt;p&gt;更合理的分流方式应该是&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;档位&lt;/th&gt;
					&lt;th&gt;示例&lt;/th&gt;
					&lt;th&gt;更适合的方式&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;零 spec&lt;/td&gt;
					&lt;td&gt;改文案、修样式、hot fix&lt;/td&gt;
					&lt;td&gt;直接改代码&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;轻 spec&lt;/td&gt;
					&lt;td&gt;加筛选项、改接口参数&lt;/td&gt;
					&lt;td&gt;Plan Mode + 一句话意图&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;中 spec&lt;/td&gt;
					&lt;td&gt;新增业务模块、跨人协作&lt;/td&gt;
					&lt;td&gt;验收标准 + 关键约束&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;重 spec&lt;/td&gt;
					&lt;td&gt;架构重构、新系统设计&lt;/td&gt;
					&lt;td&gt;OpenSpec + Superpowers 全流程&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
</description>
        </item>
        <item>
        <title>Spec Coding 的实践指南</title>
        <link>https://Tyritic.github.io/p/spec-coding-%E7%9A%84%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/</link>
        <pubDate>Sat, 27 Jun 2026 20:30:00 +0800</pubDate>
        
        <guid>https://Tyritic.github.io/p/spec-coding-%E7%9A%84%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/</guid>
        <description>&lt;h2 id=&#34;-让-ai-基础建设&#34;&gt;🏗️ 让 AI 基础建设
&lt;/h2&gt;&lt;h3 id=&#34;-项目背景和环境准备&#34;&gt;🗂️ 项目背景和环境准备
&lt;/h3&gt;&lt;h4 id=&#34;-项目背景&#34;&gt;📖 项目背景
&lt;/h4&gt;&lt;p&gt;本文假设你已经有一个需求，需要使用 Spec Coding 来实现。这个系统引入AI coding的目标很直接:让AI熟知所有规则和业务背景，独立完成从需求分析到代码实现的全流程，人只做设计审核和最终决策。但由于这个系统历史悠久，存在许多历史包袱，并且各个模块开发时间不同，人工编写的代码又缺乏强力的规范，又没有文档传承。人为理解已经是困难至极。
现在最大的难点更在于:如何让AI理解这个系统的复杂业务逻辑，以及各种历史包袱代码。&lt;/p&gt;
&lt;h4 id=&#34;-环境准备&#34;&gt;⚙️ 环境准备
&lt;/h4&gt;&lt;p&gt;本文采用Claude Code作为Agent，Spec Coding 框架选择OpenSpec。同时通过SuperPowers遵循TDD原则，即先写测试，再写实现。&lt;/p&gt;
&lt;h3 id=&#34;-构建ai-coding的背景上下文&#34;&gt;🧱 构建AI Coding的背景上下文
&lt;/h3&gt;&lt;p&gt;在让 AI 接手开发之前，需要完成三项基础建设。这三项工作非常重要，直接影响AI生成的代码质量和准确性。三项工作都可以让 AI 来做初版，然后人工修正，再反过来用修正结果改进代码。&lt;/p&gt;
&lt;h4 id=&#34;-生成项目级claudemd的初稿&#34;&gt;📄 生成项目级CLAUDE.md的初稿
&lt;/h4&gt;&lt;p&gt;使用/init命令生成项目级的CLAUDE.md文件。执行上述命令 Claude Code 会阅读项目源码，输出它理解到的架构约定和模式。这一步通常只能覆盖一部分规则，比如模块结构、包命名、错误处理方式等从代码里就能读出来。&lt;/p&gt;
&lt;h4 id=&#34;-人工补充隐形业务规则&#34;&gt;🧠 人工补充隐形业务规则
&lt;/h4&gt;&lt;p&gt;AI 生成的 CLAUDE.md 初始稿通常只能覆盖一部分业务规则，比如模块结构、包命名、错误处理方式等从代码里就能读出来。人工补充这些规则，是确保 AI 能够正确理解业务逻辑的关键。这些规则需要人工根据业务背景，拆分到规则文件中。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── CLAUDE.md                    # 主入口，指向各规则文件
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── rules/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ├── code-style.md            # 命名、日志格式、错误处理
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ├── pipeline-architecture.md # 并发管道约束、统计规范、反模式禁止
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ├── commands.md              # 子命令基线、共享参数约束、日期默认值规则
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    └── database-access.md       # 数据库访问规范
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;规则内容必须足够的具体，可映射到真实代码路径，避免写成&amp;quot;要注意性能&amp;quot;这种模凌两可的描述，AI无法执行这种口号。&lt;/p&gt;
&lt;p&gt;最后还要告诉AI要保持维护所有Rules，比如我会在CLAUDE.md中增加以下指令：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 更新对应模块代码时同步更新对应的规则文件。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 更新各个模块代码时，必须同步更新对应的文档目录下的文档，以及集成测试目录下的测试用例。       
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id=&#34;-让ai反向review历史代码&#34;&gt;🔍 让AI反向Review历史代码
&lt;/h4&gt;&lt;p&gt;规则完善后，就可以让 Claude Code 用这套规则扫描所有存量代码，找出不符合规则的地方。此时只需要告诉claude code修复这些问题，它就会触发superpowers的skill自行修复&lt;/p&gt;
&lt;h3 id=&#34;-让ai理解设计理念和业务逻辑&#34;&gt;💡 让AI理解设计理念和业务逻辑
&lt;/h3&gt;&lt;p&gt;规则约束的是&amp;quot;怎么写代码&amp;quot;，但 AI 还需要理解&amp;quot;为什么这样设计&amp;quot;，才能在新需求时做出正确的架构决策。&lt;/p&gt;
&lt;h4 id=&#34;-让ai根据代码生成初版设计文档&#34;&gt;📚 让AI根据代码生成初版设计文档
&lt;/h4&gt;&lt;p&gt;让 Claude Code 阅读模块的所有代码实现，生成三份文档：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;design.md: 代码架构设计文档，描述当前代码实现下的数据流、预处理规则、退款处理、消费摊销、汇总口径与校验规则，不展开命令行操作说明。&lt;/li&gt;
&lt;li&gt;readme.md: 模块使用说明文档，只描述如何使用此模块的可执行命令，各个功能和参数说明，不涉及业务逻辑。&lt;/li&gt;
&lt;li&gt;user-guide.md: 业务指南文档，用于描述纯粹的业务逻辑，不展开代码细节。
在系统中每个模块都编写对应的三份文档，确保 AI 能够正确理解业务逻辑。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── design.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── readme.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── user-guide.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id=&#34;-人工审核和修正设计文档&#34;&gt;🛠️ 人工审核和修正设计文档
&lt;/h4&gt;&lt;p&gt;代码里体现不出来的业务背景需要手动补充&lt;/p&gt;
&lt;h4 id=&#34;-让ai根据设计文档再次review代码&#34;&gt;🔁 让AI根据设计文档再次Review代码
&lt;/h4&gt;&lt;p&gt;文档补充完整后，让 AI 对照文档检查代码实现，找出&amp;quot;文档说是这样，代码不是这样&amp;quot;的地方。&lt;/p&gt;
&lt;h3 id=&#34;-补充单元测试和集成测试&#34;&gt;🧪 补充单元测试和集成测试
&lt;/h3&gt;&lt;h4 id=&#34;-让ai-根据代码和文档生成初版单元测试集成测试&#34;&gt;📋 让AI 根据代码和文档生成初版单元测试/集成测试
&lt;/h4&gt;&lt;p&gt;直接对claude code下达指令：
参考提示词如下：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;根据当前模块的文档和代码，生成单元测试，要求代码覆盖率必须至少达到80%。单元测试中如果遇到需要依赖第三方接口服务或者数据库的情况，统一用mock代替。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;集成测试要分开生成：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;根据当前模块的文档和代码，生成集成测试用例。尽可能覆盖更多的测试场景，设想更多的业务场景。允许你使用xxx数据库地址作为测试库，生成所需的测试数据。所有的测试场景和用例都要落实到文档中记录。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id=&#34;-人工补充测试场景&#34;&gt;✏️ 人工补充测试场景
&lt;/h4&gt;&lt;p&gt;AI 首次生成的测试用例通常不够完备，同样需要人工review和补充测试用例。但你不需要手动去改代码，你只需要直接告诉claude code补充哪些场景的测试，或者修改测试文档即可。&lt;/p&gt;
&lt;h4 id=&#34;-ai-用测试反向-review-代码&#34;&gt;🎯 AI 用测试反向 review 代码
&lt;/h4&gt;&lt;p&gt;测试跑起来之后，让 AI 分析覆盖率，找出测试暴露的逻辑分支问题，修复后再回归。关键前提：先有充分的设计文档和规则，AI 才能生成高质量测试——知道&amp;quot;这个字段应该是什么值&amp;quot;，而不是只生成结构正确但断言空洞的空壳测试。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-ai-coding实践&#34;&gt;🚀 AI Coding实践
&lt;/h2&gt;&lt;p&gt;完成了规则、文档、测试这三块基础建设，AI大模型基本上已经完全熟悉整个项目了。接下来就可以让 AI 真正接管开发流程了。开发过程中我们主要使用openspec的指令作为入口即可，superpowers的skills集合是在各个阶段自动触发的，无需手动调用。&lt;/p&gt;
&lt;h3 id=&#34;-使用openspec提案&#34;&gt;📝 使用OpenSpec提案
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;命令： /opsx:propose&lt;/li&gt;
&lt;li&gt;关键技巧：/opsx:propose 的输入质量直接决定生成工件的质量。模糊输入和具体输入的差距很大：一定要注意需求描述要足够具体，openspec 就能一次生成完整的文档，否则可能需要多次来回的沟通调整。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;-人工审核提案&#34;&gt;🧐 人工审核提案
&lt;/h3&gt;&lt;p&gt;在上一步产生的文档经过人工审核通过之后，接下来就是实施阶段。在执行 /opsx:apply 之前，必须认真审读 design.md和各个spec.md文档，给claude code提出反馈。
这一步非常关键：设计阶段发现的问题，改起来通常只需要更新文档。但如果实现到一半才发现设计有缺陷，代价高出一个数量级。&lt;/p&gt;
&lt;h3 id=&#34;-创建worktree执行-apply&#34;&gt;🌿 创建worktree，执行 apply
&lt;/h3&gt;&lt;p&gt;在启动 Claude Code 时通过 &amp;ndash;worktree 创建隔离工作区，或使用 superpowers:using-git-worktrees skill：
参考提示词&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 方式一：启动时创建 worktree
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude --worktree
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 方式二：在 Claude Code 中使用 skill
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# /superpowers:using-git-worktrees
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;工作区隔离后，使用类似以下Prompt执行&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;开始实施，整体流程使用`openspec-apply-change` skill，写代码时使用`subagent-driven-development`这个skill
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;此举触发superpowers的相关skills，开始执行任务。比如 subagent-driven-development 会创建多个子agent开始并行执行不同任务。&lt;/p&gt;
&lt;h3 id=&#34;-subagent-driven-development-的工作机制&#34;&gt;🤖 subagent-driven-development 的工作机制
&lt;/h3&gt;&lt;p&gt;对每个任务，superpowers skill 会依次循环三层：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Implementer subagent（内嵌 TDD）:每个任务派遣一个独立的 Implementer subagent，它内部强制执行红绿重构循环：&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Step 1: 写一个失败的测试（RED）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Step 2: 运行测试，确认失败（必须看到失败，不能跳过）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Step 3: 写最小实现代码（GREEN）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Step 4: 运行测试，确认通过
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Step 5: 重构，保持绿色
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Step 6: 提交，报告状态（DONE / NEEDS_CONTEXT / BLOCKED）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Spec Reviewer subagent: Implementer 完成后，派遣 Spec Reviewer 独立读代码，逐行对比 spec 和实现，验证&amp;quot;构建了被要求的（不多不少）&amp;quot;。这个 reviewer 不信任 Implementer 的声明，自己读代码验证。&lt;/li&gt;
&lt;li&gt;Code Quality Reviewer subagent: Spec 审核通过后，派遣 Code Quality Reviewer，验证是否&amp;quot;构建足够得好&amp;quot;：
&lt;ul&gt;
&lt;li&gt;文件职责清晰，可以独立理解&lt;/li&gt;
&lt;li&gt;测试测的是真实代码而非 mock&lt;/li&gt;
&lt;li&gt;没有创建不必要的巨型文件&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;任一审核不通过 → Implementer 修复 → 重新审核，直到两层都通过。&lt;/p&gt;
&lt;h3 id=&#34;-完成验证&#34;&gt;✅ 完成验证
&lt;/h3&gt;&lt;p&gt;所有任务完成后，superpowers的verification-before-completion skill 会开始介入，要求：运行完整测试套件，贴出实际输出，才能做&amp;quot;完成&amp;quot;声明。&lt;/p&gt;
&lt;h3 id=&#34;-归档&#34;&gt;📦 归档
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;命令:/opsx:archive
完成代码验收之后将 openspec 文档（proposal design specs / tasks）提交到 master 分支，形成可回溯的变更记录。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-完整协作流程&#34;&gt;🔄 完整协作流程
&lt;/h2&gt;&lt;div align=&#34;center&#34;&gt;
  &lt;img src=&#34;bf13394c2d1411f1861d42619244becf.png&#34; alt=&#34;完整协作流程&#34; width=&#34;78%&#34; /&gt;
&lt;/div&gt;
&lt;p&gt;蓝色节点是 openspec 指令，绿色节点是 superpowers skill 自动触发点。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Spec Coding 的定义</title>
        <link>https://Tyritic.github.io/p/spec-coding-%E7%9A%84%E5%AE%9A%E4%B9%89/</link>
        <pubDate>Sat, 27 Jun 2026 20:00:00 +0800</pubDate>
        
        <guid>https://Tyritic.github.io/p/spec-coding-%E7%9A%84%E5%AE%9A%E4%B9%89/</guid>
        <description>&lt;h2 id=&#34;-写在前面ai-编程缺的不是模型是图纸&#34;&gt;🧠 写在前面：AI 编程缺的不是模型，是图纸
&lt;/h2&gt;&lt;p&gt;2024 年到 2026 年这两年，我用 Claude Code、Cursor、Copilot 写过的代码比过去十年加起来都多。但越用越清楚地意识到一件事：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI 不缺写代码的能力，缺的是一张&amp;rsquo;图纸&amp;rsquo;。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Vibe Coding 的爽感我们都体会过——敲一句&amp;quot;做个登录页&amp;quot;，五秒钟出 HTML。Demo 截图发到群里人人点赞。但只要把这段代码接进真实项目，问题就接踵而至：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;上下文漂移&lt;/strong&gt;：改了一个文件，三处不相关的代码跟着坏。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;需求漂移&lt;/strong&gt;：你说&amp;quot;登录支持手机号&amp;quot;，AI 默认走了 OAuth 流程。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;知识孤岛&lt;/strong&gt;：昨天为什么这么设计，没人记得——AI 不记得，你自己也不记得。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;质量不稳&lt;/strong&gt;：同样的需求，时好时坏，全看模型心情。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;协作断点&lt;/strong&gt;：同事接手时只能对着代码反推意图，最后的结论往往是&amp;quot;别动这段&amp;quot;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些痛点指向同一个结论：&lt;strong&gt;AI 编程的下一个瓶颈不是模型能力，而是&amp;quot;人机协作的工程方法论&amp;quot;&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.blog/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub&lt;/a&gt; 在 2025 年正式把这套方法论命名为 &lt;strong&gt;Spec-Driven Development（SDD）&lt;/strong&gt;，社区里更口语化的叫法是 &lt;strong&gt;Spec Coding&lt;/strong&gt;——用规格驱动编码。&lt;/p&gt;
&lt;p&gt;这篇文章是我对 Spec Coding 的一份系统化实践笔记，重点不在某一个具体工具，而在&lt;strong&gt;它作为一种开发范式，到底解决了什么、要怎么落地、有什么坑&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-什么是-spec-coding&#34;&gt;⚖️ 什么是 Spec Coding
&lt;/h2&gt;&lt;h3 id=&#34;-定义与定位&#34;&gt;📖 定义与定位
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Spec Coding&lt;/strong&gt;（或 SDD, Spec-Driven Development）是一种&lt;strong&gt;把&amp;quot;可执行的规格&amp;quot;置于软件开发生命周期中心&lt;/strong&gt;的工程实践。它借鉴了传统软件工程中&amp;quot;契约优先&amp;quot;（Contract-First）的思想，但做了关键升级：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;规格不再是静态文档&lt;/strong&gt;，而是与代码一同演进、版本化、可被 AI 直接消费的活工件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;代码不再是 Source of Truth&lt;/strong&gt;，而是规格的&amp;quot;最后一公里输出&amp;quot;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI 不是替代者&lt;/strong&gt;，而是被规格约束的&amp;quot;高级实现者&amp;quot;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一句话概括：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;过去是先写代码再补文档；现在反过来——先写规格，代码只是规格的编译产物。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;-spec-coding-vs-vibe-coding&#34;&gt;🔍 Spec Coding vs Vibe Coding
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;维度&lt;/th&gt;
					&lt;th&gt;Vibe Coding&lt;/th&gt;
					&lt;th&gt;Spec Coding&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;核心信念&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&amp;ldquo;AI 心领神会&amp;rdquo;&lt;/td&gt;
					&lt;td&gt;&amp;ldquo;规格是契约&amp;rdquo;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;输入形态&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;自然语言提示&lt;/td&gt;
					&lt;td&gt;结构化规格文档&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;上下文管理&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;靠对话历史&lt;/td&gt;
					&lt;td&gt;靠版本化的文件&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;决策可追溯&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;不可追溯&lt;/td&gt;
					&lt;td&gt;每个决策都有据可查&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;变更成本&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;改一处牵全身&lt;/td&gt;
					&lt;td&gt;改规格 → 重新生成&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;适合场景&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Demo、探索、PoC&lt;/td&gt;
					&lt;td&gt;真实项目、长期维护、协作&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;典型代表&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Cursor 自由对话&lt;/td&gt;
					&lt;td&gt;Spec Kit / Kiro / OpenSpec&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;它们不是对立关系，是不同阶段的工具&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;想快速验证一个想法 → Vibe Coding 更轻。&lt;/li&gt;
&lt;li&gt;想把想法变成可交付、可维护的产品 → Spec Coding 更稳。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;社区里越来越多人把 Spec Coding 视为 Vibe Coding 的&amp;quot;工业化升级版&amp;quot;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-核心工作流specify--plan--tasks--implement&#34;&gt;🔄 核心工作流：Specify → Plan → Tasks → Implement
&lt;/h2&gt;&lt;p&gt;主流 SDD 框架（GitHub Spec Kit、AWS Kiro、OpenSpec）虽然在命令名上略有差异，但底层都收敛到了同一个四阶段工作流：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Specify  →  Plan  →  Tasks  →  Implement
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;（定目标）  （定方案）  （拆任务）  （按规格实现）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;每一个阶段都遵循**人在环路（Human-in-the-Loop）**原则：必须由人审阅、批准，才进入下一阶段。&lt;/p&gt;
&lt;h3 id=&#34;-阶段一specify定目标&#34;&gt;🛠️ 阶段一：Specify（定目标）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;回答的问题&lt;/strong&gt;：我们要解决什么问题？给谁用？成功的标准是什么？&lt;/p&gt;
&lt;p&gt;这一阶段&lt;strong&gt;不涉及任何技术选型&lt;/strong&gt;，只关注：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用户故事（User Story）&lt;/li&gt;
&lt;li&gt;业务目标（Goal）&lt;/li&gt;
&lt;li&gt;验收标准（Acceptance Criteria）&lt;/li&gt;
&lt;li&gt;边界条件与异常场景&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;输出通常是一份 &lt;code&gt;spec.md&lt;/code&gt;，语言要&amp;quot;无歧义、可测试&amp;quot;。AWS Kiro 在这一步使用 &lt;a class=&#34;link&#34; href=&#34;https://alistairmavin.com/ears/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;EARS&lt;/a&gt;（Easy Approach to Requirements Syntax）格式，能让 AI 自动生成覆盖边角情况的验收条件。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## Feature: 用户注册
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;### US-1 注册新账号
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; WHEN 用户提交合法的邮箱与密码
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; THEN 系统创建账号并发送验证邮件
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; AND 5 秒内返回 201
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;### 边界情况
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; WHEN 邮箱已被注册
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; THEN 返回 409 Conflict
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; AND 提示&amp;#34;该邮箱已注册&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;-阶段二plan定方案&#34;&gt;🧩 阶段二：Plan（定方案）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;回答的问题&lt;/strong&gt;：在已知的约束下，怎么实现？&lt;/p&gt;
&lt;p&gt;这一阶段把&amp;quot;业务目标&amp;quot;翻译成&amp;quot;技术决策&amp;quot;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;技术栈（语言、框架、数据库）&lt;/li&gt;
&lt;li&gt;架构风格（单体 / 微服务 / Serverless）&lt;/li&gt;
&lt;li&gt;关键依赖（第三方服务、合规要求）&lt;/li&gt;
&lt;li&gt;性能与安全目标&lt;/li&gt;
&lt;li&gt;风险点与备选方案&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;输出通常是 &lt;code&gt;plan.md&lt;/code&gt;，可以&lt;strong&gt;并列多个方案&lt;/strong&gt;让 AI 比较。比如：&amp;ldquo;用 Postgres 全文检索 vs. 用 ElasticSearch&amp;rdquo;——AI 会根据 Spec 给出权衡分析。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 技术方案
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 框架：Go 1.22 + Gin
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 数据库：PostgreSQL 16
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 缓存：Redis
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 部署：Docker + Kubernetes
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 鉴权：JWT + Refresh Token
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 关键风险：邮件发送失败的重试策略
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;-阶段三tasks拆任务&#34;&gt;⚙️ 阶段三：Tasks（拆任务）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;回答的问题&lt;/strong&gt;：怎么把方案变成可执行、可验收的小步骤？&lt;/p&gt;
&lt;p&gt;这一阶段&lt;strong&gt;不写代码&lt;/strong&gt;，只生成任务清单。Spec Kit / Kiro 在这一步生成的 &lt;code&gt;tasks.md&lt;/code&gt; 通常长这样：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; T001 创建数据库表 &lt;span class=&#34;sb&#34;&gt;`users`&lt;/span&gt;（含唯一索引）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; T002 实现 &lt;span class=&#34;sb&#34;&gt;`POST /api/v1/register`&lt;/span&gt; 路由
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; T003 集成邮件服务（带重试）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; T004 写单元测试（密码强度校验）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; T005 写集成测试（注册 → 验证 → 登录）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; T006 在 staging 环境跑一遍 e2e
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;关键纪律&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;每个任务 2~5 分钟可以完成&lt;/li&gt;
&lt;li&gt;任务之间有清晰依赖&lt;/li&gt;
&lt;li&gt;每个任务有明确&amp;quot;完成&amp;quot;的定义（DoD）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不写代码&lt;/strong&gt;——代码是下一阶段的事&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;-阶段四implement按规格实现&#34;&gt;🚀 阶段四：Implement（按规格实现）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;回答的问题&lt;/strong&gt;：让 AI 在规格约束下，把任务逐个变成代码。&lt;/p&gt;
&lt;p&gt;这一阶段 AI 才真正开始写代码，但它会&lt;strong&gt;严格对照前面的 Spec/Plan/Tasks&lt;/strong&gt;。如果发现实现与规格冲突，应该回头改规格，而不是偷偷改逻辑。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;一个常见的纪律：&lt;strong&gt;任何偏离 Spec 的实现，都必须先回退到 Spec 修改并重新走批准流程&lt;/strong&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;实践上还可以叠加 TDD、子代理并行、Code Review 等纪律——这部分可以参考 &lt;a class=&#34;link&#34; href=&#34;../Superpowers%e4%b8%8eOpenSpec%e7%9a%84%e9%85%8d%e5%90%88%e4%bd%bf%e7%94%a8/index.zh-cn.md&#34; &gt;Superpowers 与 OpenSpec 的配合使用&lt;/a&gt; 一文。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-实践示例做一个-cli-todo-应用&#34;&gt;🧪 实践示例：做一个 CLI Todo 应用
&lt;/h2&gt;&lt;p&gt;把上面四阶段跑一遍。需求是&amp;quot;做一个命令行 Todo 工具，支持增删改查与本地持久化&amp;quot;。&lt;/p&gt;
&lt;h3 id=&#34;-step-1明确业务目标&#34;&gt;💡 Step 1：明确业务目标
&lt;/h3&gt;&lt;p&gt;先用一句话把目标写清楚：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;给我做一个 CLI 工具，名字叫 &lt;code&gt;todo&lt;/code&gt;，支持添加、列出、完成、删除 Todo，数据存本地 JSON 文件。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;然后让 AI 协助扩成结构化的 &lt;code&gt;spec.md&lt;/code&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 功能需求
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;### US-1 添加 Todo
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; WHEN 用户运行 &lt;span class=&#34;sb&#34;&gt;`todo add &amp;#34;买牛奶&amp;#34;`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; THEN 在 todos.json 中追加一条 &lt;span class=&#34;sb&#34;&gt;`{id, content, done=false, created_at}`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; AND 输出 &amp;#34;已添加 &lt;span class=&#34;ni&#34;&gt;#1:&lt;/span&gt; 买牛奶&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;### US-2 列出 Todo
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; WHEN 用户运行 &lt;span class=&#34;sb&#34;&gt;`todo list`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; THEN 按 id 升序列出所有未完成 Todo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; AND 每行格式 &lt;span class=&#34;sb&#34;&gt;`[#id] [ ] content`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;### US-3 标记完成
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; WHEN 用户运行 &lt;span class=&#34;sb&#34;&gt;`todo done 1`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; THEN 把 id=1 的 Todo 标记为 done
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; AND 输出 &amp;#34;已完成 &lt;span class=&#34;ni&#34;&gt;#1:&lt;/span&gt; 买牛奶&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;### 边界情况
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 当 todos.json 不存在时，自动创建
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 当 id 不存在时，提示 &amp;#34;未找到该 Todo&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 当 JSON 损坏时，备份原文件并重新创建
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;-step-2编写规格&#34;&gt;🔹 Step 2：编写规格
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;plan.md&lt;/code&gt;（技术方案）：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 语言：Go 1.22
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 第三方依赖：仅 &lt;span class=&#34;sb&#34;&gt;`spf13/cobra`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 存储：本地 JSON 文件，路径 &lt;span class=&#34;sb&#34;&gt;`~/.todo/todos.json`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 并发：单进程，不需要锁
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; 测试：表格驱动 + golden file
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;-step-3拆解任务&#34;&gt;📐 Step 3：拆解任务
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;tasks.md&lt;/code&gt;（任务清单）：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; T001 初始化 Go module 与 cobra 骨架
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; T002 实现 &lt;span class=&#34;sb&#34;&gt;`add`&lt;/span&gt; 子命令
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; T003 实现 &lt;span class=&#34;sb&#34;&gt;`list`&lt;/span&gt; 子命令
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; T004 实现 &lt;span class=&#34;sb&#34;&gt;`done`&lt;/span&gt; 子命令
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; T005 实现 &lt;span class=&#34;sb&#34;&gt;`del`&lt;/span&gt; 子命令
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; T006 实现 storage 层（load/save/append）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; T007 写单测覆盖所有命令
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; T008 跑 go vet / go test / go build
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;-step-4交付与验证&#34;&gt;✅ Step 4：交付与验证
&lt;/h3&gt;&lt;p&gt;把四份文档喂给 Claude Code，让它按 &lt;code&gt;tasks.md&lt;/code&gt; 逐项实现，每个任务完成后自动跑测试：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 提示词示例（使用 Claude Code + Spec Kit）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$spec&lt;/span&gt;-kit implement
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;AI 写完一个任务，会自检：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;是不是严格按 &lt;code&gt;spec.md&lt;/code&gt; 实现？&lt;/li&gt;
&lt;li&gt;单测是否覆盖了所有验收条件？&lt;/li&gt;
&lt;li&gt;是否触犯了 &lt;code&gt;plan.md&lt;/code&gt; 中的&amp;quot;约束清单&amp;quot;？&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果发现规格本身漏了边界情况（比如&amp;quot;删除已完成的 Todo 要二次确认&amp;quot;），就&lt;strong&gt;回头改 Spec&lt;/strong&gt;，让规格成为唯一真相。&lt;/p&gt;
&lt;p&gt;最终交付物：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;4 份 Markdown 文档（spec / plan / tasks / constitution）&lt;/li&gt;
&lt;li&gt;一个可用的二进制 &lt;code&gt;todo&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;一份与 Spec 一一对应的测试报告&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-工具链速览&#34;&gt;💻 工具链速览
&lt;/h2&gt;&lt;p&gt;SDD 在 2025-2026 年迎来了一波工具爆发。这里按定位简单梳理：&lt;/p&gt;
&lt;h3 id=&#34;-github-spec-kit&#34;&gt;🎯 GitHub Spec Kit
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;当前最主流的开源 SDD 框架&lt;/strong&gt;。Python CLI 工具，原生支持 GitHub Copilot，兼容 Claude Code、Gemini CLI、Amazon Q 等 30+ AI 编码代理。&lt;/p&gt;
&lt;p&gt;四阶段流程：&lt;strong&gt;Specify → Plan → Tasks → Implement&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;最独特的设计是 &lt;strong&gt;Constitution（宪法）&lt;/strong&gt;——一份放在项目根目录的长效文档，定义架构原则、编码规范、安全要求。AI 每次开发都必须遵守。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 初始化&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uv tool install spec-kit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;specify init my-project
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;适合：想入门 SDD 的团队，已有 IDE 体系，不想切换工具链。&lt;/p&gt;
&lt;h3 id=&#34;-aws-kiro&#34;&gt;🤝 AWS Kiro
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;最&amp;quot;原生&amp;quot;的规格驱动 AI IDE&lt;/strong&gt;。基于 Code OSS（VS Code 同源）构建，但要求开发者先正式定义需求，再进入开发。&lt;/p&gt;
&lt;p&gt;三阶段流程：&lt;strong&gt;Requirements → Design → Tasks&lt;/strong&gt;，每阶段用 EARS 格式描述，自动生成用户故事、验收条件、边界场景。&lt;/p&gt;
&lt;p&gt;独有 &lt;strong&gt;Agent Hooks&lt;/strong&gt;——事件驱动的自动化系统，保存文件后自动跑测试、刷新 README、执行安全扫描。&lt;/p&gt;
&lt;p&gt;适合：企业级团队，需要正式 SDD 流程，多人协作的复杂项目。&lt;/p&gt;
&lt;h3 id=&#34;-bmad-method&#34;&gt;🏗️ BMAD-METHOD
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;最&amp;quot;团队化&amp;quot;的多 Agent 开发框架&lt;/strong&gt;。MIT 开源，内部编排 12+ AI 角色（产品经理、架构师、UX、Developer、QA、Scrum Master），Agent 之间通过文件&amp;quot;交接棒&amp;quot;完成交付。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;需求 → 设计 → 开发 → 测试 → 交付
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;适合：大型团队，多角色协作，需要严格流程的组织。&lt;/p&gt;
&lt;h3 id=&#34;-其他值得关注的工具&#34;&gt;📚 其他值得关注的工具
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;工具&lt;/th&gt;
					&lt;th&gt;定位&lt;/th&gt;
					&lt;th&gt;一句话总结&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;OpenSpec&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;变更管理专家&lt;/td&gt;
					&lt;td&gt;提案式流程，&lt;code&gt;ADDED/MODIFIED/REMOVED&lt;/code&gt; 增量标记&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Augment Code&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;大规模代码上下文&lt;/td&gt;
					&lt;td&gt;Context Engine 维护 40 万+ 文件级架构理解&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;TaskFlow&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;任务编排&lt;/td&gt;
					&lt;td&gt;把 Spec 拆成 DAG，让多个 AI Worker 并行执行&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Claude Code Spec Mode&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;轻量级 Spec&lt;/td&gt;
					&lt;td&gt;内置于 Claude Code，适合个人开发者&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;工具只是手段，不是目的。&lt;strong&gt;先想清楚你的 Spec 应该长什么样，再选工具&lt;/strong&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-常见陷阱与最佳实践&#34;&gt;⚠️ 常见陷阱与最佳实践
&lt;/h2&gt;&lt;p&gt;Spec Coding 不是银弹。方法论选错了，文档反而比代码更难维护。&lt;/p&gt;
&lt;h3 id=&#34;-陷阱一把-spec-写成伪代码&#34;&gt;❌ 陷阱一：把 Spec 写成&amp;quot;伪代码&amp;quot;
&lt;/h3&gt;&lt;p&gt;最常见的失败模式是——Spec 写得太细，直接写 SQL、建表语句、函数签名。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;# 错误示例
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;function register(email, password) {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  const hash = bcrypt(password, 10);
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  return db.query(&lt;span class=&#34;sb&#34;&gt;`INSERT INTO users ...`&lt;/span&gt;, [email, hash]);
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;为什么有问题&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Spec 变成了&amp;quot;另一种代码&amp;quot;，AI 写代码时直接照抄，失去意义。&lt;/li&gt;
&lt;li&gt;改业务逻辑要改两份（Spec + 实现），维护成本反而更高。&lt;/li&gt;
&lt;li&gt;评审 Spec 等于评审代码，门槛变高，参与人变少。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;正确做法&lt;/strong&gt;：Spec 关注&lt;strong&gt;意图与验收条件&lt;/strong&gt;，不关注实现细节。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;# 正确示例
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;WHEN 用户提交合法邮箱与密码
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;THEN 系统创建账号并发送验证邮件
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;AND 5 秒内返回 201
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;-陷阱二跳过-plan-直接写代码&#34;&gt;🔁 陷阱二：跳过 Plan 直接写代码
&lt;/h3&gt;&lt;p&gt;很多人写完 Spec 就急着让 AI 写代码，跳过 Plan 阶段。结果：AI 自由发挥，技术栈与项目现状脱节。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;正确做法&lt;/strong&gt;：Plan 阶段是&amp;quot;防 AI 跑偏&amp;quot;的最后一道闸。再小的项目，也要回答三个问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;技术栈是什么？&lt;/li&gt;
&lt;li&gt;有没有不能用的依赖？&lt;/li&gt;
&lt;li&gt;性能/安全底线是什么？&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;-最佳实践总结&#34;&gt;💎 最佳实践总结
&lt;/h3&gt;&lt;p&gt;最后是几条在真实项目里验证过的经验：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Spec 写在版本控制里&lt;/strong&gt;：与代码同仓库，PR 时一起 Review。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Constitution 是项目宪法&lt;/strong&gt;：定义&amp;quot;AI 永远不能违反的规则&amp;quot;，比如&amp;quot;不允许用 &lt;code&gt;any&lt;/code&gt;&amp;quot;、&amp;ldquo;不允许直接 &lt;code&gt;rm -rf&lt;/code&gt;&amp;quot;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;任务粒度 2~5 分钟&lt;/strong&gt;：太大的任务 AI 容易跑偏；太小又失去意义。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;规格变了，先 PR Spec&lt;/strong&gt;：实现跟着 Spec 走，不要反过来。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Spec 也是产品文档&lt;/strong&gt;：业务方、PM、QA 都能看懂同一份 Spec。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不要追求&amp;quot;完整 Spec&amp;rdquo;&lt;/strong&gt;：80% 的清晰度已经能换来 80% 的可靠性，最后 20% 让实现阶段补。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vibe Coding 与 Spec Coding 混用&lt;/strong&gt;：探索阶段用 Vibe，确定方案后切到 Spec。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-总结&#34;&gt;📝 总结
&lt;/h2&gt;&lt;p&gt;回到开头那句话：&lt;strong&gt;AI 编程缺的不是模型，是图纸&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;Spec Coding 不是要取代 Vibe Coding，而是给&amp;quot;自由探索&amp;quot;配上一条&amp;quot;工业化产线&amp;quot;。当你有了：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一份清晰的 Spec（业务目标）&lt;/li&gt;
&lt;li&gt;一份严谨的 Plan（技术方案）&lt;/li&gt;
&lt;li&gt;一份可验证的 Tasks（任务清单）&lt;/li&gt;
&lt;li&gt;一份长效的 Constitution（项目宪法）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;AI 就不再是&amp;quot;凭感觉的代码打字机&amp;quot;，而是一个&lt;strong&gt;严格按图纸施工的工程师&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;未来一两年，随着模型能力的进一步提升，&lt;strong&gt;瓶颈会更集中在 Spec 的质量上&lt;/strong&gt;。会写 Spec 的开发者，会比会写代码的开发者更稀缺。&lt;/p&gt;
&lt;p&gt;如果你还没试过，可以从一个小工具开始：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;找一个本周要做的小功能&lt;/li&gt;
&lt;li&gt;花 20 分钟写一份 Spec&lt;/li&gt;
&lt;li&gt;让 Claude Code 按 Spec 实现&lt;/li&gt;
&lt;li&gt;体会一下&amp;quot;几乎一次跑通&amp;quot;的感觉&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;你会发现，&lt;strong&gt;写 Spec 的过程本身，就是一次深度思考&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;延伸阅读：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;../Superpowers%e4%b8%8eOpenSpec%e7%9a%84%e9%85%8d%e5%90%88%e4%bd%bf%e7%94%a8/index.zh-cn.md&#34; &gt;Superpowers 与 OpenSpec 的配合使用&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Claude Code 最佳实践](../Claude Code最佳实践/index.zh-cn.md)&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/github/spec-kit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub Spec Kit 官方仓库&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://kiro.dev/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;AWS Kiro 官方介绍&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://alistairmavin.com/ears/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;EARS 需求描述规范&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
</description>
        </item>
        <item>
        <title>Claude Code 最佳实践</title>
        <link>https://Tyritic.github.io/p/claude-code-%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/</link>
        <pubDate>Sat, 27 Jun 2026 17:18:00 +0800</pubDate>
        
        <guid>https://Tyritic.github.io/p/claude-code-%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/</guid>
        <description>&lt;h2 id=&#34;-什么是-claude-code&#34;&gt;🧠 什么是 Claude Code
&lt;/h2&gt;&lt;p&gt;Claude Code 是 Anthropic 推出的&lt;strong&gt;终端优先（Terminal-First）的 AI 编程助手&lt;/strong&gt;，它不是一个聊天框里的代码补全插件，而是一个直接运行在本地命令行、能够&lt;strong&gt;读取、编辑、执行&lt;/strong&gt;真实项目代码的 Agent。&lt;/p&gt;
&lt;p&gt;与传统的 IDE 插件式 Copilot 不同，Claude Code 把模型放进了你熟悉的开发环境里——Shell、文件树、Git、测试、构建脚本——让模型拥有和开发者一样的“动手能力”。&lt;/p&gt;
&lt;h3 id=&#34;-核心理念&#34;&gt;📖 核心理念
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Agent 而非补全&lt;/strong&gt;：模型不只生成代码片段，而是会主动规划、调用工具、执行命令、回看结果。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;终端即界面&lt;/strong&gt;：所有交互都发生在命令行中，没有额外的 IDE 锁定，跨编辑器、跨语言、跨项目通用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;上下文即工程&lt;/strong&gt;：通过 &lt;code&gt;CLAUDE.md&lt;/code&gt;、Subagents、Skills、MCP 等机制，把项目的“隐性知识”显性化喂给模型。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;-与传统-ai-编程助手的区别&#34;&gt;⚖️ 与传统 AI 编程助手的区别
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;维度&lt;/th&gt;
					&lt;th&gt;传统 Copilot&lt;/th&gt;
					&lt;th&gt;Claude Code&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;交互形态&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;行内补全 / 聊天面板&lt;/td&gt;
					&lt;td&gt;终端会话 + 多轮规划&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;环境感知&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;当前打开的文件&lt;/td&gt;
					&lt;td&gt;整个仓库、Git 历史、CLI 工具链&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;执行能力&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;只能生成代码建议&lt;/td&gt;
					&lt;td&gt;可读、写、执行、回滚&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;记忆机制&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;无持久化&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; + 项目级上下文&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;扩展能力&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;插件市场&lt;/td&gt;
					&lt;td&gt;MCP 协议 + Subagents + Skills&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;简单说：传统 Copilot 帮你打字，Claude Code 帮你&lt;strong&gt;做事&lt;/strong&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-安装与配置&#34;&gt;🛠️ 安装与配置
&lt;/h2&gt;&lt;h3 id=&#34;-安装方式&#34;&gt;💻 安装方式
&lt;/h3&gt;&lt;p&gt;Claude Code 通过 npm 全局安装，安装前需要 Node.js 18+：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 全局安装&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g @anthropic-ai/claude-code
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 安装完成后启动&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;启动后会引导你完成 OAuth 登录，登录成功后即可在当前目录下使用。&lt;/p&gt;
&lt;h3 id=&#34;-基础配置&#34;&gt;🎛️ 基础配置
&lt;/h3&gt;&lt;p&gt;Claude Code 的配置主要围绕三件事：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;环境变量&lt;/strong&gt;：API Key、模型选择、Token 限额等&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;全局偏好&lt;/strong&gt;：默认行为、主题、快捷键&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;项目配置&lt;/strong&gt;：放在项目根目录的 &lt;code&gt;.claude/&lt;/code&gt; 目录和 &lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 初始化当前项目（生成 CLAUDE.md 和 .claude 配置目录）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude init
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 查看当前配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude config list
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 修改某一项配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude config &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; model claude-opus-4
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;提示：如果是第一次接触 Claude Code，可以先在空目录里 &lt;code&gt;claude init&lt;/code&gt;，熟悉一下它生成的目录结构和 &lt;code&gt;CLAUDE.md&lt;/code&gt; 模板。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-核心命令与快捷键&#34;&gt;⌨️ 核心命令与快捷键
&lt;/h2&gt;&lt;h3 id=&#34;-常用斜杠命令&#34;&gt;🔄 常用斜杠命令
&lt;/h3&gt;&lt;p&gt;Claude Code 内置了一组以 &lt;code&gt;/&lt;/code&gt; 开头的命令，覆盖日常高频操作：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/init&lt;/code&gt;：在当前目录生成 &lt;code&gt;CLAUDE.md&lt;/code&gt; 项目记忆文件&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/compact&lt;/code&gt;：当上下文变长时压缩对话历史，节省 Token&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/clear&lt;/code&gt;：清空当前会话上下文，开启新对话&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/resume&lt;/code&gt;：恢复历史会话，继续之前的任务&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/memory&lt;/code&gt;：打开 &lt;code&gt;CLAUDE.md&lt;/code&gt; 进行编辑&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/agents&lt;/code&gt;：管理 Subagents 配置&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/mcp&lt;/code&gt;：管理 MCP 服务器连接&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/review&lt;/code&gt;：让模型审查当前分支的代码改动&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/security-review&lt;/code&gt;：执行安全审查&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/cost&lt;/code&gt;：查看当前会话的 Token 消耗&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/help&lt;/code&gt;：查看所有可用命令&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;-高效交互技巧&#34;&gt;💡 高效交互技巧
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;多行输入&lt;/strong&gt;：使用 &lt;code&gt;\&lt;/code&gt; 续行，或者在引号内写多行；按两次回车提交&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;@ 引用文件&lt;/strong&gt;：&lt;code&gt;@src/main.go&lt;/code&gt; 可以让模型直接读取引用文件的内容&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;! 运行命令&lt;/strong&gt;：&lt;code&gt;!git status&lt;/code&gt; 让 Claude Code 执行 Shell 命令并把输出回灌到上下文&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;图片拖入&lt;/strong&gt;：直接把截图拖进终端，模型可以“看到”报错截图或设计稿&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Plan 模式&lt;/strong&gt;：先让模型给出执行计划，确认后再让其实施，避免误改&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 示例：在 Plan 模式下让模型规划重构方案&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude --plan &lt;span class=&#34;s2&#34;&gt;&amp;#34;重构用户模块的权限校验逻辑&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;h2 id=&#34;-claudemd-项目记忆&#34;&gt;📁 CLAUDE.md 项目记忆
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; 是 Claude Code 的&lt;strong&gt;项目级记忆文件&lt;/strong&gt;，相当于给模型的一份“新员工入职手册”。每次会话开始时，它的内容会自动注入到上下文。&lt;/p&gt;
&lt;h3 id=&#34;-分层记忆&#34;&gt;🗂️ 分层记忆
&lt;/h3&gt;&lt;p&gt;记忆文件分三层：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;根目录的 &lt;code&gt;CLAUDE.md&lt;/code&gt;：项目级通用规则&lt;/li&gt;
&lt;li&gt;子目录的 &lt;code&gt;CLAUDE.md&lt;/code&gt;：模块级特殊约定（模型就近加载）&lt;/li&gt;
&lt;li&gt;全局的 &lt;code&gt;~/.claude/CLAUDE.md&lt;/code&gt;：个人偏好（跨项目生效）&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;my-project/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── CLAUDE.md              # 项目级
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── pkg/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   └── CLAUDE.md          # 公共库约定
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── internal/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   └── service/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│       └── CLAUDE.md      # 业务层特殊规范
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;-记忆文件的最佳实践&#34;&gt;🧩 记忆文件的最佳实践
&lt;/h3&gt;&lt;h4 id=&#34;-复利工程&#34;&gt;💰 复利工程
&lt;/h4&gt;&lt;p&gt;几乎每个教程都会提到，&lt;code&gt;CLAUDE.md&lt;/code&gt; ，但多数人把它写成了一篇又臭又长的说明文档，塞满了废话
Anthropic 内部团队分享过，他们认为 &lt;code&gt;CLAUDE.md&lt;/code&gt; 最佳实践是：每次Claude犯了一个错误，都要记录在 &lt;code&gt;CLAUDE.md&lt;/code&gt; 中。不是人工维护，而是模型自己记录。每次纠正错误，最后加一句&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;把这个教训更新到 `CLAUDE.md` 中，确保你以后不会再犯
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Claude 写给自己看的建议，它自己最明白如果遵守。&lt;/p&gt;
&lt;h4 id=&#34;-定期更新瘦身&#34;&gt;🧹 定期更新瘦身
&lt;/h4&gt;&lt;p&gt;Claude.md要定期瘦身。写了三个月，其中可能有很多过时的规则，可以隔几周让Claude帮你review一篇，删除掉不再使用的规则。保持精简。这个文件每个会话都会加载，越短越好。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;保持简洁&lt;/strong&gt;：只写“必须知道”的东西，过长的 &lt;code&gt;CLAUDE.md&lt;/code&gt; 会挤占 Token&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分模块组织&lt;/strong&gt;：用清晰的二级标题区分“构建命令”、“代码规范”、“禁止事项”&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;定期更新&lt;/strong&gt;：项目演进时同步更新，否则模型会按过时规则办事&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;避免敏感信息&lt;/strong&gt;：不要把密钥、Token、内部域名写进去&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;-hook-的最佳实践&#34;&gt;⚙️ Hook 的最佳实践
&lt;/h2&gt;&lt;p&gt;CLAUDE.md本质上只是建议，Claude大多数时候遵守，但是他不是强制的。Hooks是强制的。
hook真正的价值在于控制Claude的行为，这是传统工具无法做到的。&lt;/p&gt;
&lt;p&gt;hooks最优价值的用法有以下几点&lt;/p&gt;
&lt;h3 id=&#34;-使用-sessionstart-动态加载-skill&#34;&gt;🎯 使用 SessionStart 动态加载 skill
&lt;/h3&gt;&lt;p&gt;Claude Code 的 skill 系统有一个字符预算，默认是上下文窗口的 2%（大约 16,000 字符）。所有 skill 的描述信息需要塞进这个预算里，Claude 才知道有哪些 skill 可以用。当你装的 skill 越来越多，超出预算的 skill 就会被静默丢弃——你以为装了，其实 Claude 根本看不见。跑 /context 可以看到被排除的 skill 有哪些。&lt;/p&gt;
&lt;p&gt;解决方案:不要一股脑把所有 skill 都装上，用 SessionStart hook 根据当前项目的技术栈动态挂载。&lt;/p&gt;
&lt;p&gt;这样你可以在 ~/.claude/skill-library/ 里攒几十个 skill，但每个项目启动时只挂载真正用得上的那几个。字符预算花在刀刃上，不会因为装了一堆 Python skill 把你 React 项目里急需的前端 skill 给挤掉了。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-并行工作&#34;&gt;🌀 并行工作
&lt;/h2&gt;&lt;p&gt;先说一个反直觉的情况：Anthropic 内部团队分享过，他们认为Claude Code 最大的生产力提升来自同时开3-5个会话并行干活&lt;/p&gt;
&lt;p&gt;具体操作是用git worktree。你可以直接在命令行输入&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude --worktree
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;它会自动帮你创建一个隔离的工作目录，在里面开一个全新的会话。加上&amp;ndash;tmux参数，会自动在tmux中打开一个新的窗口。&lt;/p&gt;
&lt;h2 id=&#34;举一个实际场景你同时要改一个api的逻辑修复一个前端bug写一个单元测试以前只能排队干现在使用三个worktree并行工作每个里面都有一个claude在干活&#34;&gt;举一个实际场景:你同时要改一个API的逻辑，修复一个前端bug，写一个单元测试。以前只能排队干，现在使用三个worktree并行工作。每个里面都有一个Claude在干活
&lt;/h2&gt;&lt;h2 id=&#34;-验证能力&#34;&gt;✅ 验证能力
&lt;/h2&gt;&lt;p&gt;Anthropic 官方 power user tips 里面，加粗标注了一句话：如果你只学一个技巧，请学这个——给 Claude 一种验证自己输出的方式。
道理很简单：如果 Claude 能自己跑测试、自己检查结果，它就能自己迭代到正确为止。你只需要把验证手段告诉它。&lt;/p&gt;
&lt;p&gt;做后端？让它跑完代码之后自动跑测试。做前端？装 Chrome 扩展。这个扩展的价值被严重低估了——想想看，你让一个工程师写网页但不给他浏览器用，能写出好东西吗？装了扩展之后，Claude 能看到页面长什么样，能自己迭代到视觉效果满意为止。&lt;/p&gt;
&lt;p&gt;Desktop 版本内置了一个浏览器，能自动启动和测试 Web 服务器。如果你在 CLI 或 VS Code 里工作，用 Chrome 扩展也能达到类似效果。&lt;/p&gt;
&lt;p&gt;还有个 /simplify 命令，在改完代码之后跑一下，它会启动多个并行 agent，从代码复用、质量、效率、规范合规几个维度同时审查你刚改的代码。一个命令完成一轮 code review。&lt;/p&gt;
&lt;p&gt;更高阶的验证方式：让 Claude 自己质疑自己。做完研究或分析之后，告诉它：&lt;/p&gt;
&lt;h2 id=&#34;-subagents-分工协作&#34;&gt;🤖 Subagents 分工协作
&lt;/h2&gt;&lt;p&gt;当一个任务涉及多个领域（前端 + 后端 + 数据库 + 测试）时，可以让 Claude Code 启动&lt;strong&gt;多个 Subagent&lt;/strong&gt; 并行处理：Subagent 的本质是上下文隔离。主 agent 处理核心逻辑，子 agent 负责具体的子任务，做完把结果交回来。主 agent 的上下文窗口保持干净，不会被大量细节信息污染。&lt;/p&gt;
&lt;p&gt;最直接的用法：在你的 prompt 后面加一句 &amp;ldquo;use subagents&amp;rdquo;，Claude 就会自动把任务拆分成多个子任务并行处理。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 让模型自主决定是否拆 Subagent&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude &lt;span class=&#34;s2&#34;&gt;&amp;#34;为这个新功能补全前后端实现、数据库迁移脚本和单测，
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;        可以拆成多个 subagent 并行执行&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;你也可以精细控制。在 .claude/agents/ 目录下创建 .md 文件来定义专属 agent：每个 agent 可以配置独立的名称、颜色、可用工具、权限模式、甚至使用不同的模型。跑 /agents 就能看到管理界面。&lt;/p&gt;
&lt;p&gt;一个实战场景：PR 提交后，自动触发一组 agent，分别检查逻辑错误、安全漏洞、性能回退，然后各自贴出 inline 评论。Anthropic 内部就是这么搞的——代码产出上去了，review 反而成了瓶颈，于是他们把 review 也自动化了。&lt;/p&gt;
&lt;p&gt;还有一种玩法叫 worktree agent。在 agent 的 frontmatter 里加上 isolation: worktree：&lt;/p&gt;
&lt;p&gt;然后跟 Claude 说：&amp;ldquo;把所有同步 IO 迁移到异步。分成 10 批，启动 10 个带 worktree 隔离的并行 agent。每个 agent 独立测试自己的修改，测试通过后自动提 PR。&amp;rdquo;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;# .claude/agents/worktree-worker.md
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: worktree-worker
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;model: haiku
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;isolation: worktree
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;10 个 agent 同时在 10 个隔离目录里干活，互不干扰。大规模重构从噩梦变成了一杯咖啡的事。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-mcp-与扩展能力&#34;&gt;🔌 MCP 与扩展能力
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;MCP（Model Context Protocol）&lt;/strong&gt; 是 Claude Code 连接外部工具和数据源的标准协议。通过 MCP，模型可以读写数据库、查询 GitHub、调用内部 API、操作 Figma 等。&lt;/p&gt;
&lt;p&gt;常见的高频 MCP 服务器：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;文件系统&lt;/strong&gt;：跨目录读取项目文档&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub&lt;/strong&gt;：查看 PR、Issue、Code Review&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PostgreSQL / MySQL&lt;/strong&gt;：直接查询开发库&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Figma&lt;/strong&gt;：读取设计稿&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Slack / Notion&lt;/strong&gt;：读取团队知识库&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 添加一个 MCP 服务器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude mcp add postgres &lt;span class=&#34;s2&#34;&gt;&amp;#34;postgresql://user:pass@localhost:5432/mydb&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 列出已配置的 MCP 服务器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude mcp list
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 在对话中使用 MCP 工具&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude &lt;span class=&#34;s2&#34;&gt;&amp;#34;查一下 users 表里最近 7 天注册量最高的 10 个城市&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;安全提示：MCP 服务器拥有真实的数据访问权限，&lt;strong&gt;仅添加你信任的服务器&lt;/strong&gt;，并在生产库中谨慎使用。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-常见陷阱与最佳实践&#34;&gt;⚠️ 常见陷阱与最佳实践
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;陷阱&lt;/th&gt;
					&lt;th&gt;表现&lt;/th&gt;
					&lt;th&gt;建议&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;上下文过载&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;模型开始“失忆”，理解错需求&lt;/td&gt;
					&lt;td&gt;用 &lt;code&gt;/compact&lt;/code&gt; 压缩，定期 &lt;code&gt;/clear&lt;/code&gt; 开启新对话&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;指令过宽&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;模型改了不该改的文件&lt;/td&gt;
					&lt;td&gt;任务要具体，限定文件范围；先 Plan 再执行&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;盲目信任&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;模型生成了看起来对、实际有 bug 的代码&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;必须 review&lt;/strong&gt;，跑测试；不要跳过这一步&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;忽视 Git&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;改动后无法回滚&lt;/td&gt;
					&lt;td&gt;重要操作前先 &lt;code&gt;git commit&lt;/code&gt; 留个回滚点&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;MCP 误用&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;模型意外删了生产数据&lt;/td&gt;
					&lt;td&gt;MCP 服务器只连开发环境，生产操作走人工&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;忽略 CLAUDE.md&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;模型每次都“重新学”规范&lt;/td&gt;
					&lt;td&gt;团队约定写进 &lt;code&gt;CLAUDE.md&lt;/code&gt;，让规则自动生效&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;三条黄金法则：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;小步快跑&lt;/strong&gt;：一次只让模型做一件事，做完 review 后再继续&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;先 Plan 后动手&lt;/strong&gt;：复杂任务先让模型出方案，确认后再执行&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Git 是安全网&lt;/strong&gt;：任何重要改动前先 commit，模型搞砸了随时回滚&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-总结&#34;&gt;📝 总结
&lt;/h2&gt;&lt;p&gt;Claude Code 的核心价值，是把 AI 从“代码生成器”升级为“能独立完成任务的工程协作者”。要真正用好它，关键在于三件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;清晰的项目记忆&lt;/strong&gt;：写好 &lt;code&gt;CLAUDE.md&lt;/code&gt;，把团队的隐性规则显性化&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;合适的任务边界&lt;/strong&gt;：把大任务拆成可验收的小任务，先 Plan 再执行&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;工程化的安全网&lt;/strong&gt;：Git、MCP 权限、Code Review，缺一不可&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;当你把 Claude Code 当作一个“需要规范、需要 review、需要边界”的同事来对待，而不是一个“无所不能的魔法”，它才能真正稳定地提升你的开发效率。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;一句话总结：&lt;strong&gt;Claude Code 不会取代工程师，但会用 Claude Code 的工程师，会取代不会用的人。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;参考资料：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://code.claude.com/docs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Claude Code 官方文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://code.claude.com/docs/zh-CN/overview&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Claude Code 官方文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://modelcontextprotocol.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Model Context Protocol 官方仓库&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/engineering/building-effective-agents&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic 工程博客：Building effective agents&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Superpowers与OpenSpec的配合使用</title>
        <link>https://Tyritic.github.io/p/superpowers%E4%B8%8Eopenspec%E7%9A%84%E9%85%8D%E5%90%88%E4%BD%BF%E7%94%A8/</link>
        <pubDate>Thu, 25 Jun 2026 23:33:15 +0800</pubDate>
        
        <guid>https://Tyritic.github.io/p/superpowers%E4%B8%8Eopenspec%E7%9A%84%E9%85%8D%E5%90%88%E4%BD%BF%E7%94%A8/</guid>
        <description>&lt;h2 id=&#34;-写在前面ai-编程为什么需要两件套&#34;&gt;🧠 写在前面：AI 编程为什么需要&amp;quot;两件套&amp;quot;
&lt;/h2&gt;&lt;p&gt;2024 年到 2026 年，AI 编程助手的能力突飞猛进——几百行代码随手就能写出来。但只要真正把 Claude Code、Cursor、Copilot 之类工具放进真实项目里，你大概率会撞上这几面墙：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;需求漂移&lt;/strong&gt;：你说&amp;quot;做个登录功能&amp;quot;，AI 心领神会地写出一整套 OAuth；你要的其实只是手机号 + 验证码。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缺乏流程&lt;/strong&gt;：AI 不会主动问&amp;quot;为什么&amp;quot;，拿到需求就开干，写完也不知道它按什么逻辑写的。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;质量不稳&lt;/strong&gt;：今天生成的好，明天生成的差；改一个 Bug 引入三个新 Bug。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不可追溯&lt;/strong&gt;：改了很多版，没人记得为什么改；后来人不敢动这段代码。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些问题的本质是：&lt;strong&gt;AI 默认模式是&amp;quot;尽力完成当前指令&amp;quot;，而不是&amp;quot;遵循一套严谨的工程流程&amp;quot;&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;社区给出的答案是两个相互补位的工具：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OpenSpec&lt;/strong&gt;：管&amp;quot;做什么&amp;quot;——把需求变成可审查、可追溯的规范文档。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Superpowers&lt;/strong&gt;：管&amp;quot;怎么做&amp;quot;——强制 AI 走完&amp;quot;需求分析 → 制定计划 → TDD → 代码审查 → 验证&amp;quot;的工程流程。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一个管契约，一个管纪律。这两件套组合起来，被不少开发者称为 AI 编程的&amp;quot;黄金搭档&amp;quot;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-openspec给-ai-立一份需求契约&#34;&gt;🧩 OpenSpec：给 AI 立一份&amp;quot;需求契约&amp;quot;
&lt;/h2&gt;&lt;h3 id=&#34;11-它是什么&#34;&gt;1.1 它是什么
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Fission-AI/OpenSpec&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenSpec&lt;/a&gt; 是由 &lt;a class=&#34;link&#34; href=&#34;https://openspec.dev/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Fission-AI&lt;/a&gt; 开源的 &lt;strong&gt;Spec-Driven Development（SDD）框架 + CLI 工具&lt;/strong&gt;，核心口号是 &lt;strong&gt;&amp;ldquo;Align before code&amp;rdquo;（先对齐规格，再写代码）&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;它的形态很轻量：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一组本地 Markdown 文档（&lt;code&gt;openspec/specs/&lt;/code&gt;、&lt;code&gt;openspec/changes/&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;一组斜杠命令（&lt;code&gt;/opsx:propose&lt;/code&gt;、&lt;code&gt;/opsx:apply&lt;/code&gt;、&lt;code&gt;/opsx:archive&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;一个 npm 包：&lt;code&gt;@fission-ai/openspec&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;支持 25+ AI 工具，包括 Claude Code、Cursor、Codex、GitHub Copilot、Windsurf、Gemini CLI、Cline、Trae 等。&lt;/p&gt;
&lt;h3 id=&#34;12-核心设计双文件夹模型&#34;&gt;1.2 核心设计：双文件夹模型
&lt;/h3&gt;&lt;p&gt;OpenSpec 在项目根目录的 &lt;code&gt;openspec/&lt;/code&gt; 下维护两套内容：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openspec/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── specs/    # 系统当前生效的规范（Source of Truth，事实来源）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── changes/  # 正在进行的变更提案（每个功能一个子目录）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;每次新功能都在 &lt;code&gt;changes/&amp;lt;name&amp;gt;/&lt;/code&gt; 下开一个独立目录，里面包含：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;文件&lt;/th&gt;
					&lt;th&gt;作用&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;proposal.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;为什么要做、改动范围&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;design.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;技术方案、关键决策&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;specs/&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;需求与场景的 delta（差异清单）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;tasks.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;实施任务的 checkbox 清单&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;/opsx:archive&lt;/code&gt; 完成后，规范会自动合并到 &lt;code&gt;specs/&lt;/code&gt;，作为活文档继续维护。&lt;/p&gt;
&lt;h3 id=&#34;13-三步走的核心命令core-模式&#34;&gt;1.3 三步走的核心命令（Core 模式）
&lt;/h3&gt;&lt;p&gt;安装完默认进入 Core 模式，命令精简到三个：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/opsx:propose  →  /opsx:apply  →  /opsx:archive
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;/opsx:propose &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/strong&gt;：一键生成 &lt;code&gt;proposal.md&lt;/code&gt; + &lt;code&gt;design.md&lt;/code&gt; + &lt;code&gt;specs/&lt;/code&gt; + &lt;code&gt;tasks.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;/opsx:apply&lt;/code&gt;&lt;/strong&gt;：按 &lt;code&gt;tasks.md&lt;/code&gt; 逐项实现&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;/opsx:archive&lt;/code&gt;&lt;/strong&gt;：归档完成的变更&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;需求不清时还有 &lt;code&gt;/opsx:explore&lt;/code&gt; 兜底——不产生产物，只梳理思路。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-superpowers给-ai-装一个工程化大脑&#34;&gt;🛠️ Superpowers：给 AI 装一个&amp;quot;工程化大脑&amp;quot;
&lt;/h2&gt;&lt;h3 id=&#34;21-它是什么&#34;&gt;2.1 它是什么
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/obra/superpowers&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Superpowers&lt;/a&gt; 是 GitHub 用户 &lt;a class=&#34;link&#34; href=&#34;https://github.com/obra&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;obra&lt;/code&gt;&lt;/a&gt; 开源的一个 &lt;strong&gt;Claude Skill 框架 + 软件开发方法论&lt;/strong&gt;。它由一组 Markdown 格式的 &lt;code&gt;SKILL.md&lt;/code&gt; 文件组成，被 Claude Code / Codex / Cursor / Gemini CLI 等工具读取并执行。&lt;/p&gt;
&lt;p&gt;它的设计哲学是：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;不是让 AI 多会写代码，而是尽量让它少在错误的时机写代码。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;22-八个核心技能skills&#34;&gt;2.2 八个核心技能（Skills）
&lt;/h3&gt;&lt;p&gt;Superpowers 把开发流程拆成 8 个可触发的技能，每个对应一个环节：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;技能&lt;/th&gt;
					&lt;th&gt;触发时机&lt;/th&gt;
					&lt;th&gt;白话解释&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;brainstorming&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;写代码前&lt;/td&gt;
					&lt;td&gt;像产品经理一样追问，把模糊需求变清晰&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;using-git-worktrees&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;设计批准后&lt;/td&gt;
					&lt;td&gt;在新分支建隔离工作区&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;writing-plans&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;设计通过后&lt;/td&gt;
					&lt;td&gt;把大任务拆成 2~5 分钟的小步骤&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;subagent-driven-development&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;计划完成后&lt;/td&gt;
					&lt;td&gt;派多个子代理并行干活、互相审查&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;test-driven-development&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;实现过程中&lt;/td&gt;
					&lt;td&gt;强制红-绿-重构循环&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;systematic-debugging&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;调试阶段&lt;/td&gt;
					&lt;td&gt;4 步根因诊断法&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;requesting-code-review&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;任务之间&lt;/td&gt;
					&lt;td&gt;写完代码自动找人审查&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;verification-before-completion&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;收尾阶段&lt;/td&gt;
					&lt;td&gt;交活前全部跑一遍&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;这套技能的最大特点是 &lt;strong&gt;按上下文自动触发&lt;/strong&gt;——你不需要手动敲命令，AI 看到合适的时机就会自己调用。&lt;/p&gt;
&lt;h3 id=&#34;23-安装以-claude-code-为例&#34;&gt;2.3 安装（以 Claude Code 为例）
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 注册市场&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/plugin marketplace add obra/superpowers-marketplace
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 安装插件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/plugin install superpowers@superpowers-marketplace
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;装完后开一个新会话，说一句&amp;quot;帮我做一个登录功能&amp;quot;，Superpowers 就会自动激活 &lt;code&gt;brainstorming&lt;/code&gt; 技能开始追问。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-两者的协同关系契约--纪律&#34;&gt;🔄 两者的协同关系：契约 + 纪律
&lt;/h2&gt;&lt;p&gt;把两个工具叠在一起看，它们的边界其实非常清楚：&lt;/p&gt;
&lt;div align=&#34;center&#34;&gt;
  &lt;img src=&#34;workflow.png&#34; alt=&#34;OpenSpec 与 Superpowers 协同关系图&#34; width=&#34;82%&#34;&gt;
&lt;/div&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;维度&lt;/th&gt;
					&lt;th&gt;Superpowers&lt;/th&gt;
					&lt;th&gt;OpenSpec&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;定位&lt;/td&gt;
					&lt;td&gt;AI 的执行纪律（怎么做）&lt;/td&gt;
					&lt;td&gt;项目的规格说明书（做什么）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;解决问题&lt;/td&gt;
					&lt;td&gt;防止跳过设计、保证编码质量&lt;/td&gt;
					&lt;td&gt;防止需求遗忘、保证规范可追溯&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;核心产物&lt;/td&gt;
					&lt;td&gt;对话决策、实施计划、代码&lt;/td&gt;
					&lt;td&gt;proposal.md、specs/、tasks.md&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;工作流&lt;/td&gt;
					&lt;td&gt;单任务高质量闭环&lt;/td&gt;
					&lt;td&gt;长期增量变更管理&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;状态持久&lt;/td&gt;
					&lt;td&gt;依赖对话历史&lt;/td&gt;
					&lt;td&gt;基于文件系统，跨会话持久&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;擅长场景&lt;/td&gt;
					&lt;td&gt;执行阶段&lt;/td&gt;
					&lt;td&gt;设计阶段&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;一句话总结：OpenSpec 让 AI 写代码前先签&amp;quot;合同&amp;quot;，锁定设计（做什么），Superpowers 让 AI 写代码时按&amp;quot;工艺&amp;quot;，保障执行（怎么做）&lt;/strong&gt;。两者合起来，AI 才真正像个能交付的高级工程师，而不是&amp;quot;按行计费&amp;quot;的代码打字机。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;单独 OpenSpec：有规范但执行可能跳步，缺少 TDD 纪律。&lt;/li&gt;
&lt;li&gt;单独 Superpowers：有纪律但设计共识仅存于对话，无法持久化。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;组合价值：OpenSpec 将设计固化为文件资产，Superpowers 在执行中强制 TDD、调试、审查等纪律。&lt;/p&gt;
&lt;h2 id=&#34;方案一superpowers-openspec-team-skills&#34;&gt;方案一:superpowers-openspec-team-skills
&lt;/h2&gt;&lt;p&gt;superpowers-openspec-team-skills 是 github上的一个解决方案，用于管理 OpenSpec 和 Superpowers 项目的开发流程。官方仓库地址：&lt;a class=&#34;link&#34; href=&#34;https://github.com/SYZ-Coder/superpowers-openspec-team-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;superpowers-openspec-team-skills&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;具体使用&#34;&gt;具体使用
&lt;/h3&gt;&lt;p&gt;1）安装&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g superpowers-openspec-team
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;2）项目初始化&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sot init /path/to/your/project
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;3）工作流
选择具体的工作流&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;superpowers-openspec-superpowers：先用 Superpowers 把问题想透，再用 OpenSpec 把事实锁准，最后回到 Superpowers 把实现、验证和归档做稳&lt;/li&gt;
&lt;li&gt;openspec-superpowers：先完成 OpenSpec 变更产物，再交给 Superpowers 继续实现、验证和归档&lt;/li&gt;
&lt;li&gt;superpowers-feature：只使用 Superpowers 的设计、计划、TDD、验证纪律(等价于单独使用superpowers)&lt;/li&gt;
&lt;li&gt;superpowers-learning：不是主交付流程，而是其他 workflow 完成后的增强收尾层，用来更新项目记忆、沉淀经验，并让下一次会话可以直接接上当前成果&lt;/li&gt;
&lt;li&gt;openspec-feature：先完成 OpenSpec proposal、design、specs、tasks，再进入实现(等价于单独使用Superpowers)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些 workflow 只应在以下情况启用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用户明确点名某个 workflow&lt;/li&gt;
&lt;li&gt;用户明确要求按这种 workflow 风格执行&lt;/li&gt;
&lt;li&gt;仓库策略明确要求使用该 workflow&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它们不应该成为 AI 工具的默认后台流程。&lt;/p&gt;
&lt;p&gt;示例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请使用 $superpowers-openspec-superpowers-workflow 处理这个功能。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;4）预计产物
1.  docs/superpowers/specs/ 下的 Superpowers 设计草稿
2.  openspec/changes/&lt;change-name&gt;/ 下的 proposal、design、specs、tasks
3.  docs/superpowers/plans/ 下的实现计划
4.  已验证的代码变更
5.  完成后的 OpenSpec change 归档&lt;/p&gt;
&lt;h3 id=&#34;工作流&#34;&gt;工作流
&lt;/h3&gt;&lt;h4 id=&#34;工作流的选取逻辑&#34;&gt;工作流的选取逻辑
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;想先用 Superpowers 做探索、再用 OpenSpec 锁定、最后回到 Superpowers 执行，用 &lt;code&gt;superpowers-openspec-superpowers&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;想先从 OpenSpec 产物起步，再交给 Superpowers 继续交付，用 &lt;code&gt;openspec-superpowers&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;只想要 Superpowers 工程纪律，不需要 OpenSpec change 产物，用 &lt;code&gt;superpowers-feature&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;工作已经做完，想把这次经验、状态和可复用知识沉淀下来，并让下一次会话直接接上，用 &lt;code&gt;superpowers-learning&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;只想先补齐 OpenSpec 变更文档，用 &lt;code&gt;openspec-feature&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;其中 &lt;code&gt;superpowers-learning&lt;/code&gt; 需要特别注意：它更像其他 workflow 的“增强收尾层”，不是一条替代开发流程的主入口。通常是在 &lt;code&gt;superpowers-feature&lt;/code&gt;、&lt;code&gt;superpowers-openspec-superpowers&lt;/code&gt;、&lt;code&gt;openspec-superpowers&lt;/code&gt; 这类交付型 workflow 完成之后，再用它把本次会话里真正值得长期保留的内容写回 &lt;code&gt;.superpowers-memory/&lt;/code&gt;，包括稳定项目事实、当前状态、简短会话记录，以及后续可沉淀成 skill、checklist 或知识库条目的经验。&lt;/p&gt;
&lt;p&gt;对持续协作的项目，推荐这样串联：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;先运行一个交付型 workflow&lt;/li&gt;
&lt;li&gt;完成实现与验证&lt;/li&gt;
&lt;li&gt;再运行 &lt;code&gt;superpowers-learning&lt;/code&gt;，把这次工作的稳定事实、当前状态、会话记录和可复用经验写回项目记忆&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;openspec-superpowers-工作流&#34;&gt;openspec-superpowers 工作流
&lt;/h4&gt;&lt;p&gt;openspec-superpowers-workflow 是完整功能交付的总入口。它把 Superpowers 的探索、设计确认、实现计划、TDD、验证纪律，与 OpenSpec 的 proposal、design、spec、tasks 产物组合在一起。适合用于“既要想清楚、又要留下正式规范记录、最后还要可靠实现”的功能开发。&lt;/p&gt;
&lt;p&gt;适用场景&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用户明确要求使用 OpenSpec + Superpowers。&lt;/li&gt;
&lt;li&gt;功能不是简单改动，需要澄清、方案、规范、任务、实现、测试和验证。&lt;/li&gt;
&lt;li&gt;仓库或团队要求行为变更前先补齐 OpenSpec 产物。&lt;/li&gt;
&lt;li&gt;希望用一个入口统一协调从想法到验证完成的完整流程。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;工作流顺序&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;先用 Superpowers 探索上下文、澄清需求、比较方案，并确认设计方向。&lt;/li&gt;
&lt;li&gt;再用 OpenSpec 创建或补齐 proposal.md、design.md、spec delta 和 tasks.md。&lt;/li&gt;
&lt;li&gt;让用户确认生成出来的 OpenSpec tasks.md。&lt;/li&gt;
&lt;li&gt;回到 Superpowers 编写实现计划，按 TDD 执行开发，并运行新的验证。&lt;/li&gt;
&lt;li&gt;如果项目流程需要，再进入后续审查或归档步骤。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果本次工作还需要沉淀项目记忆或可复用经验，可以在交付完成后继续使用 superpowers-learning-workflow。&lt;/p&gt;
&lt;p&gt;示例提示词&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请使用 $openspec-superpowers-workflow 处理这个功能。在 OpenSpec 的 tasks 生成后，先展示给我，并等待我确认后再进入实现。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id=&#34;superpowers-openspec-superpowers-工作流&#34;&gt;superpowers-openspec-superpowers 工作流
&lt;/h4&gt;&lt;p&gt;superpowers-openspec-superpowers-workflow 适合那些不想靠猜、不想抢跑、也不想把复杂功能做着做着做乱掉的团队。&lt;/p&gt;
&lt;p&gt;工作流顺序&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;先用 Superpowers 探索上下文、澄清需求、比较方案，并确认设计方向&lt;/li&gt;
&lt;li&gt;再用 OpenSpec 生成 proposal.md、design.md、specs/&amp;hellip;/spec.md、tasks.md&lt;/li&gt;
&lt;li&gt;展示并确认生成出来的 tasks.md&lt;/li&gt;
&lt;li&gt;tasks.md 确认后，先暂停并询问是否继续执行开发&lt;/li&gt;
&lt;li&gt;回到 Superpowers，写实现计划，按 TDD 执行实现，并进行 fresh verification&lt;/li&gt;
&lt;li&gt;开发与验证完成后，再暂停并询问是否继续代码审查&lt;/li&gt;
&lt;li&gt;如果代码、测试和规格已经对齐，再归档 OpenSpec change&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果这次工作还产生了值得长期保留的经验，建议在归档后继续使用 superpowers-learning-workflow 更新项目记忆。&lt;/p&gt;
&lt;p&gt;示例提示词&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请使用 $superpowers-openspec-superpowers-workflow 处理这个功能。在 OpenSpec 的 tasks 生成后，先展示给我，并等待我确认后再进入实现。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id=&#34;superpowers-feature-工作流&#34;&gt;superpowers-feature 工作流
&lt;/h4&gt;&lt;p&gt;superpowers-feature-workflow 覆盖 Superpowers 侧的功能交付流程：需求探索、设计确认、实现计划、worktree、TDD 和最终验证。&lt;/p&gt;
&lt;p&gt;它不会创建 OpenSpec 产物。适合只需要严谨实现流程，但不需要正式 OpenSpec change 记录的场景。&lt;/p&gt;
&lt;h4 id=&#34;openspec-feature-工作流&#34;&gt;openspec-feature 工作流
&lt;/h4&gt;&lt;p&gt;openspec-feature-workflow 用于创建并补齐实现前需要的 OpenSpec change 产物：proposal、design、specs 和 tasks。
它专注于“把变更正式化”。它本身不负责 TDD、worktree 或实现后的验证流程。&lt;/p&gt;
&lt;h4 id=&#34;superpowers-learning-工作流&#34;&gt;superpowers-learning 工作流
&lt;/h4&gt;&lt;p&gt;superpowers-learning-workflow 是一个在重要工作结束后使用的反思型 workflow，用来把当前会话真正值得保留下来的内容沉淀到仓库里。
适合接在这些 workflow 后面使用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;superpowers-feature-workflow&lt;/li&gt;
&lt;li&gt;superpowers-openspec-superpowers-workflow&lt;/li&gt;
&lt;li&gt;openspec-superpowers-workflow
它会帮助团队把最近的工作整理成四类内容：&lt;/li&gt;
&lt;li&gt;稳定的项目事实&lt;/li&gt;
&lt;li&gt;当前工作状态&lt;/li&gt;
&lt;li&gt;简短的会话记录&lt;/li&gt;
&lt;li&gt;未来可能沉淀成 workflow、skill 或 checklist 的可复用经验&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;-标准-sop六阶段配合流程&#34;&gt;🚀 标准 SOP：六阶段配合流程
&lt;/h2&gt;&lt;p&gt;下面给出一套经过社区验证的&amp;quot;六阶段标准操作流程&amp;quot;（SOP），把两个工具的指令串成一条完整的链路。&lt;/p&gt;
&lt;div align=&#34;center&#34;&gt;
  &lt;img src=&#34;sop-flow.png&#34; alt=&#34;六阶段 SOP 流程&#34; width=&#34;88%&#34;&gt;
&lt;/div&gt;
&lt;h3 id=&#34;阶段-1创建分支&#34;&gt;阶段 1：创建分支
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git checkout -b feature/user-registration
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;保持 &lt;code&gt;main&lt;/code&gt; 分支干净，所有变更在独立分支进行。&lt;/p&gt;
&lt;h3 id=&#34;阶段-2提案定义openspec-主导&#34;&gt;阶段 2：提案定义（OpenSpec 主导）
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/opsx:propose user-registration-with-verification
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;AI 会在 &lt;code&gt;openspec/changes/user-registration-with-verification/&lt;/code&gt; 下生成完整文档结构：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openspec/changes/user-registration-with-verification/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── proposal.md   ← 变更动机与范围
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── design.md     ← 技术方案
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── specs/        ← 需求与场景
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── tasks.md      ← 实施任务清单
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;人工必做&lt;/strong&gt;：仔细 review &lt;code&gt;proposal.md&lt;/code&gt;，确认需求方向正确后再继续。&lt;/p&gt;
&lt;h3 id=&#34;阶段-3深度设计superpowers-主导&#34;&gt;阶段 3：深度设计（Superpowers 主导）
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/superpowers:brainstorming &amp;#34;用户注册功能的具体设计&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Superpowers 不会直接动代码，而是启动苏格拉底式追问，把 OpenSpec proposal 里没写清楚的边界条件、异常分支、验收标准再问一通，并产出设计问答记录。&lt;/p&gt;
&lt;h3 id=&#34;阶段-4计划拆分superpowers-主导&#34;&gt;阶段 4：计划拆分（Superpowers 主导）
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/superpowers:writing-plans
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;把设计拆成 2~5 分钟就能完成的小任务，每个任务写明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;精确的文件路径&lt;/li&gt;
&lt;li&gt;完整的代码片段&lt;/li&gt;
&lt;li&gt;验证步骤（如何知道这一步做对了）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;输出物是一份&lt;strong&gt;给&amp;quot;热情但无判断力的初级工程师&amp;quot;也能照着做&lt;/strong&gt;的计划文档。&lt;/p&gt;
&lt;h3 id=&#34;阶段-5tdd-执行superpowers--openspec-共同主导&#34;&gt;阶段 5：TDD 执行（Superpowers + OpenSpec 共同主导）
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/superpowers:subagent-driven-development
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 或
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/opsx:apply
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;两种用法可选：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;想用子代理并行&lt;/strong&gt;：&lt;code&gt;/superpowers:subagent-driven-development&lt;/code&gt;，Superpowers 会为每个任务派一个全新子代理，并通过两阶段审查（规范符合性 + 代码质量）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;想沿用 OpenSpec 节奏&lt;/strong&gt;：&lt;code&gt;/opsx:apply&lt;/code&gt;，AI 按 &lt;code&gt;tasks.md&lt;/code&gt; 逐项打勾实现。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;无论哪种，&lt;strong&gt;TDD 都不能跳过&lt;/strong&gt;——先写测试，看着它失败；再写最小代码让它通过；再重构。Superpowers 的 &lt;code&gt;test-driven-development&lt;/code&gt; 技能会强制执行这条纪律。&lt;/p&gt;
&lt;h3 id=&#34;阶段-6归档收尾&#34;&gt;阶段 6：归档收尾
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/opsx:archive user-registration-with-verification
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;实现完成后，OpenSpec 会把 &lt;code&gt;changes/&lt;/code&gt; 下的产物归档，并把规范 delta 合并到 &lt;code&gt;openspec/specs/&lt;/code&gt; 中。这步会留下完整的审计轨迹，方便后续人员回看&amp;quot;这个功能当时是怎么设计的&amp;quot;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-实操示例用户注册功能&#34;&gt;🧪 实操示例：用户注册功能
&lt;/h2&gt;&lt;p&gt;下面用一个最小例子把整套流程跑通。&lt;/p&gt;
&lt;h3 id=&#34;step-1初始化项目&#34;&gt;Step 1：初始化项目
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkdir demo-app &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; demo-app
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm init -y
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openspec init --tools claude
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;按提示选择 Claude Code，确认后 &lt;code&gt;openspec/&lt;/code&gt; 与 &lt;code&gt;.claude/&lt;/code&gt; 目录会一并生成。&lt;/p&gt;
&lt;h3 id=&#34;step-2提案&#34;&gt;Step 2：提案
&lt;/h3&gt;&lt;p&gt;在 Claude Code 对话框输入：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/opsx:propose user-registration-with-email-verification
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;需求描述示例：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;添加用户注册功能：邮箱 + 密码，注册成功后发送验证邮件，72 小时内未验证则账号失效。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;OpenSpec 会输出 4 个文档，其中 &lt;code&gt;tasks.md&lt;/code&gt; 大致长这样：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 1. 数据模型
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; 1.1 创建 User 模型（email、passwordHash、status、emailVerifiedAt）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; 1.2 添加数据库迁移脚本
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 2. 接口实现
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; 2.1 POST /api/register 入参校验
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; 2.2 密码哈希存储（bcrypt）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; 2.3 发送验证邮件（含 72h 过期 token）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 3. 测试
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; 3.1 单元测试：邮箱格式校验
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;- [ ]&lt;/span&gt; 3.2 集成测试：注册 → 验证 → 登录完整流程
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;step-3触发-superpowers-设计追问&#34;&gt;Step 3：触发 Superpowers 设计追问
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/superpowers:brainstorming &amp;#34;用户注册中的边界条件：邮箱重复怎么办？验证邮件链接重复点击怎么办？&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Superpowers 会把&amp;quot;重复注册&amp;quot;&amp;ldquo;邮件链接过期&amp;quot;&amp;ldquo;重发验证邮件&amp;quot;这些边界条件逐条澄清，并写入设计文档。&lt;/p&gt;
&lt;h3 id=&#34;step-4拆任务并-tdd-执行&#34;&gt;Step 4：拆任务并 TDD 执行
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/superpowers:writing-plans
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/superpowers:test-driven-development
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;接下来 AI 会严格按红-绿-重构循环逐项推进。&lt;code&gt;tasks.md&lt;/code&gt; 里的 checkbox 会一项项被勾掉。&lt;/p&gt;
&lt;h3 id=&#34;step-5归档&#34;&gt;Step 5：归档
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/opsx:archive user-registration-with-email-verification
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;归档成功后 &lt;code&gt;openspec/specs/user/spec.md&lt;/code&gt; 就会出现新的 Requirement / Scenario，整套变更历史可追溯。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-注意事项与最佳实践&#34;&gt;⚠️ 注意事项与最佳实践
&lt;/h2&gt;&lt;h3 id=&#34;命令类型别搞混&#34;&gt;命令类型别搞混
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CLI 命令&lt;/strong&gt;（&lt;code&gt;openspec init&lt;/code&gt;、&lt;code&gt;git checkout -b&lt;/code&gt;）：在终端里直接跑。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Skill 命令&lt;/strong&gt;（&lt;code&gt;/opsx:propose&lt;/code&gt;、&lt;code&gt;/superpowers:brainstorming&lt;/code&gt;）：在 AI 对话框里输入，由 AI 自动执行对应流程。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;选对工作模式&#34;&gt;选对工作模式
&lt;/h3&gt;&lt;p&gt;OpenSpec 默认是 &lt;strong&gt;Core 模式&lt;/strong&gt;（4 个命令够用）。如果项目复杂、需要更细的粒度，可以切换到 Expanded 模式：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openspec config profile   &lt;span class=&#34;c1&#34;&gt;# 勾选 new/continue/ff/verify/bulk-archive/onboard&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openspec update           &lt;span class=&#34;c1&#34;&gt;# 让 AI 识别这些新命令&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;模型选型有讲究&#34;&gt;模型选型有讲究
&lt;/h3&gt;&lt;p&gt;OpenSpec 的 &lt;code&gt;propose&lt;/code&gt; 与 Superpowers 的 &lt;code&gt;brainstorming&lt;/code&gt; 都很吃推理能力，建议使用 Opus、GPT-5、Claude Sonnet 4.5 这一档；执行阶段（&lt;code&gt;apply&lt;/code&gt;、TDD）可以用更便宜的模型，&lt;strong&gt;因为有规范文档兜底，弱模型也能稳住&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id=&#34;上下文要保持干净&#34;&gt;上下文要保持干净
&lt;/h3&gt;&lt;p&gt;OpenSpec 的精髓是&amp;quot;规范是上下文&amp;rdquo;。在 &lt;code&gt;/opsx:apply&lt;/code&gt; 之前，建议新开一个干净的对话窗口，让 AI 只能从 &lt;code&gt;specs/&lt;/code&gt; 与 &lt;code&gt;tasks.md&lt;/code&gt; 里读上下文，&lt;strong&gt;避免旧对话污染判断&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id=&#34;变更结束立刻归档&#34;&gt;变更结束立刻归档
&lt;/h3&gt;&lt;p&gt;完成一个变更就 &lt;code&gt;/opsx:archive&lt;/code&gt;，不要堆十几个 &lt;code&gt;changes/&lt;/code&gt; 不归档，否则规范库会越积越乱。&lt;/p&gt;
&lt;h3 id=&#34;两种工具的分工再强调&#34;&gt;两种工具的&amp;quot;分工&amp;quot;再强调
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;阶段&lt;/th&gt;
					&lt;th&gt;谁主导&lt;/th&gt;
					&lt;th&gt;为什么&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;需求对齐&lt;/td&gt;
					&lt;td&gt;OpenSpec&lt;/td&gt;
					&lt;td&gt;需要结构化文档作为契约&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;设计澄清&lt;/td&gt;
					&lt;td&gt;Superpowers&lt;/td&gt;
					&lt;td&gt;需要反复追问，文档很难替代对话&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;计划拆分&lt;/td&gt;
					&lt;td&gt;Superpowers&lt;/td&gt;
					&lt;td&gt;需要按&amp;quot;工程师可执行&amp;quot;粒度拆&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;代码实现&lt;/td&gt;
					&lt;td&gt;两者皆可&lt;/td&gt;
					&lt;td&gt;看团队习惯&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;质量审查&lt;/td&gt;
					&lt;td&gt;Superpowers&lt;/td&gt;
					&lt;td&gt;强制 TDD 与 code-review 闭环&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;变更归档&lt;/td&gt;
					&lt;td&gt;OpenSpec&lt;/td&gt;
					&lt;td&gt;需要把 delta 合并到活文档&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-总结&#34;&gt;📝 总结
&lt;/h2&gt;&lt;p&gt;Superpowers 与 OpenSpec 不是一个二选一的问题，而是 &lt;strong&gt;&amp;ldquo;上规矩 + 下工艺&amp;rdquo;&lt;/strong&gt; 的互补关系：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OpenSpec&lt;/strong&gt; 把&amp;quot;想做什么&amp;quot;变成可审查、可追溯的规范文档，解决&amp;quot;AI 跑偏&amp;quot;的问题。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Superpowers&lt;/strong&gt; 把&amp;quot;应该怎么写&amp;quot;变成强制的工程工作流，解决&amp;quot;AI 偷工减料&amp;quot;的问题。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;两者配合后，AI 不再是一个&amp;quot;需要时刻盯着的实习生&amp;rdquo;，而是一个&lt;strong&gt;按规范交付、按流程实施、按纪律收尾&lt;/strong&gt; 的工程师。比起单打独斗，组合使用至少带来三方面收益：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;可审计&lt;/strong&gt;：每个变更都有 &lt;code&gt;proposal.md&lt;/code&gt;、&lt;code&gt;specs/&lt;/code&gt;、&lt;code&gt;tasks.md&lt;/code&gt; 留痕。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可复用&lt;/strong&gt;：规范合并到 &lt;code&gt;specs/&lt;/code&gt; 后是活文档，新成员 onboarding 直接读 spec 即可。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可规模化&lt;/strong&gt;：多人/多 Agent 协作时，规则在文档里、纪律在 Skill 里，AI 行为是一致的。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h3 id=&#34;参考资料&#34;&gt;参考资料
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;OpenSpec 官方仓库：&lt;a class=&#34;link&#34; href=&#34;https://github.com/Fission-AI/OpenSpec&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/Fission-AI/OpenSpec&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Superpowers 官方仓库：&lt;a class=&#34;link&#34; href=&#34;https://github.com/obra/superpowers&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/obra/superpowers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
