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>
This commit is contained in:
parent
d00938ccbd
commit
16112827da
@ -58,7 +58,7 @@
|
||||
| `skills/game-e2e-cdp-harness.md` | Canvas 游戏 e2e 证据 harness:编排形制/驱动器六律/出厂红线/四件套口径(T1b-α 实证;§7 = W-G1 生成游戏真玩九门 = 假绿守卫 G 门 + H 机制/latch + I 控制手感 + 自产 gatespec) |
|
||||
| `skills/cheap-model-game-generation.md` | 便宜模型(new-api DeepSeek/MiniMax)直出可真玩轻游戏 L1 worker:链路/模型与成本/L1 纪律/坑红线/latch 套壳/design agent 自产 gatespec/质量三层(W-G1 HJ-GEN-001 实证)。**注(2026-06-26)**:reframe 后便宜档生成已迁 `cheap-worker/`(Python/AgentScope,见 `agentscope-2.0-facts` 实现速查 + memory `amodel-generation-build-state`);本条 W-G1 gamedef/factory/worker-loop 路已退役,仅成本/代理坑/模型画像/质量三层跨路有效(详见篇首状态注) |
|
||||
| `skills/agentic-amodel-generation.md` | **agentic A-model 生成 harness(ReAct+M3 已实证·生产形态)**:scaffold→工具循环(read/write/list/check/build/done)→循环外 play;链路/5 文件/运行配方/8 坑(write 前缀·compaction·停机纪律·防假绿·bundle.tick·boot envelope·路径深度)/M3 3-玩法自闭环实证/主流定性;取代旧 gamedef 单次产线(HJ-AGI-003) |
|
||||
| `skills/gen-path-parity-harness.md` | **两条生成路对照验证(parity) harness 范式 + 按品类 ≥80% 达标门 + auto-vs-golden 同款双驱动 delta 门**:验「换实现后生成质量没回退」(Node→Python 重写/换模型/换框架)+ 判「生成质量够不够格上线」+ 判「生产自动 spec 比金标有没有驱动退化」(Node 退役授权)。对照公平铁律=驱动器 held constant(每品类金标 play-spec 喂两路)/ 金标只对 tap-targets 族公平(key-cycle 按键是生成侧自由选择不在 forensics 契约,需输入键契约)/ 注入=生成与 play 拆步+金标覆写 staged 真路径(非 evidence)/ 两层判据+逐品类绝对地板+双低标红(防 flaky 基线假等价)/ 成功定义钉死「金标 spec 下」≠生产许可/ 自动 spec 期望外生防自证(语义期望字段不从被测实际反推)/ **达标门质量口径**(编排未收敛 timeout/step_cap 剔出达标率分母、单列归编排硬化,rawPassRate 并报贴近生产交付率)/ **auto-vs-golden 门**(同款 play 两次只换驱动器、关键门容差 0 单边查「自动不比金标驱得差」、retire 三条齐 M1∧002∧auto-vs-golden;实证抓到单数 target vs 复数 targets 生成契约漂移)/ 端口池+线程前台有界并发;WU-A 后续 compare_node.py、M1 达标门(003 bake_off.py)、M2 auto-vs-golden(2026-06-27-001 auto_vs_golden.py)实证(均过双评审) |
|
||||
| `skills/gen-path-parity-harness.md` | **两条生成路对照验证(parity) harness 范式 + 按品类 ≥80% 达标门 + auto-vs-golden 同款双驱动 delta 门**:验「换实现后生成质量没回退」(Node→Python 重写/换模型/换框架)+ 判「生成质量够不够格上线」+ 判「生产自动 spec 比金标有没有驱动退化」(Node 退役授权)。对照公平铁律=驱动器 held constant(每品类金标 play-spec 喂两路)/ 金标只对 tap-targets 族公平(key-cycle 按键是生成侧自由选择不在 forensics 契约,需输入键契约)/ 注入=生成与 play 拆步+金标覆写 staged 真路径(非 evidence)/ 两层判据+逐品类绝对地板+双低标红(防 flaky 基线假等价)/ 成功定义钉死「金标 spec 下」≠生产许可/ 自动 spec 期望外生防自证(语义期望字段不从被测实际反推)/ **达标门质量口径**(编排未收敛 timeout/step_cap 剔出达标率分母、单列归编排硬化,rawPassRate 并报贴近生产交付率)/ **auto-vs-golden 门**(同款 play 两次只换驱动器、关键门容差 0 单边查「自动不比金标驱得差」、retire 三条齐 M1∧002∧auto-vs-golden;实证抓到单数 target vs 复数 targets 生成契约漂移)/ 端口池+线程前台有界并发;WU-A 后续 compare_node.py、M1 达标门(003 bake_off.py)、M2 auto-vs-golden(2026-06-27-001 auto_vs_golden.py)实证(均过双评审);**M3b 9d trace/D11/D9 parity**(换 worker 别静默退化 D11:必填七项 + `gatespec.driver` 键名坑 + `H_progress` 嵌套 + `repairs=max(0,attempts-1)`;退化判别=双峰 45/55、**逐维断言反假绿**非看区间;import 边界 tier2≠wg1 故 trace 手写镜像 + dedup vendor;真后端三值 28/45/100 实证) |
|
||||
| `skills/saa-graph-orchestration.md` | SAA(Spring AI Alibaba)裸 StateGraph 生成编排:拓扑/加节点/接 new-api(剥 /v1 坑)/checkpoint(含 saved_at 无 tiebreaker 框架坑+显式 checkPointId 修法)/observation/最小依赖集/派发契约/验证门(HJ-AGI-002 实证) |
|
||||
| `skills/doc-organizer.md` | 文档整理助手(创始人手动触发):增量(上次清理→现在)+**两阶段审批门**——发起分析 Workflow→编清理计划→评审→批准后才执行;三轴=过期档清理(归档/压缩)/核心设计档措辞对齐现行真相/主任务总账回填;底层 `tools/doc-organizer.{sh,-analyze.mjs,-state.json}`(检测自动·判断留人·脚本不自删·最新日在飞档不碰) |
|
||||
| `skills/drive-remote-claude-tmux.md` | 远程驱动交互式 Claude Code(ssh + tmux):双向通道 send-keys 派活 + capture-pane 读屏,不走 ACP/headless;每设备配置块 + onboarding 侦察配方 + 专用会话(独立 worktree 防撞树) + bypass-perms + 安全红线;**完成判据=git push 非读屏**(创始人 2026-06-18 拍板·多设备复用) |
|
||||
|
||||
@ -121,3 +121,14 @@ M3a U1(2026-06-27,`docs/plans/2026-06-27-002-feat-cheap-worker-M3a-python-rout
|
||||
- 权威范例镜像 = `game-cloud .../saa/SaaGraphDispatcher.buildCallbackReqVO`(L601-635)+ Python `wg1/gen-worker/worker/service.py:build_callback_payload`(后者不产 sourceProject)。
|
||||
|
||||
串行 worker(Chrome serve/CDP 端口不可并发)治 409 误判:**job-in 一律入有界队列(有容量 202、队满 503)、单线程串行消费**,执行器 2xx=ok 契约不动(队满 503 仍非 2xx→LLM_ERROR 终态,罕见背压可接受)。回调 HMAC = `hmac.sha256(secret, 发送字节)`→`X-Callback-Signature`,签名字节 == 发送字节。**回调必须禁系统代理**(内网端点经 fake-ip 代理被拦 502)。
|
||||
|
||||
## §6.1 worker 9d trace + D9 dedup parity(M3b · 换 worker 实现别静默退化 D11/D9)
|
||||
|
||||
换便宜档 worker 实现(Node/SAA→cheap-worker Python)时,result-out 不止三字段——**9d trace 与 D9 dedup 是 worker 侧产出,换实现就得在新路重新兑现,否则后端 D11/D9 静默失效**。M3b 固化:
|
||||
|
||||
- **9d trace 必填七项** `{pass, repairs, wallS, models, attempts, gameId, stage}`(camelCase)+ D11 首局维所需 `gatespec.driver`(**键名必须 `driver`、非 `driverType`**)与 `sevenGateVerdict.guards.H_progress.pass`(**嵌套对象、非裸 bool**)+ `cost.totalRmb` + `similarity`(D9)。镜像 wg1 `_extract_trace` / SAA `extractTraceQuietly` 输出口径。**`repairs = max(0, attempts-1)`**(首轮 0;attempts 是 resume 计数,off-by-one 会让好游戏 stability 永不满分、破 parity)。
|
||||
- **D11 退化判别(retire-detection)**:worker 只产 `trace.cost`(M3a 初版)→ 后端 `ReadinessScorer` 的 playability/firstPlay/stability 三维全取中性 0.5、只 efficiency 随成本 → readiness 退化成近恒定**双峰 45/55**。且 `BUDGET_RMB=0.15` 与便宜档真实成本 ¥0.4–1.2 错配 → **efficiency 维对便宜档恒 0、零区分力**。**别拿「合成分脱离某区间」作判据**(退化态 45 本就在区间外 → 假绿);改**逐维断言**(三维各自脱离中性 0.5)。
|
||||
- **反假绿真护栏 = 跨语言切片测反射调真 ReadinessScorer 私有逐维 scorer**(`CheapWorkerResultOutContractTest`):真 result-out fixture 喂真算分器,逐维断言 + 成功 vs 退化分拉开。三值判别 = 失败 **28** / 退化 **45** / 成功 **100**(M3b 真后端实证)。`trace` 是后端开放 `Map`、Jackson **不拒内层未知键** → 键名拼错(`seven_gate_verdict` / `driverType`)被静默接收、悄悄落中性;真护栏只有这个切片测。
|
||||
- **复用旧路代码的 import 边界坑**:cheap-worker 的 `_bootstrap` 入 sys.path 的是 `tier2/gen-worker`(其无 dedup/_extract_trace);trace/dedup 参考在 `wg1/gen-worker`(另一棵树、不在 import 路径)。故 **trace 在 result_out 内手写镜像口径**(输入形态不同、不能直接套 `_extract_trace`);**D9 vendor 复制** `dedup.py` 进 cheap-worker(纯模块,`DEDUP_REGISTRY` 设自己 `results/`,比跨树 import + monkey-patch 全局常量干净)。
|
||||
- **两条回调路都落 trace**(`DifyCallbackTxService` 失败路也调 `persistTraceQuietly`)→ trace 落库可经失败 gen 验证;但 D11 success 路高分需 succeeded(**注入合法 bundle 验机制、不赌便宜档质量**)。`aigc.trace.enabled` 默认 false → 验前必开。
|
||||
- **玩家试玩边界**:玩家 manifest 端点要求 runtime_package published(status=1),preview(0)返「运行包未发布」→ `publish→feed→玩家真玩` 必经 `reviewProject(APPROVE)`(产品/审核台轨、auth + 项目 REVIEWING 生命周期),非生成线;生成线交付 = 落到可发布的预览包(version + status=0 包 + engineBundle 进 package_json + D11 分)。
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
---
|
||||
date: 2026-06-28
|
||||
topic: cheap-worker-M3b-create-feed-e2e-and-6gates
|
||||
status: 已双评审·发现已修·D9=B 已定·执行中(本机 U1-U3 先行,mini-desktop U4-U5 前 checkpoint)
|
||||
status: 已实现(M3b 生成线收口·U1-U5 真后端验·承重 trace/D11/D9 跨成败两路证实);publish→feed→玩家真玩=产品轨后续(移交边界)
|
||||
关联:
|
||||
- cheap-worker/result_out.py (HEAD a327c991 · 现只产 trace.cost.totalRmb L148-150)
|
||||
- cheap-worker/cheap_studio.py (run_studio summary L164-184 · 缺 repairs/models/stage/逐门 guards)
|
||||
@ -246,8 +246,15 @@ Opus 对抗评审判 needs-rework(窄域),3 MAJOR + 5 MINOR,均 code-grounded、
|
||||
- **顺带修一处预存 M3a 缺陷**:`test_worker_loop_run_failure_sends_fallback_failed` 在 HEAD a327c991 即红——worker 异常兜底 `_send_failed` 传非枚举值 `generation_failed`(经 build_result_out 映射成 `llm_error`,回调行为正确但测断言陈旧)。对代码核实 M3b 未碰相关行、确属预存 → 改 `_send_failed` 传真枚举值 `llm_error`(错误路用真枚举、可追溯)+ 测断言对齐。
|
||||
- **执行中纠正的设计假设(红线兑现)**:计划初稿假设「_bootstrap 已把 gen-worker 入 sys.path、可 import wg1 dedup」——核验证伪(_bootstrap 入的是 `tier2/gen-worker`、其无 dedup/_extract_trace;wg1 是另一棵树、不在 cheap-worker 的 import 路径)。U3 据此改为 **vendor 复制** `dedup.py`(更干净、并消除 Opus m3 的 monkey-patch 脆点)。
|
||||
- **范围**:改动仅 cheap-worker/(cheap_studio / result_out / worker_service / 新 dedup.py + 4 个测文件)+ 2 个 Java fixture + 1 个 Java 测方法;零跨档、零 live 触碰。
|
||||
- **待续**:U4/U5 mini-desktop 真 e2e(开 `aigc.trace.enabled` + `aigc.control-plane.enabled`、trace 落库 + D11 真验、create→发布→feed→真玩 + 6 门复验);U6 蒸馏。
|
||||
**U4/U5 mini-desktop 真 e2e(iso :48090 worker M3b :9501,live :48080 全程未动):**
|
||||
|
||||
- **U4 真 gen(task 189,便宜档失败九门=便宜档质量、非 M3b)** → 回调七步 → **trace_json 落齐七项 + D9 similarity 产出 + readiness_score=28**(playability=0/firstPlay=0.5/stability=1.0/efficiency=0,真读信号)。开 `aigc.trace.enabled=true` 后落库生效。
|
||||
- **U5 注入真 bundle(succeeded)**:含真 multiball bundle(214KB · __GameBundle)的合法 succeeded 回调 → **version 93144 + runtime_package(engineBundle 落 package_json)+ readiness_score=100**。**D11 三值判别坐实**:失败 **28** / 退化(仅 cost · Java 切片)**45** / 成功 **100**,分数真随质量动。
|
||||
- **6 门新路状态**:9d trace / D11 / D9 三道 worker 侧门**新路已验**(U4/U5);D12 / GP9(提交侧、dispatch 上游、与 worker 实现正交,GP9 经 G1 已验)+ 首局(引擎无关 harness)三道**新路天然继承**。
|
||||
- **边界发现(收口判据修正)**:玩家 manifest 端点要求 runtime_package published(status=1),preview(0)返「运行包未发布」。故 `publish→feed→玩家真玩` 必须过 `reviewProject(APPROVE)`——按本 plan 移交边界属**产品/审核台轨(auth + 项目 REVIEWING 生命周期)、非生成线 M3b**;M3b 生成线交付 = 落到可发布的预览包(version + status=0 包 + 真 engineBundle 进 package_json + D11 分),已具。
|
||||
- **创始人裁定(2026-06-28):收口 M3b 生成线 + U6 蒸馏**;publish→feed→玩家真玩 作产品轨后续。测试数据已清(task 189/190、version 93144、runtime_package、amgen 工作区)。
|
||||
- **遗留(显式)**:① 生产 cutover(切 live :48080,创始人决策)② 产品轨 publish→feed→玩家真玩(auth + REVIEWING 生命周期)③ 待拍数值(配额 / D11 权重 / `BUDGET_RMB` / D9 阈值)④ D12·GP9 新路 belt-and-suspenders re-demo(可选,本路径无关)⑤ iso :48090 + worker :9501 留验证态(M3b 代码经 scp 部署、未 push;worktree dirty)。
|
||||
|
||||
---
|
||||
|
||||
> **状态:** 已过 §6.8 双评审(发现全修)。**创始人定 D9=B**;**本机 U1-U3 ✅ 完成 + 验证**(全 16 Python 测绿 + Java 跨语言切片 5/5 绿 + 预存红测修)。mini-desktop U4-U5 待 checkpoint 后续。
|
||||
> **状态:** **M3b 生成线收口(创始人 2026-06-28 裁定)。** 承重命题(9d trace 七项 parity 救活 D11 + D9 dedup parity)经 §6.8 双评审 → 本机 U1-U3(全 16 Python 测绿 + Java 跨语言切片 5/5 绿)→ mini-desktop U4/U5 真后端 e2e **跨成败两路证实**(D11 三值判别 28/45/100;trace+similarity 真落库;engineBundle 落可发布预览包),全程 live :48080 未动。6 门:worker 侧三门(trace/D11/D9)新路已验,提交侧/harness 三门(D12/GP9/首局)新路天然继承。**publish→feed→玩家真玩 = 产品/审核台轨后续(移交边界,auth + REVIEWING 生命周期);生产 cutover = 创始人决策。**
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user