From dffc20f763fde4ba79bb5a1bebd90ffc682005f6 Mon Sep 17 00:00:00 2001 From: wusumac <736139669@qq.com> Date: Wed, 26 Aug 2026 09:46:47 +0800 Subject: [PATCH] docs: activate M43 Guild page view refactor Freeze the live HUB-001 Guild View boundary before product code. --- CURRENT_CHECKPOINT.md | 21 ++- docs/06_DEVELOPMENT_AND_REVIEW.md | 23 +++- docs/plans/M43_GUILD_PAGE_VIEW_REFACTOR.md | 153 +++++++++++++++++++++ 3 files changed, 182 insertions(+), 15 deletions(-) create mode 100644 docs/plans/M43_GUILD_PAGE_VIEW_REFACTOR.md diff --git a/CURRENT_CHECKPOINT.md b/CURRENT_CHECKPOINT.md index 500dd531..d3b426fe 100644 --- a/CURRENT_CHECKPOINT.md +++ b/CURRENT_CHECKPOINT.md @@ -13,21 +13,16 @@ ## Current State -- Stage: `M42_CONTRACT_CHOICE_PAGE_VIEW_REFACTOR` (`COMPLETE`; no later - migration active) -- Active implementation step: none. M42-D closes at source `da94e8a`; M41 is - complete at - source `b88b211`; its source-bound View contract, controller/runtime/route +- Stage: `M43_GUILD_PAGE_VIEW_REFACTOR` +- Active implementation step: `M43-A` (`IN_PROGRESS`). M42 is complete at + source `975c77d`; its source-bound View contract, controller/runtime/route regressions, DEV-3 candidate, full MVP first-cycle audit and four-fixture - Market visual equivalence all pass with strict diagnostics `0` and + Contract Choice visual equivalence all pass with strict diagnostics `0` and exact-once markers. Evidence is recorded in - `docs/runtime/M41_MARKET_PAGE_VIEW_VISUAL_AUDIT.md`. - M42-A is complete at the activation boundary, M42-B is complete at source - `885506f`, M42-C is complete at source `da94e8a` and M42-D closes with the - source-bound audit in - `docs/runtime/M42_CONTRACT_CHOICE_PAGE_VIEW_VISUAL_AUDIT.md`. The durable - plan `docs/plans/M42_CONTRACT_CHOICE_PAGE_VIEW_REFACTOR.md` is complete; - no later View migration is activated. + `docs/runtime/M42_CONTRACT_CHOICE_PAGE_VIEW_VISUAL_AUDIT.md`. + M43 now freezes the next live HUB-001 layered Guild boundary before product + code; the durable plan is + `docs/plans/M43_GUILD_PAGE_VIEW_REFACTOR.md`. `M40_RECRUIT_REVIEW_PAGE_VIEW_REFACTOR` is complete. It froze the SHP-002 Recruit Review stopping point, Controller/ViewData boundary, static master, exact fact and command nodes, approved invisible Settings hit area, diff --git a/docs/06_DEVELOPMENT_AND_REVIEW.md b/docs/06_DEVELOPMENT_AND_REVIEW.md index fdedcd53..ec55d9a1 100644 --- a/docs/06_DEVELOPMENT_AND_REVIEW.md +++ b/docs/06_DEVELOPMENT_AND_REVIEW.md @@ -10,8 +10,9 @@ Complete-game Goal, hand-drawn repair boundary, ordered implementation plan, roa ## Repository Reset And Page Production Baseline -> Status: `COMPLETE / M42_CONTRACT_CHOICE_PAGE_VIEW_REFACTOR` -> Active step: none. M42-D is closed and no later View migration is active. +> Status: `IN_PROGRESS / M43_GUILD_PAGE_VIEW_REFACTOR` +> Active step: `M43-A` (architecture contract and inventory). M42-D is closed +> at source `975c77d`; no later product code has changed yet. > M41-D is closed at source `b88b211`; M41-C is closed with source-bound verification and > four-fixture visual equivalence. M41-B is closed at source `9a440b3`; M40-D is closed at source > `9da7cac`; M39-D is closed at source `cf14bc8`. M32-D is @@ -3995,3 +3996,21 @@ they are not duplicated here. `select_difficulty`/`confirm`/`back` intents. Controller, Contract service, Guild/Market routing, economy, Save and localization semantics are unchanged. M42 is complete; no later migration is active. + +### 2026-08-26 - M43 Guild Page View Refactor Activated + +- M42 Contract Choice View is closed at source `975c77d`. The next bounded + architecture slice is `M43_GUILD_PAGE_VIEW_REFACTOR`, recorded in + `docs/plans/M43_GUILD_PAGE_VIEW_REFACTOR.md`. +- M43-A is now the sole active step. It freezes the live HUB-001 layered Guild + desk (`GuildMasterWorldExtension` / `GuildMasterDesignCanvas` / + `GuildMasterLayeredWorld`), fixed top/bottom rails, Company/status/kiosk + presentation, truthful empty/active/returned Contract states, focus/touch + targets and the eight explicit destination/utility intents before product + code. +- `GuildPageController.snapshot()` remains the view-data authority and the + existing EntryShell application/service boundaries remain authoritative for + routing, Contract, Market, Party, Risk, persistence and current Company. + M43 changes no gameplay, economy, Save, localization or visible Guild + semantics; normal `100%` landscape is the blocking visual scope and `130%` + remains non-blocking. diff --git a/docs/plans/M43_GUILD_PAGE_VIEW_REFACTOR.md b/docs/plans/M43_GUILD_PAGE_VIEW_REFACTOR.md new file mode 100644 index 00000000..43616756 --- /dev/null +++ b/docs/plans/M43_GUILD_PAGE_VIEW_REFACTOR.md @@ -0,0 +1,153 @@ +# M43 Guild Page View Refactor + +## Status + +- Plan: `M43_GUILD_PAGE_VIEW_REFACTOR` +- Status: `IN_PROGRESS` +- Activated: 2026-08-26 +- Baseline: `975c77d` (`M42_CONTRACT_CHOICE_VIEW_PILOT_COMPLETE`) +- Owner authorization: continuation of the Owner-authorized layered Passive + View + Presenter/ViewData + Domain/Application Service architecture. The + next bounded extraction is the accepted HUB-001 layered Guild desk. + +## Objective + +Extract the live layered Guild desk from `entry_shell.gd` into a passive, +UI-only `ABGGuildPageView` while preserving the accepted world/rail/actor +composition, empty/active/returned Contract states, destination locks, +Title/Settings/Roster commands, focus/touch targets and normal `100%` output. + +This is a structural View migration, not a Guild visual redesign or a change +to Contract, Market, Party, Risk, Battle, economy, Save or localization +semantics. + +## Target boundary + +```text +EntryShell / composition root + -> GuildPageController.snapshot() + -> presentation-ready Guild ViewData + -> ABGGuildPageView.render(ViewData) + -> explicit destination/utility intents + -> EntryShell application and route boundaries +``` + +## Player-visible stopping point + +- The player sees the same accepted HUB-001 layered world, fixed rail caps, + engine-rendered Company/pressure/Coin values, two-member muster and kiosk + copy at the same normalized anchors. +- Empty, active and returned Contract states keep the same truthful enabled / + disabled destination controls and reason text. +- Title, Settings, Roster, Contract Board, Market, Party and Risk controls + preserve their existing targets and routes. Disabled controls remain + disabled rather than emitting an intent. +- The View receives a copied `GuildPageController.snapshot()` and emits only + explicit utility/destination intents. It owns no service, persistence or + route state. + +## Frozen semantic nodes + +`GuildMasterWorldExtension`, `GuildMasterDesignCanvas`, +`GuildMasterLayeredWorld`, `GuildAnchorRoot`, `GuildTopRail` and its three +segments, `GuildBottomRail` and its three segments, `GuildTitlePlate`, +`GuildAnchorTitle`, `GuildAnchorStatus`, `GuildProgressStatus`, +`GuildCoinStatus`, `GuildAnchorCompanyStatus`, `GuildSettings`, `GuildTitle`, +`GuildRoster`, `GuildMemberPortraitTexture_0/1`, +`GuildMasterIdentityPlate0/1`, `GuildMasterKioskTexture`, +`GuildKioskCopyArea`, `GuildKioskText`, `GuildContractReason`, +`GuildMarketReason`, `GuildNotice`, `GuildRosterButton`, `GuildEquipment`, +`GuildParty`, `GuildRisk`, `GuildContractBoard`/`GuildContractActive`, +`GuildMarket`/`GuildMarketUnavailable`, hidden command labels and the two +historical invisible sticker markers remain stable. + +## Intent boundary + +The View emits only: + +```text +title +settings +roster +equipment +party +risk +contract +market +``` + +Enabled destination commands carry no mutable Company payload; EntryShell +uses its current Company and the existing service/controller boundaries. + +## Forbidden View dependencies + +The View must not import or call `GuildContractService`, persistence, +`RuntimeContentRegistry`, the compatibility facade, `current_screen`, +`entry_shell.gd`, or EntryShell globals. `GuildPageController` remains +outside the View and supplies copied facts. + +## Ordered steps + +### M43-A — Architecture contract and inventory (`IN_PROGRESS`) + +- Freeze the accepted layered Guild stopping point, node tree, normalized + canvas/aspect policy, responsive typography, focus/touch targets, state + branches and destination intent map before Runtime product changes. +- Record the existing HUB-001/DEV-3 normal capture family as the immutable + equivalence target. Blocking scope is normal `100%` landscape at + `760x360`/`zh_CN`, `844x390`/`en`, `1280x720`/`zh_CN` and `1280x720`/`en`; + `130%` remains non-blocking. +- Commit and push this activation boundary before View code. + +### M43-B — Passive View extraction (`PENDING`) + +- Add `runtime/entry/views/guild_page_view.gd` and an isolated View contract + test. +- Move only the layered Guild node construction, responsive canvas/layout, + presentation and focus into the View. Keep the controller snapshot, + application services and route semantics in EntryShell. +- Translate deferred utility/destination intents in EntryShell and remove only + the extracted active Guild builders/helpers. + +### M43-C — Focused verification (`PENDING`) + +- Run the View contract, M20 controller/runtime, DEV-3 Contract/Market/Hire + regressions, layered reconstruction and responsive Guild checks with strict + diagnostics `0` and exact-once markers. +- Run the source-bound DEV-3 candidate and full MVP first-cycle audit. +- Compare the four required normal `100%` Guild captures against the M43-A + baseline at byte and decoded-pixel level. + +### M43-D — Handoff (`PENDING`) + +- Record source-bound evidence in + `docs/runtime/M43_GUILD_PAGE_VIEW_VISUAL_AUDIT.md`. +- Close only the Guild View extraction. Contract Choice, Market, Company / + Roster, Party, Risk, Battle, economy, Save, packaging and release remain + outside this plan. +- Update the checkpoint and development ledger, then push the focused closure. + +## Frozen scope + +- No Guild visual redesign, new assets/audio/animation or content changes. +- No changes to `GuildPageController`, Contract receipts, Market, Party, Risk, + Battle, economy, Save or localization semantics. +- No global event bus, reflection-based service locator, two-way binding layer + or mass rewrite of `entry_shell.gd`. +- No deletion or staging of compatibility/history files, `.uid`, `.import` or + `prototype_incremental/`. +- No packaging, iOS export, signing, deployment, store or release work. + +## Commit boundaries + +- `M43-A`: plan/checkpoint/ledger activation and baseline. +- `M43-B`: View and EntryShell integration. +- `M43-C`: focused verification/evidence. +- `M43-D`: handoff/closure. + +Each boundary must pass its narrowest focused checks and be pushed before the +next step becomes `IN_PROGRESS`; a failed check keeps the same step active. + +## Final handoff + +`ABG M43 GUILD VIEW PILOT COMPLETE`