lili 8200aa08d0
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
feat(tier2): W-ASSET-SRC 源工程存储 manifest-first 落库 + 治理对账门 + 取回重建 harness + 孤儿清扫 job (SRC T1-T4)
背景/目标:tier2 富游戏 BackendStore 真实现已写好却未通电,且 save 走 MinIO-first、半落库会留无 manifest
指向的隐形对象,manifest 表游离在治理外(in-code DDL + 留档 .sql 双源无机器门)。本切片按已拍板的
manifest-first 方案把 SRC 一面推到「接生产、schema 受治理、取回可重建、半落库孤儿有修法」。只碰富游戏这
一面,不动便宜档 Java 面、不做素材、不接 fetch 生产消费方。

改动(六件核心 + T1/T3/T4):
- T2① status 列(pending/committed):新建走 CREATE DDL、存量走受治理 ALTER;BackendStore._ensure_schema
  按 information_schema 探测缺列才补(每实例一次,跨 MySQL/MariaDB 稳)。
- T2② save 改写入序:MySQL 落 pending 行 → MinIO put → 翻 committed;命中 committed 幂等返回、命中
  pending 复用 versionId 续跑自愈(同前缀真覆盖)。半落库崩溃只留可见 pending 行、无隐形对象。
- T2③ fetch 两条分支(取最新 / 取指定版本)都补 AND status='committed',pending 半成品对取回不可见。
- T2④ 治理归属:.sql 留 tier2/config/schema/(owner=tier2、不走 huijing Flyway、无执行副本),
  contracts/README.md 加治理指针认领、明说不参与 Flyway 对账;不塞 db-schemas/ 根。
- T2⑤ 可跑对账机器门 test_store_ddl_reconcile.py:规范化比对 in-code(_DDL+_ALTER)与 .sql,改一处
  漏改另一处即红。
- T2⑥ 修 store.py 模块头 docstring 整块(占位/seam/绝不实连/forbidden-import 守着 的陈旧误述改为与真
  实现一致,并纠正守卫范围:check-forbidden-import.sh 只禁 wg1.*/SAA/L2,不禁 pymysql/minio)。
- T1 接线单点:TIER2_STORE=backend 激活配方 + 前置 checklist(CREATE DATABASE / status 列状态确认)落
  staging-ops §7(tier2 gen-worker 部署 env 单点);不改 default_store 工厂形态。
- T3 取回重建 harness store_roundtrip_harness.py:五条(确定性重建优先 bundle sha256 字节相等、非字节稳
  才退九门 verdict 逐项一致+无 missingContent、不拿近乎恒真 buildInputHash 承重;版本寻址;幂等;缺源
  显式失败;半落库两失败点),本地 LocalFsStore 自检覆盖 1-4、真库+bundle 字节相等标 follow-up 窗口。
- T4 孤儿清扫 store_cleanup_job.py + BackendStore.cleanup_orphans:乐观删(status=pending CAS 先删行
  再删对象)防与续 put 的 TOCTOU 竞态,幂等,owner=tier2,可追溯日志。

契约(contract-first):.sql DDL additive 加 status 列 + 首份受治理 ALTER;contracts/README.md 治理指针;
落库寻址 doc↔code 断言点(表名/双唯一键/「pending 对 fetch 不可见」)。不改 tier2-source-project.schema.json
addressing、不改 buildInputHash 字段、不改 GamePackage / 便宜档 source-project.schema。

验证:本地 14 个新单测真跑全绿(DDL 对账 3 + manifest-first 行为 8 + harness 本地 3);harness 脚本
LocalFsStore 自检 5/5;docs-gate 七检全绿;forbidden-import 守卫通过。真 MySQL+MinIO 往返 + bundle 字节
相等 = mini-infra 窗口 follow-up(worktree 无真库/无 esbuild,诚实未跑)。缺重依赖的既有测试(agentscope/
nacos)本极简 venv 未跑,均不 import store、与本改动无关。

计划锚点:docs/plans/2026-07-05-001-feat-asset-src-源工程存储-plan.md §4 T1-T4 / §5。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 18:03:28 -07:00
..

tier2 · 富游戏自治生成线

这是绘境 AI 的第二条游戏生成线。它和现有的超休闲廉价线(wg1/ + LittleJS解耦并存、运行期零耦合廉价线用便宜模型往声明式数据壳里填空、做单局几何色块小游戏tier2 则给一个 AI agent 一台完整的游戏工作站——读文档、写多个 Phaser 源文件、构建、在真浏览器里真玩验收、看截图、查资产——让它在一圈确定性验收门的笼子里反复迭代,把现有产线做不出的多系统富游戏(合成、经营、挂机这类肥鹅美食街档)逼出来。

底座是 AgentScope 2.0.2(独立锁版、独立 env引擎选 Phaser/Pixi过无头硬筛、按 AI 作者视角取生态厚度。生成范式是约束自治O2把一款游戏拆成数据表、系统骨架、表现层三层用骨架和插件 API 锁住系统层最难的部分,把便宜模型的火力集中到必须写的约 56% 表现层,再用三层校验和四道熔断把自治关在笼子里。

整条线最深、也最没证过的赌注是:便宜或中等模型的自治 agent 能不能稳定写出那 56% 的表现层。所以建设按「顺序软、判据硬」走——先把集成和环境搭扎实,再用 M3写代码逻辑+ mmx产美术音乐连续迭代但生成证据的判据保持离散可判定M3 证路是软门、便宜档 n≥30 是硬门、退路树沿用数字触发线,只有硬门通过才投入重机器。

怎么读

  • 要建什么、为什么docs/brainstorms/2026-06-22-tier2-整体实现方案-requirements.mdWHAT已过双评审
  • 怎么建(照这个动手)docs/plans/2026-06-22-003-feat-tier2-富游戏自治生成线-plan.mdHOW10 单元Phase A 详 / Phase B 纲要)。
  • 接手须知HANDOFF.md(本次 6c6g 初始化交付了什么、Mac 接着做什么、环境切分)。
  • 模块边界与红线.agent
  • AgentScope 2.0.2 真实 API.agents/knowledge/agentscope-2.0.2-facts.md(拿不准先读 /root/oss/agentscope 源码 + agentscope-skill 的 references/v2-*.md 离线镜像;该 skill 的 SKILL.md 正文示例是 1.x勿照抄

现状

2026-06-22 在 6c6g 完成项目初始化:模块骨架、独立依赖(agentscope==2.0.2、governance、forbidden-import CI 就位。实现与运行调优转交 Mac / mini-desktop真跑需 chrome/headless+esbuild6c6g 禁 chrome