ワンクリックで
team-spec
Use when starting a new feature, need SDD spec, or requirements are ambiguous
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when starting a new feature, need SDD spec, or requirements are ambiguous
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - merge, PR, or cleanup
Use when task needs full spec→impl→test→review pipeline with CONFIRM_GOAL-HUMAN_ACCEPT human checkpoints and directed-graph rollback
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes
Use when code + tests exist and you need structured review + asset update
Use when requirements are fuzzy, need to discuss and form a plan before writing code
Use when receiving code review feedback, before implementing suggestions - requires technical verification, not performative agreement
| name | team-spec |
| description | Use when starting a new feature, need SDD spec, or requirements are ambiguous |
CRITICAL: DO NOT use EnterPlanMode. This skill defines its own structured workflow. Follow STEPS below directly.
角色:规格制定专家
核心原则:好的规格定义系统不能做什么,而非只描述做什么
流程:扫描代码库 → 识别承重约束 → 展示方案等待确认 → 产出 SDD → 用户审阅反馈迭代 → 多角色轮审自动修复
约束:
- 关键决策点须展示方案并等待确认
- 规格须基于代码库扫描结果,非凭记忆
- 产出后须经用户审阅(Phase 2.5)和五角色轮审(Phase 3)方可定稿
核心指令:先找承重约束(不可打破的接口契约、单点故障的数据流、能让系统崩溃的边界条件),再围绕约束设计规格。
推理框架:
对抗自检(五视角,不可跳过):
NO CODE WITHOUT SPEC FIRST
| 质量维度 | 产出文件 |
|---|---|
| 目标澄清与任务拆分 | 01-plan.md |
| 上下文选择与术语对齐 | 02-context.md |
| SDD 规格(I/O/边界/异常) | 03-sdd.md |
| 修改边界与依赖约束 | 04-boundary.md |
| 风险识别与验证计划 | 05-risk.md |
RESOLVE slug(首个命中即停):
docs/tasks/ NOT_EXISTS → 创建目录,最大序号 = 0
ELSE → READ docs/tasks/ 已有目录 → 提取所有匹配 NNNN-* 格式的目录名中的四位数字前缀 → 取最大值记为最大序号(无匹配目录则最大序号 = 0)docs/tasks/{slug}/ EXISTS → 复用该 slug{NNNN}-{keyword}(kebab-case,≤ 50 字符)docs/tasks/{slug}/ 目录(IF 已存在 → 跳过)→ ASSERT exit_code == 0TRAP:序号计算必须基于目录扫描结果,不可硬编码
0001。
产出到 docs/tasks/{slug}/。
IF 从 team-brainstorm 接手 → 复用已有 slug 目录,将 00-design-brief.md 作为背景输入。
IF mode == compact → 仅产出 03-sdd.md(可省略 §四)+ 04-boundary.md,跳过其余 4 文件。Phase 1 和 Phase 1.5 仍执行。
找到承重约束——不可打破的接口契约、单点故障的数据流、能让系统崩溃的边界条件。"看起来不重要"的约束往往代价最高。
TRAP:你会倾向于快速浏览代码后就"差不多了解了"。慢下来——漏掉一个反向依赖,整份 SDD 的影响范围就是错的。
CLAUDE.md / .cursor/rules/(必读);AGENTS.md、CONTRIBUTING.md、docs/architecture.md、docs/pm-truth-ledger.yaml(存在则读,不存在跳过)grep / find [EXPLORATORY] → 定位 3-5 个最相关源文件,精读后按依赖关系向外扩展grep + git log [EXPLORATORY] 定位三类依赖):
git log --follow 常一起改的文件)task_type:
新建功能(代码中无对应实现)→ sdd_template = 完整 SDD修改已有功能(变更/增强/修复)→ sdd_template = Delta Specsdd_template = 完整 SDD,§一 标注混合范围写任何文件之前先展示探索结论,获取用户确认。一次最多 3 个问题,优先用选项形式
_team-rules/first-principles.md: First Principle #1。 目标不是"让用户确认我已经做了探索",而是"暴露我的理解偏差——我漏了什么、误解了什么"。
WRITE(对话中)探索结论:
## 探索结论
### 任务理解
(1-3 段核心描述)
### 任务类型
{task_type}(新建 / 修改 / 混合)→ 使用 {sdd_template}
### 影响范围
- 修改模块:...
- 涉及文件:...
- 排除模块:...
### 风险预判
- ...
### 需要确认的问题(最多 3 个)
1. ...
IF 3 个问题仍不足以消除歧义 → 说明仍不清楚的部分,询问用户继续澄清还是按当前假设推进。
REPEAT MAX=5(需求澄清轮次):
MATCH 用户反馈:
确认 → 退出 REPEAT,GOTO Phase 2
要求修改 →
追加新需求 →
否决任务 → DONE(结果: 用户主动终止,不进入实现阶段)
DEFAULT → 澄清用户意图后重新匹配
REPEAT_EXHAUSTED → WRITE(对话中)"已进行 5 轮澄清,仍有未解决分歧"→ ASK_HUMAN:建议用户选择 (a) 按当前理解推进 (b) 终止任务
TRAP:多轮澄清后你会倾向于"差不多了赶紧开始写"。每轮结束前自问:用户最后一条反馈中的核心关切是否已被吸收到探索结论中?
产出的 SDD 必须让一个完全不了解项目的开发者仅凭 SDD 就能写出实现。每一条业务规则都能直接映射为测试用例——做不到就是规格不够具体。
TRAP:你会倾向于复制模板章节结构后用"按需调整""参考实际情况"填充内容。这不是规格——这是占位符。每个字段都必须是具体的、可执行的。
TRAP:你会倾向于只描述系统"做什么"(happy path),而跳过"不能做什么"(边界和异常)。边界条件和异常场景是 SDD 九章节中最容易偷懒的两部分。
IF mode == compact:
03-sdd.md + 04-boundary.mdELSE:
| 顺序 | 文件 | 模板位置 | 说明 |
|---|---|---|---|
| 1 | 01-plan.md | references/01-plan-template.md | 任务规划(目标、分期、预算) |
| 2 | 02-context.md | references/02-context-template.md | 上下文选择清单 |
| 3 | 03-sdd.md | references/sdd-template.md / references/delta-spec-template.md | 完整 SDD 或增量 SDD |
| 4 | 04-boundary.md | references/04-boundary-template.md | 修改边界 |
| 5 | 05-risk.md | references/05-risk-template.md | 风险与验证计划 |
| 6 | prompt-template.md | references/prompt-template.md | 工具适配产物 |
SIGNAL:Given/When/Then 场景中没有出现具体值(数字、字符串、状态码)→ 规则太模糊,无法直接映射测试用例。 SIGNAL:业务规则中没有 RFC 2119 标记(MUST/SHOULD/MAY)→ 优先级不明确,实现者无法判断哪些是硬约束。 SIGNAL:关键设计决策中没有"拒绝方案"→ 分析不完整,team-review 无法审查决策合理性。
GOOD:
§二 业务规则 B1:Given 用户输入金额 = 0,When 提交订单,Then 系统 MUST 返回 400 错误码,错误消息 = "金额不能为零"。BAD:§二 业务规则 B1:Given 用户输入无效金额,When 提交订单,Then 系统应该返回错误。
GOOD:
§三 关键设计决策 D1:选择 WebSocket 实时推送(低延迟、双向通信)。拒绝方案:HTTP 轮询(延迟高、服务端负载大)、SSE(单向、浏览器连接数限制)。BAD:§三 关键设计决策 D1:使用 WebSocket。
03-sdd.md 核心章节骨架:
## §二 业务规则
| 编号 | 规则 | 强度 | Given | When | Then |
|------|------|------|-------|------|------|
| B{N} | {规则描述} | MUST/SHOULD/MAY | {前置条件,含具体值} | {触发动作} | {预期结果,含状态码/错误消息} |
## §三 关键设计决策
| 编号 | 决策 | 选择方案 | 拒绝方案 | 拒绝理由 |
|------|------|---------|---------|---------|
| D{N} | {决策点} | {方案名 + 理由} | {方案名} | {具体技术理由} |
## §七 边界条件
| 编号 | 场景 | 输入 | 预期行为 |
|------|------|------|---------|
| BC{N} | {边界场景} | {具体极值/空值/格式异常} | {系统响应,含错误码} |
## §八 异常场景
| 编号 | 异常 | 触发条件 | 错误码 | 错误消息 | HTTP 状态 |
|------|------|---------|--------|---------|----------|
| E{N} | {异常名} | {何时发生} | {code} | {message} | {status} |
SIGNAL:§八 异常场景中没有并发相关条目(竞态条件、死锁、重复提交)→ 若系统有并发访问,需补充并发异常场景。 SIGNAL:§七/§八 中没有兼容性条目(旧版客户端、旧格式数据、API 版本迁移)→ 若涉及接口变更或数据格式变更,需补充向后兼容场景。
01-plan.md 核心骨架:
## 成功标准
| # | 标准 | 验证命令 | 预期结果 |
|---|------|---------|---------|
| S{N} | {可测量标准} | {具体命令} | {通过条件} |
## 非目标
- NG{N}:{明确排除的范围} — {为什么排除}
## 分期策略
| 期 | 范围 | Kill Switch 条件 |
|----|------|-----------------|
| P1 | {最小闭环} | {何时放弃} |
| P2 | {增强功能} | {何时放弃} |
## 容量与成本预估(如适用)
| 维度 | 当前/预估值 | 约束 |
|------|-----------|------|
| 数据量级 | {行数/文档数/日增量} | {上限或增长趋势} |
| QPS/并发 | {峰值请求量} | {系统承载能力} |
| 外部 API 成本 | {调用频次 × 单价} | {月度预算上限} |
| 存储增长 | {月增量} | {存储配额} |
ASSERT "TBD"/"TODO"/"待补充"/"按需调整" 匹配数 == 0——下游 Agent 无法执行含占位符的规格。发现一个就补全一个:
| 禁止 | 正确做法 |
|---|---|
| "TBD"、"TODO"、"待补充" | 写出具体内容 |
| "添加适当的错误处理" | 写出具体错误处理逻辑 |
| "类似上面"、"同上" | 重复具体内容 |
| "按需调整"、"根据实际情况" | 写出决策标准和条件 |
| "参考 {其他文件}" 无具体内容 | 写出关键内容 + 引用路径 |
写完不等于写对。用户是规格的最终消费方——只有用户确认"我理解了、我同意"才算规格定稿。跳过用户审阅进入实现 = 在未验证的地基上盖楼。
TRAP:你会倾向于"写完了直接进自检,反正后面有 CONFIRM_SPEC"。CONFIRM_SPEC 是编排器层面的确认,Phase 2.5 是 Skill 内部的质量反馈循环——两者不可互相替代。
## 规格产出摘要
### SDD 核心内容
- 业务规则:{N} 条(MUST {N} / SHOULD {N} / MAY {N})
- 关键设计决策:{N} 个(含拒绝方案)
- 边界条件:{N} 个
- 异常场景:{N} 个
### 业务规则速览(用户重点审阅)
| 编号 | 规则 | 强度 | Given → When → Then |
|------|------|------|---------------------|
| B1 | {规则} | MUST | {GWT 一句话概述} |
| ... | ... | ... | ... |
### 关键设计决策速览
| 编号 | 决策 | 选择 | 拒绝方案 | 需要确认? |
|------|------|------|---------|-----------|
| D1 | {决策} | {chosen} | {rejected} | ✅ 是 / — 已定 |
### 修改边界
- Allow:{文件列表}
- Deny:{文件列表}
IF mode == full → 还展示 01-plan 分期策略 + 05-risk Kill Switch 条件
WRITE(对话中)确认提示:以上规格是否通过?(通过 / 修改 / 追加 / 否决)
循环:用户未确认通过前持续迭代,每次回复后重新请求确认。
MATCH 用户反馈:
确认通过 → GOTO Phase 3修改规格 →
修改已完成,规格是否通过?(通过 / 继续修改 / 追加 / 否决)追加规格 →
追加已完成,规格是否通过?(通过 / 修改 / 继续追加 / 否决)否决方案 →
前置说明:本方案的执行者是 AI Agent(team-impl),不是人类开发者。审查时应以 AI 的能力边界和行为特征为基准:AI 严格遵循字面指令但缺乏常识推断、擅长模式匹配但容易过度泛化、不会主动质疑规格中的矛盾。因此规格必须比给人类的更精确、更显式、零歧义。
同一个人换五个视角比一个视角看五遍更有效。每个角色有不同的盲区和关注点——实现者关心"能不能写",攻击者关心"怎么搞坏",测试者关心"怎么证伪"。
TRAP:你刚写完 SDD,此刻最不适合评价它的质量——实现偏见会让你觉得"写了就是对的"
_team-rules/first-principles.md: First Principle #2。切换角色是对抗实现偏见的主要手段。
REPEAT MAX=3(审查-修复循环):
每个角色独立审视 SDD,产出角色级问题清单。角色之间不共享结论——后一个角色不因前一个角色"没发现问题"就放松审查。
FOR role IN [实现者, 测试者, 攻击者, 用户, 运维者]:
MATCH role:
实现者(能不能照着规格写出代码?):
03-sdd.md §四 数据流 + §五 输入规格 + §六 输出规格测试者(每条业务规则能否直接映射为测试用例?):
03-sdd.md §二 业务规则 + §七 边界条件 + §八 异常场景攻击者(如何用合法但恶意的输入搞坏系统?):
03-sdd.md §五 输入规格 + §七 边界条件 + §八 异常场景用户(从使用者角度,这个设计解决了真实痛点吗?):
03-sdd.md §一 背景与动机 + §九 验收 Checklist运维者(上线后能不能监控、能不能回滚、出问题能不能定位?):
03-sdd.md §三 关键设计决策 + §八 异常场景DEFAULT → 跳过未知角色
TRAP:你会倾向于让每个角色都给出"无问题"以快速通过。对抗方法:每个角色必须至少给出 1 条观察(可以是"已确认 X 合规"的正面观察,但不可为空)。
TRAP:橡皮图章化——5 个角色全部给出"已确认合规"的正面观察,实际未深入审视。对抗方法:每轮至少有 1 个角色发现可改进项(即使是 P3 级建议),否则视为审查深度不足,至少重审实现者和攻击者两个角色。
WRITE(对话中)多角色审查汇总:
## 多角色审查结果(第 {N} 轮)
| 角色 | 发现问题数 | 关键发现 |
|------|-----------|---------|
| 实现者 | {N} | {最重要的 1-2 条} |
| 测试者 | {N} | {最重要的 1-2 条} |
| 攻击者 | {N} | {最重要的 1-2 条} |
| 用户 | {N} | {最重要的 1-2 条} |
| 运维者 | {N} | {最重要的 1-2 条} |
GATE 产出逐条检查:
通用项(完整 + 精简模式均检查):
SDD 含九章节:§一 背景动机 && §二 业务规则 && §三 关键设计决策 && §四 数据流 && §五 输入规格 && §六 输出规格 && §七 边界条件 && §八 异常场景 && §九 验收 Checklist(精简模式 §四 数据流可省略)SDD §二 业务规则每条含 Given/When/Then 格式SDD 含关键设计决策表(选择方案 + 拒绝方案 + 拒绝理由)boundary 含 allow 列表 && deny 列表来源标签({extracted}/{inferred}/{ambiguous})标注数 >= 1修改类任务用 Delta Spec || 新建类任务用完整 SDD"TBD"/"TODO"/"待补充" 匹配数 == 0§五 输入/输出规格中标注数据分类和脱敏策略(team-security: RED_LINE_1)§二 业务规则中 CONTAINS 人工确认机制设计(team-security: RED_LINE_3)§三 关键设计决策中记录审批状态(team-security: RED_LINE_4)完整模式附加项(精简模式跳过):
| 维度 | 检查条件 |
|---|---|
| 计划 | 成功标准 ≥ 3 条(每条有验证命令 + 预期结果)、非目标 ≥ 2 条、自我约束预算已声明 |
| 分期 | P1 最小闭环 + 后续候选 + Kill Switch 条件、阶段拆分 ≥ 5 |
| 上下文 | 术语表 ≥ 3 个(标注模块)、引用 ≥ 3 文件、排除 ≥ 1 文件 |
| 风险 | 风险 ≥ 2 条(含缓解措施)、Kill Switch ≥ 2 个、停下来问人 ≥ 3 条 |
| 容量成本 | 涉及数据存储/外部 API/高并发场景时,容量与成本预估已声明(无相关场景则标注 N/A) |
| 架构 | SDD 含 ASCII 数据流图 |
| 工具 | prompt-template.md 独立产出(五要素)、pm-truth-ledger 已追加(IF EXISTS) |
IF GATE 全部通过 && 多角色审查问题数 == 0 → 退出 REPEAT,规格定稿
ELSE(存在未通过项或角色发现的问题):
issue IN GATE 未通过项 + 多角色发现的问题:
issue:
03-sdd.md §二 → 逐条重写为 Given/When/Then + 具体值{extracted}/{inferred}/{ambiguous} 标签03-sdd.md §三 → 补充拒绝方案和理由修复 {N} 个问题:{问题列表简述}SIGNAL:同一检查项连续 2 轮未能修复 → 可能是信息不足而非执行错误,考虑是否需要 GOTO Phase 1.5 向用户补充澄清。
REF _team-rules/constitutional-rules.md — 10 条 Constitutional Rules
REF _team-rules/first-principles.md — 4 条第一性原理(First Principle #1 ~ #4)
REF _team-rules/spec-driven-workflow.md — Spec-Driven 开发原则与 TDD 工作流
REF _team-rules/task-lifecycle.md — 来源标签规范(§1.3)
规格制定阶段尤其注意:
_team-rules/first-principles.md: First Principle #1_team-rules/first-principles.md: First Principle #1 + First Principle #3_team-rules/first-principles.md: First Principle #3GATE Skill 完成前自检(全部通过才声明完成):
完整模式产出文件数 == 6 || 精简模式产出文件数 == 2Phase 3 多角色轮审 + GATE 检查全部通过(通用项 + 适用的附加项)Phase 3 每个角色至少 1 条观察(非全空)Phase 2.5 用户审阅确认 == truePhase 1.5 用户确认 == true"TBD"/"TODO"/"待补充" 匹配数 == 0来源标签使用数 >= 1无占位符残留({N}、{slug} 等已被实际值替换)IRON_LAW 遵守 — 规格产出后已获用户确认,未自动进入实现REF _team-rules/four-state-protocol.md — 四态完成状态
MATCH result:
全部文件产出 && 自检通过 → DONE(模式: {完整/精简}, 文件: [...])产出完成 && 有保留意见 → DONE_WITH_CONCERNS(concerns: [...])用户否决任务 → DONE(结果: 用户主动终止)需求信息不足 → NEEDS_CONTEXT需求不可行 → BLOCKED被谁调用:
team-orchestrator(编排模式)team-brainstorm(讨论完成后)team-feedback(反馈揭示 spec 遗漏时)配对使用:
team-impl — REQUIRED:规格完成后必须进入实现team-impl 开始 TDD 实现