Files
aetherbound-guild/docs/plans/M66_DEV4R_PARTY_RISK_MIGRATION.md
T

5.1 KiB
Raw Blame History

M66 · DEV-4R 队伍线 / 风险页迁移计划

权威:GOAL_ABG_MVP_QUALITY.md + AGENTS.md「UI Restoration Memory」。 前置:M65/DEV-3R 已收官(Guild / Contract / 装备检视全部迁完)。

Player-visible stopping point

party_line_page_view、risk_board_page_view、risk_commitment_page_view 三页在 单一 1280×720 权威尺寸下:无页面私有 StyleBoxFlat、文案全部走共享令牌或共享材质、 节点名与 intents 不变,且新增严格墨迹探针(scanned=6 violations=0)通过。

Measured facts (2026-09-14, 源码静态审计 + 实测转储)

页面 行数 私有 StyleBoxFlat 现状
party_line_page_view 403 2(_party_member_style 选中环、_party_command_state_style) 命令按钮已用 UIFactory.apply_flat_command;标签为 master 调过的硬编码墨色;apply_flat_command 在 _party_command_button 内被调用两次(重复)
risk_board_page_view 301 3(_flat_style 三处按钮态) 标签硬编码墨色;风险卡按钮自绘按钮态
risk_commitment_page_view 448 3(_flat_style 三处) 事实卡与槽位标签硬编码墨色
  • 三页均以 authored master 图(party-line-master.png / risk master)为底,标签色是为 该底图调过的深墨/象牙;迁移只是把来源改为共享令牌,不改变构图与槽位。
  • 三页各有 tests/foundation/*_page_view_test.gd + *_controller_test.gd(节点名契约)。
  • 三页当前均无独立视觉探针。

Ordered steps

  1. M66-A:COMPLETE (2026-09-14),attempt m66-party-risk 20260914T035348Z-64653。三页迁移
    • party_line:删 _party_member_style,选中环改新增共享变体 selection_ring (PageChrome,先在 docs/runtime/M52_SHARED_UI_RULES.md 登记);标签墨色 → PageChrome.INK/INK_SOFT; 无效态 → UITokens.COLOR_DANGER;删重复的 apply_flat_command 调用;未被引用的 _party_command_state_style 若为死代码则删除。
    • risk_board:_flat_style 三处按钮态 → UIFactory.apply_flat_command + PageChrome 令牌; 标签墨色 → 共享令牌;保留 RiskPartyPosition%d、RiskRisk%d 等节点名。
    • risk_commitment:同上;事实卡面 → 共享 card(若与 master 冲突则保持不可见兼容壳, 只换令牌与来源)。
    • 三页各保持 intents 与 focus 链不变。
  2. M66-B:COMPLETE (2026-09-14)(同 attempt)。严格探针 m66_party_risk_visual_probe.gd(单尺寸 1280×720,zh/en, static/dynamic/final,逐页 3 视图 → scanned=6),违规 quit(1),marker 真实计数。
  3. M66-C:COMPLETE (2026-09-14)。源绑定验证(新探针 + M41/M59/M54/M53/M63 + DEV2 全流程),提交、推送、 账本与 checkpoint 更新、display 发图。

Acceptance checks

  • ABG_M66_PARTY_RISK_INK_OK scanned=18 violations=0(严格,唯一一次;3 页 × 2 语言 × 3 视图)
  • ABG_M66_PARTY_RISK_VISUAL_PROBE_OK pages=party_line,risk_board,risk_commitment locales=2 scans=18
  • ABG_M41_MARKET_VIEW_CONTRACT_OK、ABG_M59_INK_CHECK_OK、ABG_M54_CONTRACT_INK_OK、 ABG_M53_GUILD_INK_OK、ABG_M63_ENTRY_INK_OK、ABG_DEV2_FULL_FLOW_TOUCH_OK 各恰好一次
  • 三页 tests/foundation/*_page_view_test.gd 全部通过;grep -c StyleBoxFlat 三页均为 0
  • Dummy 驱动下尝试链 strict 0

Frozen scope

  • 不改玩法/经济/内容/Save/路由语义;不重做已验收页(Readiness/Market/入口四页)。
  • 不改三页作者的构图、槽位与 hits;只改材质来源与文字色来源。
  • 不新增第二尺寸分支;探针与测试统一 1280×720。

M66-A/B 结果(2026-09-14)

  • 三页私有 StyleBoxFlat 清零(party 2 → 0、risk_board 3 → 0、risk_commitment 3 → 0)。
  • 共享新增并登记:PageChrome.selection_ring、UITokens.seal_style、UITokens.hit_area_style 复用。
  • M66-I01 RESOLVED:party_line 与 risk_commitment 的 apply_flat_command 重复调用已删; 命令牌文案色改为共享 Tokens.command_colors(variant, disabled).text(深牌象牙字、主牌墨字、禁用灰)。
  • 三页六个契约测试全过(节点名与 intents 未动)。
  • 新探针 m66_party_risk_visual_probe 严格门:scanned=18 violations=0(单尺寸 1280×720)。
  • M66-I02 PARTIAL:页面 master 上调色的标签(如风险页的深墨/绿字)保留原常量,仅共享材质 与命令牌改令牌;逐页实拍比对后未发现可读性回退。

Issue register

ID 状态 内容
M66-I01 OPEN _party_command_button 内 apply_flat_command 调用两次(第二次覆盖第一次);迁移时删重复并验证按钮态不变
M66-I02 OPEN 三页标签色为 master 调色;改令牌后需逐页实拍比对(若令牌与调色肉眼不一致,保留页面常量并在规则文档登记例外)
M66-I03 OPEN 新增共享 selection_ring 变体须先登记 M52_SHARED_UI_RULES.md 再在本页使用