games-development-ai/docs/agent-specs/2026-06-08-后端模块并行建设-execution.md
zizi 8a59a35133 docs(audit)+docs(mvp): 三向审计修复全链入库——报告+W1回填+创始人拍板波+W2清洗+三件产出
- 审计报告 HJ-AUDIT-001 入库 + W1 文档回填波(技术决策版/Doc B/开发团队版废止横幅/AGENTS.md/两规则档/tech-decisions)
- 创始人拍板波(2026-06-10 晚,回填铁律逐项执行):
  · R4=维持 D2 按 D2 改建(M-c 建 merge→idle→tycoon,动作类降 P1 留契约)→ D2 复审注+tech-decisions #6
  · 鉴权七项全拍(§9.1:C 验证码+邀请码旁路/受限激活/开放注册/创作限白名单/一键登录/实名提现前/纯客户端 anonId)→ glossary+events.schema.json 同步
  · A1 闸门看板建账(12+1 项含短信报备+大模型登记/算法备案/分账选型,主体已确认)+ 律所合规咨询 brief
  · 奇绩 ★1/2/3 定稿 + 品牌造梦→绘境清扫(4 档正文+文件名、demo 改名 huijing-ai-demo.html、禁投/禁外发横幅、内部引用 5 处)
  · M-c 四细节(两批 merge 先行/idle 纯前端+storage/10 校准+20 正式/拖拽为主)
  · R3 收口(叠加规则=IP 从创作者份额出·净额基数·平台恒 20%,eCPM 档 15/30/60)→ D3 复审注+glossary+BP:299 勘误
- W2 对外清洗收口:BP 改造版红线清洗(20 处锁风系红线词清零/独家→非独家/绝对化清零/06-10 实证+三线排序入文,留 3★ 待创始人)
- 三件产出:鉴权 execution 版(V11/system 内扩展/14 @PermitAll 端点/NOT NULL 硬边界)+ Mc 模板波 review 版(已拍)+ 单位经济敏感性模型(基准 324 元/月/千DAU,覆盖基建需 1.33 万 DAU→实证 B 端现金线优先)
- 两本账同步:作战清单(五件拍板项清零)+ 进度总账(三行执行记录)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 08:51:30 +00:00

119 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 后端模块并行建设 — 执行版Wave1 脊柱)
> 编号HJ-BUILD-001-EXEC 生成 2026-06-08 配套 review 版 `2026-06-08-后端模块并行建设-review.md`
> 决策(创始人定):**Workflow 编排 先 Wave1 脊柱 4 模块 外部依赖模块仅骨架+契约点**。
> 不变量:照抄已验证样板 `game-module-project`;契约先行;每模块验证门=编译+Service 单测;运行时/真实联调未验证须显式标注。
---
## 一、Wave1 范围(闭环脊柱 4 模块)
| 模块 | 错误码段 | Flyway 版本 | 闭环职责 | 对外接口(示例,待契约细化) | 关键依赖/对接点 |
|---|---|---|---|---|---|
| **aigc** | 1-101 | V2.0.0 | 生成("做得出"入口) | `POST /app-api/aigc/generate` 异步提交、`GET /app-api/aigc/task/{id}` 轮询 | **Dify**(契约#6 dify-workflow-io=人工闸门;产物=GamePackage契约#4)→ 写 game_version**仅骨架+对接点** |
| **runtime** | 1-102 | V3.0.0 | 预览/试玩/包服务 | `GET /app-api/runtime/package/{versionId}``POST /app-api/runtime/session` | GamePackage契约#4、SDK契约#3);试玩会话表 |
| **feed** | 1-103 | V4.0.0 | 游戏流/双轨专区浏览 | `GET /app-api/feed/list` 分页流、`GET /app-api/feed/zone/{zoneId}` | 消费 project 已发布 + zone已建按 quality_score 排序(来自 telemetry |
| **telemetry** | 1-104 | V5.0.0 | 遥测/事件入库 | `POST /app-api/telemetry/events/batch` 批量上报→MQ 异步 | 契约#5 events.schema原始事件表 + 聚合MQ 消费幂等 |
> 脊柱串起创作project✅→生成aigc 壳)→预览/试玩runtime→流feed→遥测telemetry→ 回灌 feed 排序。
> Flyway 版本方案:**每模块独占主版本号** `V{模块序}.x.y`project=1、aigc=2、runtime=3、feed=4、telemetry=5全局有序不撞车baseline-version=0 保证均执行。
---
## 二、三相编排Workflow
```mermaid
flowchart TD
subgraph PhaseA[Phase A 契约扩展(并行起草 + 评审门)]
A1[子:aigc 契约] & A2[子:runtime 契约] & A3[子:feed 契约] & A4[子:telemetry 契约]
--> RV[子:一致性评审:脊柱接口对齐<br/>aigc 产物→runtime 入参→feed 展示→telemetry 事件]
end
RV --> GATE{主 agent 审 + 锁定契约}
GATE --> PhaseB
subgraph PhaseB[Phase B 模块并行建设(平铺并行,写各自 game-module-名 目录)]
B1[子:建 aigc 骨架] & B2[子:建 runtime] & B3[子:建 feed] & B4[子:建 telemetry]
-->|各自 mvn 编译+Service 单测自验| VR[回收验证结果]
end
VR --> PhaseC[Phase C 主 agent 串行集成]
PhaseC --> I1[加 4 个 yudao-server pom 依赖]
PhaseC --> I2[确认 Flyway 版本不撞]
PhaseC --> I3[mvn install 全量绿]
I3 --> ACC[验收 + 更新 .agent/契约/记忆]
```
**并行安全**Phase B 各子 agent 只写**互斥的 `game-module-{name}/` 目录**(无 worktree无合并回写构建用 **`mvn -pl game-module-{name}/game-module-{name}-api,game-module-{name}/game-module-{name}-server test`**(不带 `-am`,依赖从 .m2 解析,避免并发重编 framework 撞 target/。共享文件yudao-server/pom.xml、Flyway 版本空间)**只在 Phase C 由主 agent 串行改**。
---
## 三、每模块产出物DoD
- `-api``enums/ErrorCodeConstants.java`(独占段)+ 状态/类型枚举 +(按需)跨模块 DTO/Feign。
- `-server`controller(app/admin)+vo、service+impl、dal(DO 继承 `TenantBaseDO`/Mapper)、convert外部依赖处留**清晰 TODO 对接点**(不 mock
- `db/migration/V{seq}.0.0__create_game_{name}.sql`(执行位)+ 同步 `contracts/db-schemas/`授权源diff 一致)。
- `contracts/api-schemas/{name}.yaml`OpenAPI端前缀 /app-api·/admin-api
- `XxxServiceImplTest``BaseMockitoUnitTest`,覆盖核心规则)。
- 模块 `.agent`:目标/边界/状态/TODO含"运行时未验证"标注)。
## 四、验证门(每模块必过)
1. `mvn -pl game-module-{name}/...-api,...-server test` → 编译 + 单测绿。
2. 契约文件入 `contracts/`
3. 骨架对接点显式标注"待人工闸门/运行时未验证"。
## 五、Phase C 集成 + 验收
- `yudao-server/pom.xml` 增 4 依赖(主 agent 串行)。
- Flyway 版本核对无撞V2/3/4/5
- `mvn -pl yudao-server -am compile` + `mvn install` 全量绿。
- 全局扫描已覆盖 `cn.wanxiang.game.module` → 4 新模块自动接入(无需改 Application/yaml
- 更新 `.agent`、playbook 速查、本 spec 状态、记忆。
## 六、风险与边界(承接 review §七)
- aigc 真实生成、telemetry MQ 真实入库、Swagger/Spring 启动 = **运行时未验证**(无基建),仅交付可编译骨架。
- 子 agent 关键任务跑 Opus记忆 `opus-subagents-critical-tasks`);主 agent 验证门兜底。
- 契约评审门不可省(决策 5Phase A 锁定后才进 Phase B。
---
## 七、执行状态LIVE · 跨会话/压缩续作锚点,每相更新)
> 用途:主 agent 若被压缩,凭此节即可干净接力,无需依赖会话记忆。
**当前相**:✅ **Wave1 后端脊柱全相完成并验证**Phase A 契约→修复→锁定→Phase B 建设→Phase C 集成全绿)。
**已定方向(创始人 2026-06-08 选①):下一主线 = 前端 `game-studio` 脊柱骨架**(非继续铺 Wave2/3 后端广度)。理由:闭环优先的下一环是"可试用",前端是种子用户能试的必要环,且不卡外部闸门(用已锁契约 mock 建+本地预览)。**先出 review 版计划 → 评审 → 并行 Workflow 执行**(复用 Wave1 三相方法)。
- 前端栈Vue3 + Vant + 自研 Canvas Runtime(<15KB, Tier1) + WanxiangGameSDKD4 设计基准 = `ui-ux-pro-max` 技能 + `docs-design/huijing-ai-demo.html`
- 消费契约mock 依据`contracts/api-schemas/{project,aigc,runtime,feed,telemetry}.yaml` + `sdk-interface.d.ts`(#3) + `game-package.schema.json`(#4)。
- 配套交付解锁运行时验证给人执行staging 拉起手册docker-compose 中间件 + `game-cloud/sql/mysql/ruoyi-vue-pro.sql` 初始化 yudao 基础表 + Flyway 自动建 game_ + Swagger/端点冒烟本环境无 docker/内存不足无法代跑
- 并行提醒人侧长周期日历闸门经营主体/ICP备案/支付进件/广告审核/LLM实名充值即刻启动
- **Phase A Workflow**完成task=`wgi8h9y2a` runId=`wf_006dd49e-67b`
- **修复 Workflow**完成task=`wn3q0kegz` runId=`wf_fa1623d0-129`
- **Phase B 构建 Workflow**完成task=`wffjrukel` runId=`wf_dd456459-4a2`。建成 game-module-{aigc,runtime,feed,telemetry}main 17/30/22/20 文件 agent 独立复验 4 模块全 BUILD SUCCESS、**46 单测全绿**aigc 8/runtime 18/feed 11/telemetry 9)。
- **Phase C 集成**完成 agent 串行 pom 4 模块yudao-server pom 4 `-server` 依赖4 迁移 V2-5 复制到 db/migrationdiff 一致**`mvn -pl yudao-server -am compile` 全量 BUILD SUCCESS41 模块 reactor 5 game 模块+yudao-server**。
- **运行时未验证无基建**Spring 启动/扫描生效/Flyway 真实迁移/Swagger/真实 Dify·MQ 联调 staging各模块 integrationTodos 已记录对接点Dify/MQ/LLM/OSS/quality_score 公式/跨模块 RPC)。
- **契约校验锁定** agent,✅):5 api-yaml 语法 OK13 表裸 select*=0错误码段 100-104 独占Flyway V1-5 唯一5 决策落实命中Wave1 契约**已锁**。
- **Phase B 隔离构建约定** agent 写互斥 `game-cloud/game-module-{name}/` 目录构建用 **`mvn -f game-cloud/game-module-{name}/pom.xml test`** pom yudao .m2 解析不带 -am**不碰根 pom `<modules>`不碰 yudao-server不放迁移到 yudao-server**——这些由 Phase C agent 串行集成
- **产出落点**`contracts/api-schemas/{aigc,runtime,feed,telemetry}.yaml` + `contracts/db-schemas/V{2,3,4,5}.0.0__create_game_*.sql`已锁Phase B 产代码于 `game-cloud/game-module-{aigc,runtime,feed,telemetry}/`
**续作序列(按此推进)**
1. Phase A 完成通知 **立即把评审 findings 落盘到本节**blocker 必修后再继续)。
2. agent + 锁契约必要时改 contracts/ 后再 lock)。
3. **Phase B 构建 Workflow**4 agent 平铺并行各建 `game-module-{name}/`克隆 project 范式构建用 `mvn -pl game-module-{name}/game-module-{name}-api,game-module-{name}/game-module-{name}-server test`**不带 -am**避免并发重编 framework)。
4. **Phase C 集成(主 agent 串行)** 4 `yudao-server/pom.xml` 依赖 复制 4 个迁移到 `yudao-server/.../db/migration/` contracts diff 一致)→ `mvn -pl yudao-server -am compile` + `mvn install` 全量绿
5. 验收 更新 `.agent`本节记忆 `golden-module-project-verified`/新增 wave1 记忆
**不变量提醒**错误码段 aigc=1-101/runtime=1-102/feed=1-103/telemetry=1-104Flyway 主版本 aigc=V2/runtime=V3/feed=V4/telemetry=V5端前缀 /app-api·/admin-apiDO 继承 TenantBaseDO外部依赖只留对接点不 mock运行时未验证须标注
**Phase A 结果(已完成 2026-06-085 agent/329k token**4 契约已写入 `contracts/api-schemas/{aigc,runtime,feed,telemetry}.yaml` + `db-schemas/V{2,3,4,5}.0.0__*.sql`评审 `spineFlowOk=true`脊柱端到端贯通无断链)、`coherent=false`0 blocker/3 major/3 minor均语义对齐无需改结构)。
**Phase A→收口决策HJ-BUILD-FIX主 agent 拍定,注释层修复,锁前补)**
1. **[maj] runtime 状态机**取包门禁判定字段=`game_runtime_package.status`preview 放行 status∈{0,1}play status=1runtime 增发布态回写对接点admin 内部端点 `POST /admin-api/runtime/package/{versionId}/publish` MQ 对接点project.publish 编排成功后置 `package.status=1` + 回写 `game_version.status=3`
2. **[maj] qualityScore 量纲**aigc 侧注释正名生成质量分(0-1)」、telemetry/feed 运营质量分(0-100)」;README 契约对齐节加两者不同量纲不可互相回灌」;**字段名不强改**不动锁定结构仅注释澄清
3. **[maj] play_count 权威源**权威源=telemetry `game_play_start` 事件聚合runtime session 仅作时长/质量观测不计 play_countruntime `sessionId`(int64) 透传进 telemetry `envelope.session_id`( string) 作对账键两契约注释互指
4. **[min] ad/income 聚合**Wave1 脊柱范围=生成→流→试玩→质量分回灌,**不含变现**ad/income 事件原始入库但聚合表显式标注Wave2 范围外later 补列」。
5. **[min] package_url 权威写者**`game_version.package_url/checksum/bundle_size` 权威写者=runtime 编译成功后回写aigc 只回填 `version_id` 关联 + 生成元数据`gen_task_id`不写 manifest 字段aigc V2 runtime V3 注释互指
> 收口方式:按**文件分组**并行修复agent 各改互斥文件 aigc/runtime/telemetry/feed/README无冲突→ 主 agent 验证 → 锁契约 → Phase B。各模块 openQuestions归属/MQ-vs-RPC/CDN 等实现期细节)记录在 Phase A 输出,留实现期与 owner 对齐,不阻断骨架。