--- date: 2026-07-22 topic: 模块进度总账 canonical: true --- # 绘境AI MVP 进度总账(单一事实源 / Single Source of Truth) > **本文件是项目管理唯一活账**:把「计划 ↔ 完成 ↔ 待办 ↔ 执行记录」对在一起。 > **铁律**:每次波次收口、每次里程碑状态变化,**必须按 [`wave-close-checklist`](../../.agents/skills/wave-close-checklist.md) 八步收口**,否则视为未收口。 > 计划权威来源:[`可行性方案16周-波次映射.md`](./可行性方案16周-波次映射.md)(项目上线主计划 SoT)+ [`.agents/knowledge/mvp-scope-and-milestones.md`](../../.agents/knowledge/mvp-scope-and-milestones.md)(55 P0 / 137 技术项 / M0-M5 明细)+ [mvp-execution-spec](../superpowers/specs/mvp-execution-spec-design.md)(产品验收来源 + 冲刺视图)。 > 维护:主 agent | 最近更新:**2026-07-22**(四类可复用校准/参照资产与 GameContentGold/1 两阶段契约已拍定;五款 `gold-m3-*` 明确降为 harness fixture。`ReferenceAssetRegistry/1` 与 live cheap/tier2 prompt 尚未接线,正式 `game_content_gold` 仍为 0;当前 Actor/Judge 稳定门、`Match3RollInteractionAudit/2`、`SingleRollProof/3`、完整总门、三批基线、staging RC 与 Wave0 均未完成,生产 `runtimeEligible=false`,M5 仍未达成。) --- ## 0. 一句话现状(诚实口径) **项目处于 16 周上线主计划 W7 前段,仍在阶段二后半补课窗口;原 7 月中旬内测目标已逾期,尚未正式重排。Judge `3.0.4` 固定 PromptEval fixture 专项历史通过,确定性 Match-3 fixture 与五款 fixture 的视觉/特效和完整 AudioAudit 专项机器证据已收口;当前 Actor/Judge `3.0.13` 三轮建线、第四轮确认与真实生成集成 baseline 未闭合。五款只证明 harness 能力,不是游戏金标;正式 `game_content_gold` 为 0,`ReferenceAssetRegistry/1` 与内容前置 live prompt 也未接线。生产仍只允许 `off/shadow`:Audit/2、Proof/3、完整总门、fresh 25、historical 11、production shadow 20、staging RC、种子账号与 Wave0 均未完成,发布保持冻结。M5 仍未达成。** - ✅ **M0 契约锁定 + M1 全栈可启动** 已达成(单体真启动、Flyway V1-V9 全绿、admin/app-api 200,staging 在 mini-desktop 在线)。 - 🟡 已建 **11/13** 个 game 模块脊柱;R2 已补积分充值 P0 骨架,**结构覆盖达到 55/55**,但 pay 原生模块仍未接单体、真实支付收单仍受商户进件闸门约束。老 9 模块**大多骨架+桩**;**Wave4 community/biz 核心真实**(通知底座+lead form 状态机,staging 两链路实测)。 - 🟢 **生成链路(M2) + 发布链(M3) + 数据回路种子(M5) 已 e2e 真实**(M2:UI 一句话→18-27s 可玩游戏、成功率 80%;B1 发布编排跨 4 表;B2 遥测→quality_score→feed 重排+幂等)。**⚠️ 模板口径更新(2026-06-17,HJ-DEMO-AUDIT-001 C6)**:M-c 历史达成四模板(clicker/merge/idle/tycoon)生成=真里程碑,但 **W-CLEAN 已清旧 4 模板 + 存量数据**(`aigc/template/list` 现空=设计态非回归);**06-17 generic 桥接 `7534bdf9` 接棒**——一句话无需选模板即走 generic 生成路(拆模板门、入口归一缺省 `templateId=generic`);**generic 真出可玩仍挂 W-G1 开闸验收门**,勿读成"四模板现可玩"。 - 🟢🆕 **便宜档生成线 Node 退役 go-live(切片一 M3,2026-06-28)**:live :48080 已退 Node/gamedef、上 Python(AgentScope)路(`dispatcher=http`→worker:9501 + trace),9d trace parity 救活后端 D11(真后端三值判别 28/45/100)、D9 dedup parity;commit d00938cc/16112827/7f8a418c(dev/2.0.0)。**⚠️ 但 M3「≥80% 生产真实分布达标」未到**——便宜档生成质量未到 ≥80%(U4 那条 live 路真 gen 实测没过九门),归质量轨 **WU-B/C/F**;对外开闸 6门放量待放行决策。**消歧:此 M3=切片一(生成线)M3,≠ §1 表「M3 分发链路」(发布/feed)。** - 🟢🆕 **生成线三切片对账(2026-07-02 回填,快照 SoT = plan① §2)**:切片一 M1 lab 达标 ✅ + M2 授权 ✅(丰富两步落地,bake-off-M1-rich 三品类各 5/5),M3 剩对外开闸放量 + 生产 ≥80% 复验([cutover plan](../plans/2026-06-30-便宜档M3-生产cutover-plan.md) 已批准待执行窗口);**切片二收敛环已跑 → go/no-go = conditional**(M3 自调「赢的条件/经济平衡」不稳 = agent 层瓶颈,非工具层;剩 verdict 反馈改进 / 干净复跑 / 强档对照 / 平衡门重审,工单在 runbook);切片三 A11 代码全完成待计费 e2e;基建线阶段〇+一①(Nacos/RocketMQ/Sentinel + 护城河 middleware)已 push,阶段一② 待终评审。 - 🟢🆕 **cutover 证据链全收口 + F-2/F-3 真跑窗(2026-07-04,fable 全自主窗)**:切片一 M3 = **S0–S6 证据侧全齐**(S2 四腿/S4 产线七项/S5b lab 三品类收敛局 4/4 达标/回滚演练零成本全循环/**S6 五种拒绝行为负例真机双证+六门证据表**,全在 cutover plan §9;**当时口径把放行 + S5a 种子内测列为创始人决策⑤;现已由 W-AXIS-V3 校准闸门覆盖,不能按旧证据直接放行**);A11 计费 e2e 收官 = 决策包④ 兑现;live 拓扑恢复(worker:9501+Service:8300,ws-builtin+planning-team 双工具面补丁生产首载)。切片二 = **F-2 干净复跑真执行**(r1 3/5 设计超时族集中→修 420s;r2 中止改阈值批;r3 3/5 + 揪出 `max_iters` 双源默认值影蔽[writer 实仍 40,修 `7c379266`];r4 writer 真 60 在跑)+ **F-3 强档对照完成**(glm-5.2 独立台账 3/5:同率不同谱、收敛 26-31 步自然 finish 快 3×、单价 2-3×、**糖水店两档同败 = 题面/门侧工艺非模型天花板,R3_ceiling 不成立**);**收敛环残余工单五路全落**(c 软停 finish 逼近升压/f+i bake_off fail-fast+打印幂等/h Service 工具面关 Planning·Team·Schedule/j studio 透传扩 1003+1006/k 台账 infra_flags 编排层归因,全 fable 亲审后合入);经营金标正例 `bake-shop-serve-1` 固化入仓(12 条口径 n=3 中位 10/12,对骨架 4/11 分离 5-6 分)。**go/no-go 终判已出(同日):r4(writer 真 60)= 4/5 收敛、`decide_n5` 出口 KEEP_留观、fable 判 go**——糖水店顽固户 17 步全场最快过门(当初是预算墙非骨架缺口,r3 时点 R2_补骨架被推翻)、全场自然 finish ¥0.33-0.50;留观件=水果(三轮三模式抖动,归品类微调/F-4);Δ3 梯子=M3 保持中档默认、glm-5.2 记升档选项不换档。**切片二收敛环就此收口**(全依据=runbook「F-2 执行记录」)。 - ⚪🆕 **W-AXIS-V2 历史换轴(2026-07-10)**:波 0 `8edb0ffa`、波 1 `5bcaf6ac`、波 2 `8d851ea7` 留作历史实现记录;旧 E/G/H 取证契约已退出便宜档验收链。旧工作区 `cheap-worker/results/wax2-baseline.jsonl` 只有 narrative r1/r2 两行 v2 accepted,且 accepted 与旧 `failureLayer/failureReason` 同存;两局缺少 V3 关联 ID,不再继续作为现行基线,也不构成 ≥80% 结论。 - 🟡🆕 **W-AXIS-V3 工作区实现(更新至 2026-07-16)**:现行协议为 `playtest/3`,`playtest/2` 冻结只读。普通玩法沿用 `VisualTargetSet/1 + ActorSelection/1 + ActorView/3`;Match-3 已接 `ActorView/4 + ActorSelection/2`、规则候选、双 tap ActionGroup、BoardIdentity、一次 repeat-first reset 与 roll audit。post-first perception audit 的原始 ref/hash、两帧身份、首击格、完整配置、固定 classifier、helper path/args/退出状态/stdout hash、Projection 原始片段、双跑摘要和 support mask 已进入 BoardIdentity 重算闭包;helper 的三个物理输入路径必须再与 runner 独立传入的实际路径一致,离线门固定 canonical overlay config hash,bundle 再从两张 PNG 独立复算像素差、透明度扩散与不透明像素比例。当前全部 `_shared` Node 回归 `195/195`,契约正样本 `95/95` + 负样本 `211/211`;这些只证明工程边界,不计入生成成功率。 - 🟡🆕 **W-AXIS-V3 Match-3 确定性 fixture 专项门 4/4(2026-07-16)**:`attempt-019-transcript-pixel-proof` 四轮均首尝试输出合法 `ActorSelection/2`,恰好执行双 tap,BoardIdentity=`equivalent`、无 reset,第二击连续发出同 `moveId` 的两类 proof 事件,专项 proof=`satisfied`;四轮归一化均为 `normalized`,changedPixelCount=472、outside=0,八次 helper transcript 和同轮 Projection 原始片段均可复算,原始 audit hash 与磁盘字节逐轮相符;总成本 ¥0.41837。全套 `_shared` Node `195/195`、视觉 Python `39/39`、契约正 `95/95` / 负 `211/211`。这不是生成成功率:五款 `gold-m3-*` 已归 `harness_fixture`,正式 game_content_gold 仍为 0;完整总门、fresh 25、historical 11、production shadow 20 与基于内容金标的人工抽查均未开始,生产 `runtimeEligible=false` 不变。 - 🟡🆕 **W-AXIS-V3 五款 Match-3 动作与消除特效专项样本(2026-07-18)**:gem、candy、porcelain、fruit、rune 已统一接入受保护的 `match3VisualTimeline@1.2.0`,业务同步结算、视觉回放、局部特效和 host-only transition 账分离。真实 Chromium filmstrip 显示五款有效交换均按 `swap → match_hold → clear → fall_refill → settle/idle` 推进;clear 期间每款可信 host probe 均报告三个 effectId、三个亮核、三个扩散环和 24 枚碎片,renderSeq 连续增加,离开 clear 后 activeEffectCount 归零。无效交换全程 effectCount=0,最终棋盘与交换前相同、分数不变、成功事件为零;match_hold 中第三次真实点击前后棋盘、分数、步数、事件、effect probe 与 receipt 均不变。Gem 同轮删除了会把旧引擎粒子错画到 HUD 的 `juice.burst` 历史残留,Candy 保留此前重力顺序修复。证据位于五款 staged 目录的 `evidence/animation-filmstrip-valid`、`animation-filmstrip-invalid` 和 `animation-lock-probe`,总览见 `game-runtime/evidence/match3-clear-effects-contact-sheet.png`。这只是动作与局部特效专项样本;生产 runner 的 `Match3EffectAudit/1`、完整目标、通关、重玩、长期手感与 Judge 稳定门仍待闭合,生产 `runtimeEligible=false` 不变。 - 🟡🆕 **W-AXIS-V3 五款 Match-3 音频专项机器证据(更新至 2026-07-20)**:`Match3AudioAudit/1` 已补全 limiter 后采样窗口、BGM 原始字节与 runtime 节点身份、source/node/auditTap、transition/cue 引用和逐 cue onset 终态;读口幂等,滚动淘汰保持引用闭包。原混音未按真实 PCM 约束 BGM 与 cue 层级,校准前固定场景仅 18/214 cue onset detected;调整导演 layer gain、五主题 SFX 与 BGM 增益后,`Match3AudioMixBalance/1` 的 45/45 独立配方峰值差落在 9.22–13.99dB,原有 BPM、能量、频谱、接缝、削波和 limiter 门保持通过。最终固定 Chrome 场景 10/10,应发声 transition receipt 266/266、终局 onset 10/10、事务 onset 110/110;有效/无效 filmstrip 各 5/5,静音归零、恢复非零和单一 BGM source 均闭合。生产 runner 已通过 trusted bridge 读取 AudioAudit,并在每个 completed group 后立即以 120ms 无输入量子 drain 到 settle/onset 完成、按组封存 sidecar;新业务事件或旧目录复用均 fail-closed。当前 `Match3RollInteractionAudit/2` 与 `SingleRollProof/3` 仍禁止签发;combined BGM+cue 共享 limiter 测量为 P1,人工两分钟有声试玩、重玩体验和 4/5 盲听仍是 fixture 体验复核,不构成内容金标签认。生产 `runtimeEligible=false` 不变。 - 🟡🆕 **AudioAudit production-style 单轮实证(2026-07-20)**:Gem 真实 Actor 首轮成功,以两次动作产生三条业务事件,specialty gate 通过;单轮耗时 68.09 秒、费用 ¥0.11172。按组 sidecar 经正式契约校验通过,共 81 个窗口、3/3 cue onset detected、pending=0,原始字节 hash 为 `e5a7fe5dd83a66d12b490a85955a8b3470ec27b2ac4581242f90f14d64f53a24`。Judge 因其它默认 proof 缺失为 `inconclusive/proof_missing`,因此这只证明专项 sidecar 的真实 runner 路径,不构成整掷通过;Audit/2 与 Proof/3 仍不签发。 - 🟡🆕 **种子内测发布准备(2026-07-15)**:commit-pinned staging RC 激活、种子账号预配、Nacos 配置事务、存储审计与 MySQL dump 隔离恢复脚本均已通过对应 shell 测试和独立检查;这只证明发布工具可用。尚未真实部署 RC、写入 Nacos 或创建种子账号,staging 真浏览器验收与 Wave0 也未启动。当前配额 `CLAIMED=2`、`FREE=48`;按 40 名内测用户加 12 名预留计算,还须补建 `neice_051` 至 `neice_054` 四个账号。首个 RC 也没有上一版 commit-pinned RC 可供回滚,不能把脚本通过写成已具备完整回滚实证。 - 🟢 **M4 变现链路(④ mock 可切真)**:ad/trade **业务逻辑已真实落地**(AdRevenueServiceImpl uk_trace 幂等 / SettlementServiceImpl uk_source 逐笔入账 / WithdrawServiceImpl 冻结+CAS 审核状态机);本波做真=打款异步状态机(回调驱动 CAS 幂等)+ PayoutClientFactory fail-fast + reward 现金到账(recordIncome TIP)+ 广告回调验签 + 创作者收益端点;**87 单测全绿(ad 24/trade 41/community 22)+ staging mock e2e 门真跑(广告→结算→提现→mock 打款回调 1→2,4 条对账断言全 HOLD)**。**真广告联盟/真支付受日历闸门=mock gated,非真变现**。 - ❌ 按真正验收线「**55/55 P0 产品功能可验证 + 生成成功率≥80%**」衡量,**真实可验收的 P0 仍少**。剩余大头——**真广告联盟+真 pay 接线受日历闸门 / 前端接线(admin+studio 接 staging,5 链路端到端,真机走查 G1/G2/G3 合并点待做)**〔Wave4 community+biz 已建成集成 ✅〕;telemetry MQ 异步化已完成,**数据回路(M5)** 仍待现行主链真机复验与内测指标闭环;**真正上线约束=不可压缩日历闸门**(ICP/支付/广告/实名,见 §5)。 > 换算:**结构骨架 ≈ 70%,真实产品功能验收 ≈ 早期(个位数 P0 端到端可验证)**。两者勿混淆——这正是过去"波次跑完=进度推进"的认知偏差所在。 --- ## 1. 里程碑账(M0-M5:计划 vs 实际) | 里程碑 | 计划日 | 状态 | 证据 / 差距 | 执行记录 | |---|---|---|---|---| | **M0 契约锁定** | 6/9 上午 | ✅ **达成** | 9 个 API yaml + DB V1-V9 + sdk-interface/game-package/events/dify-workflow/ad-slot = 8 类契约入库 | `c4e2d73` 起 | | **M1 全栈可启动** | 6/11(Day3) | ✅ **达成(6/9 提前)** | 单体 `Started HuijingServerApplication`;Flyway V1-V9 全 success;24 张 game_* 表;admin-api `/system/user/page`→20 真实用户、app-api `/feed/stream`→200 | 启动修复 `d7fac90`+`8565fa2` | | **M2 创作链路(真 LLM)** | 6/18(Day8) | 🟢 **生成链路贯通(6/9~11)→ generic 桥接接棒(6/17)→ 🆕 便宜档 Node 退役 go-live(切片一 M3·6/28)** | batch-001 成功率 **80.0%**(达标口径)+ M-b 薄轮询执行器上线(UI 一句话→18-27s 可玩游戏);**历史**:模板 1→4(clicker/merge/idle/tycoon,M-c 批①②);**⚠️ 现行(2026-06-17)**:旧 4 模板已随 **W-CLEAN** 清除+存量数据清(`template/list` 空=设计态),**generic 桥接 `7534bdf9`** 接棒(一句话无需选模板走 generic 生成路);**仍待**:generic 真出可玩端到端过 W-G1 开闸验收门 + A4 大样本盲评;**🆕 SAA 真全图 e2e 首证(2026-06-18,`SaaFullGraphE2eTest` `bf99662c`)**:Java 编排路(16 节点真 LLM+真九门 harness+真出口回调)机制完整跑通、**零 prod bug**,但**成功率 3/5=60% < 80%**(贪吃蛇/接金币/躲障碍过,打砖块败 I_control、点击消除败 F_wiring+H_progress,救场阶梯耗尽 giveup 真落盘;单款 3.5-16min)→ **worker 转 SAA 默认产线(U7)按门未切,现 worker 主链保持默认(零回归)**;gap=难门生成质量(W-G1 调优域);**🆕🎯 gameDefinition 中间表示双证成立(2026-06-18)**:深度评审揪出现 SAA 仍产 iife 空壳(gameDefinition 未真填)→创始人 2026-06-20 拍**终态产物=`src/` 多文件源项目(改源不改包·结构化)、SAA 独家本 session 开发**;**① spike 证便宜模型产连贯 gameDefinition 92-100%/¥0.011 ② build段证 gameDefinition→build-from-source→真过九门(deepseek-v4-flash 满分 3/4 款,截图实证)**——证明的是「便宜模型能可靠产连贯 gameDefinition 中间表示、且能 build-from-source 过九门」这件**真实但有限**的事,**不等于** src/ 终态产物已落地;**口径(精确)**:`gameDefinition`(声明式 JSON 中间表示)作**终态产物的设计已弃用**、降为**通往 src/ 的中间脚手架/债**(当前实现仍用 JSON 内嵌 JS 串 + `new Function` 跑=已知偏离终态的债,**绝非已移除/已删除**,代码仍在跑),迁移在 plan `2026-06-18-001` U1–U4 在飞;产出运行时约定 v0+build-from-source PoC;接法A(16 节点 studio 七成已建)是接法B 躯干。**🆕 终局(2026-06-21)**:gamedef 于 2026-06-20 对抗裁决揭穿表达力天花板、2026-06-21 创始人判为错误路线并删除(设计文档+代码全清),生成现行已切 **A-model**——LLM 直接写真 `src/` 多文件并调插件,不再经声明式 JSON 中间表示与 `new Function` 解释(无双轨无 cutover)。**🆕 框架收敛(2026-06-25)**:生成框架统一收敛到 **AgentScope**,三档按 AI 参与深度分(Tier0/1/2,全高度模板化),引擎随复杂度在 LittleJS / Phaser 间选;**SAA / dify / coze 降为最低优先级**,留作远期可插拔适配的验证目标。**tier2 富游戏档**(合成/经营/挂机等多系统富游戏,Phaser + 三层校验)**0 号 spike 已 accept、核心已落**(细节见运行时 SoT `docs/architecture/架构/生成引擎/agentic运行时架构图说.md` §4.2/§5),验证按 n=5 收敛环走。**🆕 便宜档切片一 M1-M3 + Node 退役 go-live(2026-06-25→28)**:便宜档生成核心 Node/SAA-Java 整条重写进 AgentScope(`cheap-worker/`,WU-A 框架等价坐实);M3a 退役机制(全局 dispatcher flag 翻转、非灰度)+ M3b **9d trace 七项 parity 救活后端 D11**(换 worker 后只产 trace.cost→D11 三维恒中性、退化双峰 45/55;补齐七项[`repairs=max(0,attempts-1)`/`gatespec.driver` 键名/`H_progress` 嵌套]后**真后端三值判别 28/45/100**)+ D9 dedup parity(vendor);**✅ 生产 cutover(2026-06-28,创始人「同意切」)**:live :48080 从 6-21 旧 gamedef jar 端口精确换成 M3 jar(dev/2.0.0)+ `dispatcher=http`→worker:9501 + trace,boot 日志「dispatcher=http=WorkerDispatchClient」坐实 **Node/gamedef 旧路在 live 退役、Python 路上 live**,拆 iso 避双 executor split-brain。**⚠️ 诚实 gate(勿读成 M3 全达标)**:切片一-M3 的「≥80% 生产真实分布达标复验」**未到**——便宜档生成质量未到 ≥80%(U4 那条 live 路真 gen 实测没过九门、卡菜单),归质量轨 **WU-B/C/F**;对外开闸 6门放量(control-plane)创始人定后单独开。**消歧:此 M3=切片一(生成线)M3,≠ 本表「M3 分发链路」(发布/feed)。** | spike `2026-06-09-generation-spike/`·M-b `42d3237`·M-c `b1fa30d→26319b3`·generic `7534bdf9`·SAA-e2e `bf99662c`·中间表示双证 plan `2026-06-18-001`·tier2 富游戏设计(并入运行时 SoT §4.2/§5) `docs/architecture/架构/生成引擎/agentic运行时架构图说.md` | | **M3 分发链路** | 6/20(Day10) | 🟢 **发布链+数据回路+真人试玩 全 e2e 真实(6/9)** | **B1**:submit→锁风门→APPROVE→发布编排跨4表→feed 可见。**B2 数据回路**(curl):A(q28)/B(q88)→事件→quality→**feed重排**→重放幂等。**B2′ 真人试玩**(浏览器实玩):feed真标题→Canvas clicker 真玩通关→game_play_end(completed)→quality 0→60→**feed 翻转登顶**;逮修 4 真 bug(编码/布局/兜底/completed)。**仍待**:真实编译打包(M2 runtime产物)+真实分享落地 | `…ab0037c→d279898` | | **M4 变现链路** | 6/23(Day11) | 🟢 **mock 可切真** | ad/trade **业务逻辑已真实落地**(AdRevenueServiceImpl uk_trace 幂等 / SettlementServiceImpl uk_source 逐笔入账 / WithdrawServiceImpl 冻结+CAS 状态机);本波=打款异步回调 CAS+PayoutClientFactory fail-fast+reward 到账+广告验签+创作者收益端点;**87 单测绿+staging mock e2e 门(广告→结算→提现→mock 打款回调 1→2,4 对账断言 HOLD)**;pay 模块未接单体;**真广告联盟/真支付受日历闸门=mock gated** | `43fce85`(骨架)·`e3be456d`(G1 本波) | | **M5 MVP 交付** | 6/27(Day15) | ❌ **未达成** | 55/55 P0 已补齐结构覆盖,但不等于真实可验收;W-AXIS-V3 固定 PromptEval fixture 专项、确定性 fixture 门和五款专项机器样本已完成,但当前 Actor/Judge `3.0.13` 稳定门与真实集成 baseline 未闭合,生产 `enforce` 未开始。五款 `gold-m3-*` 已降为 harness fixture,正式 game_content_gold 为 0;fresh 25、historical 11、production shadow 20 和基于内容金标的人工抽查仍未完成。staging RC、账号创建、五链路与 Wave0 也未执行;真广告/真支付仍受人侧闸门约束,首屏 P75、99.5% 可用性、真实留存和 P0 Bug=0 均无完整验收结论 | [W-AXIS-V3 设计](../agent-specs/2026-07-13-生成线验收v3-可信证据闭环-设计.md) | --- **M2 现行补充(2026-07-13 回填)**:历史 80% 只代表当时口径,不代表现行验收口径已经达标。V2 工作区的 narrative 2 局缺少 V3 所需的跨步关联 ID,只能作历史对照,不能计入 fresh 25、historical 11 或 production shadow 20。三批均未完成,当前没有新成功率结论。 ## 2. 模块建设矩阵(13 个 game 模块) > 真实度图例:✅真实可用 | 🟡骨架+桩(可编译/单测/启动,逻辑桩) | ❌未建 | ◻特殊(原生/seam) | 模块 | owner P0 | 结构 | 单测文件 | 契约 | Flyway | 接单体 | 真实度(关键说明) | 执行记录 | |---|---|---|---|---|---|---|---|---| | **project** | 5 | ✅成熟 | 1(15 例) | project.yaml | V1 | ✅ | ✅ 状态机/归属/审核/发布门禁/CRUD **真实**;本模块最成熟。**🆕 plan002 P-OPN-08 创作者公开聚合 API(`8238bf2d`,后端单测绿 project 32)**:`GET /app-api/project/public/creator/{id}` @PermitAll·仅 status==4 已发布作品·按目标 creatorId(路径参,非登录人)查·RespVO 裁剪无 PII;**对抗评审 SHIP(0 P0/0 P1,P2 软降级整改)**。前端配套=创作者公开主页(见 studio 行 U9 第三新页) | `c4e2d73`·`096020f`·`6c8844f`·plan002`8238bf2d` | | **aigc** | 3 | 🟡 | 1 | aigc.yaml | V2 | ✅ | 任务态+seam;**Dify 真实生成=桩**。**🆕 plan002 Tier-1 品类玩法模板注册后端 minimal-real(`feat/tier1-breadth-backend`,单测绿)**:5 品类(business-sim/narrative/puzzle/trpg/heritage)**constants-only 注册**;**U7 品类引导生成质量需 gen+九门 harness 实证=待验证/open,勿读成"品类可玩"**。**🆕 plan002 前端 U8 创作链(`8238bf2d`)**:创作引导 / 生成失败·超时就地 toast 可重试 + mock 失败注入(接 aigc 生成流;前端口径=build 绿 + mock 功能 + 代码评审,真验=待验证/open,详见 studio 行) | `c4e2d73`·plan002`feat/tier1-breadth-backend`·`8238bf2d` | | **runtime** | 3 | 🟡 | 4 | runtime.yaml | V3 | ✅ | build/session/package DO;**真实编译打包=桩** | `c4e2d73`·`2ae0c6f` | | **feed** | 13 | 🟡 | 1 | feed.yaml | V4 | ✅ | stream/zones 结构(curl 200);**quality_score 排序=真实(B2 回灌 e2e)**;真实互动/分享=桩;卡片 title/cover 回填=null(待修)。**🆕 plan002 Tier-1 admin 限曝光后端 minimal-real(`feat/tier1-breadth-backend`,单测绿)**:feed rank 扩 `exposure_limit`(admin 限曝光);**集成/e2e(mini-desktop) 待验证/open**。**🆕 plan002 缺口(P-ACC-03)**:feed 卡尚无 `ageRating` 字段(详情/我的项目/创作者主页/play 前端已渲徽标,唯 feed 卡缺)=**待 feed.yaml additive 补**(additive 非回归) | `c4e2d73`·B2·plan002`feat/tier1-breadth-backend` | | **telemetry** | 1 | 🟡 | 3 | telemetry.yaml | V5 | ✅ | **事件同步写落库+quality_score算分+feed回灌 真实 e2e(B2)**;MQ 异步聚合留 TODO(桩)。**🆕 plan002 Tier-1 admin 运营后端 minimal-real(`feat/tier1-breadth-backend`,单测绿)**:CSV-Excel 导出 / 经营看板(DAU+GMV+生成量+发布量 跨模块只读聚合,**degraded 兜底**:依赖模块缺数据时降级不崩);**集成/e2e(mini-desktop) 待验证/open**。**🆕 plan002 P-OPN-08 创作者公开统计聚合(`8238bf2d`,后端单测绿 telemetry 47)**:`GET /app-api/telemetry/public/creator/{id}/summary` @PermitAll·对目标创作者 status==4 作品聚合(发布数/累计试玩/累计点赞,无 PII)·**下游异常软降级零汇总**(契约永不报错,对齐 list 非脆失败,P2 整改);**对抗评审 SHIP(0 P0/0 P1)** | `c4e2d73`·B2·plan002`feat/tier1-breadth-backend`·`8238bf2d` | | **ad** | 2 | 🟢真实 | 24 | ad.yaml | V6 | ✅ | **AdRevenueServiceImpl uk_trace 幂等/广告回调验签/PayoutClientFactory fail-fast 已真实**;创作者收益端点 `/app-api/telemetry/my/{summary,trend}` live;**真实广告联盟=桩受日历闸门** | `43fce85`·`e3be456d`(G1) | | **trade** | 3 | 🟢真实 | 41 | trade.yaml | V7 | ✅ | **SettlementServiceImpl uk_source 逐笔入账/WithdrawServiceImpl 冻结+CAS 审核状态机/打款异步回调 1→2 已真实**;mock e2e 门 4 对账断言 HOLD;**真实 pay=桩受日历闸门**。**🆕 plan002 Tier-1(`feat/tier1-breadth-backend`,单测绿)**:为经营看板提供 GMV 只读聚合源(看板本体在 telemetry/admin 运营);**真广告/支付/素材采购受日历闸门=mock gated**。**🆕 plan002 U10 admin 运营台前端(game-admin,`8238bf2d`)**:限曝光 / 导出(CSV-Excel)/ 经营看板 / **赋余额订阅(funds-safe:bizNo 幂等 + 二次确认 + 元↔分换算)**;**口径=build 绿 + mock 功能 + 代码评审**,**真验(VITE_API_BASE→staging + mini-desktop CDP 走查 + 赋余额→C 端 三跨纵切 e2e)=待验证/open** | `43fce85`·`e3be456d`(G1)·plan002`feat/tier1-breadth-backend`·`8238bf2d` | | **studio** | 7 | 🟡 | 1 | studio.yaml | V8 | ✅ | 创作任务链+aigc seam;**真实生成编排=桩**。**🆕 plan002 Tier-1 素材库后端 minimal-real(`feat/tier1-breadth-backend`,单测绿)**:`game_material` 六类 / 浏览 / 选用入草稿 `assetContext` / 上传 compose infra `FileApi`(单 insert 去 `@Transactional`、`FileApi` 出事务,孤儿文件补偿口径已就近记录);**真素材采购受日历闸门=mock / 集成/e2e(mini-desktop) 待验证/open**。**🆕 plan002 前端(studio+aigc,`8238bf2d`)**:U8 创作可用性(P-CRT-10 创作引导 / P-CRT-11 示例库展示 / P-CRT-13 生成失败·超时就地 toast 可重试 + mock 失败注入)+ U9 素材中心/玩法模板中心两新页 + 创作者公开主页(第三新页,接 P-OPN-08)+ P-ACC-03 适龄徽标(详情/我的项目/创作者主页/play 已渲;**feed 卡缺 ageRating 字段=待 feed.yaml additive 补**);**口径=build 绿 + mock 功能 + 代码评审**,**真验(VITE_API_BASE→staging + mini-desktop CDP 走查 + 赋余额→C 端 三跨纵切 e2e)=待验证/open** | `b70e90b`·plan002`feat/tier1-breadth-backend`·`8238bf2d` | | **compliance** | 6 | 🟡 | 2 | compliance.yaml | V9 | ✅ | 锁风门 Gate 二态已注入 publish(curl 验证);**style/ip 原子=桩** | `b70e90b`·`6c8844f` | | **community** | 5 | 🟢真实 | 22 | community.yaml | V12 | ✅ | ✅ 通知底座 e2e(链路①staging 实证:mock-trigger→`game_community_message`+updater 非空+unread 聚合;站内信/等级引擎 `published_count` 原子自增/3 上游 notify 挂点真接线 aigc·project·trade,事务后+try-catch);**reward 现金到账(recordIncome TIP)本波做真**(G1 衔接 trade 真实化)。**🆕 plan002 Tier-1 后端 minimal-real(`feat/tier1-breadth-backend`,单测绿)**:评论 CRUD + 举报转 compliance(seam,**compliance 举报受理 -api 待交付=open**)/ 关注(软切幂等)/ 排行 Redis ZSET(ZSET↔DB 一致性,`afterCommit` 写 ZSET + `rebuildFromDb` 对账)/ 弹幕 WS(单实例 minimal-real,**多实例待 `sender-type=redis`=open**);**集成/e2e(mini-desktop) 待验证/open** | `737e6d5`·`e3be456d`(G1 reward 衔接)·plan002`feat/tier1-breadth-backend` | | **biz** | 6 | 🟢真实 | 1(13例) | biz.yaml | V13 | ✅ | ✅ 轻量 lead form e2e(链路②staging 实证:create→quote→advance 状态机 0→1→2+progress 时间线+updater 非空;demo 可预览负路径降级、canTransit 单跳);**收款/在线签章留 M4(线下 sign-offline 兜底)** | `737e6d5` | | **ip** | 0 | ◻seam | — | — | — | — | D5 决策:不独立建,seam 寄宿 compliance | — | | **pay** | 1 | ◻原生 | huijing | — | — | ❌(注释) | huijing 原生模块,当前未接入单体 | — | | **合计** | **55** | 11 建 / ip seam / pay 原生 | 23 文件 | 11 yaml | V1-V13 | 11 | — | — | > owner P0 合计校验:5+3+3+13+1+2+3+7+6+5+6+0+1 = **55** ✓ --- ## 3. 端到端 5 条闭环链路状态 | # | 链路 | 状态 | 真实进度 | |---|---|---|---| | 1 | 创作 → 生成 → 预览试玩 | 🟢 | **前端 UI 实证全绿(2026-06-11 走查 HJ-FE-WALK-001)**:一句话→4 模板(clicker/merge/idle/tycoon)→开始生成→`studio/generate`→`/task`轮询(0%)→~18s→`/preview` canvas 500×700 可玩(《霓虹深空实验室》能量0/5),鉴权守卫/受控输入/异步轮询/自动转场/沙箱 runtime 逐项真实,0 error | | 2 | 发布 → 审核 → 游戏流 | 🟢 | **全段 UI e2e 闭合**。创作者段(2026-06-11 HJ-FE-WALK-001):去发布→选专区→提交→「✓已提交审核」+ currentVersionId/launchZoneId 落值。**admin 审核段已闭合(2026-06-11 链路②波,CDP-on-mini 真 UI 走查)**:game-admin 接 staging(:4174)→登录(admin/admin123)→`/wanxiang/review` 队列渲染 3 条真实待审游戏→点 9137「通过」+确认→队列 3→2 条(9137 移除)→DB 实证 `game_project 9137 status=4(PUBLISHED)` + `game_feed_rank(zone2,status1,score0)` 写入(同事务)。sort_score=0 因新游戏无试玩排尾(正确,被玩后 quality 升→上爬,B2′ 已证)。**附带修 admin 构建腐化(vite8→钉 5.1.4 清装)**。观察项:row1 旧 smoke 数据标题乱码(灌数编码,非代码) | | 3 | 游戏流 → 试玩 → 互动 → 分享 | 🟢 | **真人试玩闭环 e2e 真实(B2′)**:feed(真标题)→点卡→自研 Canvas clicker 真玩通关→game_play_start/end 真遥测→quality→**feed 重排(浏览器实证翻转)**;like/share 接真遥测;真实编译打包/分享落地页=桩 | | 4 | 广告展示 → 收益 → 钱包可见 | 🟢 | **mock 可切真**:ad/trade 业务逻辑已真实(幂等/CAS 状态机/验签);staging mock e2e 门绿(广告→结算→提现→mock 打款回调 1→2,4 对账断言 HOLD);创作者收益端点 live;**真广告联盟/真 pay=受日历闸门 mock gated,非真变现** | | 5 | 遥测 → 质量分 → 推荐优化(数据回路) | 🟢 | **数据回路 e2e 真实(B2)**:事件→quality_score→feed 重排(B超A)+重放幂等;MQ 异步化/真实试玩前端待补 | **现行验收补充(2026-07-12)**:上表记录的是历史已取得的局部证据,不代表当前主线产物已经重新走通全链。种子内测前仍须让参考游戏经现行生成主链进入 feed,真实走通“创作→生成→预览→发布→审核→feed→试玩”,并补链路③⑤、game-admin 配置台真后端 E2E 与角色权限的浏览器截图。完成前五链路整体状态保持“待现行真机复验”。 --- ## 4. 契约账(8 类契约,M0 已锁) | 契约 | 文件 | 状态 | |---|---|---| | API(OpenAPI 3.0) | `contracts/api-schemas/*.yaml` × 9 | ✅(project/aigc/runtime/feed/telemetry/ad/trade/studio/compliance)| | DB(Flyway) | `contracts/db-schemas/V1-V9` | ✅(执行副本同步 huijing-server)| | SDK 接口 | `contracts/sdk-interface.d.ts` | ✅ | | GamePackage | `contracts/game-package.schema.json` | ✅ | | 遥测事件 | `contracts/events.schema.json` | ✅(GAP-4 已转 camelCase)| | Dify workflow IO | `contracts/dify-workflow-io.json` | ✅(桩对接)| | 广告位 | `contracts/ad-slot.schema.json` | ✅ | | Prompt Registry(第 8 类) | `contracts/prompts/` | ✅(治理体系,见记忆 prompt-governance-system)| --- ## 5. 待办 Backlog(优先级 + 归属) > **下一阶段执行计划已定稿(/autoplan CEO+Eng 双声音评审):`git show 6d2f8789^:docs/agent-specs/_archive/2026-06-09-下一阶段路线-plan.md`(三轨并行 + 窄深黄金闭环 + 真实最小数据回路,源档已删 git 可查)。下列 backlog 与之对齐。** > **执行序列(你打勾/我执行,本轮完成线=可演示真黄金闭环)见活清单:[`MVP作战清单.md`](./MVP作战清单.md)。** 本总账管「状态」,作战清单管「排序+归属」。 ### 2026-07-22 当前 P0 - [ ] **游戏内容金标与四类资产账**:四类可复用资产、GameContentGold/1 的 `designIntent → realizationEvidence` 两阶段契约已由创始人拍定;五款 `gold-m3-*` 归 `harness_fixture`,历史 few-shot/模板拟迁 `generation_exemplar`,正式 `game_content_gold` 仍为 0。下一步从 Fable 三款或新设计中选定目标品类实例,先批设计意图、实现后补落地证据并人工签认;未签认前不得把候选、夹具或生成范例报成金标。 - [ ] **W-GOLD-LIVE 内容前置契约与持久消费记录接线**:实现 `ReferenceAssetRegistry/1` 机器注册表/schema,迁移四类资产记录;把两阶段 brief、fixture role 与 generation_exemplar `recordId` 接入实际 cheap/tier2 prompt,升版本并过缺维度拒绝负例、版本门、消费对账、真模型回归和人工抽检。当前只有 SoT 规则,live 生成链未承接;未绿不得启动 fresh 25。 - [ ] **W-AXIS-V3 harness 校准链**:三个 Match-3 工程切片、确定性 fixture 四轮、overlay normalizer、五款视觉/特效专项和完整 `Match3AudioAudit/1` 已闭合;Judge `3.0.4` 只在固定 PromptEval fixture 上历史通过,当前 Actor/Judge `3.0.13` 三轮建线、第四轮确认与真实生成集成 baseline 未闭合。下一步先补稳定门与真实集成复跑,再补 combined BGM+cue 共享 limiter 测量,并把视觉、特效、音频、输入锁 sidecar 在同一真实 run 闭合,启用 `Match3RollInteractionAudit/2` 与 `SingleRollProof/3` 签发;两分钟真人有声试玩、重玩体验与 4/5 盲听只作 fixture 体验复核。内容金标、live 接线与 harness 三线都闭合后,再跑完整总门和三批基线。当前不得启用 `enforce`,不得把专项样本计成新成功率。 - [ ] **切换与放量决策**:内容金标签认、W-GOLD-LIVE、Actor/Judge 稳定门、Audit/2 + Proof/3、完整总门与三批基线全部收口后,才决定是否切 `v3` 默认及执行 S5a。此前保持 `v3_shadow` 和发布冻结,不得宣称已达 ≥80% 或已可放量。 - [ ] **staging RC 与账号**:Actor 基线和完整总门通过后,真实执行 commit-pinned RC 部署、Nacos 配置事务、存储审计与隔离恢复;先补 `neice_051` 至 `neice_054`,再创建并分配 40 名种子用户和 12 名预留账号。当前只有脚本验证,尚未发生部署或账号写入。 - [ ] **五链路真机闭口**:参考游戏经主链进入 feed;完成链路③⑤、配置台真后端 E2E 与角色权限实测;浏览器截图入证。 - [ ] **人侧四闸**:支付进件、广告联盟审核、短信签名与模板、律所咨询。没有受理或审核凭证前,状态保持待提交或在审。 ### P0-补结构(忠实于"按 Doc A 剩余 P0 补模块"的双主线指令) - [x] **Wave4:community(5 P0) + biz(6 P0)** ✅ 建成+集成门全绿(2026-06-11,HJ-WAVE4-EXEC-001 · Round2 · Ultracode):§0 资源预占→双模块并行建设→mini 60 模块编译/启动 Flyway V12/V13/18 端点/32 单测绿/§9.3 两链路 staging 实证。错误码段 community=`1-107`·biz=`1-110`、契约 community.yaml/biz.yaml 入库。提交 `737e6d5`+`6c7d93f`。**reward 真实记账·biz 收款/签章留 M4。** - [ ] **ip seam**:按 D5 寄宿 compliance,不独立建模块。 ### P0-真实化(决定 M2-M5 能否达成,是 MVP 的真正大头) - [x] **aigc:真实生成(M2 攻坚点)✅ M2 整体收口(2026-06-10,两段证据分别引用)**——①成功率口径达标 = batch-001 实测 **80.0%**(20 创意全自动/零 infra/双锚复核,产物 `agent-loop-v1/runs/batch-001/`)∧ ②生成链路贯通 = M-b 薄轮询执行器上线(42d3237,部署 #3.1 实证:HTTP 18s/UI 27s succeeded + dodge 正确失败 + watchdog 收尸,5 独立样本全自动达终态、审计列 '0' 落库)。**真实用户在 UI 一句话→18-27s 拿到可玩游戏。** 渲染面已扩(M-b② theme/scoreLabel 入画布)。Dify 暂不部署,回调契约兼容后接零改 - [x] **runtime:真实编译打包 ✅ T1b-β 实质收口(2026-06-15,收口报告 `git show 6d2f8789^:docs/agent-specs/_archive/2026-06-15-T1b-β收口报告.md`)**——口径随 Tier1 重设计为 **Runner v2 产物**(引擎终裁 LittleJS)。**引擎真接线(Phase A:A0 掌帧+A1-A4 能力包装+A6 mini-desktop real 引擎门 6/6,`3e5cab4`)+ Runner v2(经全弧 P1/P2/P3,`engineBundle` 内嵌机制取代 packageUrl 外链=absorbed-by-arc)实质收口**,已支撑 feed 真玩(3b-B 井字棋 gameId=9306 `238ec2d` 真渲入 feed;P2 真机 6 门 `5d3f7a8`)。**剩余=推迟清单**(gold-plating:render.js 切引擎 draw API/屏震切相机/门3 逐像素回归/immutable 端点实现;audit-debt:SIZES 并表/负扫 harness/outcome 字段/R3·R6 回填/矩阵① sandboxAttr 消费/门5 /preview 走查),见下「T1b-β 推迟清单」,**创始人可点名某项转 required**。 - [ ] **OSS:MinIO bucket 级隔离 + 真实存取**(本波跳过,桩) - [ ] **telemetry:MQ 消费聚合 + quality_score + feed 反哺**(M5 数据回路) - [ ] **ad/trade:真实广告联盟 + pay 模块接线**(M4) ### T1b-β 推迟清单(engine-line backlog,2026-06-15 入账;不在完成线关键路径,推迟到日历闸门后或 L1 空档;**创始人可点名某项转 required**) - [ ] **gold-plating**:① render.js 切引擎 drawTile/drawText/drawRect/Color 样板拔高(现仍 100% Canvas2D,但引擎掌帧+2D mainContext+引擎粒子同屏已达成「经引擎画游戏」)② 屏震切相机 cameraPos(`render.js:915` 仍 g.translate)③ 门3 逐像素 WebGL readPixels 回归(A0 有意降级=real 通道追帧 overshoot 不可控→stub 2D 通道兜逐像素)④ immutable 强缓存头补端点实现(接 OSS 时;见 §5 末「immutable 孤儿字段裁决」)⑤ 参考件经后端发布主链入 feed(现走 SQL 灌库桩,主链本体已被 B1 真游戏验过)⑥ runtime-probe 改独立墙钟(Play.vue Date.now P75 埋点已天然满足立意)。 - [ ] **audit-debt**:① A5 SIZES 单口径并表 + `scripts/size.mjs:150` 引擎入口(现「插件增量主表+引擎产物附录」两表并存)② 门1③负向扫描沉淀为可复跑 harness(现 commit 一次性 grep)③ `outcome:'win'|'lose'` additive 字段落地(`contracts/events.schema.json:61`)④ P7/P8 裁定落档(default v2 兜底已是结论)⑤ R6 三件尽调补录(CDP harness/ajv/prompt registry)⑥ R3 血统回填五条(SDK<8KB/B1 350KB/零 npm/标准库优先/harness RSS≤2G 各补来源+失效+复审三件套)⑦ 矩阵① sandboxAttr 下发消费(allowOrigins 已接)⑧ 门5 /preview 单独走查(/play 已 CDP 实证)。 > **immutable 孤儿字段裁决(2026-06-15)**:`contracts/game-package.schema.json:71` 的 `immutable`(URL 强缓存语义)后端**零消费**(无端点实现命中),因 P2 走 DB-manifest 内嵌、packageUrl 外链未启用 → 现为有意孤儿字段;**裁决=推迟到接 OSS/CDN 时补端点实现**(additive 可选字段留存不删,非 split-brain,门4 CDP Network timing 验缓存命中口径已写在字段 description 内)。 ### 代码评审遗留(2026-06-24,非后端四模块评审 · 源档已删 git 可查:`git show 8ea97234:docs/agent-specs/2026-06-24-非后端四模块代码评审-review.md`) 四模块(game-runtime / game-studio / tier2 / wg1)并行评审得 25 条真发现、0 个 P0;下列 9 条 P1(品牌两条合并呈现)+ 7 条 P2 未闭。真正带真金白银风险的是 wg1、tier2 两条生成线的成本与幂等闸尚未焊死,应在 W-G1 切默认产线、tier2 批量开闸之前处理。 > **W-REAL R4 清欠对账(2026-07-02,逐条读当前代码坐实、不凭文档推断)**:16 条 = 7 moot、6 已修、1 存活待修、2 本次修(品牌门扫描面);另协调者追加第 17 条(ad-slot 契约漂移)本次修。下方原始发现明细勾选态已按本表更新(存活项保留未勾)。 > > | 条目 | 判定 | 依据(读码坐实) | > |---|---|---| > | P1① wg1 `/generate` 幂等 | moot | wg1 是退役 spike(无生产 Java 接线,仅 game-cloud 测试/注释引用);生产便宜档 = cheap-worker,幂等走后端 WorkerDispatchClient + idempotencyKey | > | P1② wg1 max_tokens 未透传 | moot | 同上退役;cheap-worker 已透传(`_bootstrap.build_cheap_model` / `cheap_service_driver` 的 `parameters.max_tokens`) | > | P1③ tier2 ¥ 硬闸跨 resume 不累计 | 已修 | 架构改单 POST 内联续修,`CircuitBreakerMiddleware` 会话级实例 `on_model_call` 累加 `spent_rmb` 调用前 fail-closed;`soft_budget` 演进(配置控制面阶段一①);`test_budget_soft_stop` 覆盖 | > | P1④ wg1 契约真空 | 已修 | `contracts/agent-loop/{verdict,tier2-source-project,tier2-verdict}.schema.json` + `trace/tier2-trace-event.schema.json` 已建;v1 clicker 世代已换 | > | P1⑤ tier2 服务态主链未真跑 | 已修(核心) | 扁平探测零产出孤儿已由 `tool_groups[*].tools` 抽取修复(app.py:120「2026-06-24 实证修复」)+ B1 真驱暴露;端到端批量清单在 `tier2/.agent`(仍待 mini-desktop,属正常 spike→prod) | > | P1⑥ game-studio CSP 注释失真 | 已修 | `inject.ts` CSP 已移除 `unsafe-eval`(注释据实述「不含 eval/new Function 故不需」),无 `scanLogic`/`gamedef` 失实表述 | > | P1⑦ game-studio vue-i18n 卡类型门 | 已修 | `package-lock.json` 已含 `vue-i18n@10.0.8`;`vue-tsc@3.3.4`(合 ^3.2.8)/ `typescript@6.0.3`(合 ~6.0.2)对齐,评审「实装 6.0.3」错配已消(本机未 install 不影响权威机 `npm ci`) | > | P1⑧ 品牌残留 + 机器门扫描面(合并 GR-01+WG1-04 两条 P1) | **本次修** | 三处品牌早修(b31cc37a);G1 仅扫 .md 有洞 → 本次扩 `walk_code` 覆盖业务代码目录(负向测试证拦回流)+ 清漏网 `game-admin` 一处退役品牌菜单标题 → `绘境运营` | > | P2① game-runtime v1→v2 标注漂移 | moot | `build-from-source.mjs` / `gd-runtime.js` 已删(gamedef v1 世界全删),src/host 只剩 3 层架构 `boot-game-host` / `generic-host-config` | > | P2② tier2 `validate_play_scene` 子串校验 | 已修 | 切片二 U4 加 `_strip_js_comments_strings`,剥注释+字符串后判(评审短期诉求);AST 结构判定记为中期 followup | > | P2③ tier2 screenshot docstring 冲突 | moot | tier2 代码已无 canvas 像素回读(`getImageData`/`readback`/`toDataURL` 全空),screenshot 只读落盘 PNG;docstring「零截图参与」现属实 | > | P2④ tier2 bootstrap 鉴权头口子 | **存活待修** | `_post` 的 `X-User-Id` 口子 + 无重试退避仍在(bootstrap.py:99);卡点 = 需真实 `deps.py` 鉴权契约(部署 smoke 接缝),非本机最小改动可完成,列部署窗口 followup | > | P2⑤ wg1 callback 孤儿 | moot | wg1 退役;`cheap-worker/worker_service.py` 用 job 携带的 per-job callback URL(HMAC 回调) | > | P2⑥ wg1 `_judge_vision` 绕过重试 | moot | wg1 退役 spike,不在生产路径 | > | P2⑦ wg1 基建 subprocess 无 check | moot | wg1 退役 spike,不在生产路径 | > | R4-17 ad-slot provider 枚举漂移(协调者追加) | **本次修(跨端契约)** | `ad-slot.schema.json` enum 缺 `callback`,而 `ad.yaml` 与 `CallbackAdProvider`(真实现 `PROVIDER="callback"`)已支持;additive 加 `callback` + 对齐描述;DB VARCHAR 注释 / DO Javadoc 仍列 csj/gdt/mock(doc-only、SQL 为 Flyway 版本档不改)——留终审 | **P1(9 条)** - [x] **wg1 `/generate` 无幂等去重**(`wg1/gen-worker/worker/service.py:378`):仅 `threading.Lock` 串行化,同一 traceId 重投会重复真烧便宜模型 + 重复 HMAC 回调,后端可能重复建版本/组包。切默认产线前必修(内存 set 起步,崩溃恢复用 results/ jsonl)。 - [x] **wg1 `run_studio` 的 `max_tokens` 未透传**(`wg1/gen-worker/worker/agent_loop/studio.py:231`):形参声明了却没接到底层调用,复杂局便宜模型输出被默认上限截断→取不到完整代码块→parse 失败重试,把 token 白烧在无谓重试上,直接拖累「成功率冲 80%」。 - [x] **tier2 ¥ 成本硬闸跨 resume 不累计**(`tier2/gen-worker/service/app.py:192`):熔断中间件每个 chat 回合重建、计数从 0 起,`rmb_hard_limit=3.0` 在默认 6 回合 resume 下形同虚设,单款实际可烧约 7 倍单回合上限而硬闸永不触发。批量开闸前必修(把 spent_rmb 提到 session 维度跨回合累计)。 - [x] **wg1 契约真空**(`wg1/gen-worker/worker/service.py:91`):worker 产的 engineBundle / 九门 verdict / 9 维 trace 无任何 `contracts/` schema 背书,评审锚点的 verdict/game-design schema 还停在 v1 clicker 世代,字段世代不符;worker↔后端 trace 子集口径只散在注释里,键名漂移无门可拦。补新 schema,或在设计文档显式声明 engine 路不消费 v1 契约并指向新 schema。 - [x] **tier2 服务态主链未端到端真跑**(`tier2/gen-worker/service/app.py:105`):BackendStore 落库 / MCP / L2·L3 / 富游戏三门只有 schema 形状、缺真跑证据,代码里留着「扁平探测全空→服务态生成零产出」的实证注释,属孤儿风险。0 号 spike 真驱后把端到端验证列成显式验收清单挂进 `tier2/.agent`,每兑现一项去掉「待 spike」表述并附证据路径。 - [x] **game-studio host CSP 注释失真**(`game-studio/src/host/inject.ts:69`):iframe CSP 授了 `unsafe-eval`,注释援引本模块根本不存在的 `gamedef` / `scanLogic` 运行时当作既成安全保障(违反「不得把未验证声明当事实」),且多授了当前代码不需要的 eval 能力。删掉不存在的 `scanLogic` 表述据实改述真实边界;若引擎 bundle 不需 eval 则从 CSP 移除 `unsafe-eval`。 - [x] **game-studio `vue-i18n` 缺失卡类型门**(`game-studio/package.json`):声明 `^10.0.0` 却没装,26 条 TS2307 卡死 `vue-tsc` 与 CI;且 `vue-tsc` 声明 `^3.2.8` 与实装 `6.0.3`、`typescript ~6.0.2` 不在同一兼容线,`npm ci` 不可预期。在权威构建机装包 + 对齐版本声明 + 提交 lockfile,合入前清掉。 - [x] **品牌红线残留 + 机器门扫描面有洞**(合并 GR-01 + WG1-04 两条 P1 + §四 index.html 补正):活层三处退役旧名「造梦AI」——`game-runtime/package.json:6`、`game-studio/index.html:7`(玩家浏览器标签页可见,最显眼)、`wg1/gen-worker/worker/service.py:34`;更要紧的是品牌不变量门只扫 `src/` 会放过模块根 `package.json` / `index.html` 与 `wg1/` 目录。改三处字符串之外,须把门的扫描面扩到各模块根与 wg1/ 防回流。 **P2(7 条)** - [x] **game-runtime v1→v2 契约标注漂移**(`game-runtime/src/host/build-from-source.mjs` 及 `gd-runtime.js` 文件头,评审 GR-02):source-project 契约已升级为 `oneOf(v1|v2)`、v1 标注冻结只读、v2 多文件 `src/` 定为终态,但活实现仍整建在 v1 上且无标注指向该判别式,维护者易把冻结的 v1 当终态继续加码。文件头各补一行演进状态注释、链到 schema 判别式(只加注释不改逻辑)。 - [x] **tier2 `validate_play_scene` 文本子串校验平台命脉接线**(`tier2/gen-worker/worker/run.py:401`):裸子串/正则启发式决定是否拦 build 并回喂自纠指引,agent 把 `bindInput`/`tick` 写进注释即假绿、用别名/换行即假红误导自纠。中期改 AST 结构判定,短期至少剥注释/字符串后再扫。 - [x] **tier2 screenshot docstring 与像素回读数据流冲突**(`tier2/gen-worker/worker/toolkit.py:262`):docstring 写「L1/L2 判定零截图参与」,实际 harness 在回读 canvas 像素产 advisory 观测(严格不进 decision)。纪律没破、纯措辞误导契约消费方,据实校准(零成本)。 - [ ] **tier2 bootstrap 鉴权头占位口子**(`tier2/gen-worker/service/bootstrap.py:99`):REST 客户端 `X-User-Id` 留口子待对齐,四步串行启动无重试/幂等,new-api 偶发 502 会让启动失败或重复注册凭据。smoke 时按真实 `deps.py` 定死鉴权头 + 加幂等与有限重试退避。 - [x] **wg1 回调 `callback` 孤儿字段**(`wg1/gen-worker/worker/service.py:8`):文件头文档声明 job 携带 `callback`,但全程只用进程级 `state.callback_url`,`job.get("callback")` 从不读取;执行器若按文档传 per-job 回调会被无声丢弃。删文档声明,或真接线 + 地址白名单防 SSRF。 - [x] **wg1 `_judge_vision` 绕过重试封装**(`wg1/gen-worker/worker/agent_loop/studio.py:190`):视觉位直接调 `client.chat.completions.create`,绕过 `_client.chat` 的 tries=3 突发重试(仍有 SDK 级 max_retries=2),遇网关瞬时 502 更易被吞成 panel error、顾问位无声失效。给 `_client` 加多模态 chat 变体复用重试。 - [x] **wg1 基建类 subprocess 无 check**(`wg1/gen-worker/worker/validate.py:86`、`run.py:48/62`):build/play 子进程因环境问题(node 缺失、脚本路径错)非零退出被当普通失败回喂模型重试,掩盖基建故障、白烧重试 token 才暴露。对基建类区分 returncode(如 127)快速失败标 infra_fail、不进回喂循环。 ### 联调(把"模块编译通过"转成"可演示闭环"= Doc A P0 可验证的硬通货) - [x] **`deploy/smoke-test.sh` 五链路冒烟门(2026-06-11)** — API 级就绪门:只读 12/12 + `--deep` 13/13 全过(health/鉴权 + 链路①四模板就绪+draft + 链路②feed非空+zones+project/my + 链路③runtime/package取包 + 链路④ad/钱包/收益 + 链路⑤feed携qualityScore回灌 + deep:generate入队)。**5 条链路后端 API 全绿**,CORS/鉴权(test1 token)从前端 origin 验证通过。**实测 gotcha**:feed item 的 `packageUrl` 恒 null,真实取包走 `GET /app-api/runtime/package/{versionId}`(已写入脚本注释)。 - [~] **game-studio 前端接 staging** — 配置已就绪 + 后端 5 链路 API 全绿(smoke 12/12);**创作链路 UI 走查已做(2026-06-11 HJ-FE-WALK-001,CDP harness 驱动 6c6g chrome 经 Tailscale 打 mini :4173)**:链路①创作→生成→预览 UI 全绿;**链路②发布 UI 逮 2 真后端缺陷**(A=`project.currentVersionId` 生成未回写;B=`feed/zones` 空)。**下一步=修 A/B(后端+重部署)→重走查闭合链路②发布**。game-admin 接 staging 走查未启动。 - [x] **修复发布 UI 两缺陷(HJ-FE-WALK-001,2026-06-11 修+部署+重走查闭环)**:A=`GameVersionServiceImpl.createForPackage` 落包建版本后 `bindCurrentVersion` 回写 `current_version_id`(幂等+新建两路径);B=`FeedServiceImpl.getZones` 落实直查 `game_zone`(新增 `GameZoneDO`@TenantIgnore+`GameZoneMapper`,type∈(1,2)∧status=1;staging tenant.enable=false)。提交 `29564c8`;mini 全量构建 SUCCESS→重部署(四模板/M1/admin-api 200 无回归)→**重走查实证**:去发布→选专区→提交发布→「✓已提交审核」+ currentVersionId/launchZoneId 落值。**余审核台 approve→feed(admin 侧)**。 ### 不可压缩日历闸门(人侧并行启动,非工程量;见记忆 mvp-binding-constraint-calendar-gates) - [~] ICP 备案 | 支付进件 | 广告联盟审核 | LLM 实名充值 | 短信签名报备 | 大模型登记/算法备案/分账选型 — **这些才是 MVP 上线的真正约束**。✅ 2026-06-10 看板已建:[`A1闸门看板.md`](./A1闸门看板.md)(12+1 项含 owner/最晚提交日/阻塞状态;主体已确认可用;律所咨询 brief 已备 [`律所合规咨询brief.md`](./律所合规咨询brief.md))——**剩创始人线下提交动作,本周四件见看板** --- ## 6. 执行记录(波次史 · 摘要) > ⚠️ **完整逐波收口验收账本**(各波「过没过验收门」的综合证据:accept rate / 单测数 / DB 行级实证 / commit 区间)已整段搬入归档档(源档已删,git 可查:`git show 6d2f8789^:docs/agent-specs/_archive/总账-波次史归档.md`),**一字未删**(评审 M2:git log 无此判决性综合)。本节仅留里程碑级摘要。 | 里程碑/线 | 收口 | 关键证据(详见归档) | |---|---|---| | **M0-M1**(6/9-6/11) | ✅ | 8 类契约锁定 + 单体全栈启动(Flyway V1-V9 全绿) | | **M2 生成**(6/9-6/17) | 🟢 | spike 80% → 四模板(W-CLEAN 已清) → generic 一句话入口(`7534bdf9`);引擎 LittleJS+Runner v2 收口(T1b-β `3e5cab4`) | | **M3 分发**(6/9) | 🟢 | 发布链+数据回路+真人试玩 e2e(feed 翻转) | | **M4 变现**(6/16) | 🟢mock可切真 | ad/trade 业务真落地,87 单测绿 + mock e2e 门 | | **鉴权波**(6/10) | ✅ | E1-E13 全过,逮修 2 P0 | | **Wave4 community/biz**(6/11) | ✅ | 通知底座+lead form,mini 集成门 | | **studio 设计体系 HJ-FE-DS-001**(6/16) | ✅ | 19 视图 token 两层+双语+三主题,见 `studio前端设计体系.md` | | **SAA trace 真库收口**(6/17) | ✅ | `703e462c`+round3,split-brain 闭合,见 `agentic编排-SAA.md` | | **W-G1 开闸验收门**(6/16) | 🟢门已落 | 组A/B/C+G0G1,见 `开闸验收门-W-G1.md`;开闸=在飞 | | **W-AXIS-V2 验收换轴**(7/10) | ⚪历史 | 波 0 `8edb0ffa`、波 1 `5bcaf6ac`、波 2 `8d851ea7` 留作历史实现记录;旧工作区两局缺 V3 关联 ID,不复用、不构成 ≥80% 结论 | | **W-AXIS-V3 可信证据闭环**(7/13–在飞) | 🟡专项机器证据至完整 AudioAudit | 确定性 fixture 四轮、五款视觉/特效专项、完整 `Match3AudioAudit/1`、45/45 独立配方混音门及固定 Chrome 10/10 已闭合;trusted bridge 与每组完成后立即 120ms drain 已接线。Judge `3.0.4` 固定 fixture 专项历史通过,但当前 `3.0.13` 三轮建线、第四轮确认与真实生成集成 baseline 未闭合。五款均为 harness fixture,不是内容金标。Audit/2、Proof/3、combined mix P1、正式 game_content_gold、ReferenceAssetRegistry/live prompt 接线、完整总门、fresh 25、historical 11、production shadow 20、staging RC、Wave0 未完成。生产 `runtimeEligible=false`,未切默认、未放量 | > 逐波细节 + 完整收口验收证据:见归档档(`git show 6d2f8789^:docs/agent-specs/_archive/总账-波次史归档.md`)+ `git log`。子系统现行架构/现状:见各 canonical 档(`docs/agent-specs/*.md`)。 ## 7. 风险与口径提醒 - **真正的约束不是工程量,是日历闸门**(ICP/支付/广告/实名),见记忆 `mvp-binding-constraint-calendar-gates`——再快的代码也压不过备案周期,人侧须并行启动。 - **V3 工程绿 ≠ 验收口径绿**:单元、契约、Chromium 对抗与五款 fixture 基础交互只证明实现可运行。正式 game_content_gold、`ReferenceAssetRegistry/1` 与 live prompt 接线、当前 Actor/Judge 稳定门、fresh 25、historical 11、production shadow 20 和基于内容金标的人工抽查缺一项,就不得切默认、解冻发布或宣称成功率达标。 - **生成成功率≥80%**:2026-06-09 的两段式口径与 batch-001 80.0% 只代表历史链路当时达成,不能替代现行发布口径。现行分子只认 finalPostguard 封存的最终 `accepted`(包含首轮直接接受与 repair 后接受),`acceptedAfterRepair` 只统计修复救回率;分母只统计独立真实游戏样本,四类 fixture/校准锚/生成范例/内容金标都不计入。fresh 25、historical 11、production shadow 20 尚未形成,当前没有新的 ≥80% 结论。 - **结构骨架 ≠ 产品功能可验收**:勿用"模块编译通过/单体启动"等同于"P0 达成"。本总账第 0、2、3 节即为防此偏差而设。 - **架构三向审计四颗雷(2026-06-10,HJ-AUDIT-001)**:详见 `git show 6d2f8789^:docs/agent-specs/_archive/2026-06-10-架构文档三向审计-review.md`——**R1** 对外材料含可证伪主张(奇绩现版禁投,换稿不冻结);**R2** 自有 H5 分发 UGC 合规死锁(IAA 免版号仅渠道内成立;闸门新增 大模型登记/算法备案/分账方案;Doc A 缺 8 项法定 P0);**R3** 渠道60%×创作者80%×IP15-25% 三层分成从未合账 + 全仓零生成成本侧;**R4** 模板集背离 D2 拍板(实建 dodge/runner/match=被降级的动作类)→ **✅ 2026-06-10 已拍:维持 D2、按 D2 改建**(M-c=merge→idle→tycoon,动作类降 P1 留契约)。W1 文档回填已落;W2 对外清洗=★口径全定+品牌清扫/横幅已落(残余 BP 改造版红线内容清洗);W3 待律所意见(brief 已备);W4 待 R3 假设值。