games-development-ai/docs/agent-specs/2026-06-29-便宜档降AI参与-减摩擦与扩模板覆盖-设计.md
lili 9fcfe61a0a
Some checks failed
docs-gate / docs-gate (push) Has been cancelled
docs(质量轨): 收口折账全量——质量模型 canonical 落位(+四层塔图)/ 数据飞轮折入回流半环(+半环图)/ 验收门与OpenGame历史化注 / sim§10 分界改口 / 注册表与_index对账 / 两设计档降留痕 / 工单板对账(F-1·R1-R6·W-MAT·决策③NO-GO hold·W-GENRE解锁)
折账批次1(A/B/C/D 四组并行)+ 批次2(注册表/_index/降留痕)+ 批次3(docs-gate 七检绿+旧口径 grep 清零)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 21:02:43 -07:00

28 KiB
Raw Permalink Blame History

date, topic, status, sot-impact, 上级, 认领, 关联, 关键决策(创始人 2026-06-29, 图清单, 术语注
date topic status sot-impact 上级 认领 关联 关键决策(创始人 2026-06-29 图清单 术语注
2026-06-29 便宜档降AI参与-减摩擦与扩模板覆盖 修订Codex + Opus 双评审已过 · 据证据驱动重定位 · 认领为 plan① 切片一里程碑蓝图)· 主体已交付(减摩擦 + 数据点 + 丰富两步,M1 达标 2026-06-30);剩 §7 品类扩产工单(解锁待质量模型 SoT;已于 2026-07-02 决策包⑦ 解锁,rubric v2 前置工单已完成) 修订 生成引擎执行计划(切片一里程碑蓝图,plan① 认领) docs/plans/2026-06-25-生成引擎统一执行计划-AgentScope三档-plan.md plan① 切片一某里程碑L2 API 母语化重构 + per-genre 脚手架)· 挂 WU-B 实例达标 / WU-C 5.4 能力面契约变更 / WU-F 达标门
7f8a418c2026-06-28 M3 cutoverPython 路成内部默认生成路、Node 退役;对外放量 6 门未开、≥80% 生产复验未做)
docs/architecture/架构/生成引擎/agentic运行时架构图说.md §4.1 / line 21·255·263·269便宜档权威定位
game-runtime/src/plugins/11 注入插件 api.d.ts · 改签名对象)
game-runtime/tools/amodel-gen/prompt.mjsNode 路 prompt· cheap-worker/cheap_roles.pyPython 路 prompt · 双源同步对象)· .agents/skills/littlejs-game-dev.md
game-runtime/tools/amodel-gen/tools.mjs:167-200M1 已落的 drawButton/void 形状静态门 · 改签名须同步重写其判据)
game-runtime/games/_template/(唯一匹配现契约的范例 · 模板覆盖基线)
docs/agent-specs/2026-06-28-母语vs方言-生成对照实验-evidence.md动因证据
docs/plans/2026-06-25-生成引擎统一执行计划-AgentScope三档-plan.mdcanonical · 本设计认领进它的切片一)
直接改插件 API 签名向母语直觉对齐、不为 live 保兼容、可重构(存量重生成);证据驱动——先清脏数据 + 取难品类数据点,据数据再定阶段二范围。
图1 降 AI 参与的两条路与量级Mermaid · 内联 §3
图2 插件 API 摩擦的两类(可改签名 / 结构约束Mermaid · 内联 §3
本文「M3」一律指 MiniMax-M3 模型plan① 切片一的里程碑「M3真上线」是另一回事引用时写「plan① M3 里程碑」。

便宜档降 AI 参与:减摩擦与扩模板覆盖 功能设计

§0 一图看懂

核心思想:便宜档按 SoT 定位是"AI 参与深度低的高质游戏"(轻量≠简单),靠玩法模板、工程脚手架与 L2 插件库承担复杂度、让 AI 在 L3 写得少。但 AI 在 L3 改写整个 game-logic.js 时学私有插件 API 的摩擦极大,"降 AI 参与"没兑现。降 AI 参与有两条路:减摩擦(让 AI 写得顺,小头)和扩模板覆盖(让 AI 写得少,大头但目前未验)。本设计先做零成本高收益的、取缺失的数据点,据数据再定范围。

边界:只动便宜档;九门验收内核不动;L2 插件库保留(降参与的核心载体,非负担);不动 tier2。改插件 API 直接改签名、不为 live 保兼容,存量重生成。

怎么算成功:减摩擦——同品类下 22 处 API 幻觉命中率、check/build 返工轮数、read_file 次数下降(不是 token 大降,那归扩模板);扩模板——在难品类上 AI 自由写的行数/轮数下降且多款不雷同;九门机制地板不降。

§1 意图与目标

便宜档的"便宜"来自让 AI 少参与——平台预建工程脚手架、备玩法模板、给 L2 插件库(juice、物理、碰撞这些复杂能力 AI 直接调、不用自己写),AI 只在 L3 写游戏本体(SoT line 269:"轻量≠简单……低成本生成相对不复杂、又不易同质化的高质小游戏")。

但"少参与"没兑现。2026-06-28 实验:同一条点击得分 brief、同一个 MiniMax-M3,母语下三步一次成型约 14K token,现状私有方言下产同一款要约 26 倍 token。事实核准把根因摊清:AI 写 game-logic.js 时要学的私有 API 大量反直觉(共 22 处,见 §3 与附录),且一部分"幻觉"是我们喂错了学习材料——prompt 与 skill 教 AI 用根本不存在的 collision.pointInRect、被当范例的 catch-fruit/wanglanmei 是旧 opts 签名漂移、插件数 prompt 说 11 skill 说 12。

现状要讲准(不夸大紧迫性):这条 Python/M3 便宜档路 2026-06-28 已 cutover,但 cutover 的是内部默认生成路(Node 旧路退役)——不是对外面向用户放量:对外开闸的 6 门未开、≥80% 生产分布达标复验未做、当前质量约 3/5、feed 放量还受备案日历闸约束(plan① 切片一现状)。所以痛点不是"即将放量的成本爆炸",而是"已成默认生成路的单位成本是母语的约 26 倍,等它真放量会放大";存量产物是测试批(bake-*/amgen-*)、不是用户在玩的游戏。

目标,摆正两条路的量级:

  • 减摩擦(小头,先验得到):把高频反直觉的 API 改成符合母语直觉、把喂错的材料清干净。它省的是 AI 学 API 与返工的 token,不等于减少写代码量。验证看 22 处幻觉命中率、check/build 返工轮数、read_file 次数下降。
  • 扩模板覆盖(大头,但未验):把五品类玩法模板从纸面框架实体化成 per-genre 脚手架,AI 从"改写整个 game-logic.js"变成"在品类骨架上填更少"——这才是真正缩小 AI 工作面的杠杆。但它目前在难品类零数据;唯一的 26× 数据落在点击得分,而点击得分恰是 _template 原生范例、本就不需要新模板。所以扩模板的收益要在一个难品类上先取数据点,不当默认。
  • 不降护城河、不丢复用:九门不降;L2 插件库保留(扔了 AI 就得自己写物理碰撞、反而升参与)。

§2 边界

:① 清脏数据(教错的 API、漂移范例、插件数不一致);② 高频反直觉 API 直接改签名向母语直觉对齐,并同步重写 M1 已落的形状静态门判据;③ 补匹配现契约的 per-genre few-shot 正例;④ 在难品类取扩模板数据点,据数据把五品类玩法模板实体化为脚手架。

不做:不动九门验收内核;不丢 L2 插件库;不动 tier2;不为 live 存量保 API 兼容。

与 plan① / live 的关系:① 认领归属——本设计不是游离的 agent-specs 文档,认领为 plan① 切片一的一个里程碑(L2 API 母语化重构 + per-genre 脚手架),其任务分挂 WU-C 5.4(契约变更:改 22 处 L2 API)、WU-B(实例达标:3/5→更高)、WU-F(达标门验证);plan① 切片一加指针。② live 语义——cutover 的是内部默认生成路、非对外放量,故存量重生成动的是测试批、无用户可见影响;但仍要有"批量重生成 + 九门复验 + 不留半新半旧"的处置。③ tier2 对账——L2 插件库若为两档共享,改 22 处 L2 API 会触及 tier2 底座;需先核 L2 与 tier2 插件是否物理隔离:共享则改签名补 tier2 回归,隔离则讲清隔离点(本设计默认先核、再决定 tier2 回归范围)。

§3 方案

降 AI 参与两条路,量级不对等:减摩擦是小头(省学 API/返工),扩模板覆盖是大头(缩写代码量)——但大头未验。

图1:

flowchart TB
    G["降 AI 参与 = 降便宜档成本(不降九门、不丢插件库)"]
    subgraph R1["路一 · 减摩擦(小头 · 点击得分已验 26× 含学 API 税)"]
        A["A 清脏数据collision.pointInRect 收敛 hud-ui、换漂移范例、修 11/12零架构改动"]
        B["B 改签名:高频反直觉 API 改向母语直觉 + 同步重写形状门判据(不兼容 live、可重构"]
        C["C 补密度C1 per-genre 正例落地 / C2 内嵌vs按需的 token×良率对比"]
    end
    subgraph R2["路二 · 扩模板覆盖(大头 · 难品类零数据 · 证据驱动)"]
        DP["数据点:先在一个难品类测扩模板的行数/轮数下降"]
        D["D 据数据点把五品类玩法模板实体化为脚手架 + 品类路由 + 兜底"]
        DP --> D
    end
    G --> R1
    G --> R2
    R1 -. 留插件库的复杂能力复用 .-> G
    R2 -. 平衡:骨架归模板、表现层留 AI防同质化须操作化.-> G

路一 · 减摩擦:

  • A 清脏数据(先做,零架构改动,高收益)。把 prompt/skill 里教 AI 调用不存在的 collision.pointInRect 收敛到真实存在的 hudUi.pointInRect(不在 collision 补——那会把 UI 的 Rect{x,y,w,h} 塞进用 Aabb{x,y,hw,hh} 的碰撞插件、制造新的几何类型不一致);把当范例引用的 catch-fruit/wanglanmei 换成匹配现契约的(唯一匹配的是 _template/game-logic.js);统一插件数口径(11 注入 + runtime-probe 取证不注入)。纯修材料,不改任何 API。prompt.mjscheap-worker/cheap_roles.py 是双源,必须同改。
  • B 改签名,向母语直觉对齐(直接改、不兼容 live、可重构)。据附录的可改签名清单改 L2 API,同时同改 api.d.ts、prompt、skill、_template 范例(它们是一套,漏一个就造新脏数据),并同步重写 tools.mjs:167-200 那道 drawButton/void 形状静态门的判据——它是 M1 已落的防护,改签名后不整批退役(因为"把返 void 的当返回值用、把 A 形状当 B 形状"这类幻觉模式不会消失、只会转移),而是逐条把判据对到新签名上。存量测试批重生成、过九门复验。
  • C 补密度。拆两步:C1 把每品类一份匹配现契约的 few-shot 完整正例落地;C2 测正例供给方式——内嵌(增 token)vs read-on-demand(现行省 token)的 token×良率对比,据数据定。RAG 仅在 C2 显示按需读不够时才进。

图2,22 处摩擦分两类——改签名能解决的、和改签名解决不了的结构约束:

flowchart LR
    subgraph C1["可改签名向直觉(路一 B 的清单 · 约 15 处)"]
        X1["对象当函数ctx.random/ctx.time → 可直接调用"]
        X2["模块级函数当实例方法physics/collision 几何 → 挂插件实例"]
        X3["class 当实例gamefeel ComboWindow/InputBuffer → 实例给方法"]
        X4["返回值/参数语义drawButton 返对象、addScore 加 add 别名、timer 统一单位、playSfx/loadSong 更直觉、juice 加 burst"]
        X5["同名异构Aabb{hw,hh} vs Rect{w,h} → 统一几何约定"]
    end
    subgraph C2["结构约束(改签名解决不了 · 靠模板/L1/保留门 · 约 7 处)"]
        Y1["bundle.tick(dt) 必调、dt 单位秒×1000"]
        Y2["_forensicsView().state() 须函数体内实时算"]
        Y3["输入不订阅 getInput、opts.runtime/.boot.ctx 嵌套"]
    end
    C1 --> O["改签名后按直觉写就对,幻觉命中率下降"]
    C2 --> P["这些不靠改签名——L1 已收输入/wiring其余靠模板骨架与保留的红线/形状门"]

路二 · 扩模板覆盖(证据驱动):把 SoT line 263 的五品类(经营/剧情/解谜/TRPG/非遗)实体化成 per-genre 工程脚手架。但先解两个它现在缺的东西,否则它是孤儿、是口号:

  • 品类路由 + 兜底(入口):谁、按什么把一句话 brief 分到某品类?置信度不足或不属五类时走什么?——定一条路由路径 + 一个 generic 默认骨架兜底(不属五类落 generic,退化回现状、不崩)。"路由命中正确品类"列为验证项。
  • 同质化边界操作化(不是口号):给每品类划出"骨架/表现层"的具体界——哪些必由模板(如经营的资源-订单-库存环结构)、哪些必留 AI(主题、数值、关卡、表现)。安全阀不能是"踩线就回退覆盖"(那等于把面还给 AI、抵消路二目的),改成不牺牲覆盖的多样性手段:表现层参数空间、关卡/数值随机源。"同品类多款不雷同"列为验证项。

关键设计决策:① 直接改签名、不兼容 live、可重构(创始人定);② L2 插件库保留(降参与核心载体);③ 九门内核不变;④ 形状门逐条重写判据、不退役;⑤ 证据驱动——扩模板大头未验,数据点之前不敲定阶段二范围;⑥ per-genre 正例与脚手架纳入"必须同改"清单 + 加机器校验门(范例签名 == 现契约),防它们成下一代漂移。

§4 步骤计划

阶段一 A · 清脏数据(立即,零架构改动)。collision.pointInRect 收敛 hud-ui、换匹配现契约的范例、统一插件数;prompt.mjs 与 cheap_roles.py 同改。交付:不再教错的学习材料。验证(静态可核):prompt/skill 引用的每个 API 在对应契约里真实存在、范例签名与现契约一致。依赖无、风险低。

数据点(前置阶段二,证据驱动)。在一个难品类(如经营点客)取扩模板的行数/轮数下降数据——证明"扩模板真能缩小 AI 工作面"再投阶段二。交付:难品类路二数据点。验证:同难品类有无脚手架的行数/轮数对比。

阶段一 B · 改签名。据附录可改签名清单改 L2 API + 同改 api.d.ts/prompt/skill/_template 范例 + 重写形状门判据;逐插件改、逐插件过九门回归,回归矩阵覆盖:tools.mjs 静态门、cheap-worker 工具、金标 fixtures、自动 play-spec、F_wiring 期望前缀、prompt/skill、_template;存量重生成过九门。交付:向直觉对齐的 API + 同步材料 + 重生成存量。验证:22 处幻觉命中率显著降、check/build 返工降、九门不降。依赖阶段一 A。风险:改 L2 契约的回归面(逐插件回归守)。

阶段一 C · 补密度。C1 per-genre 正例落地;C2 内嵌 vs 按需的 token×良率对比定供给方式。依赖阶段一 B(正例用改签名后 API)。

阶段二 · 扩模板覆盖(据数据点定范围)。五品类脚手架实体化 + scaffold 加 genre 参数 + 品类路由兜底;每品类先做 1 个黄金骨架过九门、再扩 n。交付:per-genre 脚手架 + 路由。验证:AI 自由写行数/轮数随覆盖降、同品类多款不雷同、路由命中率。依赖数据点 + 阶段一。风险:模板维护债、同质化(靠操作化界 + 多样性安全阀守)。

§5 验证方式(配仪器,不留口号指标)

  • 减摩擦:① 22 处幻觉命中率——检测手段 = 对生成代码/transcript 做静态匹配(每处摩擦一条匹配规则,复用 tools.mjs 形状门的扫描思路);② check/build 返工轮数、read_file 次数(从 run 记录取)。同品类对比,不锚点击得分绝对值,每品类先测裸跑基线。
  • 扩模板覆盖:① AI 自由写行数/轮数随脚手架覆盖下降(难品类数据点);② 同品类多款相似度不升——度量 = AST 结构相似度(定基线 + 踩线阈),踩线则用多样性手段而非回退覆盖。
  • 不降护城河:九门机制地板逐门;改 API 与建模板后,存量与新生成全过九门;形状门重写后单测绿。

§6 风险与回滚

  • 改签名回归面:22 处波及九门探针(读 _forensicsView/插桩 __engineCalls)、插件间、形状门、金标 fixtures、_template 范例。对策:逐插件改逐插件过九门回归 + api.d.ts/prompt/skill/范例/形状门同改(漏一个造新脏数据)+ 回归矩阵列全。
  • 大头未验:扩模板是降参与大头却零难品类数据。对策:证据驱动——数据点之前不敲定阶段二范围、不投脚手架工程量。
  • 存量重生成:cutover 是内部默认路、存量是测试批,放量前重生成无用户可见影响;但要批量重生成 + 九门复验、不留半新半旧。
  • 同质化对冲:安全阀若是"回退覆盖"会抵消路二收益;改用表现层参数空间/随机源等不牺牲覆盖的多样性手段,并把"多款不雷同"作硬验证项。
  • few-shot/RAG token 权衡:C2 实测定供给方式,不预设。
  • 新漂移面:per-genre 正例/脚手架纳入"必须同改"+ 机器校验门(范例签名==现契约)。
  • 回滚:便宜档可重构,改坏了重生成回退;九门兜底——不过九门不放量;全程不动九门内核与 tier2,影响面锁便宜档生成侧。

附 A · 22 处插件 API 摩擦清单(B-1 落仓 · 阶段一 B 改签名工件)

可改签名向直觉(路一 B):

# 插件.点 现状(反直觉) 改向(母语直觉)
1 ctx.random/ctx.time 是对象,须 .next()/.nowMs() 让其可直接调用 ctx.random()/ctx.time()
2 physics 几何(integrateProjectile 等) 模块级函数,physics 实例为空 {} 挂到 physics 实例上
3 collision 几何(circleVsCircle 等) 模块级函数,实例只有 spatial 挂到 collision 实例上
4 gamefeel(InputBuffer/CoyoteTimer/ComboWindow) class 须 new 实例直接给方法/工厂
5 hudUi.drawButton 返 void 返按钮对象(可判命中)
6 sessionScore.addScore 无 add 别名 add 别名
7 timer.after/every 收毫秒(与 dt 秒相反) 统一单位或显式标注
8 audioMusic.playSfx 限 'blip'/'thud'/'chime' 放开/语义名映射
9 audioMusic.play/loadSong play 入参是强度非曲目 更直觉的曲目接口
10 juice 发射 无 burst 方法(burst 是预设名) burst(x,y)
11 juice.render 须每帧手调 文档钉死/自动化
12 collision Aabb {x,y,hw,hh} 与 hud-ui Rect 统一几何约定
13 physics ProjectileState 位置 px/py x/y
14 palettePost 不内置成品色板 提供常用预设
15 scene update 回调 只收 (dt) 文档钉死(防臆造首参)

结构约束(改签名解决不了 · 靠模板/L1/保留门,不在 B 范围):bundle.tick 必调、dt 单位秒、_forensicsView().state() 函数体内实时算、输入不订阅 getInput(L1 已收)、opts.runtime/.boot.ctx 嵌套(L1 已摊平)、sceneFsm.define 逐场景(可改批量,归 B #)、collision.pointInRect 不存在(归阶段一 A 清脏数据,收敛 hud-ui)。

完整逐条(真实形状/直觉写法/file:line)见本会话事实核准报告;阶段一 B 开工时据此表逐条建变更+回归条目。

附 B · 双评审收口

Codex:B-1(22 处清单落仓+回归矩阵·已补附 A/§4)、M-1(token 因果·已摆正 §1/§5)、M-2(collision 收敛 hud-ui·已改 §3A)、M-3(scaffold 工程量·先 1 黄金骨架 §4)、m-1(C 拆 C1/C2)、m-2(路径已修 frontmatter)。 Opus:M1(紧迫性/live 语义·已改实 §1/§2)、M2(执行归属·已认领 plan① 切片一 frontmatter/§2)、M3(品类路由孤儿·已补 §3 路二)、M4(同质化操作化+安全阀改多样性·已改 §3/§6)、M5(两条路量级+难品类数据点·已摆正 §1/§3/§4)、m1(新漂移面同步门·§3⑥/§6)、m2(指标配仪器·§5)、m3(tier2 对账·§2)、m4(散文去套话/M3 命名区分·已改 + frontmatter 术语注)。

跨文档收口 TODO:① 已认领入 plan① 切片一(里程碑 + WU-B/C5.4/F 归属,commit 56e9f28e,创始人 2026-06-29 directed);② 前置核查已做——L2 插件(game-runtime/src/plugins/)与 tier2 物理隔离(tier2 用自己的 Phaser engine-caps、零 import 便宜档 L2 插件、仅注释口径对齐)→ 阶段一 B 改 L2 API 不触 tier2,tier2 回归范围 = 无;③ 阶段二范围已按创始人纠正后的框落为 §7 扩产工单(2026-07-02;解锁待质量模型 SoT,原「脚手架范围」框随纠正作废)。

执行进度(2026-06-29):

  • 阶段一 A 清脏数据 + 文档治理锚(三文件双源 + 锚,九门复验 PASS,a6a37b1c)。
  • 阶段一 B 改签名全完成——附 A 15 处可改签名 #1-#15 全落,逐插件改逐插件验,2a20e5e72be7b718 共 13 提交(含正交泛型门修复 851b86fe:API 静态门方法名正则漏认泛型 get<T>(、误杀带存档游戏)。每处单元 + 确定性验、各插件测试绿、双源 prompt 一致、形状门 11/11 不破。母语化要点:drawButton 返命中矩形(#5,治 #1 翻车点根因)、sessionScore.add / juice.burst / gamefeel 工厂 / collision·physics 几何挂实例 / Aabb 兼收 {x,y,w,h}(#12)/ ctx.random()·ctx.time() 可调用双 API(#1,单点 buildContext 包装)/ audioMusic 语义音名 / timer·scene·juice.render doc 钉死。
  • 存量重生成九门复验(代表性一局):打地鼠 + 开始/再来一局按钮 + 高分持久化(走 drawButton/sessionScore/save.get/ctx.random),verdict.passfailedGates=[]attempts=1 一次成型、¥0.64/209s。对比改签名前同款游戏(s5btnverify)栽在 save.get 泛型门 bug 上(2 attempts、¥6.69、失败)——现一次过、更便宜更快不 thrash,减摩擦端到端见效。
  • 难品类数据点(B)取得——结论修正了"扩模板降工作面"的假设。建经营黄金骨架 game-runtime/games/_template-shop/(蒸馏 6/7 过门的 bake-shop-serve 实证 pattern:顾客→桌位→上菜收钱→耐心→限时循环 + _forensicsView 的 targets/score 取证契约;母语化 API + 多样性参数空间 + fill-in 标记),独立过九门(H_progress score 0→154)。接入品类路由:scaffold-saa <id> [template] + cheap_run.scaffold(template) + run_studio(scaffold_template, scaffold_desc)(缺省回落 _template,create 路不变)。同一咖啡馆 brief 三路对照(n=1):
    • 无脚手架基线(7 局 bake-shop-serve):~890 行 / ¥~0.7 / 67 过门。
    • 软脚手架(给经营骨架 + 软提示"别重写循环"):892 行 / ¥0.85 / 过门 / 还 distinct——但 AI 把省下的预算投进增富化(自加 combo 连击 + VIP 客)而非减行数,三指标(行数/成本/轮数)对基线全平、没降
    • 强制换皮(write_whitelist 锁 game-logic.js 循环、只许改 core 主题数值 + render 观感):696 行(-22%)/ ¥0.34(-51%)/ tokens -64% / AI 写量 201 行(对 733 -73%)/ 过门 / 仍 distinct 咖啡馆;game-logic.js 0 diff(循环原样保留)。
    • 结论:设计 §1 的"扩模板=缩小 AI 工作面"假设成立,但只在"强制换皮"模式下(脚手架 + 写边界强制锁循环);软脚手架不降成本——AI 拿到能跑循环后会把预算填进增富化。降工作面的杠杆不是脚手架本身,是"脚手架 + 锁循环只换皮"。代价:强制换皮封顶增富化(只换主题、不加新机制),软脚手架保留增富化但不省成本——两模式各有取舍。
    • n=5 收敛环确认(2026-06-29):经营 reskin 跑 5 个不同店主题(奶茶/书店/花店/拉面/冰淇淋),5/5 全过九门 · 成本均 ¥0.252(区间 0.210.38,vs 基线 ~¥0.7 = -64%)· game-logic.js 全 0-diff(循环锁定证明生效)· 全 1 轮 · 5 店菜单全互异(多款不雷同)。连同咖啡馆 = n=6 全过、全腰斩、循环全锁定——reskin 三件(成本腰斩稳 / 过门 100% 可靠 / 多款不雷同)全确认收敛,无失败、无需追加。
  • 🔴 创始人纠正(2026-06-29,推翻上面的 reskin 策略框):把 reskin「锁循环只换皮」作阶段二成本主线 = 错、越线(上面 reskin 的成本数据作留痕——锁写省成本的机制为真——但作阶段二策略已废):
    • 便宜 = LLM 低参与度,不是游戏低质量。游戏底线 = 2D 丰富游戏(进货/解锁/成长/音乐/丰富玩法、有吸引力);reskin 锁死薄循环换皮 = 砍复杂度,违背底线。"低参与"指 agent 不在引擎/plumbing 上耗(脚手架 + 插件包了)、把精力放在游戏设计,不是"脚手架替 agent 写好、agent 少写"。
    • 架构红线:项目代码只做机械确定性的事;凡 agent/skill/mcp 该做的(需判断/创作/语义),代码绝不碰。故 玩法/美术/音乐的丰富「生成」= 生成 agent 的设计创作职责(靠 sim-business-game-design.md 指导 + 组合插件实现);丰富度「校验」= 纯 LLM 验证 agent(非阻塞)——绝不写成代码校验、不进九门、不进脚手架。所以"重做丰富脚手架 / 脚手架写好玩门断言 / 4 条可机检好玩门做成代码"也一并错。
    • ③ 连带:本设计 §1/§3/§4 把"扩模板覆盖"等同于"per-genre 丰富脚手架"的框也要随之修正为 per-genre 设计 skill(给 agent 读、让它设计丰富)+ agent 实现 + LLM 验证(脚手架保持轻起点);该重写列为收口 TODO。
  • 🔄 下一步(修正后 · 取代 reskin):① sim-business-game-design 设计指导接上便宜档生成 agent——现 cheap-worker prompt 只指 littlejs-game-dev(怎么写代码)、漏了"设计什么才好玩(进货/解锁/成长/音乐/8 条好玩)",接上让 agent 据 brief 先设计丰富玩法再实现;② 建 LLM 丰富度/好玩验证 agent(非阻塞评玩法/美术/音乐质量,给质量信号、不卡九门)。两步喂 M1 达标门(标 = 过九门 + 丰富)。脚手架保持轻起点不动。并行可推:阶段一 C 补密度(few-shot/RAG)。
  • 修正后两步已落地 + M1 达标(2026-06-29/30):① sim-business 设计指导接入便宜档生成 agent、② LLM 丰富度验证 agent(非阻塞)建成;落地后 bake-off-M1-rich 三品类(click-score / whack-mole / shop-serve)各 5/5 过九门、overallMeets=truerichnessByGenre 佐证 richness 正路非 reskin(证据口径见 plan① 切片一起点校正 + M3 cutover plan §1.1);M2 退役授权据此 authorized=True本设计主体使命(减摩擦 + 数据点 + 丰富两步)交付;剩余 = §7 品类资产扩产工单。

§7 品类设计资产四件套扩产工单(2026-07-02 落账 · opus 自治批产 · 解锁待《游戏质量与爆火能力》SoT)

阶段二「扩模板覆盖」按创始人 2026-06-29 纠正后的框实体化:per-genre 设计 skill(让 agent 设计丰富)+ agent 实现 + LLM 验证,脚手架保持轻起点。五品类中经营一套已齐(sim-business-game-design + _template-shop + 金标 spec + rubric 雏形);剩四品类(剧情 / 解谜 / TRPG / 非遗)各批产一套四件:

经营范例(照此打样) 要求
① 品类设计 skill .agents/skills/sim-business-game-design.md 这个品类什么好玩:核心循环 / 进度结构 / 留存钩子 / 常见设计错误;对齐质量模型 SoT 的分层标准
② 轻脚手架 game-runtime/games/_template-shop/ 轻起点、非丰富脚手架(红线):工程骨架 + _forensicsView 取证契约 + 多样性参数空间,独立过九门
③ few-shot 过门正例 阶段一 C1 匹配现契约(母语化后 API);范例签名 == 现契约走机器校验门,防成下一代漂移源
④ 品类 rubric + 金标 play-spec cheap-worker 金标 fixtures 丰富度 rubric 喂 LLM 验证 agent(非阻塞),按质量模型 SoT §3.3 计分制(逐条 0/1 标层 + L2/L3/L4 三分组小计);金标 spec 喂九门对照

前置小工单(单列,生成线 lane、不占品类件):rubric v2 评分尺升级(8→11 条 + 分组)+ 评分输出三分组小计落库(cheap-worker 一次性改造,现只落单一 richness 总分;数据飞轮回流语料的输入前置)。首个品类件开工前先落;验收 = 金标复验(分组小计漂移 ≤±1)+ 落库字段真出现。已完成(commit ba82e63c,2026-07-02):8→11 条已落 L2×6/L3×3/L4×2 三分组小计,金标复验漂移 ≤±1、richness.groups 字段真出现,rubric 仍纯 LLM 非阻塞。

工单六要素(每品类一个 opus 会话,plan 模式领单 → goal/ultracode 自治 + 自审):

  • 目标:该品类四件齐,②独立过九门、③④接入生成 / 验证链。
  • 事实指针:本档全文 + 经营四件现货 + littlejs-game-dev + 质量模型 SoT(上位标准)+ cheap-worker/cheap_roles.py
  • 边界红线:丰富「生成」归 agent 设计、项目代码只做机械确定的事(不写好玩门代码、不进九门、不进脚手架);L2 插件库保留;不动 tier2;prompt.mjscheap_roles.py 双源同改。
  • 验收门:②过九门;同品类 n=3-5 小批(非 n≥30)过门且多款不雷同(AST 相似度不踩线);22 处幻觉命中率不升。
  • :双源同改漏一处即造新脏数据;prompt.mjs 禁反引号;范例签名机器校验门必须随③同步;worktree 缺 esbuild。
  • 自审:每件附真实 commit + 九门 verdict 路径;没全绿报 BLOCKED。fable 按质量模型 SoT 终审。

解锁条件:《游戏质量与爆火能力》SoT(质量模型,fable 主笔、在飞)定稿——它定义①④的上位标准(丰富分层 / 留存结构 / 传播钩子 / 丰富度预算档位),先批产会返工。已解锁(决策包⑦ 2026-07-02 已批,该 SoT 档内草案值生效):①④照其 §3.3 rubric 计分制与 §3.6 档位观测线批产;该 SoT canonical 收口后落 docs/architecture/架构/生成引擎/游戏质量与爆火能力.md(折账中)。