원클릭으로
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 实现