docs(收口): SoT总账 M4纠偏 + goals活账 + staging-ops 整机安全重部署配方蒸馏

- MVP进度总账:M4④由"桩"诚实纠偏为"mock可切真"(业务逻辑已真+87单测+staging mock e2e+4对账断言;真广告/真支付受日历闸门=mock gated非真变现);ad/trade模块真实度 🟡🟢;链路④ 🟢;§6 新增七goal并行波执行记录;⑤→④ typo 修
- goals.md:G1/G2/G3 状态同步(已提交推origin + merge点)
- staging-ops §3:补"整机重部署隔离验证后再切"安全变体(2026-06-16新命名空间整机重部署实证:隔离端口验全过才切live、备份jar留到复验、严禁无隔离验证切live)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
zizi 2026-06-16 10:30:08 +00:00
parent c50e336792
commit a344ccff04
3 changed files with 19 additions and 12 deletions

View File

@ -28,6 +28,8 @@
5. **jar 字节码实证含本次修改**`unzip -p <fat.jar> BOOT-INF/lib/<模块>*.jar` 核对 .class
6. `start-app.sh` 重启 → 验 health 200 / 四模板 banner / Flyway up-to-date / admin-api 200M1 无回归)。
> **高风险/整机重部署安全变体——隔离验证后再切2026-06-16 整机改新命名空间 `com.wanxiang.huijing` 实证)**:步 4 构建出新 jar 后,**先用新 jar 在隔离端口(如 `:48090`+ staging profile 起一个实例,live `:48080` 全程不动**;在隔离实例上验全Flyway 全绿无冲突 / health 200 / **本波新端点逐个 200 code=0** / 免短信登录拿 token。**隔离验全过才切**:停老 → `start-app.sh` 起新 → 复验(同上 + `smoke-test.sh`)。任一步 fail → 停新、用 `/tmp` 备份 jar 恢复 `:48080` → 确认 live 恢复。**严禁无隔离验证就切 live;备份 jar 留到复验全过再删。** 注:start-app.sh/模块名随命名空间改名已更新(`huijing-server`,重部署前核对 jar 路径与现命名空间一致。
## 4. 构建/测试门(红线)
- **`vue-tsc --noEmit` 是假门禁**,前端验证一律 `npm run build`

View File

@ -3,7 +3,7 @@
> **本文件是项目管理唯一活账**:把「计划 ↔ 完成 ↔ 待办 ↔ 执行记录」对在一起。
> **铁律**:每次波次收口、每次里程碑状态变化,**必须按 [`wave-close-checklist`](../../.agents/skills/wave-close-checklist.md) 七步收口**(本表+表头日期、作战清单+归档、回填、蒸馏、索引;`.agent` 仅结构变化时),否则视为未收口。
> 计划权威来源:`.agents/knowledge/mvp-scope-and-milestones.md`55 P0 / 137 技术项 / M0-M5`docs/architecture/{产品需求清单,技术架构与模块,需求模块映射}.md`Doc A/B/C`docs/superpowers/specs/mvp-execution-spec-design.md`
> 维护:主 agent 最近更新:**2026-06-15****T1b-β 实质收口**〔引擎真接线 Phase AA0 掌帧+A1-A4 能力包装+A6 真机门 6/6`3e5cab4`+ Runner v2 全弧(经 engineBundle 内嵌机制)支撑 feed 真玩、**零灰度闭环缺口、零 split-brain**3 处 spec↔代码漂移=有意改判已回填澄清packageUrl→engineBundle absorbedPhase C 1.x 退役被 P2 O2(b) supersede=moot受控面 random/time/input §1.5 翻盘=血统债);收口报告 `docs/agent-specs/2026-06-15-T1b-β收口报告.md`;推迟清单入 §5 backlog创始人可点名转 required。前序 2026-06-13 **Runner v2 全弧 P1+P2 收口**P1=王蓝莓上引擎/装载契约 spikereal 5 门,`99b6c82`**P2=通用宿主泛化、引擎游戏真渲入 feed 真玩**mini-desktop 真机 6 门,对账 `5d3f7a8`4 决策落实 + 对抗复审/真机门逮 4 缺陷全修;诚实 gap=game_end 到结算取证待人工补〕;**P3/W-G1 待续**。前序同日 T1b-β Phase A 引擎真接线收口〔`3e5cab4`2026-06-12 T1b-α 收口:插件库 9 件+拔高样板「暖阳小卖部」**创始人亲玩主门 PASS**,好玩基线 v2 立标)。
> 维护:主 agent 最近更新:**2026-06-16****七 goal 并行波 + M4 mock 可切真 + staging 新命名空间上线**7 个 goal 并行交付(卖相批/消息中心+个人中心/数据看板/创作者 stats 端点 G2/M4 变现④可切真 G1/B 端定制前端 G3M4 业务逻辑已真实落地ad 24 测+trade 41 测+community 22 测=87 单测全绿)∧ mock e2e 门真跑广告→结算→提现→mock 打款回调 1→24 条对账断言全 HOLD真广告联盟/真支付受日历闸门=mock gatedstaging 后端重部署 com.wanxiang.huijing 新命名空间jar `afa07715`5 新端点 curl 200/code=0smoke 11/12唯一 FAIL=aigc/template/list 空=W-CLEAN 设计态非回归spec=`docs/agent-specs/2026-06-16-M4变现真实化-review.md`〕。前序 2026-06-15 **T1b-β 实质收口**〔引擎真接线 Phase AA0 掌帧+A1-A4 能力包装+A6 真机门 6/6`3e5cab4`+ Runner v2 全弧(经 engineBundle 内嵌机制)支撑 feed 真玩、**零灰度闭环缺口、零 split-brain**3 处 spec↔代码漂移=有意改判已回填澄清packageUrl→engineBundle absorbedPhase C 1.x 退役被 P2 O2(b) supersede=moot受控面 random/time/input §1.5 翻盘=血统债);收口报告 `docs/agent-specs/2026-06-15-T1b-β收口报告.md`;推迟清单入 §5 backlog创始人可点名转 required。前序 2026-06-13 **Runner v2 全弧 P1+P2 收口**P1=王蓝莓上引擎/装载契约 spikereal 5 门,`99b6c82`**P2=通用宿主泛化、引擎游戏真渲入 feed 真玩**mini-desktop 真机 6 门,对账 `5d3f7a8`4 决策落实 + 对抗复审/真机门逮 4 缺陷全修;诚实 gap=game_end 到结算取证待人工补〕;**P3/W-G1 待续**。前序同日 T1b-β Phase A 引擎真接线收口〔`3e5cab4`2026-06-12 T1b-α 收口:插件库 9 件+拔高样板「暖阳小卖部」**创始人亲玩主门 PASS**,好玩基线 v2 立标)。
---
@ -12,9 +12,10 @@
**结构骨架完成度高,真实可验收度低。**
- ✅ **M0 契约锁定 + M1 全栈可启动** 已达成单体真启动、Flyway V1-V9 全绿、admin/app-api 200staging 在 mini-desktop 在线)。
- 🟡 已建 **11/13** 个 game 模块脊柱owner 覆盖 54/55 P0仅 pay 1 P0 未接),老 9 模块**大多骨架+桩****Wave4 community/biz 核心真实**(通知底座+lead form 状态机staging 两链路实测M4 资金流部分桩)。
- 🟡 已建 **11/13** 个 game 模块脊柱owner 覆盖 54/55 P0仅 pay 1 P0 未接),老 9 模块**大多骨架+桩****Wave4 community/biz 核心真实**(通知底座+lead form 状态机staging 两链路实测)。
- 🟢 **生成链路(M2) + 发布链(M3) + 数据回路种子(M5) 已 e2e 真实**M2UI 一句话→18-27s 可玩游戏、**四模板** clicker/merge/idle/tycoon 各可生成可玩可进 feed、成功率 80%B1 发布编排跨 4 表B2 遥测→quality_score→feed 重排+幂等)。
- ❌ 按真正验收线「**55/55 P0 产品功能可验证 + 生成成功率≥80%**」衡量,**真实可验收的 P0 仍少**。剩余大头——**真实变现(M4广告联盟+pay 仍桩) / 前端接线admin+studio 接 staging5 链路端到端)**Wave4 community+biz 已建成集成 ✅〕;**数据回路(M5)** 余 MQ 异步化;**真正上线约束=不可压缩日历闸门**ICP/支付/广告/实名,见 §5
- 🟢 **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→24 条对账断言全 HOLD**。**真广告联盟/真支付受日历闸门=mock gated非真变现**。
- ❌ 按真正验收线「**55/55 P0 产品功能可验证 + 生成成功率≥80%**」衡量,**真实可验收的 P0 仍少**。剩余大头——**真广告联盟+真 pay 接线受日历闸门 / 前端接线admin+studio 接 staging5 链路端到端,真机走查 G1/G2/G3 合并点待做)**Wave4 community+biz 已建成集成 ✅〕;**数据回路(M5)** 余 MQ 异步化;**真正上线约束=不可压缩日历闸门**ICP/支付/广告/实名,见 §5
> 换算:**结构骨架 ≈ 70%,真实产品功能验收 ≈ 早期(个位数 P0 端到端可验证)**。两者勿混淆——这正是过去"波次跑完=进度推进"的认知偏差所在。
@ -28,7 +29,7 @@
| **M1 全栈可启动** | 6/11(Day3) | ✅ **达成6/9 提前)** | 单体 `Started HuijingServerApplication`Flyway V1-V9 全 success24 张 game_* 表admin-api `/system/user/page`→20 真实用户、app-api `/feed/stream`→200 | 启动修复 `d7fac90`+`8565fa2` |
| **M2 创作链路(真 LLM** | 6/18(Day8) | 🟢 **生成链路贯通+四模板6/9~11** | batch-001 成功率 **80.0%**(达标口径)+ M-b 薄轮询执行器上线UI 一句话→18-27s 可玩游戏);**模板从 1→4**clicker/merge/idle/tycoon 各可生成可玩可进 feedM-c 批①②,执行器 banner 四模板装载);**仍待**A4 大样本盲评(可接受) +(可选)Dify | spike `2026-06-09-generation-spike/`·M-b `42d3237`·M-c `b1fa30d→26319b3` |
| **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) | 🟡 **部分** | ad/trade 骨架slot/settle/分账/提现);真实广告联盟=桩、pay 模块未接单体 | `43fce85` |
| **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→24 对账断言 HOLD**pay 模块未接单体;**真广告联盟/真支付受日历闸门=mock gated** | `43fce85`(骨架)·`e3be456d`(G1 本波) |
| **M5 MVP 交付** | 6/27(Day15) | ❌ **未达成** | 55/55 P0 真实可验收 + 冒烟全绿 + P0 Bug=0 远未达 | — |
---
@ -44,11 +45,11 @@
| **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(待修) | `c4e2d73`·B2 |
| **telemetry** | 1 | 🟡 | 3 | telemetry.yaml | V5 | ✅ | **事件同步写落库+quality_score算分+feed回灌 真实 e2e(B2)**MQ 异步聚合留 TODO(桩) | `c4e2d73`·B2 |
| **ad** | 2 | 🟡 | 2 | ad.yaml | V6 | ✅ | slot/settle 骨架;**真实广告联盟=桩** | `43fce85`·`096020f` |
| **trade** | 3 | 🟡 | 4 | trade.yaml | V7 | ✅ | 分账/结算/提现骨架;**真实 pay=桩** | `43fce85`·`096020f` |
| **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=桩受日历闸门** | `43fce85`·`e3be456d`(G1) |
| **studio** | 7 | 🟡 | 1 | studio.yaml | V8 | ✅ | 创作任务链+aigc seam**真实生成编排=桩** | `b70e90b` |
| **compliance** | 6 | 🟡 | 2 | compliance.yaml | V9 | ✅ | 锁风门 Gate 二态已注入 publishcurl 验证);**style/ip 原子=桩** | `b70e90b`·`6c8844f` |
| **community** | 5 | 🟢真实 | 3(19例) | community.yaml | V12 | ✅ | ✅ 通知底座 e2e链路①staging 实证mock-trigger→`game_community_message`+updater 非空+unread 聚合;站内信/等级引擎 `published_count` 原子自增/3 上游 notify 挂点真接线 aigc·project·trade事务后+try-catch**reward 真实记账/到账留 M4status=0 桩)** | `737e6d5` |
| **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 真实化) | `737e6d5`·`e3be456d`(G1 reward 衔接) |
| **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 原生模块,当前未接入单体 | — |
@ -65,7 +66,7 @@
| 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 | 广告展示 → 收益 → 钱包可见 | 🟡 | 骨架;**真实广告/pay=桩** |
| 4 | 广告展示 → 收益 → 钱包可见 | 🟢 | **mock 可切真**ad/trade 业务逻辑已真实(幂等/CAS 状态机/验签staging mock e2e 门绿广告→结算→提现→mock 打款回调 1→24 对账断言 HOLD创作者收益端点 live**真广告联盟/真 pay=受日历闸门 mock gated非真变现** |
| 5 | 遥测 → 质量分 → 推荐优化(数据回路) | 🟢 | **数据回路 e2e 真实(B2)**事件→quality_score→feed 重排(B超A)+重放幂等MQ 异步化/真实试玩前端待补 |
---
@ -156,6 +157,7 @@
| **Runner v2 全弧 P2:通用宿主泛化——引擎游戏真渲入 feed 真玩(双 spec+落地+真机门 · Ultracode)** | 2026-06-13 把 P1 装载契约从「装载王蓝莓一款」泛化为「装载任意 GamePackage」入 feed 真玩。**双 spec**(4 路侦察→草拟→opus 文档级对抗复审逮 4 mustFix门②game_end 跨层/体积 540→259KB/O2 范围/产线〕全纳)。**4 决策拍定**:O2(b) 创始人追认纳入 Phase CO-P2-2 创始人=① DB-manifest 内嵌(bundle 文本进 GamePackage `engineBundle` 字段+iframe 内联 script,CSP 不放外域)O-P2-1=灌库过渡桩(真产线 P3)O-P2-3=globalName `__GameBundle`。**三轨落地**:后端 `engineBundle` additive 字段+灌库桩+四态脚手架;运行时 `bootRef→bootGameHost(opts)` 泛化+`build:ref-bundle``__GameBundle` iife;studio inject 引擎包分支(取 `window.__GameBundle.bootGameHost` 挂引擎真渲,否则旧 startRuntime 保兼容)。**对抗代码复审+真机门逮 4 缺陷全修**(灌库桩读错产物死循环/漏发 game_start 吞会话/seed charset 断 checksum/W-CLEAN 空库脚手架)。受控面 6 项+`game-host.d.ts` 零改 | `5d3f7a8`(三轨+灌库桩+脚手架+evidence,24 文件 +1732/448) | mini-desktop 真机 **6 门**(主 agent 肉眼复核):build `__GameBundle` 真入包Java 编译+字节复现单测studio staging 重建消 mock灌库 status=1∧checksum 64hex∧manifest sha256 一致/**真人 feed 点卡→引擎真渲暖阳小卖部(warm=1246073px)非「重构中」+game_loaded+game_start+防 demo 三锚+DB session 行+console 零错**/回滚无 engineBundle→demo 壳兼容未破;证据 `game-studio/evidence/p2-feed/`(02 截图=引擎真渲肉眼实证);**诚实 gap**:game_end 到结算未在自动化窗内达成=ref gameover 需分钟级真玩+srcdoc 坐标盲点取证局限,机制已通留人工真玩补;真玩 feed `100.64.0.7:4173`(game 9201) |
| **T1b-β 实质收口(引擎真接线 + Runner v2 全弧综合裁决 · 2026-06-15** | 主 agent 综合 5 路侦察实证宣告**完成线达成**引擎真接线Phase A=A0 掌帧+A1-A4 能力包装+A6 真机门 6/6+ Runner v2经 P1/P2/P3engineBundle 内嵌机制)**实质收口**,已支撑 feed 真玩3b-B 井字棋 gameId=9306 `238ec2d` 真渲真玩入 feedP2 `5d3f7a8` 真机 6 门B1 主链 9001-9002 e2e 全链);**零灰度闭环缺口、零 split-brain**。**三处 spec↔代码漂移有意改判非 bug回填澄清**:① Runner v2 母 spec §5「复用 packageUrl 外链取 iife」→实际 **engineBundle 字段(契约#4 additive随 manifest JSON 内嵌 + `window.__GameBundle` + bootGameHost**取代(不接 OSS 省一基建线,整包 sha256 单校验面)=**absorbed-by-arc 无 split-brain**;② Phase C「srcdoc→URL+四项兼容矩阵」被 **P2 O2(b)(创始人 2026-06-13 追认supersede**(落档 `2026-06-13-P2-...execution.md` §2.1),全 studio 单宿主 GamePlayer.vue引擎 vs demo 是 `inject.ts:240 'pkg.engineBundle?'` 同段 srcdoc 互斥分叉非双轨=**moot**;③ Phase A 受控面 random/time/input 改判random 仍 mulberry32 自管护粒子种子确定性time 仍 host 逻辑帧钟、probe P75 改读引擎 timeRealinput 仍 α 事件桥)=工程正确§1.5 延迟裁定翻盘),但 spec 冻结行未回写=**血统债**连带门12「probe 证底层非 mulberry32」子断言现码不可满足、已 moot。**推迟清单engine-line backlog不在关键路径创始人可点名转 required**入 §5。 | 综合裁决(不引入新代码);引用 `3e5cab4`(A6 门 6/6)+`238ec2d`(3b-B 入 feed)+`5d3f7a8`(P2 真机 6 门)+`99b6c82`(P1 装载契约) | 完成线证据复用既有真机门A6 `game-runtime/evidence/a6/`、P2 `game-studio/evidence/p2-feed/`、3b-B feed gameId=9306本波纯收口落档批additive 文档),**只标已真机验证的为 done**,推迟项明列不冒充 done收口报告 `docs/agent-specs/2026-06-15-T1b-β收口报告.md` |
| **huijing 死菜单清理收口Codex 执行单 + 主 agent 复验 + SQL 落仓 · 2026-06-15 push** | Fable 审计执行单数据层为主层B 前端/层C 后端经实据判定 fork 已前置裁剪=**无操作**,不为凑而删)→ Codex 零裁量执行 staging 软删 **16 棵死顶级子树 1243 行菜单 + 437 行 role_menu 孤儿**(备份表 `system_menu_bak_20260611` + 固化删除集 `cleanup_menu_del_20260611` + 五道安全断言含 `trade:` 前缀碰撞 0 命中 + 逐段计数闸门pay(1117)/bpm(1185) 两棵死菜单随 16 棵一并删后端模块保留M4/远期接入时从备份表回灌);主 agent 独立复验全闸门后 cherry-pick SQL 落仓入 dev/2.0.0。**备份三表保留 ≥30 天2026-07-11 后另议清)** | `09d590c`(执行单)+`3279b5c`SQL 落仓 cherry-pick`be355d3` | staging 实测复验menu_alive **1441→198**、软删审计列 menu 1243/role_menu 437、孤儿 0、admin 登录 top=`[系统管理,基础设施]`、nodes=58/perms=145、**smoke 12/12 全过**(五链路无连带伤害);落仓 SQL `deploy/sql/2026-06-11-menu-cleanup.sql` |
| **七 goal 并行波 + M4 mock 可切真 + staging 新命名空间上线2026-06-16** | **7 个 goal 并行交付**:①卖相批(退出登录入口/主按钮品牌渐变/Inter 字体/字号 token`42342e8c`)②消息中心+个人中心(`3147b11d`,闭合评审 L-1/Profile③数据看板`5463796f`P-OPS-01 指标卡真/趋势诚实占位)④创作者 stats 端点 G2`b51025e1``/app-api/telemetry/my/{summary,trend}` 归属隔离⑤M4 变现④可切真 G1`e3be456d`,打款异步 CAS+PayoutClientFactory fail-fast+reward 现金 recordIncome TIP+广告验签+对账断言⑥B 端定制前端 G3`afa07715`studio 接 biz 7 端点⑦staging 后端重部署新命名空间 `com.wanxiang.huijing`jar `afa07715`,隔离验过才切+回滚件留)。**M4 变现关键纠偏**任务书原记「ad/trade=骨架+桩」与代码现状不符——计费/结算/提现/分账**业务逻辑已真实落地且有单测**(本波从读码实证出发,非轻信原有记录)。本波做真=打款异步状态机+fail-fast+reward 到账+验签+收益端点。spec=`docs/agent-specs/2026-06-16-M4变现真实化-review.md` | `42342e8c`·`3147b11d`·`5463796f`·`b51025e1`·`e3be456d`·`afa07715`(均已推 origin/dev/2.0.0 | **87 单测全绿**ad 24/trade 41/community 22主 agent 亲跑staging mock e2e 门真跑广告→结算→提现→mock 打款回调 1→24 条对账断言全 HOLD5 新端点 curl 200/code=0smoke 11/12唯一 FAIL=aigc/template/list 空=W-CLEAN 设计态非回归);前端 :4173 重建(含新视图);**真广告联盟/真支付受日历闸门=mock gated已在措辞中如实标注** |
## 7. 风险与口径提醒

View File

@ -11,11 +11,14 @@
| 子目标 | 目标(验收) | 边界 | 可用工具 | 状态 |
|---|---|---|---|---|
| **G1 变现④可切真** | reward 到账做真 + 广告→收益→钱包→提现全链 e2e门 + pay 接入主程;打款同步 mock、异步留接口。验收=mock-e2e门绿 + 对账断言 + 单测 | 不接真广告联盟/真支付(受日历闸门);不碰 feed/生成/community 既有;pay 接入先验启动不回归 | game-cloud ad/trade/pay + 契约;mini staging+MySQL(:13306);单测;opus;遇阻 Codex+Opus | spec✅(`docs/agent-specs/2026-06-16-M4变现真实化-review.md`)→ 主 agent 评审中 → dev 待 |
| **G2 创作者 stats 端点** | 契约先行补 `/app-api/telemetry/my/{summary,trend}`(creator 归属隔离),解锁看板完玩率/收益/趋势转真。验收=端点单测 + 契约对齐 | 只加创作者侧读端点;不改聚合写侧/admin 端 | telemetry 模块 + telemetry.yaml;mini build/test;opus | dev 中 |
| **G3 B端前端(studio 承接)** | studio 接 biz 7 端点(需求表单/进度看板/验收);验收=build 绿 + 契约逐条对接 + 真机走查(合并点) | 只 game-studio;不改后端;biz.yaml 为准;不发明端点 | game-studio + biz.yaml;vite build(6c6g);opus | dev 中 |
| **G1 变现④可切真** | reward 到账做真 + 广告→收益→钱包→提现全链 e2e门 + pay 接入主程;打款同步 mock、异步留接口。验收=mock-e2e门绿 + 对账断言 + 单测 | 不接真广告联盟/真支付(受日历闸门);不碰 feed/生成/community 既有;pay 接入先验启动不回归 | game-cloud ad/trade/pay + 契约;mini staging+MySQL(:13306);单测;opus;遇阻 Codex+Opus | ✅ 已提交推 origin(`e3be456d`)87 单测绿+mock e2e 门+4 对账断言 HOLD**合并点=真广告联盟/真 pay 接入受日历闸门gated** |
| **G2 创作者 stats 端点** | 契约先行补 `/app-api/telemetry/my/{summary,trend}`(creator 归属隔离),解锁看板完玩率/收益/趋势转真。验收=端点单测 + 契约对齐 | 只加创作者侧读端点;不改聚合写侧/admin 端 | telemetry 模块 + telemetry.yaml;mini build/test;opus | ✅ 已提交推 origin(`b51025e1`);端点 API livecurl 200/code=0**合并点=前端数据看板趋势转真(真机走查)** |
| **G3 B端前端(studio 承接)** | studio 接 biz 7 端点(需求表单/进度看板/验收);验收=build 绿 + 契约逐条对接 + 真机走查(合并点) | 只 game-studio;不改后端;biz.yaml 为准;不发明端点 | game-studio + biz.yaml;vite build(6c6g);opus | ✅ 已提交推 origin(`afa07715`)build 绿+契约逐条对接;**合并点=真机走查端到端(待做)** |
## ✅ 已收口(本会话)
- Phase0 卖相批(退出登录入口/主按钮品牌渐变/Inter 字体/字号 token)`42342e8c`(已推 origin)
- 消息中心 + 个人中心(闭合评审 L-1/Profile)`a6a64bf0` · 数据看板(指标卡真/趋势诚实占位)`ebeb3950`
- 消息中心 + 个人中心(闭合评审 L-1/Profile)`3147b11d` · 数据看板(指标卡真/趋势诚实占位)`5463796f`
- feed 专区乱码数据修(staging `game_zone` id=1→官方精选)· 创作页 W-CLEAN 迁移诚实文案
- **G2 创作者 stats 端点** `b51025e1` — API livecurl 200/code=0
- **G1 变现④可切真** `e3be456d` — 87 单测绿+mock e2e 门+4 对账断言 HOLD**真广告/真 pay=gated**
- **G3 B端前端** `afa07715` — build 绿+7 端点对接;合并点=真机走查待做