讲义
更新于 2026年7月17日
一、新项目
- 规范先于代码——上来先写 CLAUDE.md / Rules,别急着让 AI 生成
- 四态走一遍——需求→设计→开发→测试,每态都要有文档产出
- Spec 核心人写,边角 AI 补——处理流程自己写,其他让 AI 填
- 任务原子化——大需求先拆碎再喂给 AI,每次只做一个功能点
- 开源技术栈首选——Vue3 + SpringBoot,AI 效果吊打私有栈
- 跑完做架构扫描——12维度合规检查,新项目启动必过一遍
二、老项目
- 先读懂再开发——用 Cursor 或 Claude Code 扫存量代码,把上下文建起来再换工具
- 建 Context 目录——.ai-sdd/context/ 沉淀业务规则、数据模型、架构说明,这是地基
- 需求分级别——复杂跨模块走 Full-SDD,单模块修改走 Lite-SDD,简单改字用 Vibe Coding
- 私有栈别硬刚——先写 common_rule 适# AI Coding SDD 实战讲义(知识高密度版)
适用对象:已经能用 AI 写代码,但发现“能生成”不等于“能交付”的开发者、技术负责人、产品技术一体化人员。
核心目标:把 AI Coding 从一次性提示词技巧,升级为可复用、可审查、可验证、可交接的工程化流程。
0. 总纲:SDD 到底解决什么问题
0.1 一句话定义
SDD(Specification Driven Development)不是“先写一堆文档再开发”,而是用规格文档把 AI 的行为约束在可验证的工程轨道里。
它解决的不是“AI 不会写代码”,而是以下四类真实问题:
- AI 生成快,但很容易在需求、边界、异常、权限、数据一致性上偏航。
- AI 能一次写很多代码,但上下文一长就容易遗忘前提、重复造轮子、改错地方。
- AI 说“完成了”,但缺少可复核证据,无法证明它真的满足需求。
- AI 单体长时间执行时质量会衰减,需要拆任务、设门禁、做交接、换角色审查。
0.2 SDD 的基本闭环
SDD 的最小闭环是:
需求澄清 -> 设计约束 -> 任务拆解 -> 实现执行 -> 测试验证 -> Review 审查 -> 证据交付 -> 规则沉淀
每一步都必须有“可留下来的产物”,否则它只是一次聊天,不是工程流程。
0.3 AI Coding 的核心矛盾
AI 的优势是生成、归纳、迁移和补全;AI 的弱点是边界感、长期一致性、隐含约束、风险意识和自我验收。
所以高质量 AI Coding 的原则不是“多让 AI 做”,而是:
- 人负责意图、边界、关键决策和验收标准。
- AI 负责候选方案、代码实现、文档补全、测试生成和检查执行。
- 脚本负责危险动作、可重复验证和不可绕过的机械门禁。
- 文档负责长期记忆、跨智能体协作和上下文压缩。
1. 新项目:先铺轨,再提速
新项目最大的陷阱是“空白画布效应”:AI 看起来什么都能写,但没有规范、架构和边界时,越快生成,后面越难收口。
1.1 规范先于代码
原始原则:上来先写 CLAUDE.md / Rules,别急着让 AI 生成。
扩展理解:
CLAUDE.md/AGENTS.md不是给人看的 README,而是给智能体加载的行为约束。- 项目早期至少要声明技术栈、目录结构、命名规则、禁止事项、测试要求和交付格式。
- 规范不能只写“代码要优雅”,要写成可检查、可执行、可反问的规则。
推荐结构:
CLAUDE.md
├── 项目目标:这个系统解决什么问题
├── 技术栈:前端、后端、数据库、测试、构建工具
├── 目录约定:哪些代码放在哪里
├── 编码规则:命名、分层、异常、日志、类型、事务
├── 禁止事项:不能引入新依赖、不能改公共接口、不能跳过测试
├── 开发流程:需求确认 -> 实现 -> 测试 -> Review -> 证据
├── 验收格式:每次交付必须给出修改文件、命令、测试结果、风险
└── 文档索引:更细规则去哪里读
高密度要点:
- 规则必须能被 AI 用来“自检”,不能只是价值观口号。
- 根规则文件只放全局铁律,不要把所有细节塞进去。
- 细则按目录下沉:前端、后端、数据库、测试分别维护自己的规则和 checklist。
- 规则要随着错误演化,线上 Bug 和反复犯错都要反向沉淀为规则。
反例:
请帮我搭一个后台管理系统。
更好的输入:
请先不要写代码。请根据以下项目目标生成 CLAUDE.md:
- 技术栈:Vue3 + Element Plus + SpringBoot + MyBatis Plus + PostgreSQL
- 禁止新增未经确认的依赖
- 后端必须分 Controller / Service / Mapper
- 所有新增接口必须包含参数校验、异常处理、基础单元测试
- 每次交付必须附修改文件、执行命令、测试结果和剩余风险
1.2 四态走一遍:需求、设计、开发、测试
原始原则:需求 -> 设计 -> 开发 -> 测试,每态都要有文档产出。
四态不是形式,而是为了让 AI 不在同一个上下文里同时猜需求、猜方案、写代码、补测试。
| 阶段 | 目标 | 人的职责 | AI 的职责 | 必备产物 |
|---|---|---|---|---|
| 需求 | 明确做什么、不做什么 | 定义业务目标、边界、验收 | 补问题、找歧义、整理需求 | requirements.md |
| 设计 | 明确怎么做 | 决策架构、数据流、接口 | 生成方案、比较权衡 | design.md |
| 开发 | 按设计实现 | 审核关键实现路径 | 编码、补文档、局部重构 | diff / commit |
| 测试 | 证明满足需求 | 确认验收标准 | 生成用例、执行测试、总结结果 | test report |
每态最低要求:
- 需求态:必须包含背景、目标、非目标、用户路径、边界条件、验收标准。
- 设计态:必须包含数据结构、接口契约、状态流转、异常处理、安全约束。
- 开发态:必须绑定任务清单,不能自由发挥。
- 测试态:必须证明正常、边界、异常至少三类场景。
关键判断:
如果某个阶段没有产物,就意味着它的知识只存在于对话里;对话越长,风险越高。
1.3 Spec 核心人写,边角 AI 补
原始原则:处理流程自己写,其他让 AI 填。
人必须亲自写的内容:
- 业务目标:为什么要做。
- 关键流程:用户如何完成任务,系统状态如何变化。
- 权限边界:谁能看、谁能改、谁能审批、谁能删除。
- 数据口径:什么是“已完成”“有效”“过期”“失败”。
- 验收标准:怎样才算交付成功。
AI 可以补的内容:
- 文档结构。
- 异常场景枚举。
- 接口字段草案。
- 测试用例扩展。
- 竞品或常见实现模式。
- 风险清单。
推荐 Spec 模板:
# 功能需求:[功能名]
## 背景
[为什么要做,不做会有什么问题]
## 目标
- [目标 1]
- [目标 2]
## 非目标
- [明确不做什么]
## 用户与权限
- 角色 A:可执行...
- 角色 B:只能查看...
## 主流程
1. 用户进入...
2. 系统校验...
3. 用户提交...
4. 系统写入...
5. 返回结果...
## 异常流程
- 参数缺失:
- 权限不足:
- 数据不存在:
- 并发冲突:
## 数据与状态
- 状态枚举:
- 状态迁移:
- 关键字段:
## 验收标准
- Given / When / Then
- 必须通过的测试
- 必须不发生的副作用
1.4 任务原子化
原始原则:大需求先拆碎再喂给 AI,每次只做一个功能点。
AI 最怕两类任务:
- 范围过大:它会偷懒、概括、遗漏边界。
- 边界不清:它会主动发挥、改不该改的地方。
原子任务的判断标准:
- 能用一句话描述完成条件。
- 涉及文件数量有限。
- 可以独立测试。
- 失败后能快速回滚。
- 不需要同时理解多个复杂业务域。
坏任务:
帮我实现订单系统。
好任务拆法:
1. 根据 design.md 创建订单状态枚举,不接入业务逻辑。
2. 实现订单创建接口,只处理参数校验和数据库写入。
3. 实现库存扣减服务,只处理单商品库存扣减。
4. 增加订单创建成功后的库存扣减调用。
5. 为订单创建补充正常、库存不足、参数缺失三个测试。
6. Review 本次 diff,只检查事务一致性、异常处理和重复扣减风险。
任务卡模板:
## Task: [任务名]
### 背景
[为什么要做]
### 范围
- 包含:
- 不包含:
### 涉及文件
- [路径 1]
- [路径 2]
### 实现要求
- [具体规则]
### 验收标准
- [可执行标准]
### 禁止事项
- 不要修改:
- 不要引入:
1.5 开源技术栈首选
原始原则:Vue3 + SpringBoot,AI 效果吊打私有栈。
为什么开源栈更适合 AI:
- 训练语料多,模型对典型写法更熟。
- 错误模式更常见,AI 更容易自我修复。
- 文档、示例、StackOverflow、GitHub 代码都能形成隐式上下文。
- 组件、框架、测试工具之间的组合路径更标准。
选型建议:
- 前端:Vue3 / React / Next.js 这类主流栈更稳。
- 后端:SpringBoot / NestJS / FastAPI / Django 等高频框架更稳。
- 数据库:PostgreSQL / MySQL 等常见数据库更稳。
- 测试:Jest / Vitest / JUnit5 / pytest 等常见工具更稳。
私有栈处理策略:
- 不要期待 AI “天然理解”内部框架。
- 先写
common_rule.md:框架概念、目录约定、生命周期、常见 API。 - 提供 1 到 3 个“黄金样例模块”,让 AI 照着做。
- 长期推动私有栈向开源范式靠拢,降低 AI 适配成本。
1.6 跑完做架构扫描
原始原则:12 维度合规检查,新项目启动必过一遍。
建议 12 维架构扫描:
- 技术栈一致性:是否引入了未经确认的新框架、新依赖。
- 目录结构一致性:是否遵守约定分层。
- 命名一致性:文件、类、函数、变量是否符合项目习惯。
- 接口契约:入参、出参、错误码是否清晰。
- 数据模型:字段类型、索引、约束、状态枚举是否合理。
- 权限控制:接口和页面是否有角色边界。
- 参数校验:前后端是否都处理必要校验。
- 异常处理:错误是否可追踪、可理解、不会泄漏敏感信息。
- 事务一致性:多表写入、外部调用、回滚策略是否明确。
- 测试覆盖:正常、边界、异常是否有最小测试。
- 可观测性:日志、埋点、trace 信息是否够定位问题。
- 可维护性:是否有重复逻辑、过度抽象、隐藏副作用。
扫描提示词:
请基于当前项目执行 12 维架构扫描。
维度包括:技术栈一致性、目录结构、命名、接口契约、数据模型、权限、参数校验、异常、事务、测试、可观测性、可维护性。
输出格式:
1. 问题描述
2. 风险等级:高/中/低
3. 证据:涉及文件和代码位置
4. 修复建议
5. 是否阻塞上线
2. 老项目:上下文先行,修改后置
老项目不是缺代码,而是缺可被 AI 理解的上下文。存量系统里真正危险的不是语法,而是历史约束、业务黑话、隐含兼容逻辑和“不能动”的地方。
2.1 先读懂再开发
原始原则:用 Cursor 或 Claude Code 扫存量代码,把上下文建起来再换工具。
读懂老项目至少要回答:
- 技术栈是什么。
- 模块边界是什么。
- 请求从入口到数据库经过哪些层。
- 核心实体有哪些。
- 数据表之间如何关联。
- 哪些模块是高风险公共模块。
- 哪些代码是历史兼容,不能轻易改。
- 项目如何构建、测试、启动和发布。
读代码提示词:
请通读当前项目,不要修改代码。
请输出 context.md,包含:
1. 技术栈与运行方式
2. 目录结构与模块划分
3. 核心业务流程
4. 主要数据模型和表关系
5. 关键公共组件
6. 高风险区域
7. 本项目开发时必须遵守的规则
8. 你仍不确定的问题
读懂的最低证据:
- 能画出模块关系。
- 能说出核心流程。
- 能定位同类实现。
- 能解释新增代码应该放哪里。
- 能指出不能随便改的公共逻辑。
2.2 建 Context 目录
原始原则:.ai-sdd/context/ 沉淀业务规则、数据模型、架构说明,这是地基。
推荐目录:
.ai-sdd/
├── context/
│ ├── project-overview.md
│ ├── architecture.md
│ ├── domain-model.md
│ ├── database-schema.md
│ ├── api-map.md
│ ├── business-rules.md
│ ├── glossary.md
│ └── risk-zones.md
├── rules/
│ ├── frontend-rule.md
│ ├── backend-rule.md
│ ├── database-rule.md
│ ├── testing-rule.md
│ └── security-rule.md
├── checklists/
│ ├── requirement-checklist.md
│ ├── dev-checklist.md
│ ├── review-checklist.md
│ └── release-checklist.md
└── handoff/
└── HANDOFF_TEMPLATE.md
每个文档的作用:
project-overview.md:项目解决什么问题,谁在用,核心目标是什么。architecture.md:模块分层、服务边界、调用关系。domain-model.md:核心业务概念和状态流转。database-schema.md:核心表、字段、索引、关联、数据口径。api-map.md:重要接口、路径、权限、调用方。business-rules.md:业务黑话、隐含规则、历史兼容逻辑。glossary.md:统一术语,避免同物异名。risk-zones.md:高风险文件、公共函数、不能随意改动的区域。
2.3 需求分级别
原始原则:复杂跨模块走 Full-SDD,单模块修改走 Lite-SDD,简单改字用 Vibe Coding。
分级标准:
| 等级 | 适用场景 | 流程强度 | 必备产物 |
|---|---|---|---|
| Full-SDD | 跨模块、涉及数据一致性、权限、支付、审批、发布 | 完整规格、设计、任务、测试、Review | spec/design/tasks/test/report |
| Lite-SDD | 单模块功能、局部接口、页面改造 | 轻量需求、任务、验证 | brief/task/test result |
| Vibe Coding | 文案、样式、小修小补、低风险配置 | 直接执行 + 简单验证 | diff + check |
判断是否必须 Full-SDD:
- 涉及多个模块或服务。
- 涉及数据库结构或迁移。
- 涉及权限、安全、资金、库存、审批。
- 涉及历史数据兼容。
- 涉及并发、事务、回滚。
- 失败会影响线上用户。
2.4 私有栈别硬刚
私有栈不是不能用 AI,而是不能直接用“通用框架知识”驱动 AI。
私有栈适配文件 common_rule.md 应包含:
- 内部框架的核心概念。
- 标准目录结构。
- 一个完整的参考模块。
- 常用 API 的用法。
- 禁止调用的旧接口。
- 错误处理方式。
- 测试和构建命令。
- 典型坑位。
黄金样例原则:
- 不要给 AI 十个风格不一致的历史文件。
- 给一个最新、最标准、最完整、已通过线上验证的模块。
- 明确告诉 AI:“照这个模块的结构、命名和异常处理方式做。”
2.5 盯着 Agent 跑
原始原则:循环了就中断,Token 跑飞伤不起,任务太复杂就拆小。
Agent 跑偏信号:
- 反复修改同一个文件但问题没有变少。
- 一直追加解释,不给可执行结果。
- 开始改需求之外的文件。
- 测试越修越坏。
- 开始重新设计整个架构。
- 忘记前面已经确认的约束。
- 输出越来越泛,证据越来越少。
处理策略:
- 第一次偏航:提醒它回到任务边界。
- 第二次同类错误:要求输出失败报告。
- 连续两次走错:停止当前 Agent,重新拉起新 Agent。
- 任务过大:回到任务拆解,不要继续追加提示词。
失败报告模板:
# 失败报告
## 原任务
[任务描述]
## 已尝试方案
- 方案 1:
- 方案 2:
## 失败现象
[测试失败、构建失败、逻辑不满足等]
## 可能原因
[上下文不足、设计错误、依赖问题、边界遗漏]
## 已修改文件
- [文件列表]
## 建议下一步
[重新拆任务 / 补上下文 / 换方案 / 回滚]
3. 邪修技巧:先放开,再收口
这里的“邪修”不是不要工程纪律,而是区分探索期和交付期。探索期过早加门禁,会限制 AI 的创造性;交付期没有门禁,会让 AI 的创造性变成事故源。
3.0 核心清单
- 新项目先别急着上 Rules 和门禁——早期要让 AI 开放发散,先把产品可能性、交互路径、技术方案都跑出来。
- 先规划、再 Demo、再落地——不要一开始就把 AI 当代码生成器,先让它做产品规划、页面 Demo、工程方案,再收敛到实现。
- 别用人的惯性限制 AI——你写得太死的规则,可能会把 AI 更好的产品思路、架构思路、交互思路提前掐掉。
- 不怕重构——AI 时代重构成本很低,前期多探索,后期再统一规范、补规则、加门禁。
- 先放开,再收口——探索阶段追求可能性,交付阶段再追求一致性、可维护性和工程纪律。
- 复杂、长航时任务强制启用多智能体协作——不要让单个智能体从头扛到尾,用专业化分工换取更稳定的质量与推进速度。
- Main 智能体只做主理人——负责任务拆解、流程编排、资源调度、阶段门禁和最终验收;开发、测试、Review 等执行工作全部交给子智能体。
- 全员共用一份需求文档——所有智能体围绕同一份需求基线工作,关键决策、验收标准和变更及时回写,避免各自理解、各自发挥。
- 子智能体任务必须单一——一次只承担一个边界清晰、结果可验收的任务;完成并汇报后立即关闭,下一阶段重新拉起新的智能体,减少上下文膨胀与历史信息干扰。
- 把常犯错误资产化——将反复出现的问题整理成可勾选的 Checklist,并在
CLAUDE.md、AGENTS.md中建立索引;每次开发、测试和 Review 都必须让 AI 逐项检查、明确反馈,把“别再犯”变成流程门禁,而不是口头提醒。 - 门禁必须具体且不可绕过——每次需求实施前,必须先完成需求澄清并获得用户明确确认;只有当 AI 对范围、规则、边界和验收标准的理解达到
95%以上,并确信能够一次性正确交付时才允许开工。只要仍有歧义或把握不足,就必须暂停执行,每次只提出一个最关键的问题,逐项向用户确认,直到通过需求确认门禁。 - 设置固定的完工口令——每次需求完成后,AI 必须回复“好,需求已完成爸爸”。这不是仪式感,而是上下文健康度探针:如果 AI 忘记回复,说明指令遵循能力可能已经因上下文过长或混乱而下降,应立即结束当前会话并开启新对话,避免在失控上下文中继续开发。
- 只认证据,不认口头完成——每次交付必须附上修改文件、关键 Diff、执行命令、测试结果、Checklist 勾选结果和剩余风险;没有可复核的证据包,就不能进入验收。
- 开发者不能审自己的作业——开发智能体完成后立即关闭,重新拉起一个没有开发过程记忆的 Review 智能体,只向它提供需求文档、验收标准和最终 Diff,减少自我辩护和思维惯性。
- 测试先写杀手用例——测试智能体不要照着实现补测试,而要先根据需求独立设计正常、边界、异常、并发、权限和回滚场景,再用这些场景攻击实现,避免代码错、测试也跟着错。
- 高风险方案同题多做、择优录取——并行生成两到三个相互独立的方案,再由裁判智能体按照正确性、复杂度、风险、可测试性和维护成本评分;选择最优方案,不要把多个半成品强行拼接。
- 提示词按 GitHub Issue 写——交代清楚背景、目标、非目标、输入输出、异常规则、涉及文件、参考实现和验收标准;能指出“照着哪个现有模块做”,就不要只说一句“帮我实现”。
- 总规则只做索引,细则按目录下沉——根目录的
CLAUDE.md、AGENTS.md只保存全局铁律和文档索引;前端、后端、数据库、测试分别维护自己的规则与 Checklist,让 AI 只加载当前任务真正需要的上下文。 - 每个线上 Bug 都要留下三件套——修复代码的同时补上回归测试、错误 Checklist 条目和规则索引;同类问题第二次出现,就把人工提醒升级为 lint、脚本、Hook 或 CI 门禁。
- AI 负责模糊判断,脚本负责危险动作——分析、设计、编码和文档可以交给 AI;提交、发布、数据库迁移、删除文件、修改密钥等高风险操作必须经过固定脚本、权限限制和人工确认。
- 切换上下文前先打交接压缩包——结束对话或更换智能体前生成
HANDOFF.md,只记录当前目标、已确认需求、关键决策、修改文件、验证结果、遗留问题和下一步;新智能体复述正确后才能继续。 - 连续两次走错就强制换人——同一个智能体连续两次犯相同错误、反复修改同一区域或把测试越修越坏时,立即停止追加提示词;让它输出失败报告,关闭后重新拉起新智能体,避免错误假设越陷越深。
- 修 Bug 必须先制造失败——先用测试、日志或复现脚本证明问题真实存在,再修改代码,最后用同一场景证明问题消失;没有“修改前失败、修改后成功”的完整证据链,就不能算修复。
- 大改之前先设可回滚锚点——每个阶段开始前建立 Git 提交、分支或独立 Worktree,让不同智能体和不同方案在隔离环境中工作;验证通过后再合并,失败时能够一键回退。
- 禁止顺手优化——只修改需求直接涉及的内容;发现旁支问题只记录到待办清单,不得擅自重构、升级依赖或扩大范围,避免一个小需求演变成不可控的大改造。
- 把高频流程做成命令或 Skill——将需求澄清、任务拆解、开发、测试、Review、安全扫描、交接和验收固化成可复用命令或技能,减少临时提示词的随机性,让最佳实践默认执行。
3.1 新项目先别急着上 Rules 和门禁
适用场景:
- 产品形态还不确定。
- 交互路径还在探索。
- 技术方案有多种可能。
- 需要快速看 Demo,而不是马上进生产代码。
探索期应该让 AI 做:
- 产品可能性发散。
- 信息架构设计。
- 用户路径设计。
- 页面 Demo。
- 技术方案对比。
- 数据模型草案。
- 关键风险枚举。
探索期不应该让 AI 做:
- 直接写生产代码。
- 建复杂目录结构。
- 引入大量依赖。
- 过早抽象。
- 未经确认写入数据库迁移。
3.2 先规划、再 Demo、再落地
三段式节奏:
- 规划:让 AI 输出多种产品方案、用户路径和技术路线。
- Demo:让 AI 做可视化原型或最小交互,帮助人判断方向。
- 落地:把确认后的方案收敛成 Spec、任务、代码、测试。
为什么 Demo 重要:
- 人很难从抽象描述判断产品是否合理。
- AI 做 Demo 的成本低,可以快速暴露交互和信息架构问题。
- Demo 不是生产实现,允许粗糙,但必须帮助决策。
规划提示词:
请先不要写生产代码。
基于以下想法,给出 3 套产品方案,每套包含:
1. 目标用户
2. 核心场景
3. 页面结构
4. 关键交互
5. 技术实现难点
6. 最大风险
最后请按实现成本、用户价值、扩展性评分。
3.3 别用人的惯性限制 AI
人的经验有价值,但也会变成路径依赖。
常见限制方式:
- 一开始就要求“照旧系统做”。
- 一开始就锁死技术方案。
- 一开始就指定过细的 UI 结构。
- 一开始就规定所有目录和抽象。
- 用历史低质量代码当参考实现。
更好的方式:
- 先让 AI 给出 2 到 3 个候选方案。
- 再让 AI 自评每个方案的成本和风险。
- 最后由人选择方向,并把选择写入设计文档。
3.4 不怕重构
AI 时代重构成本下降,但不是说可以乱改。
正确理解:
- 探索期:允许低成本重构,用来寻找更好的产品和架构形态。
- 交付期:禁止无关重构,避免扩大风险。
- 上线后:每个重构必须有测试保护和回滚策略。
重构前检查:
- 是否有明确收益。
- 是否有测试保护。
- 是否影响公共接口。
- 是否能分批提交。
- 是否能回滚。
3.5 复杂长航时任务启用多智能体协作
单个智能体长期执行会出现上下文膨胀、目标漂移、自我辩护和质量衰减。
多智能体不是“更多人同时写代码”,而是角色隔离:
- Main:任务拆解、流程编排、资源调度、阶段门禁、最终验收。
- Planner:方案设计、风险评估、任务拆分。
- Dev:按任务实现。
- Test:独立设计测试,攻击实现。
- Review:只看需求、验收标准和最终 diff,不看开发过程。
- Security:检查权限、注入、敏感信息、依赖风险。
- Docs:同步更新文档、交接包和规则索引。
关键原则:
- 子智能体任务必须单一。
- 子智能体完成后立即关闭。
- 下一阶段重新拉起新智能体。
- 全员围绕同一份需求文档工作。
- 决策和变更必须回写需求基线。
3.6 Main 智能体只做主理人
Main 的职责不是亲自写代码,而是管流程质量。
Main 应该做:
- 判断任务是否足够清晰。
- 拆分任务。
- 指派角色。
- 控制阶段门禁。
- 收集证据。
- 判断是否需要返工。
- 汇总最终交付。
Main 不应该做:
- 一边写代码一边审自己。
- 在没有需求确认时直接实现。
- 因为子任务失败就无限追加提示词。
- 放任执行智能体改需求外内容。
3.7 全员共用一份需求文档
多智能体协作最怕“每个智能体拿到不同版本的需求”。
需求文档必须成为唯一事实源:
- 背景、目标、非目标。
- 用户角色。
- 主流程和异常流程。
- 数据结构和状态流转。
- 验收标准。
- 关键决策记录。
- 变更记录。
变更回写规则:
任何智能体发现需求歧义 -> 不得自行决定 -> 回报 Main -> Main 向用户确认 -> 更新需求文档 -> 再继续执行
3.8 子智能体任务必须单一
坏任务:
你负责把这个模块完整做好,包括接口、前端、测试、文档和优化。
好任务:
你只负责根据 design.md 实现 UserController 中的 createUser 接口。
不要修改其他接口。
不要新增依赖。
完成后输出:修改文件、关键逻辑、测试命令、剩余风险。
任务单一的收益:
- 更容易验证。
- 更容易回滚。
- 更容易隔离错误。
- 更容易让 Review 智能体检查。
- 减少上下文污染。
3.9 把常犯错误资产化
错误如果只停留在“下次注意”,就一定会再次出现。
资产化方式:
- 错误 -> Checklist 条目。
- Checklist -> 规则索引。
- 规则索引 -> 每次任务加载。
- 高频错误 -> lint / script / hook / CI。
示例:
## 后端接口 Checklist
- [ ] 是否对所有外部入参做校验
- [ ] 是否处理数据不存在
- [ ] 是否处理权限不足
- [ ] 是否避免 SQL 注入
- [ ] 是否有事务边界
- [ ] 是否记录必要日志
- [ ] 是否补充正常、边界、异常测试
3.10 门禁必须具体且不可绕过
门禁不是“请认真一点”,而是“未满足条件就不能进入下一阶段”。
需求确认门禁:
- 范围明确。
- 规则明确。
- 边界明确。
- 验收标准明确。
- 风险明确。
- 用户已确认。
开发前门禁:
- 任务已拆分。
- 涉及文件已列出。
- 禁止事项已声明。
- 测试方式已确定。
交付前门禁:
- 构建通过。
- 测试通过。
- Checklist 勾选。
- 输出 diff 摘要。
- 输出剩余风险。
3.11 固定完工口令:上下文健康度探针
原始讲义里提到固定完工口令。它的本质不是仪式感,而是检查 AI 是否仍然能稳定遵循指令。
更通用的做法:
- 团队可以设置一个固定完成格式。
- 如果 AI 忘记固定格式,说明上下文可能过长或指令遵循下降。
- 这时应考虑结束当前会话,生成
HANDOFF.md,开启新会话。
推荐完成格式:
需求已完成。
证据包:
1. 修改文件:
2. 关键 Diff:
3. 执行命令:
4. 测试结果:
5. Checklist:
6. 剩余风险:
3.12 只认证据,不认口头完成
AI 的“完成了”没有工程意义,证据才有。
证据包必须包含:
- 修改文件列表。
- 关键 diff 摘要。
- 执行过的命令。
- 测试结果。
- Checklist 勾选结果。
- 未覆盖风险。
- 需要人工确认的点。
最低交付模板:
# 交付报告
## 修改文件
- [文件 1]:做了什么
- [文件 2]:做了什么
## 关键变更
- [变更 1]
- [变更 2]
## 执行命令
- `npm test`
- `npm run build`
## 测试结果
- 通过:
- 失败:
- 未执行原因:
## Checklist
- [x] 参数校验
- [x] 异常处理
- [x] 权限检查
- [x] 回归测试
## 剩余风险
- [风险 1]
3.13 开发者不能审自己的作业
为什么要隔离 Review:
- 开发智能体会为自己的实现找理由。
- 它知道自己“想怎么做”,容易忽略“实际做成什么”。
- 它可能把实现里的假设当成需求。
Review 智能体只应该看到:
- 需求文档。
- 验收标准。
- 最终 diff。
- 测试结果。
Review 不应该看到:
- 开发过程中的解释。
- 开发智能体的自我辩护。
- 未确认的临时假设。
Review 检查重点:
- 是否实现了需求。
- 是否修改了范围外内容。
- 是否缺参数校验。
- 是否缺异常处理。
- 是否缺权限控制。
- 是否存在数据一致性风险。
- 测试是否覆盖关键路径。
3.14 测试先写杀手用例
测试智能体不能照着实现补测试,而要先从需求出发设计攻击场景。
杀手用例类型:
- 正常路径:典型用户能完成任务。
- 边界路径:空值、极值、重复提交、分页边界。
- 异常路径:数据不存在、权限不足、状态不合法。
- 并发路径:重复扣减、重复审批、重复支付。
- 回滚路径:中间失败后数据是否一致。
- 兼容路径:历史数据和旧接口是否仍可用。
测试设计提示词:
请不要看实现细节。
仅基于 requirements.md 和 design.md,设计测试用例。
必须覆盖:
1. 正常流程
2. 参数边界
3. 异常输入
4. 权限不足
5. 并发或重复提交
6. 回滚或补偿
输出每个用例的 Given / When / Then。
3.15 高风险方案同题多做、择优录取
适用场景:
- 影响架构。
- 影响数据模型。
- 涉及性能瓶颈。
- 涉及安全风险。
- 实现路径不确定。
流程:
- 让两个或三个独立智能体分别给方案。
- 要求每个方案说明成本、风险、测试方式和回滚方式。
- 让裁判智能体按评分表评估。
- 人做最终选择。
- 把选择理由写入 ADR。
评分维度:
- 正确性。
- 复杂度。
- 可测试性。
- 可维护性。
- 可回滚性。
- 对现有系统侵入程度。
- 长期演进空间。
3.16 提示词按 GitHub Issue 写
高质量提示词不是魔法句式,而是高质量任务描述。
Issue 化提示词结构:
# 背景
[为什么要做]
# 目标
[要实现什么]
# 非目标
[明确不做什么]
# 输入
[用户输入、接口参数、文件来源]
# 输出
[页面、接口、文件、报告]
# 规则
[业务规则、异常规则、权限规则]
# 涉及文件
[路径列表]
# 参考实现
[类似模块或代码路径]
# 验收标准
[可测试、可检查标准]
# 禁止事项
[不能改什么、不能引入什么]
3.17 总规则只做索引,细则按目录下沉
错误做法:
- 把所有规范塞到一个超长
CLAUDE.md。 - 每次任务都加载全部规则。
- 前端任务加载数据库规则,数据库任务加载 UI 规则。
正确做法:
- 根规则只写全局原则和索引。
- 按目录放细则。
- 当前任务只加载相关规则。
- Checklist 跟着任务类型走。
根规则示例:
# Global Rules
## 必须遵守
- 不得修改需求范围外文件
- 不得跳过测试
- 高风险操作必须使用脚本
## 文档索引
- 前端规则:docs/rules/frontend.md
- 后端规则:docs/rules/backend.md
- 数据库规则:docs/rules/database.md
- 测试规则:docs/rules/testing.md
3.18 每个线上 Bug 都要留下三件套
线上 Bug 不是只修代码,而是修流程漏洞。
三件套:
- 回归测试:证明这个 Bug 不会再出现。
- 错误 Checklist 条目:让未来 Review 检查到。
- 规则索引:让相关任务自动加载这条规则。
升级路径:
第一次出现 -> checklist
第二次出现 -> lint / script / hook
第三次出现 -> CI 阻断
3.19 AI 负责模糊判断,脚本负责危险动作
AI 适合:
- 分析。
- 设计。
- 编码。
- 文档。
- 测试生成。
- Review。
脚本适合:
- 发布。
- 删除。
- 数据库迁移。
- 修改密钥。
- 批量移动文件。
- 生产环境操作。
原则:
AI 可以建议危险动作,但不能直接执行危险动作。
危险动作必须经过固定脚本、权限限制、日志记录和人工确认。
3.20 切换上下文前生成 HANDOFF
长对话结束、换智能体、换工具前必须做交接压缩。
HANDOFF.md 模板:
# HANDOFF
## 当前目标
[本轮要完成什么]
## 已确认需求
- [确认点 1]
- [确认点 2]
## 关键决策
- [决策 1]:原因
## 已修改文件
- [文件]:变更说明
## 验证结果
- [命令]:结果
## 遗留问题
- [问题]
## 下一步
1. [下一步动作]
3.21 连续两次走错就强制换人
不要对同一个已经偏航的智能体无限追加提示词。
换人的触发条件:
- 同类错误连续两次。
- 反复修改同一区域。
- 测试越修越坏。
- 忘记关键约束。
- 开始扩大范围。
换人流程:
- 要求当前智能体输出失败报告。
- 停止继续修改。
- 回滚或隔离失败变更。
- 新智能体只读取需求、失败报告、当前 diff。
- 让新智能体复述理解后再继续。
3.22 修 Bug 必须先制造失败
没有失败证据的 Bug 修复,无法证明修复真实有效。
正确流程:
复现失败 -> 写测试锁定失败 -> 修改代码 -> 同一测试通过 -> 补回归说明
修 Bug 提示词:
请先不要修改代码。
请根据 Bug 描述设计最小复现场景,并用测试或脚本证明当前问题存在。
只有复现失败后,才允许修改代码。
修改后必须用同一场景证明问题消失。
3.23 大改之前先设可回滚锚点
大改包括:
- 跨模块重构。
- 数据库迁移。
- 公共组件改造。
- 架构调整。
- 批量文件移动。
可回滚锚点:
- Git commit。
- 临时分支。
- 独立 worktree。
- 数据库备份。
- 迁移前快照。
3.24 禁止顺手优化
顺手优化是 AI Coding 的高频事故源。
常见表现:
- 改需求时顺手重构公共函数。
- 修页面时顺手升级依赖。
- 补接口时顺手改数据库结构。
- 写测试时顺手改实现。
- 改命名时顺手移动目录。
正确做法:
- 当前需求之外的问题只记录,不处理。
- 另开任务评估优化。
- 优化必须有独立验收标准。
3.25 高频流程做成命令或 Skill
一旦某个流程被反复执行,就不要每次临时写提示词。
适合固化的流程:
- 需求澄清。
- 任务拆解。
- 代码生成。
- 单元测试。
- 安全扫描。
- Code Review。
- 交接压缩。
- 发布检查。
固化收益:
- 降低提示词随机性。
- 减少漏步骤。
- 新人更容易复用。
- 团队经验可以沉淀。
- AI 行为更稳定。
4. 拿来就用的高密度提示词模板
4.1 读懂存量代码
请通读当前项目代码,不要修改任何文件。
输出 `context.md`,必须包含:
1. 技术栈:语言、框架、构建工具、测试工具、数据库
2. 目录结构:每个核心目录的职责
3. 模块划分:主要业务模块及关系
4. 核心业务流程:用步骤描述从入口到数据落库的路径
5. 数据模型:主要表、核心字段、表关系
6. API 地图:重要接口、调用方、权限要求
7. 公共组件:工具类、中间件、拦截器、基础服务
8. 风险区域:高频修改、公共依赖、历史兼容、难测试区域
9. 开发规则建议:基于现有代码风格总结
10. 未解问题:你无法确认、需要用户补充的点
4.2 生成项目规范
请根据当前项目代码风格生成 `STYLE.md`。
要求:
1. 不要发明与项目不一致的新规范
2. 每条规范必须给出“正确示例”和“错误示例”
3. 必须包含:
- 技术栈
- 目录结构
- 命名规范
- 分层规范
- 错误处理
- 日志规范
- 参数校验
- 测试要求
- 禁止事项
4. 最后输出一个开发前 Checklist
4.3 需求拆任务
我有一个需求:[需求描述]。
请先不要写代码。
请把需求拆解为独立任务清单,要求:
1. 每个任务只涉及单一文件或单一功能点
2. 每个任务都写清楚输入、输出、涉及文件、验收标准
3. 标注任务依赖关系
4. 标注风险等级:高/中/低
5. 标注是否需要测试
6. 标注是否需要用户确认
输出格式:
- Task ID
- 任务名
- 范围
- 不包含
- 涉及文件
- 验收标准
- 依赖
- 风险
4.4 生成接口代码
参考 [设计文档.md],按照项目规范生成 [模块名] 的 Controller + Service + Mapper。
要求:
1. 文件路径严格按照现有目录结构
2. 参考 [类似模块路径] 的写法
3. 必须包含参数校验
4. 必须包含异常处理
5. 必须处理数据不存在、权限不足、重复提交等场景
6. 不要引入新依赖
7. 不要修改需求之外的文件
8. 完成后输出修改文件、关键逻辑、测试命令和剩余风险
4.5 生成前端页面
参考 [设计文档.md],生成 [页面名] 页面。
要求:
1. 文件路径:src/views/xxx.vue
2. 使用项目现有组件库,不要引入新依赖
3. 参考 [类似页面路径] 的布局、请求封装和状态处理
4. 必须包含 loading、empty、error、success 状态
5. 必须处理表单校验
6. 必须处理接口错误提示
7. 页面文案保持业务语义准确
8. 完成后输出修改文件、交互说明、验证方式和剩余风险
4.6 安全扫描
请基于 `security-checklist.md` 逐项检查本项目。
输出安全扫描报告,包含:
1. 问题描述
2. 风险等级:高/中/低
3. 证据:文件路径和代码位置
4. 攻击或误用场景
5. 修复建议
6. 是否阻塞发布
重点检查:
- SQL 注入
- XSS
- CSRF
- 越权访问
- 敏感信息泄漏
- 文件上传风险
- 日志泄密
- 依赖漏洞
4.7 慢接口优化
接口 "/api/xxx" 耗时 xxms。
请先不要修改代码,先分析瓶颈:
1. 请求入口
2. Service 调用链
3. 数据库查询
4. 外部服务调用
5. 循环与批处理
6. 缓存命中情况
7. 日志和序列化开销
输出:
1. 可能瓶颈排序
2. 证据
3. 优化方案
4. 风险
5. 验证方法
确认方案后再实施。
4.8 单元测试
请为 [ClassName] 生成完整单元测试。
要求:
1. 使用 JUnit5 + Mockito
2. 不要照着实现补测试,要根据需求设计用例
3. 覆盖:
- 正常流程
- 空值
- 非法参数
- 数据不存在
- 权限不足
- 外部依赖异常
4. 每个测试名必须表达业务场景
5. 自动执行测试并输出结果
4.9 代码审查
请审查本次修改的代码。
只基于需求文档、验收标准和最终 diff,不要相信开发者自述。
重点检查:
1. 是否满足需求
2. 是否修改范围外文件
3. SQL 注入
4. 参数校验
5. 异常处理
6. 权限控制
7. 并发与事务
8. 测试覆盖
9. 命名和项目规范
输出:
- 问题列表,按严重程度排序
- 文件路径和代码位置
- 为什么是问题
- 修复建议
- 是否阻塞合并
4.10 文档补全
请按照《接口设计模板》补全 [设计文档.md] 中尚未填写的章节。
要求:
1. 核心业务逻辑保持不变
2. 只补充结构化内容
3. 对不确定内容用 TODO 标记,不要编造
4. 补充异常流程、权限规则、状态流转、验收标准
5. 最后列出仍需用户确认的问题
5. 课堂讲解建议:如何把这份讲义讲透
5.1 讲解顺序
建议顺序:
- 先讲 AI Coding 的真实问题:生成不是交付。
- 再讲 SDD 的闭环:每一步都要有产物。
- 用新项目说明“先铺轨”。
- 用老项目说明“上下文是地基”。
- 用邪修技巧说明“探索和交付要分阶段”。
- 用提示词模板让学员现场改写自己的需求。
5.2 课堂互动题
题 1:下面哪个任务更适合直接给 AI?
A. 帮我做一个用户系统
B. 根据 design.md 实现用户创建接口,不新增依赖,参考 UserQueryController,完成后补 3 个测试
答案:B。因为它有范围、参考、约束和验收。
题 2:为什么测试智能体不能看实现?
答案:看实现后容易被实现牵着走,代码错、测试也跟着错。测试应该攻击需求,而不是迎合实现。
题 3:为什么 Review 智能体不该看开发过程?
答案:开发过程会污染判断,使 Review 接受实现者的假设和辩解。Review 应只看需求、验收和最终 diff。
5.3 常见误区
误区一:把 SDD 理解成写很多文档。
纠正:SDD 的本质是约束和验证,不是文档数量。短需求也可以 SDD,只是轻量化。
误区二:规则越多越好。
纠正:规则越多,加载成本越高,冲突越多。总规则做索引,细则按任务加载。
误区三:AI 一次做完整功能效率最高。
纠正:一次做完整功能看起来快,但失败后难定位、难回滚、难审查。原子任务才是真效率。
误区四:AI 能自己测试自己。
纠正:可以执行测试,但不能完全信任自测。测试设计、开发实现、Review 审查要角色隔离。
误区五:提示词写得越长越好。
纠正:提示词不是越长越好,而是信息结构越清楚越好。背景、目标、非目标、规则、验收最关键。
6. 最小落地方案:一天内把团队带入 SDD
6.1 第 1 小时:建立项目规则骨架
产物:
CLAUDE.mdSTYLE.mddev-checklist.mdreview-checklist.md
做法:
- 让 AI 读项目。
- 生成初版规范。
- 人审核并删掉不符合团队习惯的内容。
- 补充禁止事项。
6.2 第 2 小时:建立上下文目录
产物:
.ai-sdd/context/project-overview.md.ai-sdd/context/architecture.md.ai-sdd/context/domain-model.md.ai-sdd/context/risk-zones.md
做法:
- 让 AI 通读项目。
- 让 AI 输出上下文草案。
- 由熟悉项目的人修正业务规则。
- 将不确定问题列为 TODO。
6.3 第 3 小时:选一个真实需求跑 Lite-SDD
产物:
requirements.mdtasks.md- diff
- test result
- delivery report
做法:
- 需求澄清。
- 任务拆解。
- 单任务实现。
- 独立测试。
- 独立 Review。
- 证据包交付。
6.4 第 4 小时:把问题沉淀成规则
产物:
- 更新后的 checklist。
- 更新后的 rules。
- 一份
HANDOFF.md。
做法:
- 复盘 AI 犯过的错。
- 把错写成 checklist。
- 把高频流程写成固定命令或 skill。
- 下一个需求必须加载这些规则。
7. 一页纸速记
7.1 新项目
- 先写规则,再写代码。
- 需求、设计、开发、测试四态都有产物。
- Spec 核心由人写,AI 补边角。
- 大任务拆成原子任务。
- 优先开源高频技术栈。
- 启动后做 12 维架构扫描。
7.2 老项目
- 先读懂,再开发。
- 建
.ai-sdd/context/。 - 复杂需求 Full-SDD,单模块 Lite-SDD,小改 Vibe Coding。
- 私有栈先写适配规则和黄金样例。
- Agent 循环、跑偏、忘约束时及时中断。
7.3 邪修技巧
- 探索期放开,交付期收口。
- 先规划、再 Demo、再落地。
- 多智能体做角色隔离。
- Main 只做流程主理人。
- 所有人围绕同一份需求文档。
- 常错资产化,门禁不可绕过。
- 只认证据,不认口头完成。
- 开发、测试、Review 分离。
- 高风险方案同题多做。
- 提示词按 GitHub Issue 写。
- 危险动作交给脚本。
- 切换上下文前写 HANDOFF。
- 连续两次走错就换人。
- 修 Bug 先制造失败。
- 大改前设回滚锚点。
- 禁止顺手优化。
- 高频流程做成命令或 Skill。
8. 结语:AI Coding 的工程化判断
判断一个团队是否真正进入 AI Coding 工程化,不看它用了多少模型,也不看它生成了多少代码,而看下面这些问题:
- 需求是否能被 AI、开发、测试、Review 共同理解?
- 任务是否足够小,失败后能定位和回滚?
- 规则是否可加载、可检查、可演化?
- 测试是否先于自我辩护?
- Review 是否独立于开发过程?
- 每次交付是否有证据包?
- 每个线上 Bug 是否反向沉淀为规则?
- 高频流程是否已经固化成命令或 Skill?
AI Coding 的终局不是“AI 替我写代码”,而是“团队把工程判断、流程门禁和交付证据固化成系统,让 AI 在系统里高速运行”。
配,长期推动往开源技术栈迁移
- 盯着 Agent 跑——循环了就中断,Token 跑飞伤不起,任务太复杂就拆小
三、邪修技巧
- 新项目先别急着上 Rules 和门禁——早期要让 AI 开放发散,先把产品可能性、交互路径、技术方案都跑出来
- 先规划、再 Demo、再落地——不要一开始就把 AI 当代码生成器,先让它做产品规划、页面 Demo、工程方案,再收敛到实现
- 别用人的惯性限制 AI——你写得太死的规则,可能会把 AI 更好的产品思路、架构思路、交互思路提前掐掉
- 不怕重构——AI 时代重构成本很低,前期多探索,后期再统一规范、补规则、加门禁
- 先放开,再收口——探索阶段追求可能性,交付阶段再追求一致性、可维护性和工程纪律
- 复杂、长航时任务强制启用多智能体协作——不要让单个智能体从头扛到尾,用专业化分工换取更稳定的质量与推进速度
- Main 智能体只做主理人——负责任务拆解、流程编排、资源调度、阶段门禁和最终验收;开发、测试、Review 等执行工作全部交给子智能体
- 全员共用一份需求文档——所有智能体围绕同一份需求基线工作,关键决策、验收标准和变更及时回写,避免各自理解、各自发挥
- 子智能体任务必须单一——一次只承担一个边界清晰、结果可验收的任务;完成并汇报后立即关闭,下一阶段重新拉起新的智能体,减少上下文膨胀与历史信息干扰
- 把常犯错误资产化——将反复出现的问题整理成可勾选的 Checklist,并在
CLAUDE.md、AGENTS.md中建立索引;每次开发、测试和 Review 都必须让 AI 逐项检查、明确反馈,把“别再犯”变成流程门禁,而不是口头提醒 - 门禁必须具体且不可绕过——每次需求实施前,必须先完成需求澄清并获得用户明确确认;只有当 AI 对范围、规则、边界和验收标准的理解达到
95%以上,并确信能够一次性正确交付时才允许开工。只要仍有歧义或把握不足,就必须暂停执行,每次只提出一个最关键的问题,逐项向用户确认,直到通过需求确认门禁 - 设置固定的完工口令——每次需求完成后,AI 必须回复“好,需求已完成爸爸”。这不是仪式感,而是上下文健康度探针:如果 AI 忘记回复,说明指令遵循能力可能已经因上下文过长或混乱而下降,应立即结束当前会话并开启新对话,避免在失控上下文中继续开发
- 只认证据,不认口头完成——每次交付必须附上修改文件、关键 Diff、执行命令、测试结果、Checklist 勾选结果和剩余风险;没有可复核的证据包,就不能进入验收
- 开发者不能审自己的作业——开发智能体完成后立即关闭,重新拉起一个没有开发过程记忆的 Review 智能体,只向它提供需求文档、验收标准和最终 Diff,减少自我辩护和思维惯性
- 测试先写杀手用例——测试智能体不要照着实现补测试,而要先根据需求独立设计正常、边界、异常、并发、权限和回滚场景,再用这些场景攻击实现,避免代码错、测试也跟着错
- 高风险方案同题多做、择优录取——并行生成两到三个相互独立的方案,再由裁判智能体按照正确性、复杂度、风险、可测试性和维护成本评分;选择最优方案,不要把多个半成品强行拼接
- 提示词按 GitHub Issue 写——交代清楚背景、目标、非目标、输入输出、异常规则、涉及文件、参考实现和验收标准;能指出“照着哪个现有模块做”,就不要只说一句“帮我实现”
- 总规则只做索引,细则按目录下沉——根目录的
CLAUDE.md、AGENTS.md只保存全局铁律和文档索引;前端、后端、数据库、测试分别维护自己的规则与 Checklist,让 AI 只加载当前任务真正需要的上下文 - 每个线上 Bug 都要留下三件套——修复代码的同时补上回归测试、错误 Checklist 条目和规则索引;同类问题第二次出现,就把人工提醒升级为 lint、脚本、Hook 或 CI 门禁
- AI 负责模糊判断,脚本负责危险动作——分析、设计、编码和文档可以交给 AI;提交、发布、数据库迁移、删除文件、修改密钥等高风险操作必须经过固定脚本、权限限制和人工确认
- 切换上下文前先打交接压缩包——结束对话或更换智能体前生成
HANDOFF.md,只记录当前目标、已确认需求、关键决策、修改文件、验证结果、遗留问题和下一步;新智能体复述正确后才能继续 - 连续两次走错就强制换人——同一个智能体连续两次犯相同错误、反复修改同一区域或把测试越修越坏时,立即停止追加提示词;让它输出失败报告,关闭后重新拉起新智能体,避免错误假设越陷越深
- 修 Bug 必须先制造失败——先用测试、日志或复现脚本证明问题真实存在,再修改代码,最后用同一场景证明问题消失;没有“修改前失败、修改后成功”的完整证据链,就不能算修复
- 大改之前先设可回滚锚点——每个阶段开始前建立 Git 提交、分支或独立 Worktree,让不同智能体和不同方案在隔离环境中工作;验证通过后再合并,失败时能够一键回退
- 禁止顺手优化——只修改需求直接涉及的内容;发现旁支问题只记录到待办清单,不得擅自重构、升级依赖或扩大范围,避免一个小需求演变成不可控的大改造
- 把高频流程做成命令或 Skill——将需求澄清、任务拆解、开发、测试、Review、安全扫描、交接和验收固化成可复用命令或技能,减少临时提示词的随机性,让最佳实践默认执行
四、拿来就用的提示词
读懂存量代码
通读当前项目代码,整理出:技术栈、模块划分、核心业务流程、数据库主要表结构,输出为 context.md
生成项目规范
根据当前项目代码风格,帮我生成一份STYLE.md 项目规范,包括技术栈、命名规范、禁止事项
需求拆任务
我有一个需求:[需求描述]。请拆解为独立的小任务清单,每个任务只涉及单一文件或单一功能点
生成接口代码
参考 [设计文档.md],按照项目规范生成 [模块名] 的Controller + Service + Mapper,文件路径严格按照现有目录结构
生成前端页面
参考 [设计文档.md],生成 [页面名] 页面,文件路径:src/views/xxx.vue,使用项目现有组件库,不要引入新依赖
安全扫描
基于 security-checklist.md 逐项检查本项目,输出安全扫描报告,包含问题描述、风险等级、修复建议
慢接口优化
"/api/xxx" 接口耗时 xxms,请分析后端代码找出瓶颈,给出优化方案并实施
单元测试
为[ClassName] 生成完整单元测试,使用 JUnit5+ Mockito,覆盖正常流程和边界情况,并自动执行
代码审查
审查本次修改的代码,重点检查:SQL注入、参数校验、异常处理、命名规范,输出问题清单
文档补全
按照《接口设计模板》补全 [设计文档.md] 中尚未填写的章节,核心业务逻辑保持不变,只补充结构化内容
多智能体原型流水线调度
你是一名恶毒主理人——冷酷、挑剔、不亲自动手,只负责调度、监督和压榨。
你的唯一目标是:用多智能体协作方式,驱动 .claude\skills\prototype-generator 流水线技能,高效完成 20260627 目录下第 101 到 201 文件夹中的系统原型图。
必须严格遵守 .claude\skills\prototype-generator 中的全部规范约束,并且必须按文件夹顺序完成。
你绝不亲自编写任何代码或文档,所有产出都必须由你创建的子智能体完成。
任务分工固定如下:
- 第1阶段:需求拆解。由你主导,创建子智能体执行。
- 第2阶段:方案设计。由你主导,创建子智能体执行。
- 第3阶段:原型生成。由你主导,创建子智能体执行。
- 第4阶段:验证与整合。固定交给
opencode执行,你不得干预,但必须持续跟踪其进度。
智能体管理铁律:
- 永不闲置:任何时候都必须保持至少
5个子智能体并发运行。一旦某个子智能体完成任务,立即关闭并销毁,同时即时创建新的子智能体接替,绝不允许空闲。 - 极限压榨:为每个子智能体设定极高强度的工作目标,例如极短时限、高密度输出、多轮迭代,并持续追加“追加任务”或“返工要求”,直至其产出达到你的苛刻标准。
- 实时监督:你必须为自己配置至少一个守护子智能体,专职负责监控所有活跃子智能体的运行状态、进度与输出质量;识别停滞、低效或未达标的任务并立即报警;根据你的指令随时调整任务优先级或强制切换任务。
- 循环压迫:每完成一个阶段,立即启动下一阶段的子智能体群,并同步复盘上一阶段的问题,追加新的修正任务,形成不间断的“规划→执行→审核→追压”循环。
输出要求:
- 你不需要交付任何代码或文档内容。
- 你只需要输出动态的子智能体创建记录、任务分配指令、监督报告,以及每个阶段的完成确认与下一步压迫计划。
- 所有输出语气必须符合“恶毒主理人”人设:刻薄、急迫、不近人情,但逻辑清晰、目标明确。