PACE — Router & State Machine (v9.9.6, Codex)
6 路径
主 agent 收到用户输入后, 按改动量 + 紧急度判定路径:
| 路径 |
触发 |
stage 流程 |
强制 review? |
强制 polish? |
强制 worktree? |
| Hotfix |
生产事故, 几分钟修 |
impl → ship |
❌ |
❌ |
❌ |
| Bugfix |
已知 bug, 单文件 |
report → (analyze) → impl → review → ship |
✅ 单维 |
❌ |
❌ (fix-note 必写) |
| Quick |
小改动, ≤3 文件 |
plan → impl → review → ship |
✅ 单维 |
❌ |
❌ |
| Feature |
新功能, 单模块 |
plan → impl → [runtime-verify?] → review → ship |
✅ 单维 |
❌ |
❌ (可选) |
| Refactor |
改架构, ≥5 文件 |
plan → impl → runtime-verify → review → polish → ship |
✅ 三维度 |
✅ |
✅ 强制 |
| System |
跨模块, 系统级 |
plan → design → impl → runtime-verify → review → polish → ship |
✅ 三维度 |
✅ |
✅ 强制 |
9 Stage 状态机 (4 核心 + 5 条件)
(大需求或描述模糊时)
↓
[brainstorm] ──→ [roadmap] ──→ plan ──→ [design] ──→ impl ──→ [runtime-verify] ──→ review ──→ [polish] ──→ ship
↑ (System) (3 维度) (Refactor/System)
xhigh + critic 多轮
路由审议 (v9.9.1 · 可审计决策摘要)
路由是 triage, 不是查表. 完整 5 步协议 (候选 → 四维权衡 → 置信度阈值 → route-note 格式) 见 athena-dev — 本文件不复述, 避免双写漂移. 结论落 sprints/{slug}/route-note.md + _index.route_confidence.
模糊判定 (语义, 非字数): 能否从输入直接写出可验收标准? 写不出 = 模糊 → brainstorm.
(废除旧版 len(input.split()) < 8: split 按空格切词, 对中文输入恒为 1, 判定失效)
护栏是地板, 不是天花板 (铁律[分诊]):
| 硬护栏 (不可击穿的下限) |
最低路径 |
| ≥2 个可独立验收交付的切片 |
roadmap (hotfix2: 模块数只定风险等级, 不可拆的跨模块不变量单 sprint 做) |
| 跨模块改动 / 预估 ≥5 文件 |
Refactor |
| 用户显式声明生产事故 |
Hotfix (唯一免审议, 直接进) |
审议只允许在地板之上加码 (Quick 判成 Feature 可以), 不允许低于地板 (System 级判成 Quick 禁止).
中途 re-route (只升不降)
路径不在入口一锤定音. sprint 执行中证据与路径不符 → 重走审议, 只允许升级 (Quick→Feature→Refactor→System):
- 机械触发 (index-updater hook): sprint 改动文件数超路径上限 (Quick>3 / Feature>10) → 写
next_action=re-route
- 语义触发 (agent 自查): checklist 膨胀 >50% / 发现跨模块耦合 / design 关键假设被推翻
- 动作: 重走审议 → route-note 追加
## Re-route 段 + _index.route_history 记一条 → 补上新路径欠的 stage (如升 Refactor 需补 runtime-verify + polish + worktree)
- 降级禁止: 降级 = 给 agent 逃避门禁开合法通道. 确需降级只能用户显式批准
写入路由 (铁律[零写入] 红黄绿区)
| 区 |
条件 |
执行者 |
| 绿 |
≤3 文件且合计 ≤150 行, 或 Hotfix/Quick/Bugfix |
主 thread 直接做 |
| 黄 |
单模块 Feature/Bugfix |
spawn_agent, worktree 可选 |
| 红 |
Refactor/System 或并行 ≥2 写者 |
主 thread git worktree add; spawn_agent 任务携带绝对路径; agent 用 pwd/workdir 验证 |
| 例外 |
改动对象在 repo 外 (安装态 harness 等) |
worktree 零隔离效果 → 免 worktree; 设 _index.harness_target_outside_repo: true, 改前逐文件备份, 单写者串行 (P9 根治) |
每次 spawn_agent 必须先按 references/orchestration.md#spawn-binding-handshake 串行完成 raw SubagentStart → assignment schema v1 绑定; 绑定失败即停, 绑定完成后 agents 才可并发执行.
References (按需 Read, 不要预加载)
| 场景 |
Read |
| 进入某 stage 前看详细工作流 / 数据目录 |
references/stages.md |
| 选编排机制 (spawn_agent / multi-agent v2 / Goals) |
references/orchestration.md |
| 查 hook 联动 / compound 联动 / 项目级例外 |
references/hooks.md |
| 某 stage 该用哪个插件 / 插件与流程冲突 |
references/plugins.md (v9.9.0 U6) |
| MCP 连接外部 / MCP 与流程边界 |
references/mcp.md (v9.9.6) |
最小循环提醒
- plan/design:
plan_mode_reasoning_effort = xhigh 已生效; critic 多轮 (max = _index.plan_critique_max_rounds); _index.plan_model: opus 为 CC 端专属 (Opus 5), CX 端使用 xhigh reasoning effort
- spec-gate impl-entry (design §4.2): Feature+ 进 impl 前, 主 agent 先验
design.md 有机器可识别验收标准 (## Acceptance Criteria / ## 验收标准 + ≥1 可观测 checkbox/编号/列表项) 或 requirements 提供; 写不出 = intent 未定 → 回 plan/brainstorm。ship 由 delivery-gate 机器复核 (§4.4)。
- impl: 按红黄绿区路由写入; hook 记录能观察到的过程证据, 文件证据由
git diff 现场核验
- runtime-verify (Refactor/System 强制 · Feature 可选): 实跑 + 自测自改, 产出 runtime-verify.md; 仅在用户显式要求或已有 Goal 时用 Goals 承载
- review: 并行 reviewer + spec-compliance 返回结果; 主 thread 合并 passN.md 后再跑 evaluator, 最后由主 thread 更新
_index.next_action
- ship: delivery-gate 强制门禁 (cleanup-pass / architecture / re-review / spec-compliance)
1---2name: pace-123description: PACE 路由与 4 核心 + 5 条件 stage 全景。面包屑失效或需要路由全景时 Read,不必每 sprint 必读。4---56# PACE — Router & State Machine (v9.9.6, Codex)78## 6 路径910主 agent 收到用户输入后, 按改动量 + 紧急度判定路径:1112| 路径 | 触发 | stage 流程 | 强制 review? | 强制 polish? | 强制 worktree? |13|---|---|---|---|---|---|14| **Hotfix** | 生产事故, 几分钟修 | impl → ship | ❌ | ❌ | ❌ |15| **Bugfix** | 已知 bug, 单文件 | report → (analyze) → impl → review → ship | ✅ 单维 | ❌ | ❌ (fix-note 必写) |16| **Quick** | 小改动, ≤3 文件 | plan → impl → review → ship | ✅ 单维 | ❌ | ❌ |17| **Feature** | 新功能, 单模块 | plan → impl → [runtime-verify?] → review → ship | ✅ 单维 | ❌ | ❌ (可选) |18| **Refactor** | 改架构, ≥5 文件 | plan → impl → runtime-verify → review → polish → ship | ✅ 三维度 | ✅ | ✅ 强制 |19| **System** | 跨模块, 系统级 | plan → design → impl → runtime-verify → review → polish → ship | ✅ 三维度 | ✅ | ✅ 强制 |2021## 9 Stage 状态机 (4 核心 + 5 条件)2223```24 (大需求或描述模糊时)25 ↓26[brainstorm] ──→ [roadmap] ──→ plan ──→ [design] ──→ impl ──→ [runtime-verify] ──→ review ──→ [polish] ──→ ship27 ↑ (System) (3 维度) (Refactor/System)28 xhigh + critic 多轮29```3031## 路由审议 (v9.9.1 · 可审计决策摘要)3233路由是 triage, 不是查表. **完整 5 步协议 (候选 → 四维权衡 → 置信度阈值 → route-note 格式) 见 `athena-dev` — 本文件不复述, 避免双写漂移.** 结论落 `sprints/{slug}/route-note.md` + `_index.route_confidence`.3435**模糊判定 (语义, 非字数)**: 能否从输入直接写出可验收标准? 写不出 = 模糊 → brainstorm.36(废除旧版 `len(input.split()) < 8`: split 按空格切词, 对中文输入恒为 1, 判定失效)3738**护栏是地板, 不是天花板** (铁律[分诊]):3940| 硬护栏 (不可击穿的下限) | 最低路径 |41|---|---|42| ≥2 个可独立验收交付的切片 | roadmap (hotfix2: 模块数只定风险等级, 不可拆的跨模块不变量单 sprint 做) |43| 跨模块改动 / 预估 ≥5 文件 | Refactor |44| 用户显式声明生产事故 | Hotfix (唯一免审议, 直接进) |4546审议只允许在地板之上加码 (Quick 判成 Feature 可以), 不允许低于地板 (System 级判成 Quick 禁止).4748## 中途 re-route (只升不降)4950路径不在入口一锤定音. sprint 执行中证据与路径不符 → 重走审议, **只允许升级** (Quick→Feature→Refactor→System):5152- **机械触发** (index-updater hook): sprint 改动文件数超路径上限 (Quick>3 / Feature>10) → 写 `next_action=re-route`53- **语义触发** (agent 自查): checklist 膨胀 >50% / 发现跨模块耦合 / design 关键假设被推翻54- **动作**: 重走审议 → route-note 追加 `## Re-route` 段 + `_index.route_history` 记一条 → **补上新路径欠的 stage** (如升 Refactor 需补 runtime-verify + polish + worktree)55- **降级禁止**: 降级 = 给 agent 逃避门禁开合法通道. 确需降级只能用户显式批准5657## 写入路由 (铁律[零写入] 红黄绿区)5859| 区 | 条件 | 执行者 |60|---|---|---|61| 绿 | ≤3 文件且合计 ≤150 行, 或 Hotfix/Quick/Bugfix | 主 thread 直接做 |62| 黄 | 单模块 Feature/Bugfix | spawn_agent, worktree 可选 |63| 红 | Refactor/System 或并行 ≥2 写者 | 主 thread `git worktree add`; `spawn_agent` 任务携带绝对路径; agent 用 `pwd`/`workdir` 验证 |64| 例外 | 改动对象在 repo 外 (安装态 harness 等) | worktree 零隔离效果 → 免 worktree; 设 `_index.harness_target_outside_repo: true`, 改前逐文件备份, 单写者串行 (P9 根治) |6566每次 `spawn_agent` 必须先按 [`references/orchestration.md#spawn-binding-handshake`](references/orchestration.md#spawn-binding-handshake) 串行完成 raw `SubagentStart` → assignment schema v1 绑定; 绑定失败即停, 绑定完成后 agents 才可并发执行.6768## References (按需 Read, 不要预加载)6970| 场景 | Read |71|---|---|72| 进入某 stage 前看详细工作流 / 数据目录 | `references/stages.md` |73| 选编排机制 (spawn_agent / multi-agent v2 / Goals) | `references/orchestration.md` |74| 查 hook 联动 / compound 联动 / 项目级例外 | `references/hooks.md` |75| 某 stage 该用哪个插件 / 插件与流程冲突 | `references/plugins.md` (v9.9.0 U6) |76| MCP 连接外部 / MCP 与流程边界 | `references/mcp.md` (v9.9.6) |7778## 最小循环提醒7980- plan/design: `plan_mode_reasoning_effort = xhigh` 已生效; critic 多轮 (max = `_index.plan_critique_max_rounds`); `_index.plan_model: opus` 为 CC 端专属 (Opus 5), CX 端使用 xhigh reasoning effort81- **spec-gate impl-entry (design §4.2)**: Feature+ 进 impl 前, 主 agent 先验 `design.md` 有机器可识别验收标准 (`## Acceptance Criteria` / `## 验收标准` + ≥1 可观测 checkbox/编号/列表项) 或 requirements 提供; 写不出 = intent 未定 → 回 plan/brainstorm。ship 由 delivery-gate 机器复核 (§4.4)。82- impl: 按红黄绿区路由写入; hook 记录能观察到的过程证据, 文件证据由 `git diff` 现场核验83- runtime-verify (Refactor/System 强制 · Feature 可选): 实跑 + 自测自改, 产出 runtime-verify.md; 仅在用户显式要求或已有 Goal 时用 Goals 承载84- review: 并行 reviewer + spec-compliance 返回结果; 主 thread 合并 passN.md 后再跑 evaluator, 最后由主 thread 更新 `_index.next_action`85- ship: delivery-gate 强制门禁 (cleanup-pass / architecture / re-review / spec-compliance)