lili
d342de088e
feat(saa): 零-LLM driver 内置绑定 injectDriverByArchetype + 5 单测
...
design 只声明 gatespec 不写 driver→amodel 路无人绑 driver→游戏停菜单→九门 E_live/H 名存实亡。按 classify archetype 确定性补内置 driver(经营/反应→tap occupied、三消→placement、跑酷→key-cycle),显式 driver 不覆盖、无合适内置(如 bubble)不强补。WIP:未在 mini mvn 验;archetype→targets 契约假设正于 driver 调查中复核。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 19:45:33 -07:00
lili
f5918e449e
feat(amodel-gen): Phase1 MVP-first 设计护栏(治"富设计→code thrash")
...
v5/v6 e2e 实证一个系统张力:driver-可达护栏让设计转单击成单(✓),但也让策划 agent 产出越来越富
(v4 5.3KB → v5/v6 7.5KB:离线收益/6级/广告/7商品/hitstop/9插件)→ **code agent 实现负担过重 →
read-thrash → loop-detection 截停、finished:false**(v5 26步/v6 27步均未收敛;对比 v4 精简设计 9 步收敛)。
护栏(design prompt + sim skill §8 加 MVP-first 铁律):设计聚焦可玩核心 = 核心循环 + 1 主机制
+ 1 资源环(进货)+ 3–4 级解锁 + 基础数值/音效,商品 ≤3 起步;离线收益/广告/雇员/多档 BGM/hitstop
/6+ 商品 一律标「后续·MVP 不做」。**先出能玩核心,再谈丰富** —— 降 code agent 负担、保收敛。
待:v7 验(精简设计 → code 收敛 + 单击成单 → H 过 → 护栏闭环全绿)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 11:36:47 -07:00
lili
75dc86ad56
feat(amodel-gen): Phase1 e2e 验证 + driver-可达性设计护栏(两步成单 footgun)
...
本地 e2e(design→code)实证策划 agent 价值:一句话「做一个网兰梅的街角小卖部经营小游戏」
→ 策划 agent 读真 sim skill(115s)→ 比手写 v2/v3 brief 更丰富的设计(进货-库存-补货环 + 6 级解锁
阶梯 + 满意度 + 数值表 + 客流节奏区间 rush≥35s + 好玩自检 4/4 + clean gatespec score↑/currency↓)
→ code agent **9 步**收敛(vs v3 的 39 步)check/build/smoke 全绿。**设计层补料 → 更好玩 + 更快 + 更省 兑现。**
九门验 v4 = 8/9(A/B/C/D/E distinct=82/82/F/G/I 全绿,游戏真活、输入真响应),**仅 H score 0→0**:
根因 = 设计选了**两步成单**(选顾客锁定→点货架商品),零-LLM tap-targets driver 只单击 occupied 目标、
跟不动两步 → 选客不成单 → 营收 0(截图实锤:蓝顾客被选中高亮但没卖出)。**好游戏被误判,非代码 bug。**
护栏(设计-guidance,非改 driver/九门——守"九门玩法无关"):
- sim skill §9 + design prompt 可达性自检 + littlejs _forensicsView 契约 三处加「driver 可达」铁律:
核心成单/得分动作**单击 occupied 目标即完成**(casual 友好 + driver 可达);深度靠进货/库存/解锁/节奏,
不靠两步匹配;确需多步则 _forensicsView.targets 随状态把"下一步该点的"标 occupied。
待:re-gen v5(验护栏 → 单击成单 → H 过)+ U3(designNode Java shell-out)+ U6 蒸馏。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 10:48:21 -07:00
lili
57c30909cd
feat(amodel-gen): Phase1 设计 agent(--mode design,读真 sim skill)+ API-存在静态门 + sim skill 扩
...
承 Phase1 执行版(2026-06-23-design-agent-phase1-execution.md)U5/U1/U2/U4。
U5 sim skill 扩:补「进货→库存→售卖→补货」资源环范式(经营核心,治"没进货")+ 客流/出现节奏目标值
区间(治"顾客太快":清闲 ~2.4s/3/6s、rush 起点 ≥35s)+ §10 标注可机检 N=4(即时反馈/可见成长/解锁/音反馈 + 经营加经济扣减)。
U1+U2 设计 agent:gen.mjs 加 --mode design(tool-using 策划 agent:read_file/list_dir/done,M3,scaffold-free,
日志走 stderr / stdout 末行 JSON {ok,designText,gatespec})+ prompt.mjs buildDesignSystemPrompt(薄指令指
**read 真 sim skill 不手抄** + 可达性自检 + 好玩 N-of-8 + 结构化 gatespec)+ normGatespec 容错(M3 偶把
assertAfterPlay 包成 {item:[]}/expectLatch 写字符串 → 拍平)。
验:一句话经营 brief → 读 sim skill → 8.5KB 玩家视角设计稿(含进货环 + 节奏目标值表 rush≥5min + 好玩自检)
+ clean gatespec(expectLatch:true / score↑ / currency↓ 经济断言 / inventory changed)。
U4 API-存在静态门(tools.mjs check,玩法无关):游戏调的 plugins.<键>.<m>()/ctx.<m>() 必须在 api.d.ts 真存在
→ 廉价根除"方法名幻觉"类(stopBgm/defineScenes/ctx.nowMs);键→dir 映射(juice→particles-juice 等);
只查已知插件键+ctx、非键跳过(over-permissive 少误报)。验:_template 零误报 + 抓 stopBgm/ctx.nowMs
+ 不误伤 loop/ctx.log。
待:U3(designNode amodel 路 shell-out,Java/mini)+ 本地 e2e(design→code 验更好玩)+ U6 蒸馏。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 10:28:16 -07:00
lili
68472bb560
docs(design): A-model 生成"更好玩" 评审版+Phase1执行版+图说(§6.8 评审版收口)
...
评审版(review-closed,§6.8 Opus 全量 + Codex 半程独立印证 + 代码核实):
- ① 策划 agent(升级 designNode)= 低风险、大半已通(design 经 K_ENRICHED 喂 amodel);
- ② 音频/资产线 + ③ modify 双路 = **净新建**(双评审纠正原稿"复用"误框:amodel 路
validate→play 跳 scaffold/asset/build,SAA asset 机器与 modify 生命周期均 gamedef 专用);
- 质量门三类(API-存在静态门[玩法无关] / per-game gatespec 断言[语义·复用 H] / 好玩 N-of-8[设计时]),
**通用九门保持玩法无关、零品类语义**(创始人纠正);3 阶段分期。
Phase 1 执行版(execution-pending,待 §6.8 双评审):6 单元
= 设计 agent harness(JS tool-using,读真 sim skill)/ 薄 prompt / designNode amodel shell-out
/ API-存在静态门 / 扩 sim skill(进货+节奏+可机检 N)/ 好玩-经济 per-game 断言接线。
图说更新(519→999 行,11 内联 SVG,自包含):纠正现状(amodel 跳 scaffold/asset/build、九门玩法无关、
gatespec→play_spec→H)+ 新增新设计 6 图 + 3 阶段演进(三色:复用/净新建/零触碰)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 09:29:25 -07:00
lili
88d3a23787
feat(amodel-gen): 根治B(input→L1 handleTap)+driver起局扫点+5 footgun蒸馏+wanglanmei E2E→studio可玩
...
根治 B(缩 M3 错面,结构性根除"点击在错 phase 消费/永不消费→启动不了"):
- input 订阅收归 L1(_template/src/game.js wrapper):L3 只写实例方法 handleTap(x,y)/handleKey(key),
L1 在 pointerdown/keydown 直达派发;_template/src/game-logic.js 范例改用 handleTap。
- tools.mjs check:拦 ctx.getInput + 必须暴露 ≥1 输入方法;prompt.mjs/README/skill 同步输入契约。
- 机制+门双实证(node 全链路:menu→点开始→play、点客加分、点空白不加分;check 对 getInput/零输入方法拦截)。
driver(play.cdp.cjs):occupied 族起局从固定点 (195,422) 改中线纵向扫点,robust 命中各游戏「开始」按钮
(原固定点落空→死菜单假阴;实测 wanglanmei「开门营业」在 y≈502)。
资产通道(boot-game-host.loadHostAssets + gen.mjs --assets-dir):M3 只决定怎么用资产、不造。
入库工具 publish-amgen.mjs:staged bundle → game_runtime_package(package_json.engineBundle,status=1)→ studio /play。
5 个 M3 footgun 蒸馏进 prompt.mjs + skill(均 wanglanmei-v2 实测翻车):
① scene update 回调签名 (dt) 非 (running,dt) ② ctx.random.next() 非 ctx.random()
③ ctx.time.nowMs() 非 ctx.nowMs() ④ _forensicsView 的 phase/targets 必须在 state() 内实时算(否则定格 boot 快照)
⑤ update(dt) 的 dt 是秒,毫秒计时要 ×1000。
验证:M3 生成 wanglanmei-tycoon-v2(+上述 5 footgun 修复)→ 九门 PASS(score 0→364,distinct 43/43)
→ 入库 → studio /play/80002/80002 加载+boot+渲染菜单真玩(art 走程序化回退,水彩 art 需引擎资产线 E2/E3)。
(root-fix A 门可信化先于 cbe42933 提交;SAA Java 驱动绑定另track 暂不入此 commit)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 05:48:03 -07:00
lili
cbe42933d0
fix(saa): B 收尾·客观门跨层对齐 advisory——objectiveGatesPass 读 verdict.advisoryGates
...
根因:8ac4ccc8 的「未驱动 E_live/H 降 advisory」只落在 play.cdp.cjs(verdict.pass/
advisoryGates),未传到生成环消费层 SaaGenNodes.objectiveGatesPass——后者把 E_live 当
硬客观门、完全不读 advisoryGates。未驱动游戏(打地鼠 menu 态无 driver→phase 恒 menu→
_forensicsView distinctStates:1)E_live 每轮必挂→1+maxRepairs(5)=6 次 M3 假失败救场,
与既有 line651 注释里早修过的 H_progress「空跑 8 轮救场/302K token」同一类病(driver
依赖门绑架生成)。
修:
- objectiveGatesPass / summarizeFailedGuards 读 verdict.advisoryGates 同口径降级。
advisory 门要求【存在】(保住 C2 崩溃安全:缺门=harness 未跑完=失败)但【允许 pass=false】
(未驱动无法公平验活性);driven 时 play.cdp.cjs 不列入 advisory → 自动恢复致命,回归不破。
- objectiveGatesPass 提包级可见(与 summarizeFailedGuards 同范式),供纯逻辑单测。
验证:SaaFullGraphE2eGateLogicTest 23/23 PASS(+5 advisory 案:未驱动 E_live→过/
driven E_live→挂/缺门→挂/全过/反馈跳 advisory)。e2e 已实证 verdict.pass=true、
E_live/H 列 advisory(advisory 跨层生效)。
注:e2e 绿基线仍被一个【独立·先存】问题阻断——过门游戏不产终态回调(player 节点 M3
首次在 pass 路被触达,疑 M3-vision 挂),非本修引入,下一步处置。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 23:38:59 -07:00
lili
8ac4ccc861
feat(amodel): B 收尾——_forensicsView 必需(可测性红线)+ E_live/H 未驱动时降 advisory
...
创始人 B 裁:E_live/H 暂降 advisory + _forensicsView 必需 + 转优化循环。
- _forensicsView 必需:prompt 红线 + check() 验 game-logic 含 _forensicsView + skill(可观测红线;M3 之前当可选丢了致 H_progress 读不到 state)。导出 {phase,score[,targets]}。
- E_live/H_progress advisory:play.cdp.cjs verdict 改——未被驱动(spec 无 driver 且无 inputs)时这两门降 advisory(仍跑+报告 verdict.advisoryGates,不计入 pass)。自动可逆:将来 design 产 driver→driven=true→恢复致命;factory/gamedef 有 driver→不受影响。
- prompt/skill 同步:关键事件用 ctx.log 记日志(承接日志基建)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 22:26:42 -07:00
lili
db3c42c5de
feat(amodel): 运行时日志基建(ctx.log+插件自带+harness捕获) + 九门A(play-spec透传)+B2(F_wiring) + 预算
...
创始人指令:游戏要有日志,读日志诊断运行时问题,模板+可选插件自带日志。
日志基建:
- plugin.js:受控面 ctx 加 log(tag,...args) → window.__gameLog 环形(800)+ console;用受控 time.nowMs。
- boot-game-host.js:B2 插件 Proxy wrap 顺手记插件语义调用进 __gameLog(跳 draw/update/current/get 等高频)→ 插件自带日志免逐个改;recHook 仍记 __engineCalls 供 F_wiring。
- _template game-logic.js:ctx.log 生命周期(init/scene play/over)→ 模板自带。
- play.mjs smokeBoot:抓 __gameLog 写 staged evidence/game-log.json + 末12条进 out.logTail(boot 成败都抓,失败时最有诊断价值)。
- 实证:scaffold→smoke logtest → logCount:165、game-log.json 有 [p:sceneFsm:define/start]+[game:init];读日志诊断可用。
九门对齐(C 之 A+B2,recon ad3c564):
- A(SaaGenNodes validateAmodelStaged):amodel 路 validate-ok→play 短路了 scaffoldNode(唯一写 play-spec.json 处)→ 补写 play-spec.json(从 design 产 K_PLAY_SPEC)→ 九门可驱动(治 E_live/G_input/H_progress 机制)。
- B2(boot-game-host):插件 recHook wrap → F_wiring callCount>0(实证 e2e 从 [E_live,F_wiring] → [E_live,H_progress],F_wiring 已过)。叠加式,factory/gamedef 零回归。
预算(gen.mjs):maxSteps 45→70 / maxWallMs 12→20min —— SAA design 富化 brief 比 raw(7步)需更多步。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 22:21:29 -07:00
lili
32fd756f3f
feat(amodel): 落地 3 层架构——L1 全11插件固定 + game.js 拆 wrapper/game-logic + L3 扁平契约
...
实现创始人 3 层模型(评审稿 2c220c13):
- L1 工程骨架(LLM 不写,writeFileTool 拒):host-config 注入全 11 插件(编排4+save+gamefeel/juice/palettePost/audioMusic/collision/physics,registerOrder 合集显式定义,viewport 硬编码 390×844 下传)+ game.js 薄 wrapper(摊平 opts.runtime→交 game-logic)。
- L3 游戏代码(LLM 只写):新 game-logic.js = createGame({plugins,bundle,viewport}) 收扁平件(无 opts.runtime 嵌套坑);必写 1=game-logic,core/render 推荐拆可内联。
- harness:tools.mjs check/真改写守卫迁 game-logic.js + 验 export createGame;writeFileTool 拒全 L1 文件(host-config/game.js/index.html/entry-bundle/entry/main)。
- prompt.mjs + skill + README:全对齐扁平契约 + 11 插件键 + 手感二分(方法名以 api.d.ts 为准,修 burst 幻觉)。
验证(全绿):
- M1 控制门:全11插件一起 boot(ctrl11 smoke PASS)+ 拆分后 boot(ctrl12 smoke PASS)——两个从未跑过的组合都过。
- 端到端 newarch1(M3 写 game-logic):**ok:true / 7 步 / 102s / 82K token / smoke PASS**,且 **M3 只写 1 文件 game-logic.js**。对比修前(5文件含wiring/thrash21-70步/600K+常失败)→ '降低 LLM 的活' 彻底兑现。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 11:08:46 -07:00
lili
2c220c1302
docs(amodel): 3 层架构边界设计(评审版)+ §6.8 双审折叠 + D9=全注入
...
创始人提 3 层模型(L1 工程骨架/L2 标准能力库/L3 游戏代码),目标=降低 LLM 必写量、只写游戏逻辑、根除 host-config wiring 错类(reading 'w')。
设计:3 opus fork 顺序设计 L1→L2→L3 边界(每层 边界=不做什么/标准/在哪里),综合成评审版。
双审(§6.8):Opus 对抗式 fork 全程(3 major)+ codex:codex-rescue(读全 api.d.ts+文档,捞 burst 幻觉;末步 stalled)。已折叠(§0):
- M3 强制三分→必写1(game-logic),core/render 推荐拆/可内联(真达成'省 LLM 活');
- M1 全11 registerOrder 是新组合两参考序冲突→实现期显式定义+L1控制门前置;
- Codex 捞 juice.burst 幻觉(我文档自犯)→手感范式以 api.d.ts 为准、禁臆造;
- minors 入 §9.1。
创始人裁:D9=全注入+实测(A)。
转实现:M1 控制门(全11插件一起 boot 验证)→ game.js 拆 wrapper+game-logic → host-config 注入全11 → harness/prompt/skill 对齐 → standalone+e2e 验证。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 10:51:52 -07:00
lili
d56ed9962e
feat(amodel-gen): host-config 设为固定 plumbing——根除 M3 插件 wiring 错类(reading 'w' 终解)
...
钻 reading 'w' 钻到真根:M3 游戏逻辑写得了(check+build 过),但反复搞坏 host-config 插件 wiring(viewport 漏键=reading 'w' / registerOrder / game.js 漏 .plugins=reading 'define'),修一个露一个=whack-a-mole。创始人批准结构性修复方向。
改动:
- _template/src/host-config.js:viewport 硬编码 390×844(去掉 import W/H from render.js)——解耦 agent 的 render.js,agent 改 render 不再能让 viewport 失值。
- tools.mjs writeFileTool:物理拦截 src/host-config.js 写入(agent 改不了固定 plumbing)→ 根除 viewport/registerOrder 整个 wiring 错类。
- prompt.mjs:agent 只写 game/core/render/assets(host-config 进固定 plumbing 清单、write 会拒);可用插件键直接列(sceneFsm/sessionScore/hudUi/timerScheduler/save);去掉已被结构性根除的 viewport footgun,保留 game.js 取插件走 opts.runtime.plugins 两层的 #3 footgun。
- littlejs skill:host-config 标【固定 plumbing·不写】+ ❌ →✅ 同步。
验证(standalone whack wfix4):**ok:true / 13 步 / smoke PASS(booted+frames)/ 6min / 180K token** —— wiring 错类全消失,M3 活变小、收敛比此前(21/70 步 thrash)快得多。对齐主流(框架 boilerplate 固定 + 用户写游戏)。aligns D1=A(agent 仍手写全部游戏逻辑 src/,仅 boilerplate 固定)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 08:28:02 -07:00
lili
baedcd8153
fix(amodel-gen): reading 'w' 根因 footgun(host-config wiring)+ m3 timeout 300s
...
钻 reading 'w' 根因(minified 栈实锤):bootGameHost 读 i.viewport.w,而 buildTemplateHostConfig 返回的 viewport=undefined → M3 改 host-config 时破坏返回契约(漏 viewport 键/删 render.js export W/H)。非 minification、非产不出(两局当前 src 生产 min build 后 smoke PASS)。
更广模式:M3 游戏逻辑写得了(check+build 过),但反复搞坏插件 wiring——3 契约点:① host-config return shape(viewport)② registerOrder ③ game.js 取插件漏 .plugins 一层(createGame(opts.runtime) 后从 runtime 解构 → sceneFsm=undefined → reading 'define')。
本次改进:
- footgun ×2(prompt.mjs 红线 + littlejs skill ❌ →✅ ):buildTemplateHostConfig 必返 5 键+viewport{w,h};取插件走两层 opts.runtime.plugins。
- m3.mjs timeout 180→300s:M3 大上下文 turn 触发 thinking 单 turn 实测 ~215s(裸简单调用仅 1-3s);180s 误超时+重试更拖。实测效果:wfix3 从 read-thrash(63读0build)转为真写码(27write/check+build PASS)、viewport bug 未再现。
注:踩了 prompt.mjs 模板字面量反引号坑 2 次(node --check 拦下,未浪费 run)——红线:prompt.mjs 内禁反引号。
未达绿:amodel e2e 仍 0/1——wiring 错类是 whack-a-mole(footgun 一个、M3 露下一个),且 per-attempt 步数预算下难一次收口。下一步战略(待创始人定):结构性把 host-config + 工厂 glue 设为固定 plumbing(agent 只写游戏逻辑),根除 wiring 错类。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 07:54:13 -07:00
lili
054ebb0818
docs(.agents): 蒸馏批B 坑#9(shell-out validate 须尊重子工具 ok)+ §8 production 进展
...
坑#9=批B Fix A 通用红线:gen.mjs done-gate stage→smoke,smoke 失败留陈旧坏 bundle,validate 只查存在会误过→须读 harness ok 标记 + failCount 由 validate 统一计。§8=集成方式C/批B 收口(3fbb3197)+ 真阻塞 M3 生成质量 reading 'w'(非集成)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 06:24:36 -07:00
lili
3fbb3197f4
feat(amodel-gen): Phase 2 批B — SAA 图 amodel 路集成(集成方式C)+ Fix A(validate 尊重 harness ok)
...
集成方式C:SAA generate 节点 shell-out 已验证 harness `gen.mjs --mode saa`(amodel flag 旁挂)。
- AigcExecutorProperties: saaSourceMode += amodel(Javadoc;默认仍 factory)。
- SaaGenNodes: 新增 runProcessSplit/SplitProcResult(stdout/stderr 分流,末行 JSON 不被 stderr 污染);validateNode amodel 分支 + validateAmodelStaged。
- SaaStudioNodes: generateNode 6 参重载(amodel 短路 generateViaAmodelHarness:argv 透传 brief+key、解析末行 JSON);okElseRepairOrEscalateOrGiveupAmodelAware(validate-ok→play 短路)。
- SaaStudioGraph: assemble/build apiKey/llmBase 透传链 + validate 条件边 amodel-aware + "play"边。
- SaaGraphDispatcher: ensureGraph 传 apiKey/llmBase。
Fix A(本次发现并修的真集成 bug):gen.mjs done-gate 顺序 stage→smoke,smoke 失败 done 被拒但 stage 已落盘陈旧坏 bundle(harness 返 ok:false/stagedDir:null 却留文件)。原 validateAmodelStaged 只查产物存在=误过坏 bundle→路由 play→九门崩+白耗~10min。
修:generate 置 K_AMODEL_GEN_OK(成功 true/失败 false,不再自增 failCount);validate 先尊重该标记(false→救场,不读陈旧产物),failCount 由 validate 统一计一次(与 factory/gamedef「generate 产出、validate 计数」同口径)。
验证(严格):
- mini 权威 mvn test-compile BUILD SUCCESS(main+test)。
- 83/83 SAA 确定性回归单测全绿(门路由18/拓扑30/节点回归14/history重载4/dispatcher9 等)——factory/gamedef 零回归。
- amodel e2e dispatch→generate→validate→路由 实跑通;控制测试 pristine _template scaffold-saa→build→stage→smoke PASS(env/信封/插件正常)。
- Fix A 行为确认:修后坏 bundle 被 validate 正确拒(未到 play);修前 breakout 坏 bundle 到了 play。
未达(解耦·非本集成范围):amodel e2e 仍 0/1——M3 生成质量 boot 崩 `Cannot read properties of undefined (reading 'w')`,跨 breakout+whack 复现;pristine 模板 boot 干净→证 M3 代码问题,非集成/env/harness。属 Phase 3/4 生成质量门(D1=A:factory 默认直到 amodel≥60%)。
零回归:amodel 纯旁挂 flag,saaSourceMode 默认 factory;amodel=false 时全部新分支跳过,新"play"边对 factory/gamedef 不可达。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 06:21:12 -07:00
lili
cd2903baab
feat(amodel-gen): Phase 2 批A — harness SAA-mode(__GameBundle 信封 + stage + 循环内 smoke-boot)
...
execution spec v3 Phase 2 批A(harness 侧·集成 C):
- 新增 games/_wg1-gen/_shared/entry-bundle.amodel.template.js:per-game 多文件信封,导出 bootGameHost + 经 --global-name=__GameBundle(治 review B2;game 根 entry 用 2-up、src/* 用 3-up)。
- tools.mjs:scaffoldSaa(_template + SAA 信封)/ buildSaa(__GameBundle)/ stage(原子 tmp→rename 到 _wg1-gen/<gameId>/,治 review B1)。
- play.mjs:smokeBoot(SAA 信封 __genBooted 同进程 boot+帧检,治 review HIGH-1)。
- gen.mjs:--mode saa --game-id;done 门加 stage + smoke-boot;stdout 末行 JSON 契约;max-steps 默认 45 + 12min 墙钟上限 bound thrash。
- prompt.mjs + littlejs-game-dev.md:幻觉 API footgun(❌ defineScenes→✅ define、❌ opts.ctx→✅ boot.ctx、修 bug 别引入 Math.random、方法名以 api.d.ts 为准)。
验证:控制组(_template SAA 信封)+ saae2e4 e2e 全绿(agentic→__GameBundle→stage→smoke→stdout JSON);HIGH-1 smoke-boot 两次实测捕获"编译过但起不来"。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 04:12:06 -07:00
lili
3b425c4294
feat(amodel-gen): Phase 1 契约 — source-project.schema.json 升 oneOf(1.0 gamedef / 2.0 A-model)
...
execution spec v3 Phase 1(contract-first,HJ-AGI-003):
- 顶层判别式 schemaVersion:1.0=gamedef legacy 声明式(冻结只读,退役后不再产)/ 2.0=A-model 多文件代码工件 {files,entry,globalName:__GameBundle,plugins}。
- profile / assetSpec 提到 $defs 两分支共用;1.0 分支约束等价旧顶层(无 1.0 读者破坏)。
- ajv 8/8 验证:1.0/2.0 valid + 6 反例拒(缺 required / 未知版本 / 错 globalName / additionalProperties 双向 / gameDefinition 泄漏)。
- agent-loop 活契约(verdict/game-design/skeletons)未动。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 00:26:24 -07:00
lili
6e388d9bbb
feat(amodel-gen): agentic A-model 生成 harness(ReAct+M3)+ skill + 四层设计
...
spike 验证通过:M3 经 new-api(openai+tools)agentic 自闭环产出可玩 A-model 游戏。
- harness game-runtime/tools/amodel-gen/(tools/play/m3/prompt/gen.mjs,零三方依赖):
scaffold(clone _template)→ ReAct(read/write/list/check/build/done;done 门=check+build 绿;
compaction + loop-detection)→ 循环外 play(headless Chrome boot+截图+交互 = 能跑能玩)。
- 3/3 玩法干净自闭环实证:打地鼠 / 陨石躲避 / 反应点击(13-22 步,175-378K token,play PASS)。
- skill .agents/skills/agentic-amodel-generation.md(链路/配方/8 坑/M3 实证/主流定性)+ README/AGENTS 索引同步。
- 设计 docs/agent-specs/2026-06-21-agentic-amodel-generation-design.md(§0 整链路 current→new + 四层 + §0.8 主流对照;draft 待 §6.8 双评审)。
取代旧 gamedef/factory 单次产线(A-model 生产形态);production 删 gamedef 待双评审(D1=A 无退路)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 18:50:38 -07:00
lili
c44681b580
feat(runtime): A-model 地基——4 编排插件 + 2 skill + _template/catch-fruit + SAA 改写评审版
...
- 新增 4 编排层插件(session-score/hud-ui/scene-fsm/timer-scheduler),barrel 注册 12 件,各 impl/api.d.ts/manifest/PLUGIN.md/test,全 node 测绿;audio-music manifest 描述修红门
- skill littlejs-game-dev(code 层:12 插件 API/结构/写-vs-调/资产-mmx/工厂契约)+ sim-business-game-design(design 层:经营模拟范式 + 反"无趣"配方)
- _template(游戏克隆起点,10/10)+ catch-fruit(sonnet 扮生成 agent 只凭 skill 产出,25/25,真浏览器可玩 + canvas 自适应修复)
- docs/agent-specs SAA→A-model 改写评审版(Opus+Codex 双评审收口;D1=A 全压 A-model/D6=A 押 SAA,D6 已 mini-desktop 活验证 1/1)
- staging-ops 加「ssh 绕代理直连内网 IP」配方
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 09:58:52 -07:00
lili
0ae557d388
docs(.agents): 并入 dev/2.0.0 后补回本地独有蒸馏(saa-graph §3.5 两类静态游戏 + security CSP unsafe-eval 红线)
...
FF 合并 dev/2.0.0(19 提交)后,把 merge 前工作树里两处本地独有内容补回:
- saa-graph §3.5「两类静态游戏(gen-quality 哑火 vs wiring 哑火/CSP)」块——dev 未含,运行时无关的裁责快招,保留。
- security §1.1 CSP unsafe-eval 红线——与 dev 第4行(蒸馏来源域化)取并集;措辞泛化为「受控代码执行面」(不绑死 gamedef,兼容 agent 写码路)。
inject.ts/staging-ops 采 dev 版(功能等价、零损失)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 00:55:02 -07:00
zizi
66eff15f26
docs(architecture): tier2 引擎 SoT supersession + 纠正 headless MCP 事实错(创始人 go)
...
据 Cocos 全无头核实(取证级:Cocos Creator 命令行构建仍需 GUI 环境、无独立 CLI/SDK;其 MCP 是编辑器扩展、需编辑器在跑、非 headless),纠正策展层 SoT 的事实错并立正交两轴:自治生成轨(全无头·富2D=Phaser/Pixi·超休闲=LittleJS)/ 3D·渠道导出轴(Cocos·编辑器+人在环)。Phaser 的 Tier1 冷启动落选属渠道/交付维度、与 tier2 headless 自治维度正交。改 架构/README §2.3(横幅+Cocos/Phaser 单元格+分层段)+ tech-decisions §选型依据。旧 agent-specs/引擎与运行时.md 已由 _index 重定向、Tier1-only 无 Cocos 口径、非本次范围。详见 tier2 架构设计 v2 §3。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 07:33:21 +00:00
lili
5403bdd651
docs(planB): Phase-2 收口报告 + 保真谱系蒸馏(§10)——机械门达/复杂机制保真受当前 gen 配置限
...
Plan B Phase-2 game-quality 门对 gen-done 真跑收口:
- 5-bug 账本(Phase-2 逆出):assets 打包断链(490dc629)/iframe CSP 静止(347dd023)/dist 漏 --mode staging(ff8e52c3)/gen 不忠实(9176abe9+7aeb8f54) 自修;throughput 排队
- Phase-1 判定:core-done 机械门(U2-U9)达;gen-done 简单玩法保真、复杂机制(breakout/snake)受当前 M3+gamedef-path 限
- 自我修正:非绝对天花板(flash/local 曾产可玩打砖块 + §9「单件失败禁归模型造不出」红线),深修=换模型/skeleton-first=Plan A
- 蒸馏 cheap-model-game-generation §10:gamedef 保真谱系 + Phase-2 门≫gen 自评 accept + 裁责三招
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 00:32:50 -07:00
zizi
353c51cc57
docs(tier2): v2 补「建设排序」一节(整理创始人 5 步路线进设计稿)
...
以创始人五步为骨架,补进:0号 spike 立为 step3 之前的早期 go/no-go 门(便宜验最深赌注、不等平台搭完)+ 失败退路树;step3「搭引擎」隐藏硬工作项显式化(验收地板/Goodhart 安全 driver/成本强制四熔断三层预算/真 Phaser 工程源项目契约/可观测早建/人审做实非亲玩一票);资产IP 归 spike 后复利层;Cocos 置 step5=另一条轴(编辑器人在环·3D复杂渠道)、Phaser 证成后再铺、不与 Phaser 并级。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 06:51:41 +00:00
lili
7aeb8f5475
fix(saa): GAMEDEF_SYSTEM 加贪吃蛇(snake)异构 few-shot——补 round-1 缺的网格步进例(bug#5 round-2)
...
round-1 加 breakout 后射击已保真复原,但贪吃蛇仍坍缩成躲避=缺 snake 例。本仓无 snake 金样,
按 gameDefinition schema 自写一个最小可跑参照4:
- 蛇身=挂【状态实体 gamestate】的有序格子数组 G.body(头在前),对齐保真铁律"蛇身实体数组(挂状态实体)"——
避开 self 跨 behavior 不共享的死法;dir/food/step 同挂 G,引用赋值持久。
- 机制忠实:turn 读方向键(禁反向)→ tick 定时步进(0.16s)新头入、无食去尾;吃食 body 变长+rt.addScore+
食物换位(bounded do-while,非 while(true));撞墙或撞自身 rt.lose();每步按 body 重绘 seg 实体免逐段维护索引。
- 进展落 rt.addScore/rt.destroy(运行时真暴露),不藏 snakeLength 自定义标量。
保真铁律同步:三参照→四参照、加"参照4是贪吃蛇"反坍缩约束、异构形态加"网格定时步进"。
控长:GAMEDEF_SYSTEM 15058→17461B(+2.4KB),总~17.5KB 远在模型上下文内——llm_error=LLM 调用耗尽/截断
(FailureReasonEnum.LLM_ERROR),非 prompt 过长拒绝,故不动既有载荷型告警(避免回归 round-1 已证的射击保真)。
证据:snake JSON 过 build-from-source.mjs --validate(exit 0)+ 全量 build 成 factory(exit 0);
aigc-server mvn -o clean install -DskipTests 编译过(MVN_EXIT=0,jar+SaaPrompts.class 新鲜产出)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 14:40:15 +08:00
zizi
2ec00f13fc
docs(tier2): v2 补「渠道发布能力」一节(回应创始人渠道发布之问)
...
实证裁决:Phaser/Pixi 渠道发布=可建一等能力、非墙——微信官方钦定自研 adapter、仓内 W-CH-α 已为同构 LittleJS 推到 P0 实证可行;几项看似 Cocos 优势其实平权(变现 SDK 所有引擎手动 / 快手全走微信格式转换 / 纯代码全 Linux 打包反优于 Cocos 需 Win-Mac);唯一让步=国内生态成熟度 Cocos 领先。与引擎无关的真墙=渠道禁动态生成代码→tier2 自治富游戏上渠道须降级为精选款固化提审(web feed 热发长尾 / 渠道精选爆款)。渠道不构成保留 Cocos 的理由,待补=W-CH-α P1 真机门用 Phaser 真包跑(卡创始人三件套=日历闸门非技术阻断)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 06:39:28 +00:00
zizi
2abfa9f112
docs(tier2): tier2 富游戏生成轨 O2 架构设计 v2 + 决策记录
...
设计稿(O2 约束自治·人风散文)经 Codex+Opus 双评审 + 两项实证后定 v2:O2 降为待 0号 spike 验的假设(非已定地基)、配靶心(56% 表现层)+ 失败退路树;80/10 实测落 44/56(约束有效域=系统/手感 44%、自治承重=表现层 56%);引擎按正交两轴收口(自治生成=Phaser/Pixi 无头 / 渠道导出=Cocos),触发引擎 SoT supersession + 纠正 headless MCP 事实错;修 Goodhart 漏洞、加跨表语义门、spike 两段+四向归因、中台降级、AgentScope L1/L2 纠正等 must-fix。
决策记录(子代理):11 条决策 + 证据链 + 待 spike 验开放项。未含 SoT canonical 同步(待创始人 go)+ 轻评审定稿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 06:10:06 +00:00
lili
9176abe923
fix(saa): GAMEDEF_SYSTEM 加保真铁律 + breakout 异构 few-shot——修生成坍缩(bug#5)
...
根因:GAMEDEF_SYSTEM 仅内联 2 个 few-shot(躲避 + tap-targets 打地鼠)、
无 brief-fidelity 约束,模型对任何题面"挑最近的套"——动作类抄躲避、
点击类抄打地鼠,打砖块/贪吃蛇/射击全坍缩。
两处最小修(对齐根因 1+2):
1) 在三个参照前置【★保真铁律★】:参照仅示范结构与 rt 面用法、不是玩法清单;
必须按题面产对应实体/行为/规则(给打砖块/贪吃蛇/射击/跑酷范例);
严禁因参照是躲避/打地鼠/打砖块就把题面玩法坍缩成它们。
2) 内联【参照3·breakout】(挡板+球+砖墙+反弹消砖、清砖判胜、球落底判负),
源自过门金样 contracts/agent-loop/skeletons/breakout.json,结构精简对齐 rt 面,
与原 2 例并列、打破"只有躲避+打地鼠"偏置(三参照覆盖异构三形态)。
验证:① 三参照 JSON 均合法、顶层键齐(entities/components/behaviors/scenes/rules);
② 参照3 经 game-runtime createRuntime 真驱动跑通——砖墙24块/撞砖计分/消砖
remaining降/球落底 lose-latch/指针控板,全程零抛错;③ gd-archetypes.test 4/4 不回归;
④ aigc-server 离线编译通过(文本块转义合法)。
不重新生成游戏(重生验证由部署后另做)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 13:56:45 +08:00
lili
ff8e52c30a
docs(staging-ops): 钉死 bug#4 根因蒸馏——缺 --mode staging 致 baseURL 空串、/play 静默假"加载失败"
...
bug#4(dev/2.0.0 studio /play 游戏加载失败回归)逐 bug 深挖结论:非源码 bug,
而是 staging dist 构建漏 `--mode staging` 的部署缺陷(源码 .env.staging/request.ts/
inject.ts CSP 修在 dev/2.0.0 已正确)。CDP 钉死后果链并补进 staging-ops 红线:
缺 --mode staging → VITE_API_BASE 不加载 → axios baseURL= → /app-api/* 打到
前端 :4173(vite preview 不代理 /app-api) → SPA fallback 回 index.html(HTTP 200)
→ getRuntimePackage 拿 HTML 串 → request 拦截器对非 {code} 包络透传不报错
→ respVO.manifestUrl undefined → resolvePackage 静默走 demo clicker(无 warn)
→ demo startRuntime 抛 template-system-under-reconstruction → game_error
→ /play 显示「游戏加载失败」(与任务旁证 resolvePackage/undefined.length 同根因)。
修复=按红线 `npm run build -- --mode staging` 重建 dist + 重起 vite preview :4173;
CDP 实证(9358/9359/9360/9361 抽验):package+manifest 请求改打 :48080、引擎真装载
(game_loaded engine:real via bootGameHost)、逐帧 hash 变化(真玩)、截图见真游戏
(green player + red enemies + Score + GAME OVER),非 demo 非错误屏。bug#2(CSP
unsafe-eval 解 gamedef 静止)同 dist 一并验证通过。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 13:16:17 +08:00
lili
347dd023a1
fix(studio): iframe CSP script-src 加 'unsafe-eval'——解 gamedef 游戏静止(bug#2,补回丢失推送)
...
studio iframe srcdoc CSP 缺 'unsafe-eval' → gd-runtime new Function 编 behaviors/rules 全抛 EvalError
被静默吞进 errors[] → tickBehaviors 空 → 游戏只渲首帧静态、世界永不演进。系统性(非 breakout 特定),修一处全解。
A/B 实证(bug#2):加 'unsafe-eval' 后 errCnt 7→0、score 0→演进;Node gd-runtime 三款本就演进=运行时逻辑对、纯 iframe-CSP wiring 坑。
安全承接:逻辑串经 scanLogic 静态拦 + connect-src 'none' 无出站 + iframe sandbox,三重边界不扩大攻击面。
注:此修先前 bug#2 调查在 mini-desktop 工作树改+build 验过,但提交/推送被 77f67fdb 大合并竞态吞、未落地;此处规范化补回 origin/dev/2.0.0。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 21:59:21 -07:00
lili
77f67fdb13
Merge origin/dev/2.0.0(SAA 生成域 20 提交)—— 设计文档域化重构 8 提交并入
2026-06-20 21:16:28 -07:00
lili
7bd9cd05e6
docs(governance): Phase7 收口——治理门反转 + 源档归档 + 入口对账 + 死链门
...
设计文档域化重构总收口:
- §10 治理门反转(engineering-conventions §10.5/10.6/10.7):canonical 根从 agent-specs 改为 docs/architecture 6 域树;品牌门白名单加 architecture/_archive。
- 归档 11 settled 源档(7 根 architecture + 4 非生成 agent-specs canonical)→ 各自 _archive(git mv 保 history + tombstone redirect)。生成域设计链过渡期保留(架构演进中)。
- rewire 17 个活层文件(.agents/knowledge|rules|skills + docs/mvp + AGENTS.md + 新树)指向新树路径;活层零残留旧 canonical 路径。
- AGENTS.md §4 必读表/§3.2 目录树/§3.3-3.4 指针 → 新树;_index.md 瘦身为 trace/spike + 生成域演进链 + 修 line22↔40 自相矛盾。
- 新增死链门 .agents/tools/check-deadlinks.sh(§10.7 死链项的可执行脚本)。
- 全门齐跑:死链 0 / 新树无旧品牌 / 无超 2000 行 / 活层无残留。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 20:48:38 -07:00
lili
ec7fda2cee
docs(architecture): 标记生成引擎子树为「架构演进中」
...
review 暴露生成域正处于 gameDefinition→src/ 终态迁移 + 产线化(plan 2026-06-18-001 U1–U4)。给 11 份子树档插「🚧 架构演进中」横幅 + L1 总索引/架构 README 导航处加注,提示现行结论可能随 plan 推进变化、以最新裁定为准。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 20:36:13 -07:00
lili
c6b9569033
docs(architecture): 修复审查发现的过时/错误内容(57 项 · 18 档)
...
25 档 opus 审查(对照代码/契约/git)→ 9C+23M+26m 真过时/错误 → 18 档 opus 修复(各自先按 commit/file:line 复核再改,1 项审查误判经复核拒绝)。主要簇:① gameDefinition 终态对齐——固定架构/SAA编排把'真结构化已成立'降级为'通往 src/ 的中间脚手架 + behavior.code 内嵌串=已知债',跨档对齐 README §3.2/设计裁决(06-20 创始人定调);② WG1 门面缺口按 06-14 scale-20 实测修订(预判几乎全推翻);③ 开闸接线改完成时(generic 桥接 7534bdf9 + 5 品类模板回填 046c061d 已落地);④ Flyway 数字 V17/V18→V25;⑤ 会员订阅(V21 ca53a0db)/community(U3 3f35acb4)/资产渲染(U1 73d33916)状态更新;⑥ prompt治理(classpath 加载)/引擎(Phaser gz)/前端(token 名·prefers-color-scheme)/运维(mini-infra=PostgreSQL·push=阿里云Gitea)细节订正。全 26 档过门(≤2000/有图/品牌绘境AI)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 20:21:03 -07:00
lili
490dc6293d
fix(saa): 包级 assets 接通源 sourceProject.assets[]——闭合产消断链(兑现 engine-E2/E3 消费侧 TODO)
...
gen-done 出包历史上把包级 assets 硬置空(setAssets(emptyList)),丢掉源
gameDefinition 已落库的六类源资产(game_source_project.source_json 顶层
assets[6]),造成产(asset 节点写源)→消(组包)断链。
改 SaaGraphDispatcher.buildCallbackReqVO(in-JVM SAA 路,即 generic/engine
任务真实落包路):新增 extractSourceAssets(s,traceId) 从图终态 K_SOURCE_PROJECT
抽顶层 assets[] 忠实映射进 reqVO.assets;DifyCallbackTxService.buildGamePackage
读 reqVO.getAssets() 即自然带进 GamePackage.assets。
- 形态:源 assetSpec={id,category,ref,provider}(source-project.schema.json
#/$defs/assetSpec),运行时 gd-runtime 经 gdef.assets 同形消费;geom:<cat> ref
系几何占位资产引用,原样透传,不伪造包契约 strict AssetSpec 的
type/url/hash/bytes/mime(无真图/真 sha256,伪造即脏数据)。
- best-effort 非阻断(严格 additive):源缺失/空白/非 JSON/无 assets 键/非数组/
异常一律回退空集,绝不外抛、绝不打断 SAA 生成;存量无源回调字节零变化。
- 复用既有 parseTrace + TRACE_MAPPER(只读,无共享可变状态),不引新依赖。
不动 AigcGenerateExecutor:440:该处为进程内 clicker/merge 旧路(generic/engine
经 dispatchGeneric 早返,不达此行;worker 回调由独立 reqVO 驱动),作用域无
sourceProject,改它即凭空伪造,故按现状保留(对齐 run_batch.py assets:[])。
验证:mvn -o clean install -pl game-module-aigc-server -am 编译 BUILD SUCCESS;
DifyCallbackServiceImplTest+AigcGenerateExecutorTest 41 tests 0 fail(含
in-process 路 getAssets().isEmpty() 断言仍过,确认未回归)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 10:50:40 +08:00
lili
c2ec8e07f8
docs(architecture): 写 L1 总文档索引(6 域 + 生成引擎子树导航)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 19:45:23 -07:00
lili
fc0c164678
docs(architecture): fan-out 重写架构/前端/运营/后端/运维 5 域(20 档 · 全 opus)
...
Workflow 每目标档一个 opus agent,以产品域 README 为风格样板:架构 L2 主档 + 13模块 + 生成引擎旗舰子树(11 档:README/固定游戏架构/SAA编排/引擎与运行时/验收门-W-G1/prompt治理/设计合理性裁决/OpenGame对照/WG1基准/SAA能力API-dossier/开闸接线)+ 前端 + 运营(README/变现与单位经济/渠道发行/合规闸门)+ 后端瘦主档 + 运维瘦主档。全部:人读散文 + 多图(Mermaid)+ 少黑话(专名首现解释)+ 单档 ≤2000(最大 452)+ 品牌绘境AI + 硬事实保留(门ID/数字/契约/裁决)。源档归档、§10 治理反转、~17 连带引用、L1 总索引、_index/AGENTS 对账、死链门统一留 Phase7。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 19:43:41 -07:00
lili
366a44b4b5
docs(architecture): 重写产品域为 4 级散文设计文档(5 档)
...
黄金模板(owner 已验风格)+ SPLIT + forensic 落地:产品/README(L2 域主档)+ 需求清单/需求模块映射(含 2026-06-17 forensic 现状快照)/护城河话术/商业定位(L3)。人读散文 + 多图(Mermaid)+ 少黑话(专名首现解释)+ 单档 ≤2000 + 品牌统一为绘境AI。源档与连带引用改动统一留 Phase7 总收口(避免多域构建期半态);域间前向链接待其余域建好后在 Phase7 验。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 19:20:26 -07:00
lili
7f71932023
docs(architecture): 设计文档域化重构 执行计划(门驱动 + 分域 fan-out recipe)
...
配套 review v2 的执行版:文件结构(目标态)+ Phase0 地基(骨架/§10 治理门反转/doc-organizer/死链门)+ Phase1-6 分域重写统一 recipe(harvest→author→archive→rewire→gate→commit)+ Phase7 总收口。门驱动替代 TDD;1a 产品域纯 FOLD 子集作黄金模板含 owner 验收点。批准前零改动,仅计划档已落。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 13:29:48 -07:00
lili
03fe73c7e7
docs(architecture): 设计文档域化重构 评审版 v2(双评审过 + 大厂风格规范)
...
将 docs/architecture + docs/agent-specs 的设计文档全量重写为 4 级域树(总索引→域主档→模块子档→详档)、6 域(产品/架构/后端/前端/运营/运维)、落 docs/architecture 单根的设计评审版。过 Codex+Opus 双评审,18 发现已处置(§8):范围 blast radius 补全、C2 头号约束更正(生成域在飞红线已解除)、回灌门可执行 schema、06-17 取代连锁接管;补大厂风格规范(人读散文/多图/少黑话/单档≤2000行)。批准前零改动,仅本评审档已落。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 13:24:48 -07:00
lili
9d463f0873
feat(saa): Phase 4 E_live 校准——像素活性 OR 状态活性(治无运动点击类假阴)
...
play.cdp.cjs E_live(守卫E):加 stateProgressed(score/remaining 玩前→玩后真变=游戏在响应输入) + 玩前/玩后态捕获(s0/s1);E_live pass = 像素 distinct≥2 OR 状态活性。
- 治无运动点击类(打地鼠等):画面只在命中瞬间变、像素采样易错过→E_live 假阴;但 score/remaining 会真变。
- 只加 OR、只放宽不收紧:真冻屏(score/remaining 不变、含仅计时 elapsed 变的)→stateProgressed=false→E_live 仍判否,绝不放过真冻屏。
- 验证:node --check 过;stateProgressed 5 例核验(命中→true / 冻屏→false / null→false / 仅时间变→false);对 gd-breakout 跑确定性 harness(无 M3)——liveByState 字段出、E_live pass、harness 不崩。
- 范围(创始人定):VLM 门(gateMode=vlm)降 backlog(VLM 单帧比 E_live 弱、有'好玩'判定天花板);#7 打地鼠经查实为 H_progress(已 Phase 1 移出硬门)非 E_live。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 13:00:30 -07:00
lili
ad22be9b3a
feat(saa): Phase 2 Template-First gamedef 骨架机制(flag 旁挂默认关;A/B 负面=不迁移到便宜 thinking-off)
...
机制(OpenGame +10.1 杠杆试落):
- SaaSkeletons 加载器:archetype→3 金标准过门纯净骨架(gd-breakout/tictactoe/simon,verdict.pass=true+rt纯净+过 Phase3 坑门),按 (tick/input) profile 映射;经济类(merge/idle/tycoon)无近似骨架不登记=走无骨架,绝不喂低质骨架。
- 注入:SaaPrompts buildGameDefMessages(openai 首生成)/historyFirstUser(anthropic 首轮) 追加骨架段(结构参照、非照抄,题面不符以题面为准);救场轮不注。
- pom 拷 contracts/agent-loop/skeletons/*.json 进 classpath。flag -Dsaa.gen.skeletonFirst=1 开,默认关=生成字节零变、零回归。
A/B 实测(thinking-off + skeleton conc=12 vs A 基线):
- 7/12(58.3%) ≤ A 8/12(67%),失败仍 E_live 哑火(#4,5,9,11,12) → 骨架没把基线拉向 91.7%。
- 结论:+10.1 骨架杠杆【不迁移到便宜模型+thinking-off】——哑火是推理缺口(thinking 补)、非结构样例缺口(骨架补不了)。thinking-ON(anthropic 91.7%)仍是唯一真杠杆。
- 处置(创始人定 A):保留机制 flag 关、可逆——换更强模型/配合 thinking 时或有用;默认不启用。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 12:53:02 -07:00
lili
5bc0afb4bb
fix(saa): 复审整改 C2 客观门必达集 + M3 碰撞尺寸不拷顶层 + Phase 3 玩法坑离线门
...
CodeRabbit/Codex 双复审整改(针对 4e5a7bbf):
- C2(critical, SaaGenNodes.objectiveGatesPass):改「A-E 五门全在场且 pass,缺任一即失败」。旧「出现才查」会被 harness 中途崩(runDriver 在 D/E 前抛、未 try/catch)钻空子——verdict 只剩 A_boot/C_frame 即 sawObjective=true 放行=崩掉的游戏判过。缺门=未跑完=失败才安全。
- M3(major, gd-runtime RESERVED += w/h/r):碰撞尺寸 w/h/r 不拷实体顶层——它们是 rt.overlap 读顶层的命中框(缺省16),拷上去静默改存量游戏命中框且违反 prompt 契约「顶层 e.w 永 undefined」。
- Phase 3(OpenGame +6.9 离线 linter):build-from-source 加两族【零误伤】玩法哑火坑门——①.tags 是 Set 误用数组法/下标/length ②漏 rt. 前缀裸引擎调(补 LOGIC_BANS 不拦 getEngine/getInput/restart 的洞,含此坑源装配过却运行期夭折)。命中→repair,真玩前修省一轮 CDP。self 跨 behavior 泄漏因误伤过门款(gd-tictactoe/simon 带 bug 却过门,self 确 per-behavior)降级待非阻塞 warning 通道。新增 gameplay-pitfalls.test.mjs:正例拦坑 + gd-breakout/tictactoe/simon 零误伤,32/32 全绿(含既有回归)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 12:28:41 -07:00
lili
fba7f3e030
Merge branch 'dev/2.0.0' of ssh://101.200.34.71:2222/zizi-al/games-development-ai into feat/mac-gamedef-qc-concurrent
2026-06-20 11:50:59 -07:00
lili
f4c6789312
docs(saa): 蒸馏 M3 thinking 治理/协议/流式 + rc 门修(91.7% 跃迁) → .agents 技能 + 决策档
...
§7 知识沉淀(仓库权威版,配套代码提交 4e5a7bbf):
- .agents/skills/saa-graph-orchestration.md:新增 §3.5「M3 thinking 治理 + 协议/流式」——M3 thinking 二元(无深度/budget、提示词压不住);openai adaptive 内联污染→只能关;anthropic 原生分离要质量走这条但必配【流式 StreamingCallChatModel + NO_PROXY webClientBuilder】否则阻塞整取大面积 SocketTimeout;#4407 对 1.1.2 过时;rc 门耦合 bug(playNode pass 别前置 rc==0)。e2e 段补 2026-06-20 跃迁(67%→91.7%、证伪模型天花板)。
- docs/plans/2026-06-20-…md:状态 banner→主线达成 + 追加 §7 结果与修正(rc 真根因 / thinking+协议杠杆 / 实测对照 / n=12 达标口径放宽 / 未尽项)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 11:38:59 -07:00
lili
4e5a7bbfb9
feat(saa): M3 生成质量收敛——客观门解耦 + 流式 anthropic 思考 → e2e 11/12(91.7%)
...
rc 门解耦修复(SaaGenNodes.playNode):play.cdp.cjs 退出码=九门聚合(verdict.pass?0:1),driver 门(G/H/I)挂→rc=1 反向否决客观 pass,致 Phase 1 客观门解耦形同虚设、空跑救场烧 token;改 rc∈{0,1}+objectiveGatesPass,all9 旧口径保留可回退。
思考治理(SaaStudioGraph):关 openai 路 M3 adaptive thinking(内联污染 JSON+撞 max_tokens 截断);改走 Anthropic Messages 协议(原生 thinking 块分离)+ StreamingCallChatModel 流式收取(治阻塞整取 SocketTimeout;#4407 对 spring-ai 1.1.2+生成无工具调用不触发,n=1 实测确认)+ webClient NO_PROXY + max_tokens 256k。
配套:gd-runtime 去脚枪(Plan A·S2 自定义标量拷实体,治冻屏) + play.cdp seek-food 驱动 + Phase 1b prompt 解耦 + e2e 旋钮(protocol/maxTokens)。
实测 conc=12 gamedef:thinking-off 8/12(67%,E_live 哑火×4) → thinking-on 11/12(91.7%,哑火修 3/4,残留 #7 打地鼠);代价 ~10x 慢 + 1.6x token。按创始人拍板以 n=12/91.7% 宣告达标(放宽原 plan003 n>=30 门)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 11:26:26 -07:00
zizi
991264b99b
docs(复盘): 架构错误根因复盘 post-mortem(批二第二件)
...
「为什么结构化源项目做成了 JSON 生成游戏」的过程复盘。两条根因轴:
- 决策层(元根因): 评审只在范式内审细节、从不质疑「该不该是 JSON」这个前提;
错前提被一路精致化+自产证据(双证/九门全绿)加固。codex+opus 双验证器独立同指此处。
- 知识层: 设计写对、实现没兑现——「沉默的重解释」(文档自称落地却中途换核心定义、无对账门)
+ AI无状态四放大器 + 整体一致性无主 + 规则没编译成机器门。
更深: AI 系统性偏向「可测量的」而非「好的」。
教训已蒸馏: AGENTS.md §6 条款10/11 + engineering-conventions §10.7 四道门 + 生成主线 ★终态定调。
本会话创始人四次「前提质疑」(agent管理/裸图官方性/SAA价值/九门=工具)实战印证该机制价值。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 17:31:07 +00:00
zizi
dbb0a76856
docs(治理+生成): 文档治理强制门体系 + 整体一致性负责人 + AGENTS.md 全中文化 + 品牌收敛 + 生成产物终态定调
...
- AGENTS.md: 品牌「造梦AI→绘境AI」+ 剔除 §9 gstack 安装命令(入口卫生) + 全文简体中文化
+ §6 条款10/11(强制门清单 / 整体一致性负责人=创始人+6c6g文档线 / AGENTS.md 自检)
+ §3.4 关键模块架构设计引用(指向 product-and-architecture.md, 不在入口重写)
- engineering-conventions §10.7: 4 道强制门可执行规格(品牌不变量 / canonical唯一 / doc↔code兑现 / 入口卫生)
+ 白名单(docs/ip 法务 + _archive 留痕豁免) + AGENTS.md 自检清单
- 生成主线架构演进路线.md: ★产物终态定调(创始人 2026-06-20 拍)——终态=src/ 多文件工程,
gameDefinition 仅中间脚手架, new Function 跑 JSON 内嵌串=债; 配 doc↔code 兑现门;
就地 reconcile v2/固定架构「都 ACTIVE 却冲突」
- 现行层品牌收敛: .agents/ + docs/architecture/ + docs/mvp/ 共 20 处「造梦AI→绘境AI」
由来: 2026-06-20 架构错误 + 文档治理复盘(codex/opus + 三 agent 对抗验证收敛);
根因 = 规则没编译成机器门 + 整体一致性无主。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 16:55:24 +00:00
zizi
f64a4ed1d7
docs(arch): 生成设计合理性·对抗审查裁决——部分合理,Tier0非通用范式
...
4视角对抗深析(逐条file:line核实):地基(确定性受控面+九门自动验收)是真护城河该坚持;但3个fundamental——名实不符(behavior.code承载全部逻辑却没进契约,additionalProperties偷渡)/表达力硬编码焊在4类色块玩具/好玩好看无下限托底(assets在build链零消费者)。是Tier0可靠产线非通用范式,最大风险=对标demo的Marvel/KOF。四改:正名混合范式+愿景分层(创始人级)/逻辑往声明式拽回/打通assets链/好玩从九门剥离。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 11:34:45 +00:00
zizi
317899ea69
docs(arch): 合成《生成主线架构演进路线》单一SoT——吸收06-19、并入06-20缺口、OpenGame档转外部标杆参考
...
把两条独立分析线(内部架构演进06-19 + OpenGame对照06-20)合并成一份散文体演进路线SoT:线A加固现有+线B补OpenGame能力层,两处交汇点(品类独立校验/player软门)去重,统一迁移序列对齐plan-001/002/003。06-19吸收后归档_archive;06-20标定位为外部标杆prior-art(缺口已并入路线)、供查OpenGame内部机理;_index改指向路线为生成演进SoT。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 09:42:18 +00:00
zizi
c450552051
docs(analysis): 改准 OpenGame 文档里 VLM Bench↔九门 的说法
...
创始人指出:九门不是 VLM Bench 的等价物。改准为——九门更强的只是机制层(Build Health,能不能跑);VLM 的 Visual Usability/Intent Alignment 那两轴九门判不了,对应我们偏弱的 player 软门(M3 视觉软门),是待补强缺口非已赢项;OpenGame 的 VLM Bench 代码其实未开源(只论文)。改表格行/已有等价物段/收口结论/_index 指针 4 处。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 09:23:19 +00:00