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

5.2 KiB
Raw Blame History

M67 · DEV-5R 结果 / 恢复 / 击倒复检 / 奖励迁移计划

权威:GOAL_ABG_MVP_QUALITY.md + AGENTS.md「UI Restoration Memory」。 前置:M66/DEV-4R 已收官(队伍线/风险三页 + 严格探针)。

Player-visible stopping point

battle_result_page_view、recovery_page_view、knockout_review_page_view、 reward_choice_page_view 四页在单一 1280×720 下:页框改为共享羊皮纸族、文案走共享令牌、 节点名与 intents 不变,且新增严格墨迹探针(scanned=24 violations=0)通过。

Measured facts (2026-09-14, 源码静态审计 + m55/m67 实拍)

页面 行数 私有 StyleBoxFlat 现状
battle_result_page_view 200 0 make_unified_mvp_shell + ABGEntryChrome 深色整页框;象牙/琥珀/绿/红字;M55 result 模块三件
recovery_page_view 133 0 同上深色框;象牙/琥珀/绿/红字;UIFactory.notice_surface 用于错误
knockout_review_page_view 185 0 同上;另有一处 #8b7141
reward_choice_page_view 158 0 同上;选项区自绘
ui/m55/result_header.gd — 0 象牙标题 + 深色描边、琥珀副题(为深色框调色)
ui/m55/result_outcome_summary.gd — 0 金/绿数值(为深色框调色)
ui/m55/result_action_dock.gd — 0 已用共享 command_button(..., "angular", "company")
  • 四页测试均断言 <X>Frame 节点存在(BattleResultFrame / BattleRecoveryFrame / BattleKnockoutFrame / BattleRewardFrame),未断言 UnifiedShell 节点。
  • 现有 m55 探针覆盖 Readiness + Result;Readiness 为已验收页(基线 6 违规, M62-I03 未修),Result 迁移后并入新严格门。

Ordered steps

  1. M67-A:COMPLETE (2026-09-14),attempt m67-result-recovery 20260914T040443Z-73742。四页与 m55 result 模块迁移
    • 页框:make_entry_chrome("<X>Frame", "initial_company_scene_frame") → 共享 PageChrome("card") (保留节点名);删除 make_unified_mvp_shell 调用(页面头由 M55/自身头部拥有, 深色 rail 与羊皮纸族冲突;helper 与其自有测试保留)。
    • 文案:#f5ead0 → PageChrome.INK;#e8d39d → PageChrome.INK_SOFT; #9ed7aa → UITokens.COLOR_SUCCESS(新增令牌并登记);#ffd4d4 → UITokens.COLOR_DANGER; #f0ca75/#aebbc2/#8b7141 按语义改 INK/INK_SOFT/COLOR_SUCCESS; Tokens.COLOR_GOLD_LIGHT 在羊皮纸上对比不足 → PageChrome.INK。
    • ui/m55/result_header.gd:标题/副题改共享墨色,去深色描边; ui/m55/result_outcome_summary.gd:金/绿数值改令牌。
  2. M67-B:COMPLETE (2026-09-14)(同 attempt)。严格探针(4 页 × zh/en × static/dynamic/final = 24 扫描); m55 探针去掉 Result 页(其严格责任移交 m67,Readiness 基线保留)。
  3. M67-C:COMPLETE (2026-09-14)。源绑定验证 + 提交 + 推送 + 账本/checkpoint + display。

Acceptance checks

  • ABG_M67_RESULT_RECOVERY_INK_OK scanned=24 violations=0(严格,唯一一次)
  • ABG_M67_RESULT_RECOVERY_VISUAL_PROBE_OK pages=result,recovery,knockout,reward locales=2 scans=24
  • 四页 tests/foundation/*_page_view_test.gd 与 controller 测试全过
  • ABG_M66_PARTY_RISK_INK_OK、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 各恰好一次;strict 0

Frozen scope

  • 不改玩法/经济/内容/Save/路由语义;结果数值与文案不变,只改材质与颜色来源。
  • 不改四页布局槽位、节点名、intents;m55 只删 Result 覆盖,不改 Readiness 基线口径。
  • 单尺寸 1280×720。

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

  • 四页页框:旧深色 ABGEntryChrome 整页框 → 共享羊皮纸 card(节点名保留); 移除 make_unified_mvp_shell 调用(深色 rail 与羊皮纸族冲突,helper 与其自有测试保留)。
  • 文案全部改令牌:PageChrome.INK/INK_SOFT、UITokens.COLOR_SUCCESS(新增并登记)、 UITokens.COLOR_DANGER;m55 result 模块标题/副题/数值同步令牌化。
  • 新共享 helper page_view.inset_safe_to_card_face():把内容落到卡牌实测牌面内 (四页首版实拍发现标题被卷边裁切,与 M63-C/M65-C 同一类错误,本轮以共享方法根治, 不再逐页手写)。
  • 严格探针 m67:4 页 × 2 语言 × 3 视图 = scanned=24 violations=0;m55 删去 Result 覆盖(严格责任移交 m67,Readiness 基线保留),marker 改 ABG_M55_READINESS_VISUAL_PROBE_OK ... strict_result=m67。
  • 八个契约测试(四页 view + controller)全过。

Issue register

ID 状态 内容
M67-I01 OPEN 四页原先依赖 make_unified_mvp_shell 的深色 rail;删调用后需实拍确认顶部不再出现深色横带
M67-I02 OPEN UITokens.COLOR_SUCCESS 为新增令牌,先在 M52_SHARED_UI_RULES.md 登记再在四页使用
M67-I03 OPEN m55 探针 marker 文本含 sizes=3(旧多尺寸);本轮只删 Result 覆盖,尺寸收敛留最终冒烟