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

87 lines
5.4 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.
# M64 · DEV-2R 初始四选二迁移计划
> 活跃计划(`CURRENT_CHECKPOINT.md` 指向本文件)。当前只有 `M64-A` 处于
> `IN_PROGRESS`,产品代码改动必须属于该步。
## 目标与停止点
把玩家点「开始远征」后的**初始四选二页**(`runtime/entry/initial_company_page.gd`,
choice / inspect / compare / review / error 五个模式)从旧入口 chrome
(`ABGEntryChrome` 的 `company_*` 变体 + 页面私有 `StyleBoxFlat`)迁移到共享手绘族
(`ABGUI_Tokens` + `PageChrome`),保持节点名与 intent 不变。
停止点:五个模式在权威尺寸 `1280x720`(zh/en)下都渲染在共享材质上、墨迹门 0 违规、
建团提交与触摸回归全过、`docs/EVIDENCE_LEDGER.md` 与 checkpoint 更新、推送到
远端。招募检视页(`recruit_review_page_view.gd`)**不在本计划**,留给下一个计划。
## 视口政策(2026-09-13 owner 二次收紧)
**只做 1280x720 一种横屏尺寸**:设计、实现、测试、探针、窗口覆盖全部同值;
`CONTENT_SCALE_ASPECT_KEEP` 保比例。已删除本页与入口页的按尺寸分叉;后续页面
迁移不得再引入第二套构图。旧 P9.x/p10_2 测试的其它尺寸属各自历史,逐步清理。
## 现状实测(2026-09-13)
| 区域 | 现状材质 | 处理 |
| --- | --- | --- |
| 页面底 | 画布背景 + shade;`%sFrame` MarginContainer **为空** | 加共享 `card` 页框 + `face` 实测开口内缩 |
| 页眉 | `_label` 私配色(#213744 / #38535c)+ 白阴影 | 令牌字号 + `PageChrome.INK/INK_SOFT` |
| 候选卡 | `InitialCompanyArt` 肖像 + scrim + 名称/职业标签 | 保留艺术;文字改令牌;卡面加共享 `card` 底 |
| 选择标记 | 私有 `StyleBoxFlat` 圆角 + `✓/◇` 文本 | 共享 plate + `pip`(菱形,填充=已选) |
| 页脚/动作 | `_button` → `company_primary/secondary/utility/tool` + 图标 | `command_plate`(primary/secondary) + `UIIcon`/共享图标位 |
| 不可用态 | `_set_button_disabled` 改标签色 | 令牌 `COLOR_MUTED`,禁用 plate 状态 |
| inspect/compare/review | 同 helper 家族 | 随 helper 迁移,逐模式探针核对 |
## 步骤
1. **M64-A**:基础层与按钮族。**COMPLETE (2026-09-13)**,attempt `m64-opening` `20260913T191418Z-79907`。
- `_build_base` 加共享页框 + `face` 内缩;`_label` 改令牌字号/颜色基线;
- `_button`/`_chrome` 改 `PageChrome`(保留 `Chrome`/`ButtonLabel` 节点名);
- 选择标记改共享 plate + `pip`;
- 探针:`m63_entry_visual_probe.gd` 增加 initial-company choice/review 捕获,
权威尺寸严格 ink 0 违规。
- 验收:`ABG_DEV2_TOUCH_OK`、`ABG_DEV2_COMMIT_OK`、`ABG_DEV2_FULL_FLOW_OK`
(或既有 dev2 触摸/提交流程 marker)、`ABG_DEV1_ENTRY_TOUCH_OK`、
`ABG_M63_ENTRY_INK_OK`;marker 恰好一次,strict 0。
2. **M64-B**:**COMPLETE (2026-09-13)**,attempt `m64-boards` `20260913T192023Z-84611`。inspect/compare/review 三模式的板面细节(属性/特性/对比
表、复核摘要)按实测槽位复排,逐模式捕获核对。
3. **M64-C**:**COMPLETE (2026-09-13)**——矩阵/账本/checkpoint 更新 + owner 展示(本仓已推送 HEAD==upstream)。
## M64-B 结果(inspect / compare / review)
- inspect:三列(肖像/职业与属性/特性)改 `SIZE_SHRINK_CENTER` 纵向居中,内容集中在卡片中部,
不再顶部聚集、底部空一大片;全部文字令牌化(ink/ink_soft/danger)。
- compare:去掉收益行的 `EXPAND_FILL` 拉伸(此前把收益推到中部、装备掉到底部),
两列各自紧凑并在卡面居中;表头/属性/特性/收益/代价/装备层级稳定。
- review:复核摘要与未选列表沿用 M64-A 的令牌化结果,本步未再改结构。
- 源绑定 attempt `m64-boards` `20260913T192023Z-84611`:DEV2 choice/touch/commit/full-flow、
DEV1 入口触摸、M63 探针(四模式 22 扫描 0 违规)全过,marker 恰好一次,strict 0。
## Frozen scope
- 玩法/经济/存档语义不变;节点名、intent id、`mode` 值与信号不变;
- `initial_company_draft_service.gd` 不改;
- 其他页面不改(Guild 属 DEV-3R)。
## Acceptance checks(M64-A)
- `runtime/tests/dev2/initial_company_touch_test.gd` → `ABG_DEV2_TOUCH_OK`
- `runtime/tests/dev2/initial_company_commit_touch_test.gd`
- `runtime/tests/dev2/initial_company_full_flow_touch_test.gd`
- `runtime/tests/dev1/entry_flow_touch_test.gd` → `ABG_DEV1_ENTRY_TOUCH_OK`
- `runtime/tools/m63_entry_visual_probe.gd` → `ABG_M63_ENTRY_INK_OK scanned>=16 violations=0`
- 权威尺寸截图(choice/review,zh/en)经人眼检查并展示给 owner
## Issue register
- `M64-I01` OPEN:本页 `_label` 全部私配色;迁移按基线替换,若某标签在共享纸上
对比不足,记录并改令牌而不是恢复私配色。
- `M64-I02` OPEN(观察):招募检视页 `recruit_review_page_view.gd` 仍为页面自绘,
留给 DEV-2R 后续计划。
- `M64-I03` 观察:选择标记的 `✓/◇` 文本将改共享 `pip`,需确认已选状态在
130% 文字下仍可读。
- `M64-I04` 已做:`project.godot` 窗口覆盖 844x390 → 1280x720;窗口化触摸测试
统一 `KEEP` + 1280x720。此前 `EXPAND` + 844x390 是多尺寸错位的根因。
- `M64-I05` OPEN(登记):旧 P9.x / p10_2 测试与未迁移页面仍含按尺寸分支,
随各自迁移轮(DEV-3R..6R)清理,不得新增。