Skip to content

Latest commit

 

History

History
108 lines (89 loc) · 8.92 KB

workflow.md

File metadata and controls

108 lines (89 loc) · 8.92 KB
title 开发 Loop 单轮工作流
type guide
status accepted
phase N/A
updated 2026-09-13
summary 单轮 tick:任务源优先级;本 wake 续派;/loop 只保活;合入见 closeout 转换表。2026-09-13 补 § 行动层后注格式(必填测试证据=完整模块套件真实 pass/fail;禁 leftover 工单 / 免责清单 / 队列 SSOT 写后注 / 同形缺口逐处开行)。

单轮 Tick 工作流

平台无关。原则见 overview.md § 迭代原则。MVT 与 TickType见 execution-contract.md。各运行时如何「触发」一轮见 runtimes/。

每轮必做(顺序)

  1. Boot(强制) — 工具 Read(不可凭记忆)loop-prompt.txt 与本文档链接的 execution-contract.md;Final Output 写 boot: loop-prompt + execution-contract。见 human-input.md § Sticky。
    0b. 读人类输入 — 当前模型(slug + 运行时)+ 大致方向 → human-input.md
    • Claude Code / OpenCode:人类未写时,读会话配置后声明;OpenCode 有 -m 则直接复述该值
    • 每轮开头或结尾可见复述当前模型,禁止只说「Claude Code 默认」
  2. 读进度 — dev/progress/status.md →「Next」与最新 session(当假设,须用代码/队列验证,勿盲信「已完成」)
  3. 读队列 SSOT — deferred-gaps.md · research-queue.md
  4. 读任务源 — 活跃 dev/roadmap/active/(或项目约定的 phase 文档)
  5. 自主选任务 — 按 execution-contract.md § 方向决策 优先级表。有明确任务:本 wake 委派 Plan/Implementation(禁止 Discovery-only、禁止等下一轮 /loop)。无明确任务才 Discovery / plan。
  6. 执行 — 按 MVT 续派;本波终态则同 wake closeout;父 agent 不改 prod
  7. 验证 — 遵守 health-gates.md 冷却;有变更跑聚焦 gate;grand 受 8-tick 间隔约束
  8. 更新行动层 — 勾选消费仓库任务源、更新 status.md;缺口/研究项改表(两队列 SSOT)。后注格式见下节 — 必填/禁止字段是硬约束
  9. Git(自主 commit,仅 Loop 会话) — Overall Verification ≠ FAIL 且有实质变更 → Commit Gate READY → 父 agent 字母槽本地 commit。集成分支 push 仅 merge 槽且转换表允许。仅 Git:禁止 commit 或门禁未通过时可跳过。非 Loop 会话须用户明确要求才可 commit。

行动层后注格式

步骤 7 的后注是本轮证据记录,不是下一刀的工单。

必填 说明
主题 日期 · 槽位 · slice 名
结果 一句话说明改了什么,不机械列文件
测试证据 本轮有编译型语言(Kotlin / Java / Go 等)prod delta 时,必须跑改动模块的完整模块套件(如 :<module>:test)并写真实 pass/fail 数。--tests 过滤的聚焦测不满足本项,只能作为补充证据
闭合动作 本轮 closed 的队列条目 id;无则写「无」
禁止 理由
「只报:<还没修的地方>」式 leftover 清单 后注里的 leftover 会被下一 tick 当工单照单开刀,把一个根因裂成 N 个同形 gap。本轮发现的 leftover 要么一并收编,要么在队列 SSOT 写成一条形状级父行,不得每处开一行
「既有 * 仍 open」「不闭 X / Y」「不 accept ADR」等免责清单 未做的事默认就是未做,无须逐条声明;这类行只增加账本体积,不增加信息
聚焦测冒充模块套件 见上「测试证据」
在队列 SSOT 里写后注块 后注只进行动层快照(status.md)。deferred-gaps.md / research-queue.md 是台账不是日志,正文只许表体与维护规则

同形缺口:同一根因的多处实例(同一 catch 形态、同一映射缺失、同一孪生文件)登记为一条形状级父行 + 实例清单,不得一处一行。修复应收编到共享抽象,不是逐处打补丁。

自主 Loop 额外要求

使用 loop-prompt.txt 时:

  • 方向决策 — execution-contract.md 优先级表;有明确任务禁整体重分析

  • Overall Verification 每轮必跑(PASS / PARTIAL / FAIL / HUMAN_DECISION_REQUIRED)— 单路收口。Next 为保活提示;优先级 1–3 未枯竭不得用 Discovery 收尾

  • Wave 3 维度评审仅用于 plan/ADR 首次起草或重大修订 tick;其中 Architecture 维与 Arch-First 去重;实施 tick 只跑 Overall Verification

  • plan tick 须完成 Architecture-First(≥中强独立审查)或合法 trivial skip,见 execution-contract

  • Implementation Agent 不得自行宣布最终完成

  • 不得擅自简化方案实现 — 以 plan/roadmap/ADR 原文为 scope;缩水、未登记的 stub、静默砍步骤 → 不得勾 checkbox / 不得 PASS

  • 新 gap / 研究项 必须写入两队列 SSOT,不可只写在 tick 输出里

退出条件(本轮停止)

  • 本波已按 closeout 转换表处理(或无并行兄弟),且本 wake 无剩余明确未委派任务
  • plan / roadmap / ADR 草案产出且无 blocking question
  • 发现需人类裁决的 blocking decision
  • 无安全可执行动作,且优先级表 1–3 已检查并枯竭

禁止

  • 空转 — 无 prod/文档变更且仅重复已冷却的 gate(见 health-gates)
  • 连续 verify-only — 两轮仅跑测试无实施/plan
  • 父 agent 改 prod — 须 spawn Implementation Agent(见 execution-contract)
  • 跳过 Overall Verification — 聊天里宣布完成
  • 擅自简化实现 — 未改 plan/ADR 就砍 scope、用 stub 顶替契约、勾 checkbox 冒充完成
  • 后注写成下一刀工单 — 见 § 行动层后注格式;leftover 清单、免责清单、聚焦测冒充模块套件均禁止
  • 同形缺口逐处开行 — 同一根因的 N 个实例须折成形状级父行;逐处开 gap 等于用账本掩盖缺共享抽象
  • 擅自改 dev/loop/ — 套件内文件须经人类明确同意;loop tick 中 agent 不得改 playbook/契约
  • merge 整文件选边 / 口号 keep both — 同步或合入时禁止 --ours/--theirs 整文件、-X ours/theirs;须真三路合并并跑 scripts/check-merge-both-sides.sh(见 worktrees.md §5.1)
  • 宣称并行 wave 完成却未关仓 — 须跑完 worktree-closeout.md P0–P7;字母槽不直推 main
  • 空转收尾 — 有明确任务却只写 Next 等下一轮 /loop;或优先级 1–3 未看完就 Wave 0
  • 并行中途单槽合入 — 本波仍有 occupied 却走 §5 进集成分支
  • 盲信 carry-forward — 不读任务源就沿用 status/Next
  • 跳过 Boot — 未工具 Read loop-prompt.txt + execution-contract.md 凭记忆开干
  • SwitchMode 进只读 Plan — 父 agent 须留在可写/可委派模式(见 loop-prompt Subagent Policy)
  • 构建红时 push — 相关 check 失败或会阻塞主轨编译时不 push
  • 并行抢资源 — 同一 adb 设备上多个烟测 agent;OpenCode 会话内禁止 opencode run 抢设备(见 external-cli.md)
  • 实施阶段重议模型 — 写代码/fix 应固定当前环境模型,禁止每 tick 换模型或跨栈
  • 弱架构模型改方案正文 — 见 models.md
  • 验收多份重复评审报告 — Overall Verification 单路即可;不为验收再 spawn 多路 reviewer
  • 非 Cursor 调 Cursor CLI — 无 prompt 「Cursor 可用」 不得 agent -p(见 external-cli.md)
  • 子 agent 传 model 写代码 — 默认禁止;实施用当前环境模型,不用 GPT / Opus
  • 写代码默认跨栈 — 禁止;除非 prompt 授权或当前环境无法执行
  • 只读规划占满父会话 — 规划/调研/方案委派子 agent(或各运行时等效分工);见 overview.md

输出模板(父 agent 每轮结尾)

- 当前模型:<slug>(<运行时>)— 实际绑定,非运行时默认值
- 人类方向:<复述范围,非任务列表>
- TickType + 委派证据:<见 execution-contract.md>
- 本轮自主的选择:<roadmap id / 主题>(为何与此方向一致)
- 完成:<勾选项>
- 证据:<文件 / 测试命令 / commit hash>
- 验证:<pass/fail/skip 原因>
- Commit:<hash 或 skip 原因>
- Next:<保活重入提示;本 wake 明确任务须已委派。优先级 1–3 枯竭才 Discovery>