docs: activate M43 Guild page view refactor
Freeze the live HUB-001 Guild View boundary before product code.
This commit is contained in:
+8
-13
@@ -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,
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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`
|
||||
Reference in New Issue
Block a user