lili
|
5cb73a6d82
|
feat(cheap-gen): 阶段一B #4 gamefeel 加 CoyoteTimer/ComboWindow 工厂方法(免 new+传 time)
附A #4:gamefeel 的 CoyoteTimer/ComboWindow 是 class、须 new 且要传受控 TimeSource——AI 拿不到
受控 time、做不出来。加工厂方法 gamefeel.createCoyoteTimer(opts)/createComboWindow(opts):
用 init 时捕获的受控时间源自动注入,AI 直接调、免 new + 免找 time。全链路同改:
- gamefeel/impl.js:init 捕获 ctx.time,加两个工厂方法(new CoyoteTimer/ComboWindow(time,opts))
- gamefeel/api.d.ts:GamefeelPlugin 接口加两个工厂声明
- skill line115:列工厂方法(免 new + 自动注入受控 time);内置 inputBuffer 改 gamefeel.inputBuffer
验证:gamefeel 18/18 + 确定性(init 后工厂可调、返带 isAvailable/hit 的实例)。prompt 不提 gamefeel 故不同改。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
b29a379f9c
|
feat(cheap-gen): 阶段一B #3 collision 几何查询函数挂实例(向母语直觉)
附A #3:collision 实例原只有 spatial,7 个几何查询函数(circleVsCircle/circleVsAabb/
aabbVsAabb/satVsPolygon/raycastCircle/raycastAabb/raycastSegment)仅模块级导出——但 skill:113
本就把它们列在 collision 能力下,AI 直觉 collision.circleVsCircle(...) 取不到=真 gap。
把 7 个纯函数挂上实例(引模块级、不依赖 this),api.d.ts CollisionPlugin 接口同补。skill:113
原措辞现在成真、无需改。验证:collision 16/16 + 确定性(实例 circleVsCircle/aabbVsAabb/raycastAabb
可调且算对)。注:Aabb{x,y,hw,hh} 与 Rect{x,y,w,h} 的几何约定统一(#12)风险高、留后续careful。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
d79e1b9f89
|
feat(cheap-gen): 阶段一B #2+#13 physics 几何挂实例 + ProjectileState px/py→x/y
附A #2:physics 实例原为空 {}、几何运动函数仅模块级导出,AI 直觉 physics.integrateProjectile(...)
取不到。把 6 个运动原语(integrateProjectile/springStep/criticalDamping/moveWithConstraint/
clampSpeed/applyFriction)+ Projectile 类挂上实例(引模块级纯函数,不依赖 this),api.d.ts 接口同补。
附A #13:ProjectileState 位置 px/py → x/y(向母语直觉,与 Vec2/命中矩形的 x/y 统一)。impl/test/
PLUGIN.md 同步(px/py 仅 ProjectileState 字段,replace_all 安全)。
注:physics 当前无 prompt/skill 指引(便宜档 niche、projectile 罕用),本次是完整性 + 正确性
(实例可用 + 字段直觉),不改生成侧行为。验证:physics-lite 16/16 + 确定性(实例 integrateProjectile/
clampSpeed 可调、ProjectileState 返 x/y)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
c6d31c0d81
|
docs(cheap-gen): 阶段一B #15 scene 回调签名钉死(防臆造首参)
附A #15(文档钉死类、非 API 改):scene-fsm 回调表里 update 只收 (dt)、render 只收 (g)
(api.d.ts:38 本就如此),但 prompt/skill 未明示防臆造首参。加钉死:别写 update(scene, dt)
这类场景名/state 首参、与五法同形。prompt.mjs + cheap_roles.py 双源 + skill define footgun 同改。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
bdcd7d472c
|
feat(cheap-gen): 阶段一B #10 juice 加 burst(x,y) 便利方法(向母语直觉)
附A #10:AI 母语直觉是 juice.burst(x,y),旧 API 只有 spawnEmitter('burst',x,y)、burst 仅预设名
——prompt 原本教"particles-juice 没有 burst"当幻觉拦。加 burst(x,y,overrides?) 便利方法委托
spawnEmitter('burst',...) 后,直觉名直接可用。全链路同改:
- particles-juice/impl.js:加 burst(x,y,overrides) 委托 plugin.spawnEmitter('burst',...)(引 plugin 自身不依赖 this)
- particles-juice/api.d.ts:实例接口加 burst 声明
- prompt.mjs + cheap_roles.py 双源:删"particles-juice 没有 burst"(它现在有了)
- skill line116:spawnEmitter 旁注 burst(x,y) 母语别名
验证:particles-juice 18/18(含 burst 别名 spec 等价测试)+ 确定性 burst≡spawnEmitter('burst')
+ [check] PASS(juice.burst 被 API 门认可)+ 双源一致。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
8c361f4a5b
|
feat(cheap-gen): 阶段一B #6 sessionScore 加 add 别名(向母语直觉)
附A #6:AI 母语直觉是 score.add(10),旧 API 只有 addScore——skill 原本把 add 当
幻觉拦(❌ add → ✅ addScore)。改签名加 add 别名后,直觉名直接可用,翻转 skill。
全链路同改:
- session-score/impl.js:加 add(delta) 别名(引 plugin 自身委托 addScore、不依赖 this)
- session-score/api.d.ts:实例接口加 add(delta): number 声明
- skill:line 145 由"❌ add→✅ addScore"翻为"add=addScore 别名直接可用";line 126 方法表注别名
- prompt.mjs/cheap_roles.py 无需同改(它们不提 addScore,仅 skill 提)
验证:session-score 插件测试 7/7(含 add 别名断言)+ 确定性验 add≡addScore + cheap-worker 16/16。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
13126a08ca
|
fix(amodel-gen): API 静态门方法名提取支持泛型声明(治 save.get<T> 被误判不存在)
#5 九门 gen 暴露的正交真 bug:check 的 API-存在静态门用正则
/(?:^|\n)\s*(\w+)\??\s*\(/ 抽 api.d.ts 方法名,遇泛型声明 `get<T = unknown>(`
时 \w+ 后是 `<` 非 `(`、抽不到 `get`,把真实存在(impl + api.d.ts:79 都有)的
save.get 误判"方法名幻觉不存在"→ 误杀一整类带存档持久化的游戏(高分榜等)。
修:两处方法名正则加可选泛型段 (?:<[^>]*>)?(apiMethodSet + apiVoidMethodSet)。
验证:形状门单测 11/11;针对性 check 一段同用 save.get('best',0)+sessionScore.add+
drawButton 的 game-logic → [check] PASS(三者均不再误判)。over-permissive 取向不变。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
dc49f5f866
|
feat(cheap-gen): 阶段一B #5 drawButton 改返命中矩形(黄金首件·治 #1 翻车点根因)
降AI参与·阶段一B 改签名第一处(附A #5)。逐插件改逐插件回归的黄金样板。
drawButton 由返 void 改为回吐它绘制的归一化命中矩形 {x,y,w,h}——AI 的直觉写法
const btn = hudUi.drawButton(g,{x,y,w,h},{label}); if (hudUi.pointInRect(px,py,btn)) 现在就对,
治了 #1 翻车点(drawButton 返 void 误用→变量恒 undefined→命中短路→卡菜单)的根因,而非教绕路。
全链路同改(漏一个造新脏数据):
- hud-ui/impl.js:drawButton 模块函数 + 实例方法回吐归一化矩形 r(g=null 也回吐、绝不 undefined)
- hud-ui/api.d.ts:模块函数 + 实例方法 两处 :void → :Rect + JSDoc
- tools.mjs 形状门:删 drawButton 特例分支(api.d.ts 改后自然掉出 void 名集),
泛化判据留给仍真返 void 的方法(drawText/drawPanel/drawBar/play/flashScreen)
- prompt.mjs/cheap_roles.py(双源)/skill:指引由"返void绝不接"翻为"回吐命中矩形可直接 pointInRect"
- check.test.mjs:drawButton 测试反转(赋值不再拦)+ 链式测改 drawText
- test_roles.py/test_toolkit.py:footgun 断言 + 形状门 drawButton 测试随签名更新
验证(逐插件回归矩阵):
- 形状门单测 11/11(amodel-gen)+ cheap-worker test_roles/test_toolkit 16/16 + hud-ui 19/19
- 确定性 impl 铁证:drawButton 回吐 {x,y,w,h}、g=null 不 undefined、回吐矩形直接 pointInRect 闭环
- 真生成代码(菜单+按钮游戏)用了 drawButton、check 未拦 drawButton,证明 #5 不破坏生成
- 双源 drawButton 文案一致;prompt.mjs node --check + cheap_roles.py py_compile 绿
正交发现(非 #5):该局九门 gen 栽在 save.get() 方法名幻觉(save 插件无 get)——
是另一处方法名摩擦,记为阶段一B 后续/补密度候选,不在 #5 范围。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
62f819ad43
|
docs(cheap-gen): 降AI参与设计收口更新 —— 认领+前置核查已解、执行进度
收口 TODO:① 已认领 plan①(56e9f28e);② 前置核查已做——L2 插件与 tier2 物理隔离
(tier2 用自己 Phaser engine-caps、零 import 便宜档 L2 插件)→ 阶段一B 改 L2 API 无 tier2 回归。
执行进度:✅ 阶段一A 清脏数据(a6a37b1c);下一步据创始人裁定 A 阶段一B改签名/B 数据点/C review。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
f477666f1d
|
docs(plan①): 切片一认领「降AI参与」里程碑(L2 API 母语化 + per-genre 脚手架)
把「便宜档降AI参与」探索结论正式认领进 plan① 切片一(canonical · 创始人 2026-06-29 directed):
- 加里程碑「降AI参与·减摩擦+扩模板覆盖」= 把 3/5 推向 ≥80% 的生成质量地基,喂 M1 达标门
· 减摩擦(小头,26× 含学 API 税):改 L2 签名向母语直觉 + 清脏数据 + 重写形状门判据
· 扩模板覆盖(大头未验):per-genre 脚手架,缩 AI 自由写面 —— 难品类数据点前不敲定范围
- WU 归属:WU-B 实例达标 / WU-C 5.4 能力面契约变更(改 22 处 L2 API)/ WU-F 达标门
- 跨设计面加 L2 API 母语化契约变更 + 设计指针
红线:九门内核不降 / L2 插件库保留(降参与核心载体非税)/ 不动 tier2。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
74a7135746
|
feat(cheap-gen): 便宜档降AI参与 设计落仓 + 阶段一A 清脏数据(治传导断裂)
探索会话诊断+设计(Codex+Opus 双评审、证据驱动重定位),认领进 plan① 切片一里程碑。
落仓产物:
- 动因 evidence(母语vs方言:M3 不弱、便宜档现状方言产同款要 ~26× token)
- 方向设计(降AI参与=减摩擦[小头]+扩模板覆盖[大头未验];附A 22处摩擦/15可改签名清单)
- tech-decisions §5.1 + agent-specs/_index 蒸馏
阶段一A 清脏数据 + 文档治理锚(prompt.mjs + cheap_roles.py 双源 + skill 三文件):
- 治"传导断裂"根因:植入定位锚——便宜档=AI参与深度低的高质游戏(轻量≠简单),
复杂度靠工程脚手架+L2 插件库、少写多调;"极小/最小游戏「点圆得分」"重框成
"脚手架起点、借插件能力改造成高质游戏"
- collision.pointInRect(不存在)收敛 hudUi、删干净
- 漂移范例 catch-fruit/wanglanmei(旧 opts 签名)→ _template(唯一匹配现契约)
- 插件数口径统一"注入 11 + runtime-probe 取证不注入"
验证:prompt.mjs node --check + cheap_roles.py py_compile 绿;九门复验跑一局打地鼠
(历史翻车品类)attempts=1、verdict.pass、failedGates=[]、¥0.95——清脏数据未破坏生成。
核心结论(创始人确认):便宜档≠简单游戏;L2 插件库是降AI参与核心载体非税;
"换母语扔插件"=升参与、与策略相反,已推翻。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
1152f0d0d4
|
docs(studio): A11 切片三全闭环 —— 受计费真后端 e2e 跑通
受计费 e2e 在 mini-desktop 隔离实例(:48090 + worker :9502,不碰 live)跑通:
- 三件硬证据全坐实:① 三断言/modifyManifest 落库(ROUND_MS 30000→18000 found / behavior changed+untouchedStable)
② D12 计费(regenerate cost.totalRmb=0.307 / deterministic 零LLM cost=0,均经配额门)
③ 血缘(game_source_project v93145→v93146/47/48 base_version_id=93145)
- 判意图分类正确(config/deterministic vs behavior/regenerate-module)、两档执行九门全过
- 抓修 1 阻断性真 seam bug(gameId int→str,a40823b1)
切片三 A11:设计 → 双评审 → M1-M5 执行 → 受计费真后端 e2e,端到端闭环。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
0465471ef4
|
fix(cheap-worker): 真后端 gameId int→str 归一化(治便宜档经真后端全失败的阻断 bug)
A11 受计费真后端 e2e(mini-desktop 隔离实例)抓到的阻断性 seam bug:
后端 gameId 是 Java Long → JSON number → Python int;worker 直传 cheap_run 的
subprocess shell-out(scaffold/build/stage/smoke/play 要求 str)→ TypeError(expected str, not int)
→ scaffold 失败 → 静默归 llm_error → 便宜档经真后端 generate/modify 全部失败。
本机单测用 str gameId 没暴露;真后端 Java int gameId 才触发(e2e 的价值)。
修:_default_run_fn / _process_modify_job / _process_regenerate_job 三处 job 消费边界
归一 game_id=str(...)(str("x")=no-op,既有零影响)。e2e 重跑后全链路成功。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
zizi
|
6998de77f3
|
docs(agents): 蒸馏 tier2 服务态生成配方 + 收敛根因(§7)
本 session 服务化实测的可复用产出写回权威源:新增 skill tier2-service-generation——
★收敛头号杠杆=真玩 driver(没 driver→F_wiring 挂+富游戏门 None+agent thrash 的假性不收敛;
默认 business-sim play_spec 通用修复·007 现成游戏带 driver 重跑 accept 全绿坐实;诊断口诀=九门前几道绿
+F_wiring 挂+富游戏门 None→查 driver 别怪生成,None≠False)+ 驱动 create_app 六集成口径(凭据 data 嵌套/
chat content 块列表/Toolkit.tool_groups 抠九工具/BYPASS+query agent_id/设计阶段接入/SSE read 超时防挂死)
+ 控制面有界 resume + C1 trace 字段口径。README skills 索引同步登记。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-29 11:40:57 +00:00 |
|
lili
|
9ac0e860d1
|
docs(gen-engine): A11 切片三收口蒸馏 —— 回写 plan① + 设计面入运行时 SoT §六
收口 TODO①②(创始人 2026-06-29):
- 回写 plan① 切片三:确定性覆写定性精化(执行仍零 LLM、但 A11 经判意图两段式到达、
非直接覆写;落点对齐工程规范性)+ 后续细化标记已执行(M1-M5 代码完成、6 提交)
- A11 设计面蒸馏入运行时 SoT:新增 §六 调整回路(试玩后纠错)——两段式判意图/工程规范性改一处/
两档执行/三断言,散文设计面(兑现 plan① TODO⑥ "A11 无 §5.x facet 专节");§三 A11 行状态更新为
便宜档代码完成
- .agents/knowledge/tech-decisions §1.2 A11 调整回路简洁蒸馏(指向 §六 + 细化 plan)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-29 03:08:06 -07:00 |
|
lili
|
5a9b608c56
|
docs(studio): A11 切片三收口 —— M1-M5 代码完成、受计费 e2e 排部署窗口
更新 plan 状态:M1-M5 代码全完成 + 本机逐段一手验证 + 5 里程碑提交;
唯一剩项 = 受计费真后端 e2e(创始人 2026-06-29 定 B:排部署窗口、不现在动 live 栈,
需 push + 部署 A11 到 mini-desktop 经真后端验三断言+D12计费+血缘)。
收口 TODO:回写 plan① 行 148 定性 / 设计面蒸馏 docs-architecture+.agents / extend+A2A暂停留后期。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-29 02:51:26 -07:00 |
|
lili
|
9a6feddfee
|
feat(studio): A11 切片三 M5 三结构断言机器门(改对了没/有没有误伤/血缘可查)
九门只验"仍能玩",验不出"改对了没、有没有误伤";三断言补这层(plan① 线 154)。
cheap_assert.py:
- ① change_applied:改动真生效非 no-op(deterministic=manifest found 且 old≠new / regenerate=changed)
- ② nontarget_stable:base→new 真比对算内容差,非目标文件变=误伤——不信执行器自报标记,
防执行器 bug 自证(兑现 Opus 评审 P1-2)
- ③ lineage_queryable:baseVersionId 在(worker 侧验必要条件,DB 真可查由 M1 回填 + 后端 e2e)
- three_assertions 合并 verdict
集成进 execute_*:两档加 base_version_id 参 + 附 assertions verdict + 收紧 status
(succeeded ⟺ 九门 ∧ ① ∧ ②;regenerate 原漏判 ①changed 已补);worker 透传 modify.baseVersionId。
测试:test_a11_m5_assertions 12/12 + 全 85 测试独立复跑全绿(含 M3/M4 桩接 kwarg)。
集成端到端 smoke(真九门):ROUND_MS 30000→19000 + baseVersionId=4096
→ status=succeeded、a1/a2/a3 全 true、allPass=true、落盘 19000。
受计费真后端 e2e(经 studio→aigc→worker→回调→新版本+D12计费+血缘)待 mini-desktop 全栈。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-29 02:34:06 -07:00 |
|
lili
|
14c79dbfdd
|
feat(studio): A11 切片三 M4 模块重生成执行(有界单文件 LLM 重写 game-logic.js)
两段式第二段的 regenerate-module 类:改玩法 = 据 intent 有界重写 game-logic.js,不动其余。
复用机制(参数化、不复制 resume/熔断/收口):
- cheap_studio.run_studio 加 4 个默认 None 可选参(system_prompt/initial_kick/write_whitelist/prepare)
切到 modify 态,create 路零行为变化(params=None 等价原逻辑)
- cheap_toolkit.build_toolkit 加 write_whitelist(非白名单 basename 写直接拒)
- cheap_roles.build_modify_system_prompt(复用 create 红线契约块)
cheap_modify.execute_regenerate_modify:
- 取 intent(空→failed)→ materialize base 源 → 重写前后对非目标文件算 hash
- 有界重写(写边界收窄到只 game-logic.js)→ 九门
- status=succeeded ⟺ 九门过 ∧ 非目标稳;manifest{file,kind:behavior,intent,changed,untouchedStable}(断言②地基)
worker_service._process_regenerate_job(regen_fn):把 M3 的 regenerate-module 显式 failed 占位换成真执行;
deterministic/create/生成路一字未动。
测试:test_a11_m4_regenerate 10/10(全注入桩零 LLM)+ 全回归独立复跑 73 测试全绿。
一次真 LLM smoke(单跑):intent=连击递增 → status=succeeded、untouchedStable=True、九门 pass、
attempts=1、¥0.31、137s;独立 diff 佐证 5 非目标文件字节相同、仅 game-logic.js 变。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-29 02:16:22 -07:00 |
|
lili
|
51230f1347
|
feat(studio): A11 切片三 M3 确定性类执行(零 LLM 改规范工程一处→重建→九门)
两段式第二段的 deterministic 类:用户确认后的改动落到规范工程那一处,零 LLM。
cheap_modify.py:
- apply_deterministic_modify:config/level→core.js 等 L3 的 export const 值替换;
asset→assets.js IMAGE_FILES 键值或 baseUrl;no-op 检测(无 found&&old≠new→ok=false,M5 断言①地基)
- materialize_source_project:系统级落盘全 files(含 L1,绕 write_file 的 L1 守卫)
- execute_deterministic_modify:apply→(缺 plumbing 才 scaffold)→materialize→cheap_run build/stage/smoke/play 九门
worker_service.py:
- process_job 最前 modify 分流(_process_modify_job);deterministic 走执行 + manifest 进 trace.modifyManifest
+ best-effort 带新版 sourceProject(链式改);regenerate-module 显式 failed 留 M4;create/生成路一字未动
测试:test_a11_m3_deterministic 18/18 + 回归全绿。
九门 smoke(独立复跑,本机 Chrome 免 LLM):amgen-bake-click-score-0 base 源 → ROUND_MS 30000→19000
→ status=succeeded、verdictPass=true、manifest found=true、落盘 core.js=19000、运行时 remainMs=19000
(改的那一处真在游戏里生效并过九门)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-29 01:49:10 -07:00 |
|
lili
|
938219d7a5
|
feat(studio): A11 切片三 M2 判意图入口 Java 侧(studio→aigc→worker)
两段式第一段的后端承接:用户原话进系统、判意图、返建议供前端确认(确认后才调 /modify 执行)。
契约先行:
- studio.yaml 新增 POST /app-api/studio/modify/plan + StudioModifyPlanReqVO/RespVO
studio(应用面):
- AppStudioController.planModify;StudioServiceImpl.planModify =
validateCreator 白名单门(与既有 createDraft/generate/modify 一致)+ 归属校验防越权
+ 委托 aigc classifyModify + 异常/空兜底 unclear
aigc(worker 对接):
- AigcApi.classifyModify + AigcModifyProposalDTO
- WorkerClassifyClient:据 baseVersionId 反查 base 源(同 injectBaseSourceProject seam)
→ NO_PROXY JDK HttpClient POST worker /classify → best-effort 兜底 unclear+needsConfirm
- AigcApiImpl 软注入 ObjectProvider<WorkerClassifyClient>(executor 关闭时缺席→兜底,
绝不因 Bean 缺席启动失败,镜像 WorkerDispatchClient);worker URL 尾段 /generate→/classify
测试:StudioServiceImpl 31/31 + WorkerClassifyClient 10/10 + AigcApiImpl 2/2,
本地 maven 独立复跑 43/43 绿、BUILD SUCCESS,既有 modify/generate/SAA 回归零破坏。
真连 worker 的判意图 e2e 待 M5(mini-desktop)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-29 01:22:24 -07:00 |
|
lili
|
fc782db08b
|
feat(studio): A11 切片三 M1 前置基座 + M2 worker 判意图
M1 前置基座(便宜档源回传落库链 + base 源注入 + 血缘):
- derive_profile 兑现(便宜档基线 profile{realtime,discrete-choice,metric})解锁 sourceProject 回传
- worker parse_modify 提取 modify 区(mode/baseVersionId/modifyPatch/sourceProject)
- executor 据 baseVersionId 反查注入 base 源到 HTTP job(镜像 SaaGraphDispatcher.resolveBaseSourceProject)
- 回调落源回填 base_version_id 血缘(landSourceQuietly)
M2 worker 判意图(两段式第一段,NL→建议改动+风险):
- cheap_classify 把用户原话 + base 源可改面(assets.js 资产清单/core.js 集中数值/game-logic 玩法)
判成 {category,mode,target,payload,riskLevel,needsConfirm,clarify}
- mode×category 锁定(LLM 给的 mode 不采信)+ 危险回问硬编进 needsConfirm(只低风险确定性改免确认)
- worker /classify 同步端点(不入生成队列、不起 Chrome)
测试:Python test_a11_m1 5/5 + test_a11_m2_classify 9/9 + 回归全绿;
Java 执行器/回调/源服务 + SAA 回归(本地 maven 独立复跑 46 + 子代理 98)全绿。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-29 01:04:55 -07:00 |
|
lili
|
bc1efb26d8
|
docs(tier2): 纠正 U5 退路层 —— win-balance 在 agent 层非工具层(创始人纠正)
经济/数值平衡是 agent 玩法职责,基础工具层做静态模板/补骨架治不了(静态验证调不动动态平衡 +
每游戏数值会改、预制浪费)。真杠杆 = verdict 反馈质量(让 M3 像 spike 自调平衡)+ 模型能力(换档)。
撤回工具层加固 + 精确率测量(率随 agent 演进会变)。go/no-go=conditional,卡 agent 层、随其演进改善。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-28 21:05:22 -07:00 |
|
lili
|
55a213e722
|
docs(tier2): 切片二 U5 收敛环 go/no-go 结论 = conditional go(留观+针对性加固)
真跑(M3-only,chrome 泄漏修后 iso 逐款):M3 写得出结构完整多系统富游戏(过大多数九门+三联动/latch),
但收敛 run-dependent(随机)、confounded pass 率 ~1-2/5;失败集中「进度/经济平衡门」
(H_progress + 经济门 profitPathWin)。退路 = win-balance 模板化/补骨架(非换档,M3 有能力)。
第二 confound(live worker:9501/@8200 争 4 核)未除,真率需暂停 live 干净跑测。
非 no-go(能过全门)、非干净 go(收敛太不稳)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-28 20:10:53 -07:00 |
|
lili
|
8d4654ab63
|
fix(tier2): serve-and-play chrome cleanup 杀整树(治泄漏)+ 切片二 U5 执行发现
chrome 泄漏根因:cleanup() 只 kill $CHROME_PID(父)→ renderer/gpu 子进程 reparent 给 init 成孤儿、
跨款累积(实测 U5 Round1 撞 wall_timeout、杀批组仍残留)。修=cleanup 加 pkill -f "$USER_DATA_DIR"
杀本实例整棵 chrome 树(user-data-dir mktemp 唯一、不误伤别的 chrome/live worker)。
plan 执行发现:① env 闸缺口(fresh worktree 无 node_modules/esbuild → build 失败 → M3 假性不收敛,
已补 U1 S0 + Risks);② M3 已证能收敛(smoke 面包+水果 clean accept、九门全过);
③ U5 Round1 被 confound(chrome 泄漏 + live worker:9501/@8200 争 4 核)、需隔离干净重跑。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-28 16:54:17 -07:00 |
|
lili
|
eed34d0a32
|
feat(tier2): 切片二 U2/U3/U4 本机 TDD 全绿(护栏/退路树 n=5/play-scene 门结构化)
U2 batch_run:BatchConfig 批级 ¥/墙钟/token 上限 + assert_under_round_cap 跨轮闸 +
main() catch 非0退出(fail-closed,已跑款不丢)。
U3 fallback_tree:decide_n5(覆写 decide() 非包装——decide() 无 deepseek 强便宜档即 Q1 早退吞 M3;
收敛需末轮≤1 且≥2轮压首轮裸运气;R1/R2 复用 _system_concentrated/_bucket_share;R3_conditional 无强档;
len>4 拒裁)+ --n5 CLI 入口。
U4 run.py:validate_play_scene 公开签名不变,抽 validate_play_scene_src(src) 在剥注释+字符串的 skel 上判
bindInput/tick/handleNormalizedInput,挡注释/字符串规避假过。
测试:fallback_tree 自测 +9 / test_batch_guardrails 3 / test_validate_play_scene 4,全绿。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-28 08:59:29 -07:00 |
|
lili
|
4f444e0ca0
|
docs(tier2): 切片二 n=5 收敛环 go/no-go 细化执行 plan(Codex+Opus 双评审收口)
plan① 切片二的可跑 runbook 细化:U1 前置阻断(复现 smoke+反向 smoke+DockerWorkspace 小验)/
U2 批级+跨轮护栏 fail-closed / U3 退路树 n=5 适配 / U4 play-scene 门结构化 / U5 跑环+go/no-go。
执行决策(创始人):串行+M3-only;n=5 绝不 n≥30。§6.8 双评审 19 项发现全核验、全文档内修。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-28 08:59:29 -07:00 |
|
lili
|
fb1149f189
|
docs(mvp): 进度总账同步切片一 M3 Node 退役 go-live 完成线(消歧:≠账本 M3 分发)
M2 创作链路行 + §0 现状 + 头部:便宜档切片一 M1-M3 + 生产 cutover(2026-06-28 创始人「同意切」)——live :48080 退 Node/gamedef、上 Python(AgentScope)路 dispatcher=http→worker+trace,9d trace parity 救活 D11(真后端三值 28/45/100),D9 parity;commit d00938cc/16112827/7f8a418c。
诚实 gate:M3「≥80% 生产真实分布达标」未到=便宜档生成质量(WU-B/C/F,U4 真 gen 没过九门);对外开闸放量待放行决策。消歧铁律:此 M3=切片一(生成线)M3,≠ 账本 M0-M5 的「M3 分发链路」(发布/feed)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-28 04:52:12 -07:00 |
|
lili
|
7f8a418cb5
|
docs(cheap-worker): M3 生产 cutover 完成 — Node/gamedef 退役 go-live、live 跑 Python M3 路(切片一 M3)
live :48080 端口精确从 6-21 旧 gamedef jar 换成 6-28 M3 jar(dev/2.0.0)+ dispatcher=http→worker:9501 + trace.enabled;boot 日志「生成派发通道选定 dispatcher=http=WorkerDispatchClient」坐实 Node/gamedef 旧路在 live 退役。拆 iso :48090 避 live+iso 双 executor 同 DB split-brain。最终拓扑=live :48080(M3 路)+ worker :9501,同 DB。control-plane 6门放量创始人定后单独开。
M3 剩(非 cutover 工程缺口):≥80% 生产真实分布达标复验(质量轨 WU-B/C/F)+ 对外开闸放量(放行决策)+ publish→feed→玩家真玩(产品轨移交边界)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-28 04:46:09 -07:00 |
|
lili
|
16112827da
|
docs(cheap-worker): M3b U6 收口 — 执行发现 + trace parity 蒸馏(切片一 M3b)
plan close-out:U4/U5 mini-desktop 真后端 e2e —— D11 三值判别坐实(失败 gen 28 / 退化态 45 / 注入真 bundle 成功 100),9d trace 七项 + D9 similarity 真落库、engineBundle 落可发布预览包,live :48080 全程未动。边界:publish→feed→玩家真玩 属产品/审核台轨(auth + REVIEWING),非生成线 M3b。
.agents 蒸馏:gen-path-parity-harness skill 加「换 worker 别静默退化 D11/D9」段(必填七项 + gatespec.driver 键名坑 + H_progress 嵌套 + repairs=max(0,attempts-1);D11 退化判别双峰 45/55 + 逐维断言反假绿非看区间;import 边界 tier2≠wg1 故 trace 手写镜像 + dedup vendor;两路都落 trace;玩家试玩需 published)。README 索引同步。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-28 04:12:02 -07:00 |
|
lili
|
d00938ccbd
|
feat(cheap-worker): M3b 本机 U1-U3 — 9d trace parity 救活 D11 + D9 vendored + 跨语言反假绿门(切片一 M3b)
便宜档生成切到 cheap-worker 新路后,result_out 只产 trace.cost、缺 9d trace 七项,致后端 D11 ReadinessScorer 三维恒中性、退化成 45/55 双峰近恒定分,D9 反同质失效。
U1 cheap_studio 富化:build_trace_source + _furthest_stage,additive 捕获 verdictFull/driverType/models/stage。U2 result_out._build_trace:七项(repairs=max(0,attempts-1))+ sevenGateVerdict{pass,guards} + gatespec{driver} + cost + similarity,camelCase 镜像 _extract_trace、None 容错。U3 D9 dedup vendored 进 cheap-worker/dedup.py(registry 指自己 results/)、worker_service 接线非阻断。
Java 跨语言切片测加逐维反假绿门(反射调真 ReadinessScorer:三维脱离中性 + 合成分 100 vs 退化 ≤55 拉开 ≥35)。顺带修预存 M3a 红测:worker 异常兜底 failureReason 改传真枚举 llm_error。
验证:cheap-worker 全 16 测绿 + Java 切片 5/5 绿 BUILD SUCCESS。范围仅 cheap-worker/ + 2 fixture + 1 Java 测 + plan,零 live 触碰。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-28 02:17:41 -07:00 |
|
lili
|
a327c9913e
|
fix(m3a): result-out failureReason 对齐后端 FailureReasonEnum 真七值(catch-all=llm_error)
mini-desktop 真 e2e 部署收口抓到的契约 bug:result_out 七值集用了 content_violation/
budget_exceeded/generation_failed 三个不在 FailureReasonEnum 内的值、catch-all 用无效的
generation_failed → worker 失败回调被后端 DifyCallbackTxService.isValidFailureReason 拒
(「failureReason 不在契约#6 七值枚举内」)、回调事务回滚、任务未转终态。
修:七值集对齐 FailureReasonEnum(unsafe_prompt/intent_unclear/no_template_match/
config_invalid/llm_error/timeout/asset_gen_failed);catch-all=llm_error(SaaGraphDispatcher 同口径)。
Java slice test 原只测成功路 validateSucceededPayload、漏测失败路 failureReason 校验故没抓到 →
改为反射调后端真 isValidFailureReason(就是它拒了 generation_failed),本地即可守此 bug 类。
验证:Python result_out 13/13 + Java slice 4/4 本地绿;待 mini-desktop 重部署真 e2e 复验。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 22:06:50 -07:00 |
|
lili
|
847089b541
|
feat(m3a): 便宜档 Node 退役机制 U1-U4 本机交付(Python §6.1 worker + 后端路由契约/A2A/幂等)
M3a 退役机制 plan 经 Codex+Opus 双评审(needs-rework)→ 按创始人 A(全局 dispatcher
flag 整体翻转、不做 per-request 灰度)重写 → Opus 复审 minor-fixes → 发现项全数修复。
U1 Python §6.1 HTTP worker(cheap-worker/worker_service.py + result_out.py):
202 投递握手 + 有界串行队列(治串行 worker 忙 409 误判)+ 三字段 result-out
(gameConfig 占位 / engineBundle 承重含 __GameBundle / sourceProject best-effort 2.0)
+ HMAC 回调。27 单测 + 真生成 e2e 过九门 + 真网络回调。
U2 跨语言契约 slice test(CheapWorkerResultOutContractTest):反射调真
validateSucceededPayload 过薄校验 + 真 CallbackSignatureVerifier HMAC。
U3 A2A 状态(additive):AigcTaskStatusEnum.toA2aStatus + app VO/RPC DTO a2aStatus
字段(保留数字 status 不破坏调用方)+ Convert/ApiImpl backfill + 契约 aigc.yaml。
U4 创作请求级幂等(行业标准 idempotency):DO idempotencyKey + Flyway V26
(列+唯一索引,NULL 多值=不去重)+ Mapper selectByIdempotency + submitGenerate dedup。
真验证抓到并修 2 个真 bug:① worker 回调走系统代理被 fake-ip 拦 502 → 禁代理 opener;
② result-out 顶层 costRmb 不在 DifyCallbackReqVO 字段内、后端严格拒未知 → 落 trace.cost。
验证:Python 27 测 + Java 21 测全绿(mvn BUILD SUCCESS)。
剩余 U2 真派发 / U4 真 DB / U5 待 mini-desktop 真部署。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 21:18:28 -07:00 |
|
lili
|
afb0705078
|
docs: M2 完整收口 — WU-C 5.4 阻塞已修、Node 退役授权三条齐 authorized=True
承 ffe3a5c9(单数 target 契约漂移修复):复验 auto-vs-golden 三品类全 aligned
(退化款 avg-click-score-14 auto 0.667→1.0)→ retire_authorization 三条齐
M1✓+002✓+auto-vs-golden✓ → authorized=True。便宜档具备把默认路由切到 Python
的全部条件(真接线 M3)。
M2 全程没放水:门诚实卡住生成缺陷、修后如实转绿,证伪评审「字段同质恒过无
鉴别力」预判。同步 M2 plan 收口结论/status + parity skill M2 实证。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 10:55:38 -07:00 |
|
lili
|
ffe3a5c993
|
fix(WU-C 5.4): tap-targets harness 认单数/可空 target — 解 M2 Node 退役阻塞
M2 auto-vs-golden 门抓到的生成契约漂移修复(Codex 实现 + 主代理诊断/受控验证)。
根因:~20% click-score 款 _forensicsView 暴露单数 target(对象、菜单态为 null)
而非复数 targets(数组),tap-targets harness 只认复数数组:① _build_play_spec
推断漏判→误推 key-cycle;② 驱动器 targetsPath 找不到单数 target。
两处修(认两种合法形态、既有数组行为零变):
- cheap_run.py:_build_play_spec 以【键存在性】判 tap-targets(targets/target 键
在即可,菜单态 null/空数组仍归 tap-targets)——非值类型(空数组过/null 不过的
非对称是漏判根因)。
- play.cdp.cjs:runTapTargets 取值非数组时回退读单数 target、包成 1 元素数组。
验证:退化款 avg-click-score-14 auto 路 E_live/G_input/H_progress 0.667→1.0
(3/3 确定性复现);test_ensure_play_spec 8→13 绿。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 10:41:16 -07:00 |
|
lili
|
3d64129d8e
|
chore: gitignore M2 avg-* 批跑产物 + README 索引补 auto-vs-golden 门
avg- 前缀的 auto-vs-golden 同款双驱动批跑产物(可重生成、不入库),遵既有
「专一不笼统」。README parity skill 索引扩到含 auto-vs-golden 同款双驱动 delta 门。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 09:44:06 -07:00 |
|
lili
|
e963db3a34
|
docs: M2 收口 — auto-vs-golden 门抓到单数 target 契约漂移 + 蒸馏(WU-C 5.4 阻塞)
M2 机制全交付(U1-U3 门 + R5 灰度设计、全套件 106 测绿)。full 批 n=5:
whack-mole/shop-serve aligned、click-score regressed(E_live/G_input auto 0.8<
golden 1.0,3 次复跑确定性复现)。retire_authorization 三条:M1✓+002✓+
auto-vs-golden✗ → authorized=False。
根因(systematic-debugging 定位)= 生成契约漂移:~20% click-score 款 forensics
暴露单数 target(对象)而非复数 targets(数组),_build_play_spec 推断漏判→误推
key-cycle + tap-targets 驱动器 targetsPath 找不到。门正确履职(证伪评审「恒过」
预测)、退役授权诚实卡住。创始人定:收口 M2 机制 + 登记 WU-C 5.4 阻塞(修后转绿)。
蒸馏:auto-vs-golden 同款双驱动 delta 门范式 + 单数 target 契约漂移实证 →
gen-path-parity-harness.md;M2 收口结论 + WU-C 5.4 阻塞 → M2 plan。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 09:42:13 -07:00 |
|
lili
|
8038109ce8
|
feat(cheap-worker): 同游戏双驱动 play 编排 + auto-vs-golden 批跑(M2 U2)
run_pair_dual_sync:同一份 staged src/ 上先自动 spec(ensure_play_spec)、后金标
(inject_golden)各 play 一次,取两组逐门 verdict——隔离生成方差、只暴露驱动器差。
编排序 gen-only→smoke→断言 staged 无残留 spec→ensure→play(auto)→inject→play
(golden);auto_gates 在金标注入前捕获。run_batch 端口池+线程前台有界并发(≤15
夹取、复用 bake_off._clamp_conc)、报告 auto-vs-golden-<idx>.json 不覆盖。
mock 编排单测(调用序 + auto 先于 golden + no-spec 守卫)20/20 全绿。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 08:47:13 -07:00 |
|
lili
|
dd0d1cc224
|
feat(cheap-worker): Node 退役授权三条齐判定 retire_authorization(M2 U3)
读三份既有落盘报告聚合:① M1 达标(bake-off-M1-final.json overallMeets)
② 002 对照等价(compare-multi-002-final.json summary.equivalentGenres ⊇ 三品类)
③ M2 auto-vs-golden(meets)。三条全绿→authorized;任一 False/报告缺失/字段类型
不符→未授权并列明欠项(不静默当通过)。纯函数零 LLM 零真跑。单测 17/17。
真切路由/D12 扣退在 M3。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 08:43:58 -07:00 |
|
lili
|
423b0b6df3
|
feat(cheap-worker): auto-vs-golden 逐门 delta 判据 + double-low 守卫(M2 U1)
按品类逐门比 auto 过门率 vs golden 过门率,关键门 {E_live,H_progress,G_input}
容差 0(delta≥0)、其余门容差 -1/N。方向单边查「自动不比金标驱得差」(delta<0
退化),非查更松。double-low 守卫:关键门两路都 <0.5 → inconclusive(红),防
delta=0 假象(承 compare_node.doubleLowRed 同源风险)。aggregate_delta 三品类
全 aligned 才整体 meets、卡死品类不被平均掩盖。纯逻辑零 LLM。单测 11/11。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 08:41:46 -07:00 |
|
lili
|
3ec36037b6
|
docs(plans): 便宜档 M2 上线就绪细化 plan — auto-vs-golden 门 + Node 退役授权(过双评审)
主线切片一第二里程碑 M2 细化 plan(承 M1 003 收口)。创始人 2026-06-27 定范围
=聚焦本机可执行的 auto-vs-golden delta 门;灰度切换基础设施只出设计、真接线随
M3。三单元:U1 逐门 delta 判据(关键门容差 0/其余 1/N + double-low 守卫)、
U2 同游戏双驱动 play(同款产物自动 spec vs 金标 spec 各 play 一次、隔离生成方差)、
U3 三条齐退役授权判定(读 M1 达标 + 002 等价 + auto-vs-golden)+ R5 灰度设计。
双评审(§6.8):Opus 对抗评审权威,1 MAJOR + 6 MINOR 全在档内修;Codex 实跑
但读完 plan① 后停半途未产汇总(回落 Opus 单评),其方向性发现已纳入。创始人定
门定性=建全门 + 诚实降权:门方向按 plan① 单边查「自动不比金标驱得差」(非查更松),
覆盖面内鉴别力诚实降为「不退化确认」、退役实质支撑=M1+002。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 08:24:26 -07:00 |
|
lili
|
ddf69d1628
|
chore: gitignore M1 bake-off + 代表样本/校验重生成游戏产物
bake-off 批跑与 base/vf/v2/smoke 重生成产物(~70 个目录、各~312K)纯属可重
生成的本地证据、长期污染 git status。遵既有「专一不笼统」:只忽略已知生成
前缀(amgen-bake-*/_wg1-gen/bake-*/base[0-9]*/vf-*/v2-*/smoke*),已跟踪参考
游戏(angrybirds/breakout/t2048/whack/_shared/_goldenpath-*)不以这些前缀
开头、零误伤(git ls-files -i 核实为空)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 07:47:47 -07:00 |
|
lili
|
e898d8602a
|
docs(.agents): 蒸馏 M1 达标门质量口径铁律回 parity skill(M1 收口)
gen-path-parity-harness.md 加「达标门口径:质量地板 vs 生产真实交付率」节
——编排未收敛(timeout/step_cap、无 verdict)与九门质量挂性质不同,必须剔出
达标率分母、单列归编排硬化,rawPassRate 并报贴近生产交付率(创始人 2026-06-27
定)。M1 实证:同批 14 款 click-score 原始 0.786 vs 质量 0.917 之差全在 2 个
未收敛款,口径决定收口。配套点到 U1 护栏(返 void API 语义盲区)+ U4 预算闸
(¥10 fail-closed)要点。frontmatter description + README 索引同步扩范围。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 07:33:27 -07:00 |
|
lili
|
aaa9461bd9
|
feat(cheap-worker): bake-off 达标门改质量口径 + 编排未收敛单列(M1 U3 收口)
创始人 2026-06-27 定:达标门只衡量九门质量地板,编排未收敛(M3 撞
timeout/step_cap、无 verdict)剔出达标率分母、单列 unconvergedTotal 归 M2
编排硬化。judge_genre 分母改 converged 款,rawPassRate 并报(贴近生产真实
交付率、不作判据);converged==0 → insufficient。
实测合并 14 款 click-score(batch2 满21 + batch3 补7 offset7):质量
11/12=0.917 达标(原始 0.786,2 款未收敛=timeout+step_cap),whack-mole
7/7=1.0、shop-serve 6/7=0.857 → M1 三品类全过 ≥0.8、达标门绿。
bake_off 单测 12→14(加未收敛剔除 + unconvergedTotal 汇总);全套件 86 绿。
M1 合并收口报告 → cheap-worker/results/bake-off-M1-final.json(results gitignored)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 07:30:53 -07:00 |
|
lili
|
452d2f2642
|
feat(cheap-worker): bake-off 加 --offset 支持补跑不覆盖既有批(M1 U3)
补跑 click-score(确认满批 5/7 是否抖动)需 gid 从 offset 起、不覆盖 bake-<key>-0..6;
run_bakeoff 加 offset 参数,gid=bake-<key>-<offset+k>。单测 11/11 仍绿。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 07:00:01 -07:00 |
|
lili
|
0d582b2956
|
feat(cheap-worker): ≥80% 达标门 bake-off 骨架 + 聚合判定单测(M1 U3)
新建 bake_off.py:tap-targets 三品类各 n 款 run_studio(run_gates=True)生成→自动 spec
驱动九门→取 verdict.pass,按品类聚合 pass_count/total、逐品类 ≥0.8 判达标;任一品类缺样本
报覆盖不足、任一 <0.8 整体未达标(绝不总体平均掩盖卡死品类)。判定纯走确定性九门 verdict.pass、
零 LLM。真跑复用 compare_node 端口池+线程前台有界并发(conc≤15)、gameId 品类前缀隔离、报告不覆盖。
验证:test_bake_off.py 11/11(判定 meets/below/insufficient/边界0.8 + 假绿防护不被平均 +
覆盖不足 + 上限夹取 + 零LLM确定性)。20 款 M3 达标门真跑(收口硬判据)待执行。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 04:47:14 -07:00 |
|
lili
|
6f69167d97
|
feat(cheap-worker): 自动 play-spec 加厚到金标同质 + 防自证(M1 U2)
ensure_play_spec 的 tap-targets occupied 族补 expectedEngineCallPrefixes,让生产自动
spec 的 F_wiring 从「宽松过(只验有调用)」升到「验调了正确 L2 插件」、达金标同质。期望取
自预置常量 _TAP_TARGETS_CALL_PREFIXES(外生 held 期望,对齐三份金标 fixtures),绝不从
该局实际 __engineCalls 反推——否则 F_wiring 退化自证、必过、假绿。key-cycle 族保持薄版
(待输入键契约 WU-C 5.4)。spec 构造抽 _build_play_spec 纯函数便于单测。
验证:test_ensure_play_spec.py 8/8(与三份金标逐字段一致 + 防自证外生恒定 + key-cycle
薄版 + 已存在不覆盖);auto-vs-golden 真跑 delta=0(打地鼠自动 spec 驱动 vs 金标 9 门全
一致,F_wiring 在自动 spec 下真验语义期望仍过)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 04:40:04 -07:00 |
|
lili
|
7dffe6b2c1
|
feat(cheap-worker): 便宜档预算闸 <¥10 fail-closed 接线 + 成本落盘(M1 U4)
开 CircuitBreakerMiddleware 的 ¥ 累进硬闸(enable_rmb_gate=True)+ 设便宜档专属 ¥10 硬
上限(区别 tier2 ¥3);on_model_call 发起前预估、越线 fail-closed 抛 Tier2CircuitBreak
(budget);取价不可达由 _ensure_pricing 降级次数闸(既有行为,不静默超支/阻断)。run-summary
补 costRmb(breaker.spent_rmb 同 new-api quota 折价口径)/ rmbGate(active|degraded)/
tokens(usage_sum)。
验证:test_budget_gate.py 6/6(¥10 fail-closed / 正常不拦 / 边界 / 降级放行 / 开关旁路 /
¥10 与 tier2 隔离);真跑一款打地鼠成本落盘 costRmb=1.1373<¥10、rmbGate=active、tokens 462642。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 02:01:20 -07:00 |
|
lili
|
6b334ff738
|
feat(amodel-gen): 形状门泛化到全 void 方法返回值误用 + 防回归单测(M1 U1)
KTD2 实证现有形状门已接住 base2/base3 两类已知幻觉(check 跑两款各 FAIL 于唯一形状门
错误;翻车产物早于形状门落地 3.5h),据此把形状门①从硬编码 drawButton 泛化为
apiVoidMethodSet 全 void 方法的赋值/链式返回值消费检测,②补 define 数组批量变体。形态
收窄到赋值/链式——base1/4/5 合法 void 调用(独立语句 / if(guard)call() 防御写法)实证
零误杀;条件/参数形态会误杀防御写法,移交 WU-C 5.4。判定抽 _shapeGateErrors 便于单测。
验证:check.test.mjs 11/11(靶子 catch + 泛化4方法 + 链式 + 零误杀6类);check base1-5
行为不变(base1/4/5 PASS、base2/3 FAIL);真跑重新生成打地鼠过九门(E_live 进对局
distinctStates=52、H_progress score 0→44)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 02:01:20 -07:00 |
|
lili
|
08fab84b81
|
docs(.agents): 蒸馏 M1 双评审 — parity harness 补『自动 spec 期望外生防自证』
Opus 评审从 M1 U2 揪出:自动 spec 的语义期望字段(F_wiring 的 expectedEngineCallPrefixes)若从被测局实际调用反推,门退化成自证、必过、假绿。held constant 铁律在单路自动 spec 上的化身=期望基准必须外生(预置品类→前缀映射表)。补进 gen-path-parity-harness skill + README 索引。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-26 23:11:51 -07:00 |
|
lili
|
f0355f98ef
|
docs(M1-plan): 便宜档 M1 达标门绿细化 plan — 双评审定稿
切片一第一里程碑细化(4 实现单元:护栏 / 自动 spec / 达标门 / 预算闸)。
过 Codex + Opus 双评审(均判修后可执行)+ 创始人三项口径已定:
- U2 防自证假绿:expectedEngineCallPrefixes 取预置品类映射表作 held 期望、非从实际反推(否则 F_wiring 退化自证必过)
- M1 收口钉死 = M3 20 款实测、tap-targets 三品类逐品类 pass_count/total≥0.8;小批=联调非收口替代
- R5/U3/R3 串行→前台进程内有界并发(conc≤15,对齐 002 run_multi);U3 补 U4 偏序
- U2 同质数值化(逐门全等 / delta=0 / 关键门不低于金标);落点校正(middleware 类 172 / cost.py 路径前缀 / fetch_pricing_params 107)
- 创始人定:覆盖面只 tap-targets 三品类 / 横比延后 / 取价沿用既有降级
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-26 23:07:22 -07:00 |
|