chore(tier2): archetype 假旋钮清账——删 genconfig 死声明「archetype」区(生成路从不读、真值硬编码)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled

W-S2 follow-up:genconfig.py 登记过一个 "archetype" 区声明 business_sim driver 五参
(steps/stepMs/winThreshold/bankruptSteps/streakLose),但生成路(archetypes._business_sim_gate_spec /
run.DEFAULT_BUSINESS_SIM_PLAY_SPEC)从不读它、真值一直硬编码在那两处 = 死旋钮(改配置无效、误导)。
删该假声明(工单=接线或删声明,取删=最小),两处硬编码加注为单一权威源;放量期确需热调再按 D11
「读 genconfig、硬编码作回落」范式补接线。

纯声明删除 + 注释,零生成逻辑改动。tier2 venv 真跑 test_genconfig_nacos 19 + test_run_gates_stale_verdict 2
全绿 + import 冒烟(archetype 区已从 _BUILTIN_DEFAULTS 删净)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
lili 2026-07-05 21:58:23 -07:00
parent 21b5320f3f
commit 5b631e8d5d
3 changed files with 10 additions and 11 deletions

View File

@ -74,6 +74,9 @@ class Archetype:
# ──────────────────────────────────────────────────────────────────────────
# business-sim 品类 · 真玩门规格工厂(gate_spec_factory)
# = 原 run_engine.default_business_sim_spec 整体搬来,逐字节同构(回归安全)。
# driver 参数(steps/stepMs/winThreshold/bankruptSteps/streakLose)硬编码在此 = 单一权威源之一
# (另一处 run.DEFAULT_BUSINESS_SIM_PLAY_SPEC 同值)。曾有个 genconfig "archetype" 区声明这五键、但生成路
# 从不读它 = 死旋钮,2026-07-05 清账已删;若放量期要热调,按 D11「读 genconfig、硬编码作回落」范式补接线。
# richGame.{mergeChains,orders} 故意不写死:run_gates 会从 agent 真填的 data/datatable.gold.json 派生
# (见 worker/run.py _derive_richgame_from_datatable),故三联动门静态校验查的是 agent 的实际表。
# ──────────────────────────────────────────────────────────────────────────

View File

@ -71,7 +71,6 @@ _ENV_PREFIX = "TIER2_GEN__"
# iteration ← worker/agent_loop/studio.py(单写轮数 / 外层 resume 上限)
# design_team ← worker/agent_loop/design_team.py(leader 轮数 / 单专家上限 / 团队超时)
# gates ← worker/fallback_tree.py(退路树四阈值)+ harness 门阈值(人可玩 / 渲染反映)
# archetype ← worker/archetypes.py(business-sim driver 参数)
# ════════════════════════════════════════════════════════════════════════════
_BUILTIN_DEFAULTS: dict[str, dict[str, Any]] = {
# ── model:模型客户端构建旋钮(worker/config.py)──
@ -137,16 +136,11 @@ _BUILTIN_DEFAULTS: dict[str, dict[str, Any]] = {
"color_dist_min": 18, # harness render-reflects-state:色差判反映状态阈值(COLOR_DIST_MIN)
"var_delta_min": 120, # harness render-reflects-state:方差增量判反映状态阈值(VAR_DELTA_MIN)
},
# ── archetype:business-sim 品类 driver 参数(worker/archetypes.py 的 _business_sim_gate_spec)──
# 注:这些是 driver 真玩规格里的可调数(步数 / 步间隔 / 胜负阈值),改它们影响 driver 怎么玩、
# 富游戏门怎么判;品类的【结构】(三系统 / 数据表 schema)不在配置层,仍由 fixture / 注册表定。
"archetype": {
"business_sim_driver_steps": 80, # driver 总步数
"business_sim_driver_step_ms": 280, # driver 步间隔(ms)
"business_sim_win_threshold": 100, # 盈利路金币胜利阈值(与 economy/latch 门对齐)
"business_sim_bankrupt_steps": 60, # 破产路观察步数
"business_sim_streak_lose": 3, # 连续流失判负次数
},
# 注:business-sim driver 参数(steps/stepMs/winThreshold/bankruptSteps/streakLose)不在本配置层——
# 曾登记过一个 "archetype" 区声明这五个键,但生成路(archetypes._business_sim_gate_spec /
# run.DEFAULT_BUSINESS_SIM_PLAY_SPEC)从不读它、真值一直硬编码在那两处 = 死旋钮(改配置无效、误导)。
# 2026-07-05 清账删除该假声明,两处硬编码为单一权威源。若放量期确需热调这几个 driver 数,再按 D11 的
# 「读 genconfig、硬编码值作回落」范式补接线(那时这里重新加区、生成路加 genconfig.get 读取)。
}

View File

@ -794,6 +794,8 @@ def derive_l3_egregious(verdict: dict | None) -> dict:
# agent 看到 verdict=fix 却"修不动一个不存在的问题"→ 反复 thrash 到 budget_exhausted(006/007 假性不收敛根因)。
# 补默认:run_gates 在 play_spec 缺 driver 时 setdefault 本规格(显式 play_spec 仍优先),让 agent 自己的
# run_gates 工具 + 控制面评门都拿到 driver/期望调用/断言 → 真玩 → 门真评。richGame(合成链)仍由下方据数据表自派生。
# driver 参数硬编码 = 单一权威源之一(与 archetypes._business_sim_gate_spec 同值);曾有 genconfig "archetype"
# 区假声明这五键但生成路从不读、2026-07-05 清账已删(详见 archetypes.py 该工厂注);放量要热调再按 D11 范式接线。
DEFAULT_BUSINESS_SIM_PLAY_SPEC = {
"driver": {"type": "business-sim", "steps": 80, "stepMs": 280,
"winThreshold": 100, "bankruptSteps": 60, "streakLose": 3},