Files
gplan-2/sim-data/README.md
T

44 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# sim-data — MC 缓存层
> 2026-10-03 立规:本目录整目录不入 git(根 .gitignore 强制)。语义=蒙特卡洛模拟试玩的磁盘缓存——最新一份 MC 锚+读数常驻留盘供分析直读,**无数值调整禁重跑**(触发细则见 AGENTS.md「测试执行两入口铁规」MC 触发细则节)。
## 现行锚(分析取数唯一入口)
- 锚:`runsum_iter56reanchor_81000_n50both_20261108.jsonl`(N=50/档=普通+perfect;种子 81000 起逐局独立;route=min;taken=hero_dmg+mine_dmg,口径对齐真人分析端)
- 规模口径:**50/档(2026-11-08 用户批准)**——95% CI 约 ±14pp(p≈0.5 处),结构级位移(≥25pp)可判;更细精度需下一次合法触发(如数值标定窗口)时由用户加采
- 换代缘由:封印受理即揭示改版(迭代 56——挖封印格被拒/清图口径=挖开∪封印/sim 策略对齐)改变玩法行为,改前锚失效
- 改前改后对照读数(迭代 56 R11——改前代码 2026-11-08 现跑 50 局 vs 新锚 50 局,同 seed0):normal 通关 0%→0%、踩雷均值 6.48→5.40、标中 21.34→19.60、标空 6.74→7.86、封印数 52.2→49.9;perfect 通关 0%→4%(封印计入清图的利好方向)、标中 45.96→48.28、封印数 91.1→96.1——无结构性恶化;错触直挖注入单局实测触发(st.mine_slips=5;RUNSUM 无此字段,解析口径注记)
## 历史锚(只读不判)
- `runsum_m3iter9exit_81000_n400_20261003.jsonl`(迭代 56 前任现行锚,N=400/档)——**其 perfect 通关 59% 系 2026-10-03 旧代码读数**:0 格连锁算子补齐等两月演进已使模拟行为漂移,改前代码 2026-11-08 现跑 50 局 perfect 通关 0%——带值引用须注明「旧行为基线」口径
- 其余 23 份 `runsum_*.jsonl`,文件名=批+锚名+日期可辨。出度≤2 重建后旧锚结构已失义,仅留换代对照;处置挂中间产物死亡清单随批处理。
## 历史锚(只读不判)
其余 23 份 `runsum_*.jsonl`,文件名=批+锚名+日期可辨。出度≤2 重建后旧锚结构已失义,仅留换代对照;处置挂中间产物死亡清单随批处理。
## MC 采集档位表(2026-10-03 用户四档立规——按用途定局数上限,禁惯例继承禁计划书自拟)
依据:单比例样本量 n=z²p(1−p)/E² / 两比例功效公式 / 零事件规则三(沿革查 git 提交史);单局费率 normal 1.21s / perfect 8.47s(on 态同量级按 1.5× 预留)。
| 档 | 用途(唯一触发面) | 局数上限 | 单次耗时 | 判读力(能下什么结论) |
|---|---|---|---|---|
| 一档·调研 | 调研/数值分析 | 总量 >40(100+ 为常用锚量级);N 按分析方案:60/档=结构回归(80% 功效 ≥25pp)/ 100=95% CI ±9.8pp / 170=±7.5pp(15pp 带半宽)/ 400 满档=±4.9pp 贴边裁决(normal 独立满档 ~8 分钟同属一档) | 16–65 分钟 | 带值判定/CI 结论仅本档可下;≥60 局须 N=5 pilot 前置 |
| 二档·验证 | 数值修改后回归验证 | 总量 ≤40(每档 ≤20) | ~3.2 分钟 | 结构性大位移可判(≥~40pp;改前/改后同种子配对下 ~30pp)——带值判读不在本档 |
| 三档·小调 | 小调整后快检 | 总量 ≤20(每档 ≤10) | ~1.6 分钟 | 只测不判——仅灾难级破坏(通关率腰斩级)可判 |
| 四档·微量 | 微调后确认没大问题 | 总量 ≤5 | <1 分钟 | 零统计判读——通过判据=不崩+RUNSUM 字段完整+方向不反直觉 |
**一档触发权(2026-10-03 补充裁定)**:一档只能由**用户发起**——任务书/计划书/agent 均无权发起,非用户发起的采集一律不构成一档授权;时长随用户发起时确认。
配套纪律:①档位上限=硬闸,超档停机呈报;窗口不足如实挂起(禁在二/三/四档下带值结论);②改前/改后锚**同 seed0 配对**、改前锚留盘即用禁补跑;③对拍断言=0 新跑(同种子复放,出口闸复验用锚内子集 ≤20);④读数缺陷≠轨迹失效——零 gameplay/RNG 触碰的修复走事件流重构补算,禁整套重跑;⑤同批同码态锚只取一次,「调整一下就重跑」禁止;⑥会话累计:二/三/四档合计 ≤20 分钟(一档时长随用户发起确认);⑦零数值改动=零 MC(现行铁规重申);⑧锚文件自本规起新锚统一=去前缀纯 JSONL、按种子升序(81000 旧形态带 RUNSUM 前缀+进度行,analyze.py 直读会炸)。
四档仅承接 MC 触发细则的数值验证场景,两入口铁规不变。
## 工具与格式
- 采集:`game/sim/adventure_monte_carlo.gd`(git)——参数 n/seed0/policy,seed 逐局独立
- 锚格式:stdout 捕获,每局一行 `RUNSUM` JSON(81000 锚=800 行=400×2 档);自 2026-10-03 档位规起新锚统一=去前缀纯 JSONL 按种子升序(旧形态 analyze.py 直读会炸,见上「MC 采集档位表」配套纪律⑧)
- 分析:`analyze.py`+`growth_model.py`(git)。⚠ analyze.py 默认输入名系首批遗留(runsum_600.jsonl 已不存在),跑现行锚须 `RUNSUM=<锚文件>` 指定,其完成度%段对现行锚未验证
- fulllog 全量日志不留盘(.gitignore 排除);`iteration_log.md` 系 Package B 时代批日志留盘不入库;新模拟批的读数与结论写在该批的 git 提交信息与 `reports/` 报告里