7.9 KiB
M31 MVP Release Readiness
Status
- Plan:
M31_MVP_RELEASE_READINESS - Status:
COMPLETE - Activated: 2026-08-25
- Baseline:
2556be9(M30_RECOVERY_CONTROLLER_PILOT_COMPLETE) - Owner authorization: the Owner asked to continue toward the MVP and to perform the intermediate checks autonomously, with final inspection kept as the Owner gate.
Objective
Close the pre-package release-readiness boundary for the completed first-cycle
MVP. This plan audits the existing player path, persistence/restart behavior,
negative and recovery boundaries, normal 100% rendering, input, localization,
diagnostics and test-attempt hygiene. It does not add a new feature or start
packaging.
Player/System Stopping Point
- A fresh player can reach and complete the first cycle in player order:
Title -> Guild -> Market -> Party -> Readiness -> Risk -> Battle Opening -> Live Battle -> Result -> Knockout Review -> Reward Choice -> Recovery -> next-stage Market. - A restart after Recovery returns to the same Company and next-stage Market; stable Recruit identity, reward completion and one-recovery receipt remain intact.
- Invalid, empty, duplicate and interrupted actions fail visibly or remain retry-safe without mutating authoritative Save/economy state.
- The accepted Japanese 2D hand-drawn presentation remains unchanged. Normal
100%landscape rendering is the current automated visual scope;130%text scale is not a blocker for this milestone. - The stopping point is an audited local MVP candidate, not a device-verified, signed, store or release-accepted build.
Release-Readiness Contract
source-bound clean archive
-> strict import/diagnostic scan
-> focused first-cycle and second-cycle regressions
-> normal 100% captures at 760x360, 844x390 and 1280x720
-> touch/restart/negative-state inspection
-> issue register and handoff
The audit must use tools/run_test_attempt.py for fresh archive/import,
capture and cleanup. A zero process exit is insufficient: every required
marker must appear exactly once and Godot diagnostics must remain strict.
The audit may add only the smallest regression or harness repair required by
an observed failure; it must not redesign accepted pages or change Battle,
Economy, Save, Recovery or localization semantics.
Ordered Steps
M31-A — Plan and baseline (COMPLETE)
- Record this stopping point, acceptance checks, frozen scope and external gates.
- Verify the source revision, upstream state, current checkpoint and retained M30 evidence before running new attempts.
- Commit and push the activation boundary before any product-code repair.
Closure: the activation plan, checkpoint and development ledger were pushed at
source da3b323. git diff --check is clean, the source revision and
upstream are synchronized, and retained .uid, .import and
prototype_incremental/ paths were left untouched.
M31-B — Automated release-readiness audit (COMPLETE)
- Run the source-bound MVP first-cycle audit from a fresh Git archive.
- Run the DEV-5 candidate regressions and M27-M30 focused controller/domain boundaries that feed the first-cycle handoff.
- Reuse the existing first-cycle checks for duplicate actions, invalid/empty states, restart and Save-corruption recovery; add a new check only if the current evidence leaves a first-cycle boundary unproven.
- Require strict diagnostics, exact-once markers, parsed touch coverage and complete owned-process/workspace cleanup.
Closure: the fresh source-bound MVP audit passes at
/private/tmp/aetherbound-guild-test-evidence/m31-mvp-audit/20260825T115503Z-64179
with ABG_MVP_FIRST_CYCLE_AUDIT_OK, 128 normal 100% frames, strict
diagnostics 0, parsed touch, restart-to-Market and complete runner cleanup.
The DEV-5 candidate passes at
/private/tmp/aetherbound-guild-test-evidence/m31-dev5-candidate/20260825T120229Z-71755
and the M27-M30 controller boundary attempt passes at
/private/tmp/aetherbound-guild-test-evidence/m31-controller-boundaries/20260825T120404Z-73332.
An exploratory DEV-6 candidate attempt failed because the second-cycle legacy
test still expects a MarketReturnContract control that the accepted Market
master no longer exposes; this is recorded as out-of-scope M31-I03, not a
first-cycle MVP blocker, and no second-cycle product change is authorized here.
M31-C — Normal-render and runtime inspection (COMPLETE)
- Inspect representative Title, Market, Party/Readiness, Battle, Result,
Knockout, Reward, Recovery and next-Market captures at normal
100%. - Check clipping, overlap, stale values, missing assets, unreadable state changes, back/restart behavior and touch target truthfulness.
- Record findings in this plan's issue register; repair only the earliest load-bearing blocker and rerun the focused check.
Closure: the retained normal-render bundle is reviewed in
docs/runtime/M31_MVP_RELEASE_READINESS_VISUAL_AUDIT.md. Representative
Battle Opening/Live/Result/Recovery/next-Market and Readiness states show no
release-blocking clipping, overlap, stale identity/value, missing state or
wrong-route defect at normal 100%. The gate is agent_visual_reviewed; human
visual/comprehension, audio listening, device and release acceptance remain
open. No product-code repair was activated.
M31-D — Handoff (COMPLETE)
- Record the final evidence paths, source revision, residual risks and exact external gates.
- Update
CURRENT_CHECKPOINT.mdanddocs/06_DEVELOPMENT_AND_REVIEW.md. - Create and push one focused closure commit with a clean worktree and no owned runner/process left behind.
Closure: the handoff records the M31 audit archive, normal-render report,
out-of-scope DEV-6 finding and external gates. The closure source is
1455ad5; the focused documentation/checkpoint closure commit follows this
status update. No owned test runner or child process remains.
Frozen Scope
- No new regions, bosses, professions, equipment families, endgame or second content cycle.
- No visual redesign, pixel-art treatment, new generated assets/audio or unapproved page reconstruction.
- No changes to Battle, Economy, Company, Contract, Save schema/migration, Recovery, localization semantics or accepted controller boundaries unless a failing audit proves a minimal correctness repair is required.
- No iOS project generation, export, signing, TestFlight, store or deployment work in this plan. Those require a separate explicitly authorized plan.
- Do not delete retained
.uid,.importorprototype_incremental/files.
Acceptance Checks
ABG_MVP_FIRST_CYCLE_AUDIT_OKexactly once from a fresh source-bound attempt, with strict diagnostics0, normal100%captures, parsed touch, restart-to-Market and owned cleanup.- DEV-5 and all preceding DEV-1..5/controller markers remain green.
- Negative, duplicate, empty and recovery boundaries have an explicit test or a documented residual risk; no silent no-op remains on a legal-looking command.
- Runtime inspection records no release-blocking clipping, overlap, stale identity/value, missing state or wrong-route defect at the required sizes.
- The normal-render audit is recorded as
agent_visual_reviewed; human, device, audio-listening and release gates remain explicitly open. - Closure source is committed, pushed, upstream-synchronized and clean.
Issue Register
| ID | Status | Boundary | Evidence / action |
|---|---|---|---|
M31-I01 |
OPEN |
Owner human comprehension/fun review | Automated evidence cannot replace an uncoached player review. |
M31-I02 |
OPEN_EXTERNAL |
Device, package, signing, store and release gates | Kept outside this plan; activate only with explicit Owner authorization. |
M31-I03 |
OPEN_SCOPE |
DEV-6 second-cycle legacy test expects removed MarketReturnContract control |
Second-cycle management is outside the first-cycle MVP stopping point; preserve as historical evidence and activate a new plan before repairing it. |
Final Handoff
ABG MVP RELEASE READINESS READY