docs: activate M38 risk board view refactor
Co-Authored-By: Codex <noreply@anthropic.com>
This commit is contained in:
@@ -13,11 +13,11 @@
|
||||
|
||||
## Current State
|
||||
|
||||
- Stage: `M37_READINESS_PAGE_VIEW_REFACTOR`
|
||||
- Active implementation step: `NONE` (`COMPLETE`) — M37 Readiness View pilot
|
||||
and handoff are closed. M37-A/B/C/D are complete; M36 Risk Commitment View
|
||||
remains complete. M37 changed no gameplay, visual, Save or localization
|
||||
semantics.
|
||||
- Stage: `M38_RISK_BOARD_PAGE_VIEW_REFACTOR`
|
||||
- Active implementation step: `M38-A` (`IN_PROGRESS`) — Risk Board View
|
||||
architecture contract and inventory. M37 Readiness View pilot and handoff
|
||||
are closed; M38 is the next bounded extraction and changes no gameplay,
|
||||
visual, Save or localization semantics.
|
||||
The owner-requested target is a layered Passive View + Presenter/ViewData +
|
||||
Domain/Application Service architecture with an explicit Router/Context
|
||||
boundary. `entry_shell.gd` will be reduced incrementally, starting with the
|
||||
|
||||
@@ -3781,3 +3781,15 @@ they are not duplicated here.
|
||||
in `docs/runtime/M37_READINESS_PAGE_VIEW_VISUAL_AUDIT.md`.
|
||||
- M37 is complete. No later View migration is active; a separate durable plan
|
||||
is required for the next extraction.
|
||||
|
||||
### 2026-08-25 - M38 Risk Board Page View Refactor Activated
|
||||
|
||||
- M37 Readiness View is closed. The next Owner-requested architecture
|
||||
milestone is `M38_RISK_BOARD_PAGE_VIEW_REFACTOR`, recorded in
|
||||
`docs/plans/M38_RISK_BOARD_PAGE_VIEW_REFACTOR.md`.
|
||||
- M38 targets only RSK-001 Risk Board. It preserves the accepted custom 16:9
|
||||
composition, static master, frozen four-member Party header, three sourced
|
||||
options, no-auto-selection boundary, local selection, Review/Back/Settings
|
||||
commands, focus order and normal `100%` presentation.
|
||||
- M38-A is the sole `IN_PROGRESS` step. Risk Commitment, Battle, Economy,
|
||||
Save, packaging and 130% scope remain frozen.
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
# M38 Risk Board Page View Refactor
|
||||
|
||||
## Status
|
||||
|
||||
- Plan: `M38_RISK_BOARD_PAGE_VIEW_REFACTOR`
|
||||
- Status: `IN_PROGRESS`
|
||||
- Activated: 2026-08-25
|
||||
- Baseline: `49b18e2` (`M37_READINESS_PAGE_VIEW_REFACTOR_COMPLETE`)
|
||||
- Owner authorization: the Owner asked to continue decomposing the Entry
|
||||
pages into the layered Passive View + Presenter/ViewData +
|
||||
Domain/Application Service architecture. Risk Board is the next bounded
|
||||
extraction in the first-cycle player order after Readiness.
|
||||
|
||||
## Objective
|
||||
|
||||
Extract the RSK-001 Risk Board page from `entry_shell.gd` into a passive,
|
||||
UI-only `ABGRiskBoardPageView` while preserving the accepted custom 16:9
|
||||
composition, static master artwork, frozen four-member Party header, three
|
||||
sourced risk options, no-auto-selection boundary, local selection, Review/
|
||||
Back/Settings commands, focus order, touch surfaces, localization and normal
|
||||
`100%` visual output.
|
||||
|
||||
This is a structural View migration, not a Risk, Formation, Battle, Economy,
|
||||
Save or visual redesign.
|
||||
|
||||
## Target boundary
|
||||
|
||||
```text
|
||||
EntryShell / composition root
|
||||
-> RiskBoardPageController.snapshot()
|
||||
-> presentation-ready ViewData
|
||||
-> ABGRiskBoardPageView.render(ViewData)
|
||||
-> explicit View intents
|
||||
-> EntryShell application command boundary
|
||||
-> existing selection/Review/Back/Settings commands
|
||||
```
|
||||
|
||||
### Ownership rules
|
||||
|
||||
1. `ABGRiskBoardPageView` owns only Godot nodes, normalized layout, focus,
|
||||
local text/portrait presentation and intent emission.
|
||||
2. The View does not import or call FormationRiskService, Save, the
|
||||
compatibility facade, RuntimeContentRegistry, `current_screen` or
|
||||
EntryShell globals.
|
||||
3. `ABGRiskBoardPageController` remains the authority for copied Company,
|
||||
Contract, frozen Party, coverage, option, selection and command facts.
|
||||
4. EntryShell remains the composition root and translates only explicit
|
||||
`select_risk`, `review`, `back` and `settings` intents through deferred
|
||||
connections.
|
||||
5. Risk selection remains local and non-persistent; Risk Commitment remains
|
||||
the downstream page/receipt authority.
|
||||
|
||||
## Player-visible stopping point
|
||||
|
||||
- The player sees the same RSK-001 parchment/master frame, frozen Party
|
||||
header, three sourced comparison columns, six compact facts per option,
|
||||
no-selection explanation and command rail as the M23-accepted page.
|
||||
- Selecting an option updates only the existing local selection and Review
|
||||
eligibility; it never mutates Company, Save or receipts.
|
||||
- `Review` opens the existing Risk Commitment page for the selected option;
|
||||
`Back` returns to Guild and `Settings` preserves the current Risk Board
|
||||
caller/selection context.
|
||||
- Invalid controller data renders the existing invalid-state boundary.
|
||||
|
||||
## Ordered steps
|
||||
|
||||
### M38-A — Architecture contract and inventory (`IN_PROGRESS`)
|
||||
|
||||
- Freeze the RSK-001 stopping point, dependency direction and forbidden
|
||||
imports before product code changes.
|
||||
- Inventory the normalized canvas, static master, option-column geometry,
|
||||
exact semantic node names, compact fact copy and four-intent command
|
||||
boundary.
|
||||
- Record the M23 normal-capture equivalence target at `760x360`/`zh_CN`,
|
||||
`844x390`/`en`, `1280x720`/`zh_CN` and `1280x720`/`en`.
|
||||
- Commit and push this activation boundary before Runtime product changes.
|
||||
|
||||
### M38-B — Passive View extraction (`PENDING`)
|
||||
|
||||
- Add `ABGRiskBoardPageView` under `runtime/entry/views/`.
|
||||
- Reuse `ABGPageView` and `ABGPageContext` while retaining the custom 16:9
|
||||
normalized canvas, static master and compact option-column composition.
|
||||
- Preserve every accepted Risk Board node name, option hit area and focus
|
||||
order.
|
||||
- Mount the View from EntryShell and translate only the four explicit
|
||||
intents.
|
||||
- Remove only the Risk Board UI builder/helpers from EntryShell; keep local
|
||||
selection, controller, Risk Commitment and service semantics intact.
|
||||
|
||||
### M38-C — Focused verification (`PENDING`)
|
||||
|
||||
- Add `ABG_M38_RISK_BOARD_VIEW_CONTRACT_OK`.
|
||||
- Run the focused Risk Board controller/View and DEV-4/M23 route regressions,
|
||||
DEV-4 candidate and full MVP first-cycle audit through the owned
|
||||
test-attempt runner with strict diagnostics and exact-once markers.
|
||||
- Compare normal Risk Board captures with the M23 baseline at the four
|
||||
required fixtures/locales.
|
||||
|
||||
### M38-D — Handoff (`PENDING`)
|
||||
|
||||
- Record source-bound evidence and visual equivalence in
|
||||
`docs/runtime/M38_RISK_BOARD_PAGE_VIEW_VISUAL_AUDIT.md`.
|
||||
- Close only Risk Board; Risk Commitment, Battle and later Views remain
|
||||
outside this plan.
|
||||
- Update the checkpoint and development ledger, then push the focused closure.
|
||||
|
||||
## Frozen scope
|
||||
|
||||
- No Risk/Formation/Battle/Economy/Save semantic changes.
|
||||
- No visual redesign, asset generation, localization rewrite or 130% scope.
|
||||
- No mass rewrite of `entry_shell.gd`.
|
||||
- No deletion of compatibility/history files, `.uid`, `.import` or
|
||||
`prototype_incremental/`.
|
||||
- No packaging, iOS export, signing, deployment, store or release work.
|
||||
|
||||
## Acceptance checks
|
||||
|
||||
- `ABG_M38_RISK_BOARD_VIEW_CONTRACT_OK` exactly once.
|
||||
- Existing `ABG_M23_RISK_BOARD_CONTROLLER_OK`, `ABG_DEV4_RISK_OK`, DEV-4
|
||||
candidate and `ABG_MVP_FIRST_CYCLE_AUDIT_OK` remain green.
|
||||
- Extracted View has no forbidden service/content/route imports and emits only
|
||||
the four explicit intents.
|
||||
- Risk Board normal `100%` captures remain visually equivalent to the M23
|
||||
baseline at all four required fixtures/locales.
|
||||
- Focused source is committed, pushed and tracked files are clean.
|
||||
|
||||
## Commit boundaries
|
||||
|
||||
- `M38-A`: plan/checkpoint activation.
|
||||
- `M38-B`: View and EntryShell integration.
|
||||
- `M38-C`: focused verification/evidence.
|
||||
- `M38-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 current step active.
|
||||
|
||||
## Final handoff
|
||||
|
||||
`ABG M38 RISK BOARD VIEW PILOT COMPLETE`
|
||||
|
||||
Reference in New Issue
Block a user