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

11 KiB
Raw Blame History

后端模块并行建设 — 执行版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.yproject=1、aigc=2、runtime=3、feed=4、telemetry=5全局有序不撞车baseline-version=0 保证均执行。


二、三相编排Workflow

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

  • -apienums/ErrorCodeConstants.java(独占段)+ 状态/类型枚举 +(按需)跨模块 DTO/Feign。
  • -servercontroller(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}.yamlOpenAPI端前缀 /app-api·/admin-api
  • XxxServiceImplTestBaseMockitoUnitTest,覆盖核心规则)。
  • 模块 .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

  • 契约校验锁定(主 agent5 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 构建 Workflow4 子 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 token4 契约已写入 contracts/api-schemas/{aigc,runtime,feed,telemetry}.yaml + db-schemas/V{2,3,4,5}.0.0__*.sql。评审 spineFlowOk=true(脊柱端到端贯通无断链)、coherent=false0 blocker/3 major/3 minor均语义对齐、无需改结构

Phase A→收口决策HJ-BUILD-FIX主 agent 拍定,注释层修复,锁前补)

  1. [maj] runtime 状态机:取包门禁判定字段=game_runtime_package.statuspreview 放行 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 对齐,不阻断骨架。