7.5 KiB
M22 Readiness Controller Pilot
Status
- Plan:
M22_READINESS_CONTROLLER_PILOT - Status:
COMPLETE - Activated: 2026-08-25
- Baseline:
bcd359d(M21_PARTY_LINE_CONTROLLER_PILOT_COMPLETE) - Owner authorization: the Owner authorized direct migration to the new code architecture; this is the next smallest first-cycle seam after Party Line.
Objective
Move the first-cycle Readiness Review view-data boundary onto an explicit,
UI-independent controller while preserving the accepted PTY-002 composition,
the frozen four-member snapshot, warning ownership, Accept/Revise/Back/Risk
semantics and FormationRiskService transaction behavior. This is a
structural Controller/View migration, not a Readiness visual redesign or a
new preparation rule.
Player/System Stopping Point
- Readiness opens only from the authoritative saved formation snapshot and
keeps the same ordered four-member line, front exposure, relation/coverage
facts and
ordered/readystates; - the controller owns copied Company/Contract facts, saved order and stable Recruit positions, relation/coverage/first-threat facts, supplied warning facts, receipt/status facts and command eligibility;
- the existing Readiness View keeps its accepted PTY-002 composition, static master, node names, hit areas, focus order, localization helpers, tooltips and callbacks;
FormationRiskService.accept_readinessremains the only readiness transaction/receipt authority, and loading/persistence remains outside the controller;- no accepted page, route, visual, input, economy, Save or risk rule changes.
Architecture Contract
Readiness route / FormationRiskService snapshot
-> ReadinessPageController (view-data assembly)
-> ReadinessViewData (deep-copied snapshot)
-> Existing Godot PTY-002 Readiness View composition
-> Existing FormationRiskService commands
The controller receives Company, Formation and explicit presentation facts.
It validates the saved order boundary, deep-copies all returned facts and
exposes only view state and command eligibility. It never loads, saves or
mutates persistence and never accesses Godot nodes, current_screen,
facade or Entry Shell globals. It does not duplicate readiness acceptance,
order saving, risk selection or battle rules. Warning rows are supplied as
presentation facts and copied rather than re-inventing a transaction policy.
Ordered Steps
M22-A — Plan and boundary (COMPLETE)
- Record the Readiness stopping point, invariants and forbidden scope.
- Inventory the current saved-snapshot, warning, receipt, command and focus branches before product code changes.
- Commit and push this activation boundary before Readiness product code.
Closure: source 0098b5b records the bounded Readiness Controller/View
migration, its frozen PTY-002 and FormationRiskService invariants and its
forbidden scope before any Readiness product code changes.
M22-B — Additive controller (COMPLETE)
Add runtime/entry/readiness_page_controller.gd and a focused test covering:
- missing/invalid Company, Contract, Formation and saved-order rejection;
- copied ordered Recruit facts, stable position IDs and front Recruit;
- relation/coverage/first-threat, supplied warning and receipt deep copies;
ordered/readystatus classification and order-hash facts;- Revise/Back/Accept/Risk/Settings/Warning command eligibility;
- stale selection/review fallback and deep-copy isolation.
Closure: source 6647b05 adds ABGReadinessPageController and the focused
ABG_M22_READINESS_CONTROLLER_OK test. The controller validates the saved
four-member boundary, copies Company/Contract/Formation facts, normalizes the
reviewed Recruit, copies warning/receipt/snapshot data and exposes truthful
ordered/ready command eligibility without Godot-node, persistence or
FormationRiskService transaction dependencies. The source-bound focused
attempt is
/private/tmp/aetherbound-guild-test-evidence/m22-readiness-controller-source-bound/20260825T061725Z-60968;
the marker appears exactly once, strict diagnostics are 0, and the owned
workspace/process cleanup passes.
M22-C — View integration (COMPLETE)
- Inject one controller through Entry Shell/AppServices.
- Make Readiness rendering and summary facts consume controller output.
- Preserve the accepted PTY-002 visual composition, node names, focus, touch targets, localization and callbacks.
- Keep
FormationRiskService.accept_readinessand all existing route/service calls unchanged.
Closure: source ab83290 injects ABGReadinessPageController through
Entry Shell/AppServices and makes the accepted PTY-002 Readiness View consume
copied controller output for Company/Contract facts, ordered Recruit facts,
coverage, warning rows, receipt state and Accept/Risk command eligibility.
The existing static master, node names, focus order, touch targets,
localization, callbacks and FormationRiskService calls remain unchanged.
The focused source-bound candidate archive is
/private/tmp/aetherbound-guild-test-evidence/m22-readiness-controller-focused/20260825T062201Z-64223
with 49 evidence files, 24 normal 100% DEV-4 capture frames, exact-once
ABG_M22_READINESS_CONTROLLER_OK and ABG_DEV4_CANDIDATE_SUITE_OK markers,
strict diagnostics 0, owned workspace/process cleanup and archive SHA-256
e291052f30d8aeb79e5abfbb1e5d64362fc14c42a1becc73ca4507e4cffbd1d8.
M22-D — Verification and handoff (COMPLETE)
- Run the focused controller, Readiness, Party, Risk, Guild, Market and Hire regressions.
- Run normal
100%Readiness captures at the required landscape fixtures. - Run the full MVP first-cycle audit and require strict diagnostics
0. - Close with a focused pushed commit and update the checkpoint.
Closure: the full source-bound MVP first-cycle audit from source ab83290
passes ABG_MVP_FIRST_CYCLE_AUDIT_OK exactly once with 128 normal 100%
frames across zh_CN/en and 760x360, 844x390, 1280x720, strict
diagnostics 0, parsed touch coverage and owned workspace/process cleanup.
The retained archive is
/private/tmp/aetherbound-guild-test-evidence/m22-mvp-audit/20260825T062330Z-65410
with 180 evidence files and archive SHA-256
7693816157e45f7c09eea8e5fe2609c4b3a9a9843eb98de0767ea8f5f5abfca2.
M22 closes without changing PTY-002 presentation, Readiness/Save receipts,
formation rules, Risk semantics or any later page.
Frozen Scope
- No visual redesign or new assets/audio/animation.
- No changes to
FormationRiskService, formation rules, order/readiness receipts, Company, Contract, Risk, Battle, Save or economy semantics. - No migration of Risk, Battle, Result or Recovery pages in this plan.
- No new warning policy; only existing supplied warning facts may cross the controller boundary.
- No mass rewrite or deletion of compatibility/history files.
- No packaging, signing, store or release work.
Acceptance Checks
ABG_M22_READINESS_CONTROLLER_OKexactly once.- Existing
ABG_DEV4_READY_OK, Party, Risk, Guild, Market and Hire markers remain green. - Normal
100%Readiness captures, 48px targets, same-route focus, Revise/Back/Accept/Risk behavior and Settings return context remain green. ABG_MVP_FIRST_CYCLE_AUDIT_OKremains green.
Commit Boundaries
M22-A: plan/checkpoint activation.M22-B: controller and focused unit test.M22-C: Entry Shell integration.M22-D: evidence and 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 M22 READINESS CONTROLLER MIGRATION READY