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

131 lines
8.8 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.
# M63 DEV-1R 入口页迁移(W5 第一步)
Goal: `ABG MVP 质量达标`,工作包 W5-DEV-1R。按"一页一提交一验收"拆成:
**A = Boot**(本轮)→ B = 首次设置 → C = Title(含 `M60-I04`)→ D = Settings。
## 本轮(M63-A:Boot)玩家可见停止点
Boot 页不再使用入口家族素材(identity-plaque / verification-rail /
status-seal / action-tab / `_flat_style` 进度条),改用共享手绘族:
羊皮纸面板(`PageChrome` header/card)、共享进度材质(本轮新增)、
`command_plate` 命令牌与引擎图标;世界背景保持不变。760/844/1280 ×
中英 × normal/error 两态截图可查,墨迹检查 0 违规。
## 顺序步骤
1. **M63-A(本轮)**:**COMPLETE (2026-09-13)**。`page_chrome.gd` 新增 `progress` 材质(轨道+进度由共享层
绘制,值由 `configure` 传入);Boot 屏改用它;文字全部走 `ABGUI_Tokens`;
按钮改 `command_plate` + `ButtonLabel`;三个 `BootStatusSeal*` 改共享
`pip` + 序号标签。同步更新 `docs/runtime/M52_SHARED_UI_RULES.md` 材质表。
2. **M63-B**:**COMPLETE (2026-09-13)**。首次设置页同样迁移(表单行、按钮、预览)。
3. **M63-C**:Title 迁移 + `M60-I04`(存在可恢复远征团时"新游戏"仍可用,
走确认边界而不是直接禁用)。**COMPLETE (2026-09-13)**。
## M63-C 实测与结果(Title)
- 银牌身份面 `TitleIdentityPlaque` → 共享 `card`;私有青/金色缎带条(无共享同类)
随迁移退役;标题/眉题/纪年改令牌字号 + `PageChrome.INK/INK_SOFT`。
- 四个动作按钮 `ButtonSurface` → 共享 `command_plate`(primary/secondary/utility),
节点名保留;`ButtonLabel/DetailLabel` 改令牌字号。
- 详情槽按真实最长文案(en `Expedition Company established · continue to the Guild`)
实测加宽加高(0.06/0.48/0.88/0.46)+ 两行内换行,不再裁剪。
- **`M60-I04` 修复**:`_save_status()` 原来先 `load_company()`,触发"恢复并回写主档",
随后 `show_title()` 的第二次加载只看到 primary → `recovered_*` 信号丢失 → New Game
被禁用(历史 `.bak` 玩家因此卡死)。现改为单次加载派生状态
(`_save_status_from(company_result)`);可恢复态下 New Game 保持可用,首次点击进入
两段确认(保留备份),第二次点击进入开局流程;有效主档时仍禁用(冻结语义不变)。
- 源绑定 attempt `m63-title` `20260913T184431Z-56463`:Title 状态/响应式/捕获、入口
流程、DEV2 建团提交(仍主张"建团后 New Game 禁用")、M63 探针全过;
`ABG_M63_TITLE_RECOVERABLE_OK new_game=enabled continue=enabled`;权威尺寸 ink 10 扫描 0 违规。
- `M63-I05`(OPEN,推迟):844x390 手机横屏下 Title 详情槽仍可能溢出(冒烟已记录);
按 2026-09-13 视口政策留到手机横屏步骤整体缩放解决。
## M63-D 实测与结果(Settings)
- 页框 `SettingsFrame` → 共享 `card`(整页羊皮纸);按卡片实测开口新增 `SettingsFace`
内缩容器(x 5.5%、y 15%),标题/来源/内容/页脚全部落在纸面内。
- 入口族按钮基座 `_entry_button_base` → 共享 `command_plate`(`action_primary`→primary,
其余→secondary);`Chrome` 节点名与 `entry_chrome_variant` meta 保留。
- 复选项 `_check_button` → 共享 plate + 右侧共享 `pip`(菱形,填充=开)实时反映状态;
旧 `toggle` 自绘开关退役。
- 分类栏/行标题/数值/页脚按钮的标签锚点改为 `PageChrome.PLATE_EDGE_X`(0.062),
文字不再压在牌匾卷边下;阅读列宽上限 720px 居中(避免 20:1 牌匾出现超长卷边)。
- 滑杆无共享组件,保留私有 StyleBoxFlat 但颜色改令牌(登记于 `M63-I06`)。
- 源绑定 attempt `m63-settings` `20260913T185200Z-62461`:设置/许可、入口捕获、
入口流程、M63 探针(权威尺寸 14 扫描 0 违规)全过,marker 恰好一次,strict 0。
- **DEV-1R 完成**:Boot / 首次设置 / Title / Settings 四页均已迁入共享族并有源绑定证据。
下一包:DEV-2R(公会交接)需先建新计划(M64)。
## 视口政策(2026-09-13 owner 指示)
宽屏 `1280x720` 是唯一设计权威;`1280x600` 仅宽屏冒烟。手机横屏
(`844x390`、`760x360`)留到后续步骤,届时只做整体缩放,不再新增第二套构图。
M63-B 的紧凑双列分支属于该政策的例外(已交付且验证),后续页面不得再引入
同类分支;小尺寸测试只作溢出冒烟,不按其缺陷改设计。
4. **M63-D**:Settings 迁移(分类、行、开关、返回)。**COMPLETE (2026-09-13)**。
## 结果摘要(M63-A)
- Boot 页面:identity 改共享 `header_band`、rail 改共享 `card`、状态印章改共享
`pip`(序号/OK 改深墨,修正羊皮纸上象牙白不可读的缺陷)、进度条改共享
`progress` 材质(新增并登记于 `M52_SHARED_UI_RULES.md`)、重试/诊断/退出改
`command_plate` + `ButtonLabel` + 引擎图标;文字尺寸/颜色全部走 `ABGUI_Tokens`。
- 源绑定 attempt `m63-boot` `20260913T181401Z-32808`:boot 运行/响应式/捕获、
入口流程、M63 探针(12 次扫描 0 违规)全部通过,marker 恰好一次,strict 0。
## M63-B 实测与结果(首次设置)
页面区域 → 共享材质(源:`runtime/assets/ui_m57_chrome/*`,边距由
`PageChrome` 常量声明):
| 区域 | 旧源 | 新共享件 | 边距/槽位 |
| --- | --- | --- | --- |
| 预览框 | `entry/first_launch/preview-frame.png`(九宫 86/74) | `card`(`panel_parchment`) | `PANEL_EDGE_X 0.055 / Y 0.15`;子内容全部按实测开口内缩 |
| 预览标题/详情 | `value-plate.png`(九宫 72/0) | `header_band` / `card` | 标题槽=标题带内框,详情槽=卡内框 |
| 设置行 | `setting-row.png`(九宫 36/0) | `command_plate`(secondary) | `PLATE_EDGE_X 0.062`;标题槽 = 徽章右到数值牌左 |
| 行徽章 | `setting-icon.png` + 象牙白字母 | `pip`(circle 空心) | 徽章直径 `clamp(row.h-14, 24, 52)`,落在牌面内 |
| 数值牌 | `value-plate.png` | `card` | 宽 `clamp(row.w*0.26~0.30, 46, 132)`,右缘内缩 |
| 应用按钮 | `apply-command.png`(九宫 60/0) | `command_plate`(primary) | `CommandFrame` 节点名保留(既有契约) |
| 标题块 | 世界层象牙白+阴影 | `header_band` | 标题/副标题都落在带宽 `clamp(content.h*0.19, 86, 132)` 的内框 |
| 安全区辅助线 | 私有 `StyleBoxFlat` | 保留(共享族暂无同类) | 颜色改 `UITokens.COLOR_IVORY` |
- 源绑定 attempt `m63-setup` `20260913T183304Z-47444`:首次设置/响应式/捕获、
入口流程、M63 探针(18 次扫描 0 违规)全过,marker 恰好一次,strict 0。
- 修复的真实缺陷:① 760 紧凑行标题被截断(槽 37.6px,改为微字号+两行内换行);
② 大卷轴卡把标题压在卷边下(实测开口内缩);③ 行徽章/数值牌压在牌匾卷边上。
- `M63-I03`(观察):760x360 紧凑双列下最长标签(字幕与事件标签)换两行,
完整可读,检查器通过;不改设计。
- `M63-I04`(已做):删除设置页不再使用的入口素材常量
(`FIRST_LAUNCH_PREVIEW_FRAME/SETTING_ROW/APPLY_COMMAND/SETTING_ICON/VALUE_PLATE/
RETURN_TAB`)与随之无用的 `_first_nine_patch`;素材文件保留(设计权威目录仍引用其来源)。
## 验收检查
- 既有 Boot 行为证据继续通过:`ABG_DEV1_BOOT_RUNTIME_OK`、
`ABG_DEV1_BOOT_RESPONSIVE_OK`、`ABG_SYS001_BOOT_CAPTURE_OK`、
`ABG_DEV1_ENTRY_TOUCH_OK`;节点名保持不变(`BootWorld`/`BootIdentityPlaque`/
`BootVerificationRail`/`BootStatusSeal*`/`BootStatus`/`BootDetail`/
`BootProgress`/`BootProgressValue`/`BootRetry`/`BootDiagnosticsAction`/
`BootExit`);类型契约变更(rail/plaque 由贴图容器变布局容器、按钮文字移入
`ButtonLabel`)在聚焦测试中同步更新。
- 新探针 `m63_entry_visual_probe.gd`:boot 的 normal/error × 3 尺寸 × 2 语言,
static/dynamic/final,墨迹检查自检 + 扫描通过(`ABG_M63_ENTRY_INK_OK`)。
- 源绑定 attempt:marker 恰好一次、strict 诊断 0、owned cleanup。
- 语义冻结:boot 流程/设置读写/Save 路径/路由不变。
## 冻结范围
玩法、经济、内容、Save、路由、音频、打包一律不动;只改 Boot 的呈现层与共享
材质层;其它入口页(设置/Title)本轮不动。
## 提交边界
计划激活提交;Boot 迁移 + 材质 + 探针提交;证据与账本提交。
## Issue Register
- `M63-I01` OPEN:`BootProgress` 由 `ProgressBar` 变为共享材质实例;如后续
仍有测试读取 `ProgressBar.value`,在对应聚焦测试中改为读取节点属性 `value`。
- `M63-I02` OPEN:入口页的 `credits` 屏本轮不在范围内(DEV-1R 未列),
矩阵中标记为后续步骤。