opus 执行位交付、主会话四步验收过(三套测试亲跑/红线 diff 亲读/冒烟截图亲眼): - 验收消费:check 新增源码级插件调用存在断言(_pluginCallPresenceErrors 词法层, 接替 F_wiring 真接线护栏);_forensicsView「必须实现」拦截摘除,降级为可选调试 接口(handleTap 输入契约与 ctx.log 日志纪律保留);gate_judge 放行措辞对齐四门 - play-spec/驱动器退役(逐件裁定 10 件):gen.mjs done 门自动产 play-spec 摘除、 cheap_gates/cheap_studio/cheap_modify/service_driver 调用摘除、_read_driver_type 改读 evidence/playtest/playtest.json;golden-spec 三工具(auto_vs_golden/bake_off/ compare_node)显式封存;ensure_play_spec 两实现保留一个版本窗口(只摘调用不删码) - prompt 全加载链清洗:cheap-system.md v1.6.3→1.7.0(删 _forensicsView 自动验收 契约红线与全部 targets/occupied 语义,五法句/品类指路同步),cheap_roles 内置 回退逐字节同步(test_roles 12/12 证 parity),modify 切片经运行时切块自动同步; 5 品类 skills+littlejs 手册+recipes×2+模板 8 件+README 6 件教学清洗,真设计 价值(单击 casual/可解性质/双层反馈/latch)保留 - 批账:hard_genre_batch/xtheme 行加 playtest 段,_row_total_cost 修 shadow 下 测试员成本漏算(v2 取 max 防双计) 验收(主会话亲验):pytest cheap-worker 512 绿 + tier2 141 绿 + node 49/49; 25 局基线新旧口径重放对照——真坏 5 局全拦(floor 拦 2/测试员拦 3)、无一例旧拦 新放,翻案 2 局均为破案坐实的仪器误杀;n=3 冒烟(mode=v2)全链绿:w2v2-sim harness verdict.pass=True 而测试员 reject(机械放行测试员逮住,盘上双证)、 w2v2-sim-fix 现象反馈两轮回喂→fix2 收敛(配方显示修成,局内截图亲眼); rg 零残留(模板残留均为「验收不读它」的降级调试接口合规形态);真跑 ¥8.4。 已知余项:repairFeedback 有产地、Service 续修环消费者未接(测试员 reject 不入 RepairMiddleware,续修判据仍四门)——是否接入随波3 校准数据一并裁;v1 配置级 回退窗口关闭为创始人知悉项,genconfig 默认 mode 仍 shadow、切 v2 归创始人。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
_template-feiyi — A-model「非遗工序节拍」品类骨架(3 层架构)
一个可玩的完整工序游戏:一件作品 = 一条有先后的工序链,工序依次「就绪」→ 在火候窗口内点击就绪工位完成该道 → 整条链走完出一件成品 → 错过窗口回炉重做 → 60 秒限时开工结算(menu→play→over)。这份骨架已经把整套工序循环接好了(含可选的调试视图)——你的活是按 brief 换手艺,不是重写循环。
怎么改 = 给这间工坊换一门手艺,循环结构别动:
- 换手艺/工序/作品/难度 → 改
src/core.js顶部的「多样性参数空间」(CRAFT_CHAIN工序链、WORKS作品表、就绪间隔/窗口/回炉常量)。制陶写选料/塑形/上彩,织造写纺线/上机/织纹,灯彩写扎骨/糊面/点灯——同骨架做出不雷同的手艺就靠这里。工序名用该门手艺的通识工序词,别编造具体非遗项目的失实细节(设计手册 §9 红线)。 - 换观感(案台布景/工位长相/配色)→ 改
src/render.js。 - 想加机制(正窗暴击 combo/解锁新作品/图鉴)→ 在
src/game-logic.js循环里加。 - 别推倒重写整个循环:工序就绪/火候窗口/回炉/出成品/限时结算都接好了,从它起步只补身份,远比从零写省。
- 玩法设计先读 .agents/skills/heritage-game-design.md(这个品类什么好玩:玩法化范式/节奏目标值/双层奖励/文化表述红线)。
3 层 + 你只碰 L3
| 层 | 文件 | 你 |
|---|---|---|
| L1 固定 plumbing(write 会被拒) | index.html · entry-bundle.js · src/host-config.js(已注入全 11 插件 + viewport 390×844 + wiring) · src/game.js(薄 wrapper:摊平 opts.runtime → 交 game-logic) |
不碰 |
| L3 游戏本体(已是完整工序游戏) | src/game-logic.js(工序循环 + 五法 + 取证契约) · src/core.js(纯逻辑 + 多样性参数空间) · src/render.js(观感) · src/assets.js(资产装载) |
在这上面换手艺 |
入口契约(钉死)
// src/game-logic.js —— 工序循环已写好,你换身份
export function createGame({ plugins, bundle, viewport }) {
// 插件已扁平注入(全 11 件,用到才解构);本骨架工序档用 6 件:
const { sceneFsm, sessionScore, hudUi, timerScheduler, audioMusic, juice } = plugins;
// 全部可用键:sceneFsm sessionScore hudUi timerScheduler save gamefeel juice palettePost audioMusic collision physics
return {
async init(boot) { const ctx = boot.ctx; /* 装资产→定义场景→start;输入不订阅(L1 派发到 handleTap) */ },
update(dt) { bundle.tick(dt); /* ★必调;再推进玩法 */ },
render(g) { /* 画在 g;读 viewport.w/h */ },
handleTap(x, y) { /* ★输入入口:各 phase 点击逻辑;L1 在 pointerdown 时直达调用(别自己订阅输入) */ },
destroy() {},
_forensicsView() { return { state(){ /* phase/score/targets 实时算 */ }, measures(){} }; }, // 可选调试接口(验收不读)
};
}
铁律(check 会拦)
- 入参扁平
{plugins, bundle, viewport}—— 没有 opts、没有 opts.runtime、没有 ctx(L1 已摊平)。受控面 ctx 只在init(boot).boot.ctx(时间/随机/输入/引擎)。 - 插件直接
const {…} = plugins—— 别写opts.runtime.plugins(L1 内部的,你见不到)。游戏只用、不 new、不 register。 update(dt)必调bundle.tick(dt)—— 否则 timer-scheduler/gamefeel 等 onFrame 不推进、timer 永不到期、一局不结束。dt是秒:游戏内毫秒计时要elapsedMs += dt*1000;timerScheduler.after(ms)收毫秒(60s 写 60000)。- 零引擎 import(引擎经
boot.ctx.getEngine());游戏源零裸 Math.random/Date.now/setTimeout/new AudioContext/addEventListener —— 时间随机经 boot.ctx,定时经 timer-scheduler,音效经 plugins.audioMusic;输入不调 ctx.getInput——写实例方法handleTap(x,y)(点击)/handleKey(key)(键盘),L1 在 pointerdown/keydown 时直达调用。 - 插件方法名一律以
src/plugins/<name>/api.d.ts为准,别臆测(scene-fsm 是define不是 defineScenes)。本骨架已用对的母语写法:sessionScore.add(n)计分、juice.burst(x,y)爆点、hudUi.drawButton(g,rect,opts)返回命中矩形可直接接住判命中。 - 画面读
viewport.w/h,别硬编码 390×844。 _forensicsView()是可选调试接口:state() 实时导出工序/工钱/窗口态等,供人工调试观测;W-AXIS-V2 起验收不再读它(验收 = 四门投影 ∧ 测试 agent 真玩)。
你写什么 vs 调什么
- 你写(玩法身份):手艺/工序链/作品/数值(core 顶部参数空间)、观感与命中区(render)、把身份接到已写好的工序循环(game-logic 一般只微调)。
- 你调(通用机制):计分
sessionScore· 场景机sceneFsm· UI 原语hudUi· 受控定时timerScheduler· 持久save· 手感gamefeel· 粒子juice· 后处理palettePost· 音频audioMusic· 碰撞/物理collision/physics(全已注入,用到才取)。
详见 .agents/skills/littlejs-game-dev.md(11 插件 API 速查 + ❌→✅ 易犯错)。