5.9 KiB
5.9 KiB
M36 Risk Commitment Page View Refactor
Status
- Plan:
M36_RISK_COMMITMENT_PAGE_VIEW_REFACTOR - Status:
COMPLETE - Activated: 2026-08-25
- Baseline:
0eed014(M35_BATTLE_RESULT_PAGE_VIEW_REFACTOR_COMPLETE) - Owner authorization: the Owner asked to continue splitting page Views after the M35 Battle Result pilot. This plan is the next bounded extraction in the ordered M35 handoff map.
Objective
Extract the RSK-002 Risk Commitment page from entry_shell.gd into a passive,
UI-only ABGRiskCommitmentPageView while preserving the accepted custom
16:9 normalized composition, static master artwork, complete four-member
frozen Party presentation, selected-risk facts, six consequence facts,
acknowledgement boundary, disabled Begin Battle state, settings access,
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
EntryShell / composition root
-> RiskCommitmentPageController.snapshot()
-> presentation-ready ViewData
-> ABGRiskCommitmentPageView.render(ViewData)
-> explicit View intents
-> EntryShell application command boundary
-> existing risk/settings/acknowledge/battle commands
Ownership rules
ABGRiskCommitmentPageViewowns only Godot nodes, normalized layout, focus, local text/portrait presentation and intent emission.- The View does not import or call FormationRiskService, BattleService, Save,
the compatibility facade, RuntimeContentRegistry,
current_screenor EntryShell globals. ABGRiskCommitmentPageControllerremains the authority for copied Company, Contract, selected-risk, consequence, frozen-Party, dependency, binding, confirmation and command facts.- EntryShell remains the composition root and translates only explicit
back,review_risk_details,review_consequences,acknowledge,begin_battleandsettingsintents through deferred connections. - Risk projection, formation binding, acknowledgement, BattleService, receipts, Save and route semantics remain unchanged.
Player-visible stopping point
- The player sees the same RSK-002 parchment/master frame, selected risk identity/source/region, six consequence facts, frozen four-member Party, coverage values and command rail as the M24-accepted page.
- The selected-risk and consequence hit areas still update the existing local notice without changing domain facts.
Acknowledgestill toggles the existing confirmation state and never creates a commitment receipt by itself.Begin Battleremains disabled until acknowledgement and dependency checks are valid, then follows the existing Battle Opening route.Backreturns to the Risk Board andSettingsopens the existing Settings route with the same caller identity.- A controller-invalid snapshot renders the existing invalid-state boundary.
Ordered steps
M36-A — Architecture contract and inventory (COMPLETE)
- Freeze the RSK-002 stopping point, dependency direction and forbidden imports before product code changes.
- Inventory the current normalized canvas, static master, transparent hit areas, UI-only formatting helpers, exact node names and six-intent command boundary.
- Record the M24 normal-capture equivalence target.
- Commit and push this activation boundary before Runtime product changes.
M36-B — Passive View extraction (COMPLETE)
- Add
ABGRiskCommitmentPageViewunderruntime/entry/views/. - Reuse
ABGPageViewandABGPageContextwhile retaining the custom 16:9 normalized canvas and static master image. - Preserve all accepted semantic node names and complete Party portraits.
- Mount the View from EntryShell and translate only the six explicit intents.
- Keep controller, FormationRiskService, BattleService, receipt and Save semantics unchanged.
- Complete at the product integration source.
M36-C — Focused verification (COMPLETE)
- Add
ABG_M36_RISK_COMMITMENT_VIEW_CONTRACT_OK. - Run the focused Risk Commitment controller/View and M12/M24 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 Commitment captures with the M24 baseline at the four required fixtures/locales.
- Complete at source
26190de; evidence is recorded indocs/runtime/M36_RISK_COMMITMENT_PAGE_VIEW_VISUAL_AUDIT.md.
M36-D — Handoff (COMPLETE)
- Record source-bound evidence and visual equivalence in a runtime audit.
- Close only Risk Commitment; Readiness and other preparation Views remain outside this plan.
- Leave Readiness as a separately activated next extraction.
- Complete at source
3a82056with the source-bound audit and byte-equivalence record.
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,.importorprototype_incremental/. - No packaging, iOS export, signing, deployment, store or release work.
Acceptance checks
ABG_M36_RISK_COMMITMENT_VIEW_CONTRACT_OKexactly once.- Existing
ABG_M24_RISK_COMMITMENT_CONTROLLER_OK, M12/DEV-4 candidate andABG_MVP_FIRST_CYCLE_AUDIT_OKremain green. - Extracted View has no forbidden service/content/route imports and emits only the six explicit intents.
- Risk Commitment normal
100%captures remain visually equivalent to the M24 baseline at required fixtures and locales. - Focused source is committed, pushed and tracked files are clean.
Commit boundaries
M36-A: plan/checkpoint activation.M36-B: View and EntryShell integration.M36-C: focused verification/evidence.M36-D: handoff/closure.
Final handoff
ABG M36 RISK COMMITMENT VIEW PILOT COMPLETE
M36 is closed. Readiness requires a separate Owner-authorized plan.