一键导入
stdd-build
STDD Phase 4: TDD 实现 — 逐切片实现并通过测试
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
STDD Phase 4: TDD 实现 — 逐切片实现并通过测试
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
STDD Phase 5: 质量验证 — 运行测试、覆盖率、lint 等质量检查
STDD Phase 2: 规格设计 — 将 proposal 转化为可测试的 spec Scenario
STDD Phase 6: 交付 — 归档 change、合并 specs、更新文档
STDD Phase 3: 切片规划 — 将 spec 拆分为可实现的开发切片
STDD Phase 1: 需求理解与确认 — 将模糊需求转化为清晰、可验证的变更提案(proposal.md)
| name | stdd-build |
| description | STDD Phase 4: TDD 实现 — 逐切片实现并通过测试 |
按切片逐一执行 RED → GREEN → REFACTOR,完成所有实现代码和测试代码。
.stdd.yaml 中 phases.slice.status == "completed"自动迭代,行为取决于所选模式:
进入本阶段时,先读取 .stdd.yaml 中的 long_range.mode 确定当前模式。
长程退出检测:在每个切片开始前,检查用户最新消息是否包含"切换普通模式"或"退出长程"。如检测到,更新 .stdd.yaml 中 long_range.mode: normal,当前切片完成后暂停等待用户确认,后续切片按普通模式交互。
long_range.mode == "full_auto" 时适用)长程模式 ≠ 可以跳过流程步骤。 Long-range mode skips authorization interactions, NOT process steps.
以下规则不可违反。违反任一条 = 流程失败 / The following rules CANNOT be violated:
| # | 中文 | English |
|---|---|---|
| 1 | 每个 Step 必须执行 — 长程模式跳过的是授权交互(AskUserQuestion),不是流程步骤 | EVERY Step MUST be executed — long-range skips authorization (AskUserQuestion), NOT process steps |
| 2 | Step 1.4 切片验证不可跳过 — 每个切片必须通过 TC 覆盖 + 产出物核对 + 测试通过三项检查 | Step 1.4 slice verification CANNOT be skipped — every slice MUST pass TC coverage + deliverable check + test pass |
| 3 | 每个切片必须有新增测试 — 如果 test-plan 中本切片有 TC,新增测试数必须 > 0 | EVERY slice MUST have new tests — if test-plan has TCs for this slice, new test count MUST be > 0 |
| 4 | 进度标记必须有证据 — .stdd.yaml 的 slice done 必须关联 tc_coverage / new_tests / verified_at | Progress markers MUST be evidence-backed — slice done requires tc_coverage / new_tests / verified_at |
| 5 | 降级触发覆盖静默失败 — 切片 TC 覆盖率为 0 → WARNING;连续 3 个切片无新增测试 → DEGRADE | Degradation covers silent failures — 0 TC coverage → WARNING; 3 consecutive slices with 0 new tests → DEGRADE |
| 6 | 禁止占位符标记完成 — 产出物为 [TODO] 或骨架占位符的切片不能标记为 done | NEVER mark placeholders as done — slices with [TODO] output CANNOT be marked complete |
在开始本阶段之前,检查当前会话的上下文状态。本步骤不可跳过。
估算上下文长度:
判断是否需要重置:
如果建议重置:
stdd state --resume 结果如果选择继续(或不满足重置条件):
上下文预算检查是软建议,不阻断流程。仅做提示。
在开始编码之前,必须先读取开发规范:
.stdd/config.d/project.yaml → 获取 project.language.stdd/standards/<language>.md(如 python.md)在开始编写代码之前,从项目经验库加载与当前变更相关的经验,预防已知失败模式:
python bin/stdd experience list --language <project.language> --format jsonlifecycle_state 为 verified 或 settled 的经验(已充分验证的经验更可靠)project_type 过滤经验:
project_type: null(通配,V2.4 兼容)的经验 → 加载project_type 不匹配的经验 → 跳过已加载 <N> 条匹配经验(<project_type>),过滤 <M> 条不匹配.stdd/config.d/experience.yaml 的 auto_load.max_experiences 读取)经验库加载: <N> 条匹配经验已注入上下文对 slices.md 中的每个切片(或 tasks.md 中的每个任务):
test-plan.md 中找到本切片对应的 TC 案例test_<被测方法>_<场景>_<预期结果>本步骤不可跳过。长程模式下也必须执行。
在进入下一个切片之前,必须逐项验证本切片的完成情况:
TC 覆盖检查:
test-plan.md,获取本切片对应的所有 TC-IDtests/ 目录,确认每个 TC-ID 是否在测试函数注释中出现产出物核对:
slices.md 中本切片的"实现目标"列测试运行:
pytest tests/ -k "<slice_test_pattern>" -v更新状态(仅在全部通过后):
# .stdd.yaml
phase4:
slices_completed:
"<N>":
status: "done"
tc_coverage: "<M>/<K>"
new_tests: <M>
verified_at: "<timestamp>"
不通过处理:
执行条件:slices.md 中存在 parallel_group 标记,且本组所有切片已完成 Step 1.4 验证。
git diff --check 检查合并冲突非并行模式(单切片顺序执行)跳过此步骤。
每个切片完成(含 Step 1.4 验证通过)后:
此步骤确保后续 session 恢复时,Agent 可精确知道每个切片的完成状态。
如果在实现过程中发现 spec/design 需要调整:
小的偏离(不改变接口和行为语义):
pending-adjustments.md大的偏离(改变接口或行为语义):
普通模式:
pending-adjustments.md━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
STDD Phase 4: BUILD — 设计偏离
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ 实现过程中发现需要调整设计:
原始设计:<引用 design.md 或 spec.md 的原文>
实际需要:<描述需要的调整>
原因:<为什么需要调整>
这个调整影响较大,需要你确认。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
长程模式:
pending-adjustments.md,包含:原始设计引用、实际调整内容、调整原因、影响范围design-adjustments.md 中汇总技术阻塞:
普通模式:
长程模式:
workaround:尝试绕过方案,记录到 pending-adjustments.mdskip_slice:标记当前切片为待处理,跳过继续后续切片每个切片完成后:
[x]long_range.mode == "full_auto"):立即在同一轮次内自动调用 stdd-verify skill,不等待用户输入pending-adjustments.md(如有设计偏离)每个切片完成后确认:
| 场景 | 普通模式 | 长程模式 |
|---|---|---|
| 切片正常执行 | 自动完成,不中断 | 自动完成,不中断 |
| 切片之间切换 | 自动进入下一个切片 | 自动进入下一个切片 |
| 小设计偏离 | 记录 pending-adjustments,继续 | 记录 pending-adjustments,继续 |
| 大设计偏离 | 暂停,报告用户 | 自动记录并继续(test-report 汇总) |
| 技术阻塞 | 暂停,询问用户 | 尝试绕过/跳过;无法处理时降级暂停 |
| 所有切片完成 | 自动进入 Phase 5 | 自动进入 Phase 5 |
当 slices.md 中存在标记为 parallel_group: N 的切片时,可采用并行执行策略:
slices.md,检查是否有切片标记了 parallel_groupparallel_group 的切片可同时派发给多个子 agent若无 delegation 能力或并行派发失败:
slices.md 的依赖拓扑顺序串行执行并行执行完成后:
并行执行完成: <N> 个切片,<M> 个冲突已合并Phase 4 完成 → 自动进入 Phase 5: VERIFY(质量验证)