games-development-ai/docs/agent-specs/2026-06-16-生成引擎-并行编排.md
zizi 2c74069144 docs(gen): 生成引擎并行开发编排——依赖图 + 5 车道(worktree隔离) + studio session 边界
把普查清单 open 任务切成可并行车道:A(aigc后端/DB·组B→source列→R6 车道内串行)/B(SAA worker)/
C(质量harness成本)/D(prompt-gatespec 双侧同步)/E(开闸前置 G0创作页核实 + G1 GP9 staging验);
game-studio/ 全域划归另一 session,接缝(FeedCard templateName / sort_score / SSE)走契约先行 + 通知。
Flyway 版本预分配 V16/V17 防抢号;跨车道依赖 + 创始人卡点(labels.json/2安全洞/日历闸门)标清。供多 session 共用。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 16:41:13 +00:00

9.2 KiB
Raw Blame History

生成引擎 · 并行开发编排(多 session 共用 · 依赖图 + 车道)

状态:编排协调版 · 2026-06-16 · 供多 session 并行开发共用读。 WHAT 来源:docs/agent-specs/2026-06-16-生成引擎-任务清单普查.md(任务全景普查 §1-§8)。本文是其 HOW-to-parallelize——把 open 任务切成可并行车道 + 标依赖 + 划 session 边界。 核心原则:parallel boundary = module boundary;车道间零共享状态、只经契约交互(参 .agents/skills/contract-first-development.md / .agents/workflows/mvp-execution-orchestration.md 第 5 策)。 ⚠️ session 边界(最重要):game-studio/(产品前端:创作页 / feed UI / 缩略图展示 / 进度条 / 设计体系 HJ-FE-DS-001)整块归 studio session;本编排的后端/worker session 一行不碰 game-studio/,接缝一律走契约先行。


0. 已落主线(截至 2026-06-16 · 各车道起点)

项 状态 commit
tap-targets 自产 driver 临门一脚(moat 主线杠杆) ✅ a2cbabe6
组A · D12 控制平面 v0 + GP9 合规先行段 ✅ 0b1b37ea
组C · 首局体验门(品类化 additive 派生超集) ✅ d4f16aab
组B · 落库组 execution spec(= Lane A 起点,待实现) 📝 spec cd0692b3

1. 依赖图

flowchart TB
  classDef founder fill:#fff3cd,stroke:#856404
  classDef studio fill:#f8d7da,stroke:#b21f2d,stroke-dasharray:4 4
  classDef seam fill:#ede0f8,stroke:#5a2a82

  subgraph CP["🚪 开种子 · 4 个并行前提 → 放"]
    G0["G0 创作页核实<br/>read-only 走查"]
    G1["G1 GP9 staging 验 10 负例<br/>组A 代码✅·proof 待"]
    GSEC["2 安全洞收内网"]:::founder
    GLAB["labels.json 人锚"]:::founder
    OPEN{{"放种子创作者"}}
    G0-->OPEN
    G1-->OPEN
    GSEC-->OPEN
    GLAB-->OPEN
  end

  subgraph LA["Lane A · aigc 后端/契约/DB(车道内串行)"]
    A1["组B 落地 V16<br/>D9+D11+trace9d"]-->A2["source 列隔离 V17"]-->A3["Dify 残骸 R6"]
  end
  subgraph LB["Lane B · SAA worker"]
    B1["form① e2e"]---B2["agent-loop-v1 退役"]---B3["player 子图"]
  end
  subgraph LC["Lane C · 质量/harness/成本"]
    C1c["scale-20 补全"]---C2c["四模型横比"]---C3c["¥0.15/P75 验收门"]
  end
  subgraph LD["Lane D · prompt-gatespec(双侧同步)"]
    D1["t2048 latch"]---D2["brief pin 自产化"]---D3["插件门面决策"]
  end

  subgraph STUDIO["🚧 另一 session 在改 · 后端 session 只读不写 game-studio/"]
    S1["创作页修复"]:::studio
    S2["feed/sort 前端消费"]:::studio
    S3["缩略图/封面/叙事"]:::studio
    S4["进度条 UI"]:::studio
    S5["设计体系 HJ-FE-DS-001"]:::studio
  end
  subgraph SEAM["🟪 契约缝 · 后端 session 做后端半 → studio 做前端半"]
    K1["FeedCard +templateName"]:::seam
    K2["sort_score 多因子公式·后端"]:::seam
    K3["streaming SSE·后端"]:::seam
  end

  C1c-. scale20 数据 .->D3
  C2c-. 横比 .->D3
  A1-. trace 字段 .->C3c
  GLAB-. 人锚解锁放量判定 .->C1c
  G0-. 断则交付 .->S1
  K1-->S2
  K2-->S2
  K3-->S4

2. 车道表(每条 = 独立 worktree,off origin/dev/2.0.0)

车道 内容 现可并行? 车道内次序 跨车道依赖 模块边界(文件域)
A · aigc 后端/DB 组B(V16)→source列(V17)→Dify残骸R6 ✅ 串行(共享 game_aigc_task DO + Flyway 版本序) 出 trace 喂 C 的 ¥验收门 game-module-aigc + contracts/api-schemas/aigc.yaml + wg1/gen-worker(service.py/studio.py 抽 trace、dedup.py)
B · SAA worker form① e2e / agent-loop-v1 退役登记 / player 子图 / gatespecParseErr 回灌 ✅ 可并 无 SAA worker 编排面(dispatcher/图/检查点)
C · 质量/harness/成本 scale-20 补全 / 四模型横比 / 好玩基线 v2 rubric / ¥0.15+P75 验收门 / 抽检阀·告警阈值 ◑ 部分 可并 好玩判定等 labels.json(创始人);¥验收门等 A 的 trace 字段 九门 harness + 评估/成本脚本(不碰后端业务码)
D · prompt-gatespec t2048 latch 放宽 / brief pin 自产化 / 插件门面缺口决策 ◑ 部分 可并 插件门面决策等 C 的 scale-20 数据 roles.py(Python)+ SaaPrompts.java(SAA)字符级双侧同步(公平性铁律)
E · 开闸前置 G0 创作页核实(read-only 走查)/ G1 GP9 staging 真验 10 负例 ✅ 可并 G0 若发现断 → 交 studio session 修 staging 运维 + CDP 走查(只读)/ 后端部署
🚧 studio 创作页修复 / feed·sort 消费 / 缩略图展示 / 进度条 / 设计体系 — — 另一 session 拥有,后端 session 不碰 game-studio/ 全域

3. 并行硬规则(防撞)

  1. worktree 隔离:每车道一棵 worktree(git worktree add -b <lane> <path> origin/dev/2.0.0),零共享工作树;push 前 fetch + rebase origin/dev/2.0.0,撞车的别人 untracked 文档先 find 挪走再 rebase(参 memory multi-session-shared-tree-push-conflict)。
  2. Flyway 版本预分配(防抢号):组B = V16.0.0、source 列 = V17.0.0;Lane A 内 A1→A2 都改 AigcTaskDO.java → 同一 worktree 串行顺做,禁两 worktree 并发改同一 DO 类。
  3. 不碰 game-studio/:后端/worker session 对 game-studio/ 只读不写;任何前端改动属 studio session。
  4. 契约缝 = 契约先行:接缝三件(FeedCard templateName / sort_score 多因子 / streaming SSE)——后端 session 先改 contracts/ + 实现后端半、通知 studio session 接前端半;禁绕过契约直接联调。
  5. 公平性铁律(Lane D 专属):roles.py 与 SaaPrompts.java 的 gatespec 规则字符级一致,改一侧必同步另一侧(Python 先、SAA 逐字跟进)。
  6. 非阻断/可回滚:观测类(组B 三件)落库失败一律 best-effort 吞异常不阻断主链;新增列/字段 additive 可空、feature-flag 全关 = 现行字节不变。

4. 跨车道依赖 / 闸门 / 创始人卡点

车道间硬依赖(图中虚线)

  • C.scale-20 + C.四模型横比 → D.插件门面缺口决策(无 scale-20 数据不能拍 20 款成功率上限/token 成本,普查标"W-G1 架构最关键未决")。
  • A.组B trace 9d → C.¥0.15/款 + P75 验收门(需 per-game trace 字段完整)。
  • A.组B V16 ↔ A.source 列 V17:共享 game_aigc_task DO + Flyway 序 → 车道内串行。

创始人卡点(blocked-on-founder,非车道能解)

  • labels.json 人锚:创始人亲玩补锚 → 解锁 bake-off 放量好玩判定(卡 C 的放量段)。
  • 2 安全洞:new-api 3000 公网暴露 / 8888 短信旁路码——上线前必修(confidence-100),ops/创始人路由。
  • 真实计费扣退:随 M4(new-api AddToken 硬编码 UserId 阻塞),与配额/背压拆开。

开种子闸门(4 并行前提 → 放) G0 创作页核实 ∧ G1 GP9 staging 验 ∧ 2 安全洞收内网 ∧ labels.json 补锚 → 放种子创作者。 真公开上线另受日历闸门(ICP 备案 / 短信签名报备 / 支付 / 广告)——不可压缩的真瓶颈,创始人轨(memory mvp-binding-constraint-calendar-gates)。


5. 立即可并行启动 / 阻塞

  • 现在可同时开火:A、B、C、E 四条(各自 worktree + 子代理)。D 可并但 D3 插件决策须等 C 的 scale-20 数据。
  • 阻塞:放量好玩判定 / labels.json / 2 安全洞 / 真实计费 / 日历闸门——均在创始人或 ops,非车道内能推进。

6. 给 studio session 的边界与接缝(双向读)

本节给正在改 studio 的那个 session 读:明确"哪些是你的、哪些是契约缝、怎么协同"。

  • 你的全域:game-studio/(创作页、feed 列表/卡片、缩略图展示、生成进度条、设计体系/i18n/通用组件库 HJ-FE-DS-001)。后端 session 不会改这里。
  • 3 个契约缝(后端 session 交付后端半 + 契约,你接前端半):
    1. FeedCard templateName:契约 contracts/(FeedCard)加 templateName 玩法标签字段 → 你在 feed 卡片消费做玩法分发信号。
    2. feed sort_score 多因子:后端把 sort_score 从 quality_score+boost 升级为多因子(freshness/interaction_rate/skip_rate/...)→ 你的 feed 列表只是消费排序结果,前端无需改,但若要展示"为什么排这"需新字段时走契约。
    3. streaming SSE 进度:后端出 SSE 进度端点 → 你在创作页接进度条 UI。
  • G0 创作页核实:后端 session 会对创作页做只读 CDP 走查(查 W-CLEAN 后"开始生成"是否禁用/创作主链是否断),不改你的代码;若发现断链,修复由你做(后端 session 出复现证据交付)。
  • 协同协议:接缝改动一律契约先行 → 通知 → 双方各改各侧;push 前互相 fetch+rebase,撞车 untracked 先挪。

一句话:WHAT 看普查清单,HOW 看本文。后端 5 车道(A/B/C/D/E)各自 worktree 并行,game-studio/ 全归 studio session,接缝走契约。开种子 = 4 前提齐;真上线另卡日历闸门。