# Current Checkpoint ## Authority - Product and player contract: `docs/01_GAME_DESIGN.md` - Gameplay, balance, failure and Save authority: `docs/02_GAMEPLAY_AND_BALANCE.md` - Page plan and complete state map: `docs/03_PAGES_AND_UX.md` - Visual, animation and audio authority: `docs/04_ART_ANIMATION_AUDIO.md` - Complete content authority: `docs/05_CONTENT_CATALOG.md` - Program Goal, active repair contract, implementation plan and ledger: `docs/06_DEVELOPMENT_AND_REVIEW.md` ## Current State - **Active Goal: `ABG MVP 质量达标`**(`GOAL_ABG_MVP_QUALITY.md`, activated 2026-09-13 by the owner's instruction to generate a Goal and keep running it). The Goal's execution loop drives one bounded work package at a time from `docs/EVIDENCE_LEDGER.md` (append-only ledger). Order: W4 cleanup inventory (owner sign-off before deletion) → W5 page migrations DEV-1R..DEV-6R → smoke → owner playthrough and comprehension/fun record. Terminal states: `ABG MVP QUALITY READY` or `ABG MVP QUALITY BLOCKED: `. A HAPI command skill `abg-mvp-goal` (`~/.agents/skills/abg-mvp-goal/SKILL.md`) re-invokes this loop; the Goal's Decisions Log records the Title visual authority (current M52 chibi background + shared-family chrome; the 8/19 v002 candidate becomes history) and that `M60-I03`/`M60-I04` are handled inside the DEV-1R/DEV-3R packages. - Stage: `M63_DEV1R_ENTRY_MIGRATION` (`COMPLETE` 2026-09-13, DEV-1R four entry pages migrated); `M64` DEV-2R COMPLETE (opening flow migrated, single 1280x720); next plan: `docs/plans/M65_DEV3R_GUILD_CONTRACT_MIGRATION.md` (MVP 迁移系列 (M63–M68) COMPLETE: all player-facing pages on the shared 1280x720 family, all strict ink gates green (mvp-panorama 20260914T043127Z-94972). M69 character unification COMPLETE (owner-approved soft Q style, 12 portraits + character-free contract master, all gates green); owner looked at the M69 panorama and replied "可以的" (style accepted); open: DEV-6 receipts (M65-I04/M68-I02) RESOLVED via M71 (specs green), dormant test geometry (M68-I03 RESOLVED via M70), M75 dock-row boundary alignment COMPLETE (market grid-aligned + bounds assertion). M74 command-size normalization COMPLETE (M52-era pages now on the 48–59px token scale). M73 130% text accessibility COMPLETE (dual-scale probes green); legacy P9.x sweep (M64-I05: registered as historical — docs/runtime/LEGACY_TEST_REGISTRY.md), M60-I03 RESOLVED via option A (hired cards declare their state, m72-hired attempt green)), the first W5 package of the active Goal `ABG MVP 质量达标`; the durable plan is `docs/plans/M63_DEV1R_ENTRY_MIGRATION.md` (A Boot → B first-launch setup → C Title incl. `M60-I04` → D Settings, one page per commit and review). - Stage: `M62_COMPONENT_UNIFICATION` (`COMPLETE`, 2026-09-13), activated by the owner's "OK 继续吧" on 2026-09-13 as workstream W3 of the approved W1-W5 order; the durable plan is `docs/plans/M62_COMPONENT_UNIFICATION.md`. W3 freezes the single shared component library (`docs/runtime/M62_SHARED_COMPONENT_LIBRARY.md`), records the page-by-page chrome generation matrix (`docs/runtime/M62_PAGE_CONSISTENCY_MATRIX.md`; only 2 of 14 page views are on the current hand-drawn family) and wired the M59 ink checker into the Guild, Contract and Readiness/Result probes (source-bound `m62-ink-baselines` `20260913T164335Z-38711`: Guild 0, Contract 1, Readiness+Result 6, Market strict 0). The checker now measures glyph ink boxes and flags an icon only when its centre sits under the ink (`M62-I05` fixed two false-positive classes). Residual defects on accepted pages are registered as `M62-I02` (Market legacy overlay StyleBoxFlat), `M62-I03` (Readiness summary title overflow) and `M62-I04` (Contract facts 3px vertical overflow). No page visuals changed. The next owner-approved workstream is W4 (unused-artifact cleanup list), then W5 (page migrations, DEV-1R first). - Superseded: `M61_DESIGN_TRUTH_AND_DENSITY` (`COMPLETE`, 2026-09-13), activated by the owner's "你看着办吧" on 2026-09-13 as workstream W2 of the approved W1-W5 order; the durable plan is `docs/plans/M61_DESIGN_TRUTH_AND_DENSITY.md`. W2 is complete: the player-experience digest (`docs/runtime/ABG_PLAYER_EXPERIENCE_DIGEST.md`) summarises the authoritative product contract with citations, and the five-profile simulation (`m61-five-profile` `20260913T162625Z-2172`, decisions=330, max_gap=31.3s, risks 0/1/2, anti-dominance, save reload, content reachability) confirms the built slice's numeric skeleton; the full-campaign and wall-clock density stay open as `M61-I03`/`M61-I04` in `docs/runtime/M61_DESIGN_AND_DENSITY_REVIEW.md`. No product code changed. The next owner-approved workstream is W3 (component unification), then W4 (unused-artifact cleanup list) and W5 (page migrations, DEV-1R first). The M60 findings `M60-I03` (hired offers stay on the Market board) and `M60-I04` (a recoverable Company or leftover `.bak` disables New Game on the Title) are deferred to W5/DEV-1R rather than changed silently. - Superseded: `M60_PLAYABILITY_TRUTH_PASS` (`COMPLETE`, 2026-09-13), activated by the owner on 2026-09-13 as workstream W1 of the approved W1-W5 order; the durable plan is `docs/plans/M60_PLAYABILITY_TRUTH_PASS.md`. W1 answers "can the current build be played from boot through one complete first cycle", refreshes the drifted tests it finds, records a real driven playthrough with a video, and lists the breakages; W2 (design/retention digest), W3 (component unification), W4 (unused-artifact cleanup list) and W5 (page migrations, DEV-1R first) follow. The active step is M60-A (drifted-test alignment). Page visuals, content, economy, Save and routing stay frozen; only the earliest-failed boundary repair needed to finish the run is allowed, one focused commit each. - Stage: `M59_PROBE_INK_CHECKS` (`COMPLETE`, 2026-09-13), authorized by the owner on 2026-09-13 as the first of the two recommended next steps; the durable plan is `docs/plans/M59_PROBE_INK_CHECKS.md`. It adds the machine ink checks (label ink vs sibling icon, vs owner module, vs slot width) and the longest-shipped-string fixture to the Market visual probe so the M58-C defect class fails the gate instead of reaching the owner. Test infrastructure only: no page, gameplay, economy, Save, content, audio or route scope is opened. M59-A and M59-B are complete: the checker (`ui_ink_check.gd`, with a negative self-test), the longest-shipped-string fixture and the six residual defects it found are all fixed and source-bound (`m59-ink-checks` attempt `20260913T130719Z-53678`, `ABG_M59_INK_CHECK_OK scanned=12 violations=0`, strict diagnostics 0, 36 captures). M58 remains accepted. The owner-authorized next step is `DEV-1R` (Boot / first-launch setup / Title / essential Settings); it needs its own durable plan and an owner decision on the Title direction before any product code changes. No other page, economy, Save, content or route scope is opened. - Stage: `M58_MARKET_READ_SURFACE_REPAIR` (`COMPLETE`, owner accepted 2026-09-13). Owner authorized this bounded repair on 2026-09-13 when M57 closed; the durable plan is `docs/plans/M58_MARKET_READ_SURFACE_REPAIR.md`. It repaired the carried-over `M57-I05` legibility defect on Market plus the same fixture-honesty failure M57-A had to fix, on the existing Market composition. M58-A/B/C/D are complete: the probe fixture carries three real professions, the Market modules render at the view's canvas type scale, the card band, trait chip, cost strip, board heading, title plaque, footer commands, settings and resource badges all use shared hand-drawn proportional chrome with one owner per command, and every label was measured against its owner surface. The owner accepted the source-bound composite at play size with `这个 OK 了` on 2026-09-13 after rejecting two title-plaque placements and one badge icon/text overlap; those repairs and the measured contracts are in `M52_SHARED_UI_RULES.md`. Latest evidence: `m58-market-probe` attempt `20260913T114947Z-91894`, 18 images (3 fixtures x 2 locales x static/dynamic/final), strict diagnostics 0. No successor milestone is active. The machine-check follow-up (`M58-I11`: ink-box vs sibling icon, owner surface and slot width in the probe) and the two pre-existing dev6 failures (`M58-I09`, one on the Guild page) need separate owner authorization; no other page, economy, Save, content or route scope is opened. - Superseded: `M57_READINESS_VISUAL_REBUILD` (`COMPLETE`, owner accepted 2026-09-13). Owner authorized this bounded single-page repair on 2026-09-13 after M56-D kept returning Readiness to `OPEN`; the durable plan is `docs/plans/M57_READINESS_VISUAL_REBUILD.md`, and its issue register is empty. M56 is frozen at its written stopping point and no longer owns new product code. No successor milestone is active: the next bounded repair (Market's recorded contrast defect `M57-I05`) needs an owner-authorized plan before any product code changes. - Implementation steps: M57-A/B/C/D are complete. The visual probe uses real per-position data, the shared `asset_chrome.gd` nine-patch factory is recorded in `M52_SHARED_UI_RULES.md`, all twelve base professions now share one identity-locked Q-style sprite set, and each Readiness region now owns its own structure through `page_chrome.gd` (compartmented header band, carved dock with independent command plates, warning cards, parchment summary with shape markers and pips) instead of one reused plaque. Every surface is now hand-drawn material: carved wood-and-gold command plates, a painted dock rail, a parchment panel for the header, warning rows, status and summary cards, and enamel severity badges, with the material split fixed as carved wood = interactive and parchment = informational. The fresh-archive `m57-readiness-probe` attempt passes with strict diagnostics zero and emits static-only, dynamic-only on a neutral field and the final composite at all three fixtures in both locales (18 readiness images plus six result composites per run). The owner accepted the composite and the copy at play size on 2026-09-13, so the M57 visual gate is `ACCEPTED`, M57 is complete at its written stopping point, and the issue register is empty. - Superseded: `M56_FIXED_CANVAS_UI_REPAIR` (`FROZEN`). Its fixed-canvas and ownership-cleanup work (`M56-A..C`) remains valid implementation history. M52-M55 remain implementation history; their first-play visual path is superseded by this owner-authorized fixed-canvas repair. M52-A closes at source `e600d6f` plus owner approval on 2026-09-09: the Q-style direction board is now the visual baseline. Owner revised the visual direction after reviewing the supplied reference: M51 remains implementation evidence, but its world-first style is superseded by the new chibi hand-drawn mobile RPG direction. M51-A closes at source `e863673`; M51-B remains preserved as a partial implementation record rather than the current visual authority. - 2026-09-10: Market `CandidateLedger` was split into measured child modules (`ProfessionModule`, `DetailCopy`, `TraitModule`, `CostModule` and `ActionDock`) in source `3808f3b`. Focused structure/View contracts pass; the normal visual probe now exercises localized sample copy at 760x360, 844x390 and 1280x720 in Chinese and English. This is an implementation gate, not owner visual approval; the page remains OPEN for review. - 2026-09-10: `RecruitCard` compact slots now separate portrait, identity, trait and cost surfaces, with shared compact paper chrome for narrow cards. The focused card/View contracts and localized visual probe pass; overall Market visual review remains OPEN. ### 2026-09-09 - M52 Title Runtime Slice - M52-A remains complete at source `e600d6f` with owner approval of the chibi hand-drawn direction board. M52-B is still the sole active step. - Source `6763631` adds the generated, original `m52_title_background.png` and wires it into Title as a full-viewport aspect-cover background. The named 16:9 safe coordinate master and all Title route callbacks remain intact. Primary, disabled and utility Title actions now use shared token surfaces, so they read as buttons rather than bare text. - The source-bound `m52-title-runtime` attempt passes `ABG_DEV1_ENTRY_CAPTURE_OK` with strict diagnostics `0`, normal Metal rendering, 20 frames across the existing 760x360, 844x390 and 1280x720 fixtures and complete owned workspace cleanup. Manual review evidence is in `build/reviews/2026-09-09/m52-title-runtime-3/evidence/`. - Push is currently blocked by the configured remote closing SSH on port `5029`; the commit is present locally and ready to push when the remote is reachable. Guild, Contract and Market remain the next implementation scope. - The next Guild slice is prepared locally: `m52_guild_background.png` is wired into the existing Guild View as the full-viewport world layer, while the generated board remains the authored surface for runtime copy. The focused Guild View contract passes; the broader legacy DEV-3 capture still reports its pre-existing “Market starts unselected” assertion and is not counted as a regression verdict for this visual change. - Contract Choice is also wired locally to `m52_contract_background.png`, an original windglass route with a blank parchment board. Its focused View contract and normal four-fixture capture pass; difficulty selection, confirmation, back routing and Save semantics remain unchanged. Market is the next page to migrate. - Source `fcb2eb3` completes the next Title affordance slice: the four Title actions use shared `confirm`/`inspect`/`settings`/`help` icon slots with reserved label bounds. The responsive check and clean normal-render entry capture pass. Remote push is still blocked by SSH port `5029`. - Source `3f09545` turns the Title identity into an authored plaque lockup: localized main name, English submark, chapter line, outline and shadow are engine-rendered inside the existing identity plaque. Chinese and English target-size captures pass without clipping; this is the first Title logo treatment, not a final brand-art acceptance. - Source `5579e4e` corrects a style mismatch found in review: the old ornate identity plaque is replaced by a restrained rounded paper surface with ink border, teal ribbon and gold accent, matching the approved Q-style runtime direction. The clean normal Title capture still passes; owner review of the complete flow remains open. - Source `484d068` softens the Title plaque after owner review flagged hard, pixel-like edges: larger anti-aliased rounding, lighter border, softer shadow and a compact rounded cloth badge now match the Q-style direction. The clean normal Title capture passes; this remains an MVP treatment pending review in the complete flow. - Owner approved `docs/runtime/m52_qstyle_calibration.png` as the stronger Q-style baseline. The prior M52 generated backgrounds remain rejected interim candidates: their environments and task boards were too realistic relative to the Q/chibi characters. New runtime scenes will be regenerated from the calibration board, with engine-rendered text and controls preserved. - The approved calibration direction is now wired locally across the first player-order scenes: Q-style Title, Guild, Contract and Market backgrounds use full-viewport aspect-cover rendering. Contract keeps its parchment route board visible under engine text; Guild keeps the stable layered-world node but avoids drawing a duplicate crop; Market's recruit hit areas no longer paint a second opaque card wall and its world veil is intentionally light. Focused Contract and Market normal-render captures pass with strict diagnostics `0`. Agent visual review finds the environment family coherent at 760x360; the remaining load-bearing mismatch is the old-proportion runtime recruit art in Guild, Contract and Market, which is the next bounded character-asset task. - The latest composition correction narrows Guild's two member slots onto one shared floor baseline, keeps Contract's stable member nodes without drawing the superseded portrait stickers over the authored Q figures, and gives Market's `返回公会` command an explicit angular destination plate. Current worktree-focused Contract, Guild and Market attempts pass with strict diagnostics `0`; the interactive Market portraits remain the next character identity migration. M50 is superseded by owner review: its normal-render audit exposed hard presentation failures (clipping, chroma fringe and private page styling), so it is retained as evidence rather than treated as a passing UI slice. M49 is deferred by owner until this UI slice is reviewed. M49-A closes at source `c6cd45b`. M48-D (verification and owner handoff) closes at source `0eec3ed`. M48-A closes at source `4be06de`; M48-B closes at source `4782c13`; M48-C closes at source `e920200`. M47-D (playable verification and handoff) closes at source `1a08127`. M45-A (contract/baseline/failure reproduction) closed at source `a22c211`; M45-B (Market command and review guard) closed at source `23c9bc5`; M45-C (receipt safety and focused regressions) closed at source `ecf0b8a`; M45-D closes at source `0b607d6`; M44-D closed at source `8ce939d`; M43-D closed at source `710dc6b`; M43-A activation, M43-B passive View extraction and M43-C source-bound verification all pass. The Guild View contract, M20 controller/runtime, DEV-3 regressions, HUB-001 candidate, full MVP first-cycle audit and four-fixture capture equivalence are recorded in `docs/runtime/M43_GUILD_PAGE_VIEW_VISUAL_AUDIT.md`, with strict diagnostics `0`, exact-once required markers, parsed touch and owned workspace/process cleanup. The durable plan `docs/plans/M43_GUILD_PAGE_VIEW_REFACTOR.md` is complete. M44 is the new Owner-authorized bounded extraction of the existing DEV-6 Roster and Recruit Detail surfaces. M44-A is complete: the source-bound immutable baseline `m44-company-baseline/20260826T032132Z-32104` at source `93164c87b845d3f0d6f1b64b6d1b06e7c4b8d66d` passed the M16/DEV-6 controller, roster/detail and capture checks with strict diagnostics `0`, exact-once markers, eight normal `100%` captures, parsed touch and owned cleanup; its archive SHA-256 is `43028f703434b5fe59a97153635b4a4500623ce7ee317c550c08b74699bcb86d`. M44-B is complete at source `19bf1392ce72f744e0fc9de79ef6393d5f165b9b`: passive Company Roster and Recruit Detail Views are mounted from EntryShell, their isolated contract and focused M16/DEV-6/equipment/recovery checks pass with strict diagnostics `0`, and only explicit deferred intents cross the boundary. A baseline-known Contract Return test failure remains outside this bounded extraction. M44-C is complete at source `687160dd17c1af8b40163af9a060d7792a0d52a2`: the source-bound focused verification and full MVP first-cycle audit pass; the DEV-6 candidate's Contract Return failure is recorded as `M44-I01`; and eight Company captures are byte/pixel-equivalent to the immutable baseline. M44-D closes the pilot with evidence in `docs/runtime/M44_COMPANY_PAGE_VIEW_VISUAL_AUDIT.md`. The durable M44 plan is `docs/plans/M44_COMPANY_PAGE_VIEW_REFACTOR.md` and is complete. M45 is the new bounded repair of the known Market -> Contract Return boundary: its plan is `docs/plans/M45_CONTRACT_RETURN_REPAIR.md`, and M45-D (candidate, visual/runtime verification and handoff) is complete. M45-B restored the Market command and review guard at source `23c9bc5`; M45-C receipt safety closes at source `ecf0b8a`; the source-bound candidate, MVP audit and normal `100%` Market/Review/Guild capture inspection pass at source `0b607d6`. M45 is complete. M46 is the new Owner-authorized bounded presentation/component consistency pass, recorded in `docs/plans/M46_MVP_UI_CONSISTENCY_PASS.md`; M46-A closes at source `a10b3d2` with the baseline inventory in `docs/runtime/M46_UI_CONSISTENCY_BASELINE.md`. M46-B closes at source `f736d7a`; M46-C closes at source `ebc0c8f` after migrating the repeated command/icon/notice controls across the MVP Views. M46-D closes at the same source after the source-bound View contracts, DEV-3/4/5/6 candidates, full MVP first-cycle audit and current-source Company/Contract Return captures pass with strict diagnostics `0`, exact-once markers, parsed touch/restart and owned cleanup. The final visual audit is recorded in `docs/runtime/M46_UI_CONSISTENCY_VISUAL_AUDIT.md`. M46 is complete at its written stopping point; no gameplay, economy, Save, content, packaging or release scope is opened. M48 is the new Owner-requested bounded repair of stacked UI layers and weak button affordances; its active plan is `docs/plans/M48_UI_LAYER_CLEANUP.md`. M48 is complete at its written stopping point; its visual audit is `docs/runtime/M48_UI_LAYER_CLEANUP_VISUAL_AUDIT.md`. M49 is the owner-requested local iOS device validation path; its plan is `docs/plans/M49_IOS_DEVICE_VALIDATION.md`. M49-A preflight and M49-B export preset are complete. The local Team ID is `X75CUV458P`, a valid development identity/profile are present, and the proposed Bundle ID is `com.wusu.aetherboundguild`. The arm64 signed Xcode build succeeds with landscape orientation; known iPhone entries are currently `unavailable`, so install/launch remains open. Evidence is recorded in `docs/runtime/M49_IOS_EXPORT_PREFLIGHT.md`. M47 remains complete; its plan is `docs/plans/M47_UNIFIED_UI_MVP.md`. M47-A closes at source `1d3a526`; M47-B closes at source `57fbd67`; M47-C now owns the three target page migrations. M47-C closes at source `f911095`; M47-D closes at source `1a08127` with the full first-cycle audit pass and Owner tryout handoff. `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, three-intent boundary and M18 normal `100%` capture-equivalence target before product code. M40-A is complete at source `24579e6`; M40-B is complete at source `0cf4ffb`: `ABGRecruitReviewPageView` is mounted from EntryShell, the former Recruit Review builder is removed, and deferred `cancel`/`hire`/`settings` intents are wired. M40-C is complete at source `4f995d2`; the View contract, M18/SHP-002/Market/Hire regressions, DEV-3 candidate and full MVP audit pass with strict diagnostics `0`, and all four normal Recruit Review captures are byte-equivalent to the M18 baseline. Evidence is recorded in `docs/runtime/M40_RECRUIT_REVIEW_PAGE_VIEW_VISUAL_AUDIT.md`. M40-D closes at source `9da7cac`; M40 is complete. The M41 durable plan is `docs/plans/M41_MARKET_PAGE_VIEW_REFACTOR.md`. `M39_PARTY_LINE_PAGE_VIEW_REFACTOR` is complete at source `cf14bc8`: the source-bound View/controller/route regressions, DEV-4 candidate, MVP audit and four-fixture normal `100%` Party Line capture equivalence all pass with strict diagnostics `0`, recorded in `docs/runtime/M39_PARTY_LINE_PAGE_VIEW_VISUAL_AUDIT.md`. M40 changes no gameplay, economy, Save, localization or visible visual semantics. The owner-requested target remains a layered Passive View + Presenter/ViewData + Domain/Application Service architecture with an explicit Router/Context boundary; `entry_shell.gd` continues to be reduced incrementally and no mass rewrite is authorized. M39-B is complete at source `0d59caa`; M39-A is complete at source `dfddb17`. M38 is complete at source `0fea312`; its source-bound contract, regressions, DEV-4 candidate, MVP audit and four-fixture normal `100%` capture equivalence all pass with strict diagnostics `0`, recorded in `docs/runtime/M38_RISK_BOARD_PAGE_VIEW_VISUAL_AUDIT.md`. M31-D remains complete at source `1455ad5` and records the source-bound local candidate before any device, package, signing, store or release work. M31-A activation is complete at source `da3b323`; M31-B automated verification and M31-C normal-render inspection are complete with retained source-bound attempts and `docs/runtime/M31_MVP_RELEASE_READINESS_VISUAL_AUDIT.md`. M30-D is complete — Recovery, Result/Knockout/Reward regressions and MVP handoff. M30-A is complete at source `6efd4ba`: the settled-result, reward-completion, stable-identity and one-recovery-receipt boundary is frozen before OUT-004 product code. M30-B is complete at source `79cb098`: the additive controller and focused `ABG_M30_RECOVERY_CONTROLLER_OK` test validate stable return identity and Commit/Market eligibility with strict diagnostics `0`. M30-C is complete at source `621cad0`: the accepted OUT-004 View now consumes controller-owned recovery identities, receipt state and Commit/Market facts. M30-D closes at source `4b69d81` with the focused controller, final candidate suite and full MVP first-cycle audit all green. M29-D is complete at source `f4df105`: the Reward Choice Controller, accepted OUT-003 View integration, focused candidate and full MVP first-cycle audit all pass. M29-A is complete at source `50fd902`: the settled-result, open-draft, option identity and claim/skip boundary is frozen before OUT-003 product code. M29-B is complete at source `98b3111`: the additive controller and focused `ABG_M29_REWARD_CHOICE_CONTROLLER_OK` test validate the open draft, selected option and Claim/Skip eligibility with strict diagnostics `0`. M29-C is complete at source `73217b4`: the accepted OUT-003 View now consumes controller-owned draft, selection and Claim/Skip facts. M29-D closes at source `25d66cb` with the focused controller, final candidate suite and full MVP first-cycle audit all green. M28-D is complete at source `755da46`: the Knockout Review Controller, accepted OUT-002 View integration, focused candidate and full MVP first-cycle audit all pass. M28-A is complete at source `8b81de7`: the settled-result, knockout identity, battle-local return and reward/recovery continuation boundary is frozen before OUT-002 product code. M28-B is complete at source `a7d7d05`: the additive controller and focused `ABG_M28_KNOCKOUT_REVIEW_CONTROLLER_OK` test validate stable knockout identity, battle-local return and acknowledgement targets with strict diagnostics `0`. M28-C is complete at source `0171a7f`: the accepted OUT-002 View now consumes controller-owned knockout facts and acknowledgement target data. M28-D closes at source `755da46` with the focused controller, final candidate suite and full MVP first-cycle audit all green. M27-D is complete at source `aa8d63b`: the Result Controller, accepted OUT-001 View integration, focused candidate and full MVP first-cycle audit all pass. M27-A is complete at source `26fa8b7`: the settled-result, diagnosis, knockout, reward-draft, recovery and duplicate-safe receipt boundary is frozen before OUT-001 product code. M27-B is complete at source `d26a03e`: the additive controller and focused `ABG_M27_BATTLE_RESULT_CONTROLLER_OK` test validate the settled-result and receipt boundary with strict diagnostics `0`. M27-C is complete at source `a3f31e2`: the accepted OUT-001 View now consumes controller-owned result facts and its source-bound DEV-5 candidate suite passes. M27-D closes at source `aa8d63b` with the focused controller, final candidate suite and full MVP first-cycle audit all green. M26-D is complete at source `2c872f9`: the focused controller/View boundaries and the full source-bound MVP first-cycle audit pass with exact-once markers, strict diagnostics `0`, 128 normal `100%` frames and owned workspace/process cleanup. M25-D is complete at source `3a0c066`: the focused controller/View boundaries and the full source-bound MVP first-cycle audit pass with exact-once markers, strict diagnostics `0`, 128 normal `100%` frames and owned workspace/process cleanup. M25-A is complete at source `c3ae95c`; M25-B is complete at source `7b084d5`; M25-C is complete at source `eb74d76` with the compatibility/touch repair at `402145e`. M24-D is complete at source `9518e2e`: focused Risk Commitment/controller verification, normal captures and the full MVP handoff pass with exact-once markers, strict diagnostics `0` and owned workspace/process cleanup. M24-A is complete at source `e8825f7`; M24-B is complete at source `3e80083`; M24-C is complete at source `9518e2e`. M23-D is complete at source `8ac91f2`. (M14 repository cleanup and M15 Runtime Foundation remain complete.) - Historical completed plan: `docs/plans/M32_PAGE_VIEW_ARCHITECTURE_REFACTOR.md` (`COMPLETE`) - M32-A is complete at source `9bde014`, freezing the dependency direction, forbidden imports, pilot stopping point and ordered migration boundary. M32-B is complete at source `23924a2`: the UI-only PageView/PageContext contract and OUT-004 Recovery extraction preserve the accepted page exactly. M32-C is complete at source `088f46b`: the source-bound View contract, DEV-5 candidate and full MVP audit pass with strict diagnostics `0`, exact markers and 128 normal frames. Recovery captures are byte-equivalent to the M30 baseline. M32-D closes at source `088f46b` with the evidence and ordered next-extraction map in `docs/runtime/M32_PAGE_VIEW_ARCHITECTURE_VISUAL_AUDIT.md`. No later page migration is active. - Historical completed plan: `docs/plans/M33_REWARD_CHOICE_PAGE_VIEW_REFACTOR.md` (`COMPLETE`) - M32 is complete at source `30e162d`; its Recovery View contract, candidate, MVP audit and visual equivalence evidence remain the baseline for M33. M33-A is complete at source `331db7d`, freezing the Reward Choice boundary before product code changes. M33-B is complete at source `3d477ef`: the Reward Choice Passive View is integrated with explicit intents and byte-equivalent normal captures. M33-C is complete at source `f609464`: source-bound View contract, controller/runtime regressions, DEV-5 candidate and MVP audit all pass with strict diagnostics `0`; M33-D closes at source `f609464` with the evidence report and next extraction map. - Historical completed plan: `docs/plans/M34_KNOCKOUT_REVIEW_PAGE_VIEW_REFACTOR.md` (`COMPLETE`) - M34-A is complete at source `9bbdbb9`, freezing the OUT-002 Knockout Review stopping point, `_readiness_member()` portrait/identity presentation, exact node names, forbidden imports and M28 normal-capture equivalence target. M34-B is complete at source `7a4c1ca` (product integration; docs recorded at `d6208d8`): the passive View and deferred EntryShell intent wiring preserve the accepted Knockout Review page. M34-C is complete at source `4c7a0ac`; M34-D closes at source `5b811fb` with the source-bound audit and final handoff. M33 remains complete and no later page migration is active. - Historical completed plan: `docs/plans/M35_BATTLE_RESULT_PAGE_VIEW_REFACTOR.md` (`COMPLETE`) - M35-A is complete at source `37d1731`, freezing the OUT-001 Result stopping point, exact node names, UI-only formatting helpers, diagnosis/Continue intent boundary and M27 normal-capture equivalence target. M35-B is complete at source `7ba4326`; M35-C is complete at source `7ba4326` with the source-bound audit and byte-equivalence evidence. M35-D closes at source `4a2bb82` with the final handoff. M34 remains complete and no later page migration is active. - M31-A activation is complete, M31-B is green and M31-C is `agent_visual_reviewed`. The first-cycle MVP is functionally complete at source `2556be9`; M31-D is complete at source `1455ad5` and records the source-bound local candidate before any separately authorized device, package, signing, store or release work. Normal `100%` landscape is the automated visual scope and `130%` text scale is not a blocker. No accepted page, Battle, Economy, Save, Recovery or localization semantics are being redesigned. - M15 scope was limited to an additive shared service/UI foundation and a Settings integration pilot. No mass page rewrite, gameplay change, asset generation, cleanup, packaging or release work was authorized by this plan. - M15-B is complete at source `6061414`: the explicit AppServices, ScreenContext, ScreenStack, UI tokens and shared semantic button primitives compile and pass `ABG_M15_FOUNDATION_OK` with strict diagnostics `0`. - M15-C is complete at source `8a8fb33`: Settings now crosses the explicit `ABGSettingsService`/`ABGAppServices` boundary, Settings entry/return carries caller, return route and focus context, and the focused `ABG_M15_SETTINGS_OK` plus existing `ABG_DEV1_SETTINGS_OK` regressions pass. The validated JSON schema, v1 migration, atomic save and corrupt-file behavior are unchanged. - M15-D is complete at source `b5c78fd`: the source-bound focused Foundation / Settings attempt and the full first-cycle audit pass exactly-once markers, strict diagnostics `0`, normal `100%` evidence and runner cleanup. The retained MVP audit is `/private/tmp/aetherbound-guild-test-evidence/m15-mvp-audit/20260825T022152Z-90588`. - M17 was the bounded architecture migration. It touched only the Market page controller seam and focused tests; accepted MVP page semantics and visuals remain frozen. - M18 is the bounded Recruit Review architecture migration. Source `4a8a004` routes copied Recruit Review facts and Hire eligibility through the explicit Controller/View seam while leaving GuildContractService as the transaction authority. The focused controller, Recruit Review, Market and Hire regressions, normal `100%` captures and full MVP first-cycle audit pass with strict diagnostics `0`; retained evidence is under `/private/tmp/aetherbound-guild-test-evidence/m18-recruit-review-source-bound-v2/20260825T042444Z-79110`, `/private/tmp/aetherbound-guild-test-evidence/m18-recruit-review-capture/20260825T042712Z-80995` and `/private/tmp/aetherbound-guild-test-evidence/m18-mvp-audit/20260825T042737Z-81242`. - M19 is the bounded Contract Choice architecture migration. Its scope was limited to copied Contract Choice view data and the selection/Confirm guard; `GuildContractService.create_contract` remains the transaction authority and accepted page semantics, visuals and Save behavior are frozen. The activation boundary is pushed at source `29319d5`; M19-B is complete at source `5758272`; M19-C is complete at source `43ab397`; and M19-D closes at source `deac574`. The focused source-bound regressions, four-fixture normal `100%` Contract Choice captures and full MVP first-cycle audit pass with exact-once markers, strict diagnostics `0`, 128 normal frames and owned workspace cleanup. Retained evidence is under `/private/tmp/aetherbound-guild-test-evidence/m19-contract-choice-source-bound/20260825T050013Z-4766`, `/private/tmp/aetherbound-guild-test-evidence/m19-contract-choice-capture-source-bound/20260825T050241Z-6553` and `/private/tmp/aetherbound-guild-test-evidence/m19-mvp-audit/20260825T050357Z-7383`. - M20 is the bounded Guild architecture migration. Its activation plan is `docs/plans/M20_GUILD_CONTROLLER_PILOT.md`. It is complete at source `1323f23` (product integration source `8570378`): the scope stayed limited to copied Guild view data, Contract state classification and destination eligibility; accepted Guild composition, routes, callbacks, visuals and downstream service semantics remain frozen. The focused source-bound controller/runtime/Guild regression and capture archive is `/private/tmp/aetherbound-guild-test-evidence/m20-guild-controller-focused-v2/20260825T053841Z-32421`, and the MVP audit archive is `/private/tmp/aetherbound-guild-test-evidence/m20-mvp-audit/20260825T054042Z-34080`. - M21 is the bounded Party Line architecture migration. Its activation plan is `docs/plans/M21_PARTY_LINE_CONTROLLER_PILOT.md`. It is complete at source `0c44800` (product integration source `199997e`): the scope stayed limited to copied Party Line view data, selection normalization and preview command eligibility; accepted formation visuals, input, Save receipts and readiness semantics remain frozen. The focused source-bound archive is `/private/tmp/aetherbound-guild-test-evidence/m21-party-line-focused/20260825T055933Z-47838` (49 evidence files, source revision `0c44800efd7714308589cf01d9d49ff100056c02`, marker `ABG_M21_PARTY_LINE_CONTROLLER_OK` exactly once, strict diagnostics `0`, archive SHA-256 `259a3db341488fed3ec9b4f6d26b719a4bdffec5cc8cb925f155c92c288bacf3`). The full source-bound MVP first-cycle audit archive is `/private/tmp/aetherbound-guild-test-evidence/m21-mvp-audit/20260825T060057Z-48953` (180 evidence files, marker `ABG_MVP_FIRST_CYCLE_AUDIT_OK` exactly once, 128 normal `100%` frames, `zh_CN`/`en`, `760x360`, `844x390`, `1280x720`, strict diagnostics `0`, archive SHA-256 `3f67b8e3864dc3e5b39e0ac3b38f0dcf19c069289325325a472cd3d5d37189a8`). - M22 is the bounded Readiness Controller migration. Its activation plan is `docs/plans/M22_READINESS_CONTROLLER_PILOT.md`; it is complete at source `ab83290` (controller source `6647b05`). The scope stayed limited to copied Readiness view data, saved-order validation, warning/receipt facts and command eligibility; accepted PTY-002 composition, input, focus, Readiness receipt semantics and downstream Risk behavior remain frozen. The focused source-bound archive is `/private/tmp/aetherbound-guild-test-evidence/m22-readiness-controller-focused/20260825T062201Z-64223` (49 evidence files, 24 normal `100%` DEV-4 frames, exact-once controller and candidate-suite markers, strict diagnostics `0`, archive SHA-256 `e291052f30d8aeb79e5abfbb1e5d64362fc14c42a1becc73ca4507e4cffbd1d8`). The full source-bound MVP first-cycle audit is `/private/tmp/aetherbound-guild-test-evidence/m22-mvp-audit/20260825T062330Z-65410` (180 evidence files, exact-once `ABG_MVP_FIRST_CYCLE_AUDIT_OK`, 128 normal `100%` frames, `zh_CN`/`en`, `760x360`, `844x390`, `1280x720`, strict diagnostics `0`, archive SHA-256 `7693816157e45f7c09eea8e5fe2609c4b3a9a9843eb98de0767ea8f5f5abfca2`). - M23 is the bounded Risk Board Controller migration. Its activation plan is `docs/plans/M23_RISK_BOARD_CONTROLLER_PILOT.md`; it is complete at source `8ac91f2` (controller source `b37f60c`). The scope stayed limited to copied frozen Party/option view data, selection normalization and Review eligibility; accepted RSK-001 composition, input, focus, Risk Commitment navigation and persistence semantics remain frozen. The focused source-bound archive is `/private/tmp/aetherbound-guild-test-evidence/m23-risk-board-focused/20260825T064823Z-83199` (49 evidence files, 24 normal `100%` DEV-4 frames, exact-once controller and candidate-suite markers, strict diagnostics `0`, archive SHA-256 `3b208a92c605cc200917b48ea4ddffcc9ddd008ee99e7af2fb4f0a6040657032`). The full source-bound MVP first-cycle audit is `/private/tmp/aetherbound-guild-test-evidence/m23-mvp-audit/20260825T064958Z-84412` (180 evidence files, exact-once `ABG_MVP_FIRST_CYCLE_AUDIT_OK`, 128 normal `100%` frames, `zh_CN`/`en`, `760x360`, `844x390`, `1280x720`, strict diagnostics `0`, archive SHA-256 `8d5a7849a791fb2232be1831e09be54a3d2464e5984a96dd2d620d60f712e8c1`). - M24 is the bounded Risk Commitment Controller migration. Its activation plan is `docs/plans/M24_RISK_COMMITMENT_CONTROLLER_PILOT.md`; it is complete at source `9518e2e` (controller source `3e80083`). The scope stayed limited to copied selected-risk, consequence, frozen-party and dependency view data, acknowledgement normalization and Begin eligibility; accepted RSK-002 composition, input, focus, Battle handoff and receipt semantics remain frozen. The focused source-bound archive is `/private/tmp/aetherbound-guild-test-evidence/m24-risk-commitment-focused/20260825T091442Z-6200` (49 evidence files, exact-once controller, RSK-002 and DEV-4 candidate markers, strict diagnostics `0`, archive SHA-256 `db1f31869c4504d1272e6d136f664d318286d3043d843e57475486732d2f6de4`). The full source-bound MVP first-cycle audit is `/private/tmp/aetherbound-guild-test-evidence/m24-mvp-audit/20260825T091613Z-7776` (180 evidence files, exact-once `ABG_MVP_FIRST_CYCLE_AUDIT_OK`, 128 normal `100%` frames, `zh_CN`/`en`, `760x360`, `844x390`, `1280x720`, strict diagnostics `0`, archive SHA-256 `8129815eef0e8dfe57a117d70dadc15c52a3fac376ec28a559a4df32d0a7182e`). - M25 is the bounded Battle Opening Controller migration. Its activation plan is `docs/plans/M25_BATTLE_OPENING_CONTROLLER_PILOT.md`; `M25-A` is complete at source `c3ae95c`, `M25-B` at `7b084d5`, `M25-C` at `eb74d76` with the pushed repair source `402145e`, and `M25-D` closes at `3a0c066`. The focused source-bound attempt `/private/tmp/aetherbound-guild-test-evidence/m25-battle-opening-focused/20260825T095412Z-44836` passes exact-once `ABG_M25_BATTLE_OPENING_CONTROLLER_OK`, `ABG_DEV5_BATTLE_OPENING_OK` and `ABG_DEV5_CANDIDATE_SUITE_OK`, strict diagnostics `0`, 24 normal Battle-cycle frames and owned workspace/process cleanup (archive SHA-256 `a921699aa0aa8b64db3e68173decf26854f1704c464cc6d8b5b5e21c623ecaa5`). The full source-bound MVP first-cycle audit `/private/tmp/aetherbound-guild-test-evidence/m25-mvp-audit/20260825T100014Z-50845` passes exact-once `ABG_MVP_FIRST_CYCLE_AUDIT_OK` with 180 evidence files, 128 normal `100%` frames across `zh_CN`/`en` and `760x360`, `844x390`, `1280x720`, strict diagnostics `0`, parsed touch coverage, restart-to-Market and owned workspace/process cleanup (archive SHA-256 `8ceb63b04bc2e5b11b297b31d72d92b8a880f45564e7db13c83bdf524cea70b1`). The accepted BAT-001 composition, phase-zero semantics, BAT-002 handoff and persistence remain frozen. M26 is the explicitly activated next architecture seam under its own durable plan. - M16-B is complete at source `c8af889`: `ABGCompanyPageController` and `ABG_M16_COMPANY_PAGES_OK` centralize copied roster/detail facts and dismissal eligibility without Godot-node or persistence dependencies. - M16-C is complete at source `14b0461`: Entry Shell Roster and Recruit Detail rendering consumes the controller output; existing DEV-6 roster behavior and normal four-fixture captures remain green. No accepted MVP page was changed. - M16-D is complete at source `fa525e6`: source-bound controller, DEV-6 Roster, normal Company-page captures and the full MVP first-cycle audit pass with exact-once markers, strict diagnostics `0`, and owned workspace cleanup. The focused evidence archive is `/private/tmp/aetherbound-guild-test-evidence/m16-company-pages-focused/20260825T023547Z-1112`; the MVP audit archive is `/private/tmp/aetherbound-guild-test-evidence/m16-mvp-audit/20260825T023618Z-1488`. - Repository cleanup baseline and first two safe deletion batches are complete at `f848e20` and `e8d7a95`; M14 is closed at `docs/plans/M14_REPOSITORY_CLEANUP.md`. - Previous product steps: `SYS-005 Initial Company`, `HUB-001 Guild desk`, `PTY-001 Party Line / Formation`, `PTY-002 Readiness Review`, `RSK-001 Risk Board` and `RSK-002 Risk Commitment` are complete after Owner runtime acceptance. BAT-001 Battle Opening is also complete after Owner acceptance of its source-bound Runtime on 2026-08-24. The independent v001 draft was rejected because it contradicted the previously Owner-approved battle page and scale reference; that output is preserved as rejected provenance only. The accepted battle direction remains `prototype/generation/phase6_ui_direction_01/outputs/05_battle_ui_japanese_scale.png`, with the full-party scale proof under `phase6_battle_scale_04`. The pushed M07 closure at `155d775` activated the M08 BAT-002 boundary. The specification package is remote-visible at `7ededea`, authority reconciliation is remote-visible at `1ef7a5f`, and the BAT2-3 package is remote-visible at `f9f50cd`. The Owner accepted the final deconstruction board and asset contact sheet on 2026-08-24, so BAT-002 reached `COMPLETE`. The receipt-bound observation service is remote-visible at `2d4d5a7`, the contained live battlefield is remote-visible at `950b32e`, and the timeline and diagnostic boundary implementation is remote-visible at `0de6c7a`; BAT2-4D functional closure is recorded in the BAT-002 page package. BAT2-5 source-bound candidate verification passed at source `fea2ae9`, but the Owner rejected its visual presentation on 2026-08-24 as substantially different from the approved battle master. BAT2-4E visual reconstruction is now implemented and pushed at `189c20b`: beveled faction rails, centered ivory controls, portrait-led actor-state cards and actor-attached event paths are recorded in `verification/visual-repair.json`. A fresh source-bound import, Field, Timeline and four normal `100%` capture fixtures from `189c20b` pass with strict diagnostics 0; the candidate archive and markers are recorded in `verification/source-bound.json`. The Owner confirmed the repaired actual-size Runtime with `这个OK啊` on 2026-08-24; BAT2-6 and the M08 BAT-002 Runtime milestone are complete. Result/recovery and all later pages remain frozen. - M12 `OUT-001..004` is complete under the Owner's August 24, 2026 delegation that intermediate pages may be inspected and closed by the agent. Source `f6320026cfa6b64cd2cf9a1841e2679eef826b3b` passes the domain, Runtime route and candidate capture boundaries: `ABG_M12_OUTCOME_RECOVERY_DOMAIN_OK`, `ABG_M12_RUNTIME_OK` and `ABG_M12_CAPTURE_OK`. The candidate archive records four normal `100%` fixtures × eight states (32 frames), strict diagnostics 0, and restart -> next-stage Market with the same Recruit identities. All four OUT packages now carry implementation, behavior/input/responsive/capture, source-bound and delegated acceptance records. The MVP first-cycle route is complete; second-cycle systems/content, broader region/endgame production, device/package/store/release and human comprehension/fun gates remain outside this MVP checkpoint and require a new durable plan. - M13 MVP first-cycle audit is complete. The final source-bound attempt from revision `e68f888` is `/private/tmp/aetherbound-guild-test-evidence/mvp-first-cycle-audit-v9/20260824T234547Z-76868`; marker `ABG_MVP_FIRST_CYCLE_AUDIT_OK` appears exactly once, strict diagnostics are `0`, the owned workspace/process group is removed, and 128 normal `100%` frames pass across `760x360`, `844x390` and `1280x720` in `zh_CN`/`en`. The audit reconciles the historical MarketTitle/MarketFormation assumptions, explicit BAT-001 -> BAT-002 handoff, current live control names and the waiting/outcome-lock states without changing product semantics. 130% remains non-blocking. - M09 `SHP-001 Market` is complete under the Owner's August 24, 2026 delegation that intermediate pages may be inspected and closed by the agent. Its contract, state matrix, Owner-approved direction and reconstruction package are under `docs/design-authority/pages/SHP-001-market/`. The previous DEV-3 Market and hire receipts remain behavior provenance only; v001's card-heavy draft is rejected provenance. v002 is `COMPLETE`; the clean static master, runtime asset manifest, hit areas and engine-owned text slots are now the implementation boundary. Source-bound behavior, input, responsive and normal-render evidence pass at the four required normal `100%` fixtures; 130% evidence is outside this active scope. The agent's actual-size review found no blocking overlap, clipped text or false recommendation state; the acceptance record is under the page verification package. SHP-002 and all later first-cycle pages are now closed under the same MVP audit. - M10 `SHP-002 Recruit Review` is complete under the same delegated intermediate review. Its original portrait-led review master, engine-owned decision facts, one-receipt Hire boundary and same-offer Cancel focus are recorded under `docs/design-authority/pages/SHP-002-recruit-review/`. Source-bound behavior and four normal `100%` captures pass from `d24b4dd`; BAT-003/BAT-004 and the M12 outcome/recovery pages are also closed in the current first-cycle audit. - Planning baseline: `d59555c5a3cf95fc44de79ba06c02e650eb3df3b` - Documentation consolidation baseline: `53824d2394e7facdc8dca19aa20a690a5c960aca` - Current review set: exactly six validated Markdown files under `docs/`. - Cleanup baseline: `docs/design-authority/repository-cleanup-manifest.json`. - Cleanup closure: M14 removed only the stale taskgraph metadata and superseded prototype validators/build helper. Godot `.uid`/`.import` and `prototype_incremental/` were explicitly retained. - Page production contract: `docs/design-authority/page-production-contract.json`. - HUB-001 Guild desk was accepted by the Owner on 2026-08-20 after the final continuous-rail, compact identity, semantic resource-slot and four-destination repair. Its page package, runtime evidence and owner-acceptance record are `COMPLETE`; the final source-bound attempt is `/private/tmp/aetherbound-guild-test-evidence/hub001-rail-language-source-candidate/20260820T103441Z-72079`. - DEV-4 Party Line / Formation is `COMPLETE` after Owner acceptance of source `94a2356` on 2026-08-21. Schema-v2 measures actual Runtime pixels against the hashed clean static master, masks dynamic regions out of static comparison, and rejects copied bounds. The accepted repair separates cord/actor/effect layers, restores Save emphasis, fits localized text in authored slots and enforces 48px targets. PTY-002 is `COMPLETE` after Owner runtime acceptance; later pages and Runtime code remain frozen until BAT2-2 is pushed and BAT2-3 is separately activated. - Reusable `tools/run_page_restore_preflight.py` now validates each page package before Runtime work and can run the schema-v2 pixel gate for exact/minimum captures. PTY-001 target capture passes; the minimum 760x360 cord-size finding is retained as evidence rather than hidden by a threshold change. - PTY-002 now has a complete page contract and state matrix. The second 2K 16:9 AI candidate preserves four complete actors, a frozen readiness band, grouped warning notices and a dominant Accept boundary with blank engine-text slots. The first candidate is retained as rejected provenance because it baked position numbers and label-like markers. Owner approval and runtime acceptance are recorded; the page is complete. - PTY-002 Runtime implementation is complete after Owner Runtime Review. The imported clean master, four accepted command icons, four Recruit bindings, readiness summary, grouped warnings and disabled-before-accept Risk boundary are rendered on a contained 16:9 canvas. Focused readiness, DEV-4 foundation/Party/Risk regressions and four real responsive captures pass with strict diagnostics; schema-v2 fidelity passes 32/32 package checks. Its owner gate is closed. - RSK-001 Risk Board now has a complete deconstruction/reconstruction package and Godot Runtime implementation. The contained 16:9 page renders the frozen four-member snapshot, three equal sourced options, threat, uncertainty, cost, reward, recovery and coverage facts, local selection and the disabled-until-selected Review boundary. The copy-density repair in `d0dea5b` keeps all six facts while shortening repeated labels. Fresh source-bound `ABG_DEV4_RISK_OK` and normal 100% captures at 760x360, 844x390 and 1280x720 pass with strict diagnostics 0. The behavior attempt is `/private/tmp/aetherbound-guild-test-evidence/rsk001-copy-density-final-behavior/20260823T014204Z-60739`; the three capture attempts are recorded in the RSK-001 package, and page preflight passes 24/24. Owner accepted the page at actual size on 2026-08-23; the next boundary is the separate RSK-002 commitment page. - RSK-002 Risk Commitment v001 is `COMPLETE` after Owner runtime acceptance on 2026-08-23. Its singular selected-risk relic, connected six-fact consequence band, frozen four-member Party staging and bottom commitment rail are visual authority. The accepted Godot Runtime binds the cleaned static master, engine-owned facts and independent hit areas; focused behavior/input, normal `100%` captures, strict diagnostics and the exact-once BAT-001 handoff pass. Battle simulation, result/recovery and later pages remain frozen. - BAT-001 Battle Opening v001 is `COMPLETE` after Owner Runtime acceptance on 2026-08-24. The rejected GPT-Image-2 output is archived under `pages/BAT-001-battle-opening/rejected/v001/` with its prompt, task, cost and hashes; it is not a page reference. The Godot candidate adapts the accepted full-party battle composition and compact top/bottom HUD hierarchy to the static pre-observation handoff. The reconstruction package passed 26/26 preflight checks in source `7fccbbc`; Runtime and four source-bound normal `100%` capture attempts pass in source `f892bb6`. The Owner accepted the complete Party/enemy scale, compact field-attached HUD and truthful BAT-002 stopping boundary; the acceptance record is under the page verification package. - BAT-002 Live Battle v001 is `COMPLETE` after Owner Runtime acceptance on 2026-08-24; the acceptance record is under `pages/BAT-002-live-battle/verification/owner-acceptance.md`. Its page contract and state matrix define the automatic diagnostic-only battle surface, live actor/target/event bindings, exact `Waiting for next event` state, invalid-event pause, deterministic interruption routing and BAT-003/004/005/006 plus OUT-001 boundaries. JSON, six focused static assertions, design-contract and complete predevelopment checks pass. The existing approved live-battle master and full-party scale proof are copied byte-for-byte into a page-specific package; focal/dynamic ownership, hashes and rejected alternatives pass four focused authority assertions. Its accepted deconstruction and zero-generation asset package pass preflight. The non-settling service and contained waiting field are pushed. BAT2-4C implements the bounded timeline and diagnostic handoffs; BAT2-4D focused closure is source-bound and recorded. BAT2-5 candidate verification passed functionally with 40 captures across the four normal 100% fixtures, but those captures are rejected visual provenance. BAT2-4E restores the approved top faction rails, ivory control ribbon, continuous portrait-led bottom rail and actor-attached event language at `189c20b`. Source-bound BAT2-5 Field, Timeline and candidate verification pass from that source, and the Owner accepted the actual-size candidate. The complete page keeps BAT-003/004/005/006 and OUT-001 as truthful handoff boundaries and applies no reward, recovery, settlement or next-stage mutation. - `M01 Entry` direction v001 was generated as a 2x3 board covering Boot, first launch, Title continuity, Settings, Credits and shared overlays. The single 2K call cost `$0.014`; the board is not a runtime asset and no individual page implementation is activated by its generation. - Owner approved `M01 Entry` direction v001 on 2026-08-19. The shared world, materials, physical workspaces, compact HUD and overlay family are frozen as the entry-module baseline. This activates individual page design at `SYS-001`, but does not authorize Godot implementation before the page's own reconstruction gate. - `SYS-001 Boot` v001 design was approved and reconstructed. One 2048x1152 coordinate master uses the approved M01 threshold, empty pre-Company world, lower verification rail and engine-owned text/action slots. The initial design call cost `$0.014`; runtime assets are recorded in the page package. - Owner approved `SYS-001 Boot` v001 for reconstruction on 2026-08-19. Normal loading will hide the right-side failure actions; they remain legal anchors for recoverable and unsafe states. - `SYS-001 Boot` runtime candidate now uses a clean independent background, horizontally stretchable NinePatch rail, fixed square status seals and state-bound Retry/Diagnostics/Exit controls. Focused import, behavior, parsed touch, live resize and normal-render checks pass with strict diagnostics 0. Owner accepted SYS-001 Boot; First-launch was then activated as the next page. - Source `19c884a` passes fresh-archive focused behavior/input/resize at `/private/tmp/aetherbound-guild-test-evidence/sys001-source-focused/20260819T114340Z-65610` and eight Loading/Error normal-render frames at `/private/tmp/aetherbound-guild-test-evidence/sys001-source-captures/20260819T114841Z-69192`, plus the complete 20-frame entry matrix at `/private/tmp/aetherbound-guild-test-evidence/sys001-source-entry-matrix/20260819T115309Z-72858`. All three have strict diagnostics 0 and complete runner cleanup. - `SYS-001 Boot` and `SYS-002 First-launch` are `COMPLETE` after Owner acceptance. SYS-002's existing v001 image remains draft provenance only. - `SYS-002 First-launch` v002 was approved and reconstructed. One 2048x1152 design uses a responsive left preview, six stretchable setting rows, fixed square icons and one wide apply command. The call cost `$0.014`; the approved runtime package records the layered assets, engine text slots and responsive policy. - SYS-002 runtime reconstruction now uses the approved world, preview frame, six stretchable setting rows, fixed square icons, value plates and wide Apply command. Focused settings/persistence, responsive resize, parsed touch and eight-frame normal-render checks pass with strict diagnostics 0. Runtime visual acceptance was accepted on 2026-08-20; typography was refined for 100%/130% Chinese and English hierarchy without changing settings semantics. - SYS-003 Title v002 was accepted on 2026-08-20. Its contained 16:9 master, truthful entry actions and responsive runtime evidence are now complete. - SYS-005 Initial Company v001 is complete after Owner runtime acceptance. Its design uses four person-bearing Recruit figures in one shared courtyard, foot selection markers and a separate Inspect/Compare/Review command region. Its staged contract covers four stable offers, exact choose-two gating, Inspect/Compare, Review, atomic Create Company, interruption recovery and the Guild handoff. Existing DEV-2 runtime/evidence remains provenance; the current implementation keeps - HUB-001 Guild desk v001 passed AI-draft, deconstruction and initial asset review. Source `cb6a078` replaced the historical composite with a real layered world, two runtime Recruits, clean Contract Board and segmented rails, but Owner runtime review on 2026-08-20 returned the candidate to `IMPLEMENTATION_IN_PROGRESS`: the top resource cells lost their required fixed icons, Settings detached from the rail, the bottom destinations became tiny text tabs instead of authored icon commands, and typography did not scale with the contained canvas. The active repair owns only those HUD and typography boundaries; all later pages remain frozen. The repaired source `2417b74` restores fixed semantic icons, an attached Settings command, icon-forward bottom destinations and canvas-aware typography. Its fresh Git archive passes layered structure, 10 parsed touches and 24 frames with strict diagnostics 0. Owner follow-up then identified a remaining right-end assembly error: the bottom stretch center ended before an oversized 27% fixed region, leaving the Compass base visually detached. The page is returned to `IMPLEMENTATION_IN_PROGRESS` for that single endcap boundary. Source `e2acbd2` reduces the fixed region to the actual 9% endcap and extends the clean center to meet it. A fresh archive passes the adjacency assertion, layered structure, 10 parsed touches and 24 frames with strict diagnostics 0; the endcap boundary is correct. Owner follow-up then rejected the five left bottom commands' scale and placement: percentage-based button rectangles grow too large and too far apart at 720p, while their medallions sit above the visible wood rail. Source `2b732b6` replaces that geometry with 50-76px capped hit targets, 4-8px compact spacing, rail-seated placement and independently capped medallion art. Its fresh archive passes the layered constraints, 10 parsed touches and 24 frames with strict diagnostics 0 at `/private/tmp/aetherbound-guild-test-evidence/hub001-bottom-nav-source-candidate/20260820T093954Z-34122`. The page is again `VERIFIED_AWAITING_OWNER_ACCEPTANCE`; later pages remain frozen until explicit Owner acceptance. Owner review then found that both rails still contradict the approved master: the top overlays opaque resource cards and an oversized identity plate over a continuous inlaid rail, while the bottom uses undersized generic medallions plus labels instead of the approved rail-integrated icon hierarchy. The page returns to `IMPLEMENTATION_IN_PROGRESS` for those two rail presentation boundaries only. Source `c32967d` restores the approved continuous top rail, compact identity pill, icon-plus-value cells, native-width caps and four bottom destinations; Title/Back reuses the left Guild crest instead of adding a fifth medallion. Its fresh archive passes the expanded layered constraints, 10 parsed touches and 24 frames with strict diagnostics 0 at `/private/tmp/aetherbound-guild-test-evidence/hub001-rail-language-source-candidate/20260820T103441Z-72079`. The page is again `VERIFIED_AWAITING_OWNER_ACCEPTANCE`; later pages remain frozen until explicit Owner acceptance. - Rejected pixel Gallery item: `5vl2EqsYWkey` - Latest functional evidence: combined RG-03/RG-04 midpoint systems, Save-v11, five-profile simulation, runtime regression and Web transport passed. - Human visual evidence: `FAIL`; the Owner rejected the pixel-art presentation as a contradiction of the accepted Japanese 2D hand-drawn direction. - Superseded DEV-1 functional source: `43e5bacbf88953ae99676400532189f02143be20`. - DEV-1 functional evidence: source-bound entry suite and complete preserved FG-4 midpoint regression both PASS. On 2026-08-17 the Owner rejected its generic translucent entry chrome as substantially different from the accepted Japanese 2D fantasy UI reference. - DEV-1F local evidence: six focused DEV-1 headless checks, real parsed touch and 20 normal-render development frames pass after the Title gained enamel, ivory, gold-trimmed, heraldic and icon-forward runtime chrome. This is not a renewed candidate or human visual pass. - DEV-1G local evidence: the same six checks, parsed touch and final 20-frame development matrix pass after Boot, first launch, Settings and Credits adopt the same chrome. The first compressed setup-grid attempt was rejected and repaired before this pass. - Revised DEV-1 candidate source: `d3b93268776b87b7bfb407c79165011facc438f8`. - Revised source-bound DEV-1 suite and complete preserved FG-4 regression PASS with strict diagnostics 0. Source-bound entry frames reach `agent_visual_reviewed`; only the Owner can grant human visual acceptance. - Latest Owner product decision, 2026-08-17: New Game's choose-two Recruits form the persistent initial Expedition Company; Contract runs are bounded expeditions inside continuous incremental growth, do not discard the roster, and zero-HP Recruits return for the next stage instead of dying permanently. - DEV-2A authority correction is complete: all six current documents place that rule above frozen FG-4 lifecycle evidence. The exact next-stage HP amount remains a later balance decision; DEV-2 guarantees return and persistence but does not invent a full-heal value. - DEV-2B implementation is locally complete: one saved seed creates exactly four complete deterministic Recruit offers in fixed positions; zero-to-two selected IDs survive restart; duplicate, unknown, third-selection, corrupt replica and interrupted-candidate boundaries are explicit; no Company or Contract state exists before commit. - DEV-2C implementation is locally complete: Title reaches the real four-offer page; Inspect/Compare preserve selection; exact `0/2..2/2` gating, visible third-selection rejection, Back/restart restoration and parsed touch pass. Sixteen normal-render development frames cover required sizes, languages and 100/130% text; this is not source-bound candidate or human acceptance. - DEV-2D implementation is locally complete: Review names the selected two and unchosen two; Revise preserves the draft; Create Company atomically writes exactly the selected persistent Recruits with a deterministic receipt, then reaches the bounded Guild handoff. Duplicate commit, candidate recovery, lingering-draft cleanup, restart/Continue, Guild Settings return and visible disabled-action reasons pass. Twenty-four normal-render development frames cover all six DEV-2 page states at the required layout matrix; this remains dirty-tree guidance, not source-bound candidate or human acceptance. - DEV-2D implementation source: `71f49a4926499ec8aa4911f9d162df709ecf132f`; pushed, clean and equal to upstream before DEV-2E activation. - DEV-2 candidate source: `d1990538d5d70059f1203bf4817d1b0e9bf49a74`. - Source-bound DEV-2 candidate suite and complete preserved FG-4 regression PASS with strict diagnostics 0. The candidate covers the complete parsed Boot/setup/Title/choose-two/Review/Revise/restart/Create/Guild path plus 24 normal-render Initial Company frames. Actual-size source-bound frames reach `agent_visual_reviewed`; only the Owner can grant human visual/comprehension acceptance. - Owner visual review, 2026-08-17: `FAIL_CHARACTER_ABSENCE`. The candidate is functionally correct but still reads as repeated cards and text. Reopened DEV-2 must make generated Recruits the dominant visual choice through real person-bearing controls, larger Inspect/Compare/Review portraits and the persistent pair standing in Guild; decorative text panels cannot substitute. - DEV-2F implementation is locally complete: all 12 base Professions now have one-to-one non-pixel Recruit stickers; four person-bearing candidate controls, portrait-led Inspect/Compare/Review, the persistent Guild pair and illustrated Contract Board/Market props render over a visible shared environment rather than opaque repeated cards. The eight missing stickers used exactly two 2x2 `gpt-image-2` calls costing `$0.028`; four accepted sources were reused. - Controlled worktree evidence passes all six applicable DEV-1 and all six DEV-2 behavior/parsed-touch checks with strict diagnostics 0 at `/private/tmp/aetherbound-guild-test-evidence/dev2-character-worktree-suite/20260817T130943Z-23198`. Twenty-four normal-render frames pass the required 760x360, 844x390 and 1280x720, zh_CN/en and 100/130% matrix at `/private/tmp/aetherbound-guild-test-evidence/dev2-character-captures/20260817T130637Z-20886`. The six representative runtime frames were sent to the Owner; human visual acceptance remains open. - Source-bound DEV-2F implementation commit `9b8a533d86e041c4543e94a10ce42fd7438e9077` passes the complete DEV-2 candidate suite at `/private/tmp/aetherbound-guild-test-evidence/dev2-character-candidate/20260817T132045Z-34538`: six DEV-1 checks, six DEV-2 checks, parsed input and 24 normal-render frames, with strict diagnostics 0. This does not override the open human gate. - Owner follow-up, 2026-08-17: `FAIL_NOT_YET_ALIGNED`. The first sticker pass improves subject presence but the four tall portrait-like actors and vertical choice slots still do not read as the accepted compact Japanese 2D unit/HUD system. A worktree graybox now removes the four full-height plates and places all candidates in one visible painted scene with HUD strips and selection rings; 24-frame evidence passes at `/private/tmp/aetherbound-guild-test-evidence/dev2-open-stage-captures/20260817T135149Z-71812`. Actor proportion/style alignment remains open. The Owner then explicitly required one consistent actor style and questioned the current size; DEV-2F is authorized to replace all 12 mixed sources with one unified compact unit sheet and reduce choice-page display scale while preserving larger Inspect. - The first unified 4x3 sheet was internally consistent but still failed the accepted ordinary-unit boundary with 6.5-7-head anatomy and key-art detail. The final authorized repair call produced all 12 together at compact 4.5-5-head tactical proportions with one face, line, cel-shadow, material and light contract. All 12 now use one-to-one runtime textures; choice actors are reduced, Guild actors are further reduced, and Inspect/Compare stay larger. Focused behavior PASS: `/private/tmp/aetherbound-guild-test-evidence/dev2-unified-actor-choice/20260817T144520Z-42716`. Twenty-four normal-render frames PASS: `/private/tmp/aetherbound-guild-test-evidence/dev2-unified-actor-captures/20260817T144542Z-42958`. Agent review finds complete silhouettes, coherent style and usable scale at 760x360, 844x390 and 1280x720; Owner acceptance remains open. - The first source-bound suite from `5700a84` passed all 12 DEV-1/DEV-2 behavior checks, then its single normal-render process accumulated resources after 18 frames and timed out before the 1280x720 fixture. Runner cleanup completed at `/private/tmp/aetherbound-guild-test-evidence/dev2-unified-actor-candidate/20260817T145351Z-58238`; this is a harness timeout, not a product PASS or visual failure. The isolated 1280x720 fixture passes six states in 3.7 seconds at `/private/tmp/aetherbound-guild-test-evidence/dev2-split-capture-fixture-3/20260817T151341Z-77767`. Candidate capture now owns one normal-render process per fixture while retaining the same 24-frame matrix and strict diagnostics. - Owner follow-up rejects the current DEV-2 button and outer-frame treatment: repeated double-gold cut-corner boxes, generic diamond medallions and one continuous enclosing border still read as utility chrome rather than an authored Japanese fantasy command layer. DEV-2F remains active for a narrow procedural-chrome repair; all button behavior and DEV-3 scope stay frozen. - Owner requires every review correction to remain durable and prevent repeat failures. The active plan now has a DEV-2F recurrence checklist covering character priority, unified actor style/scale, open framing, differentiated semantic commands, focused visual iteration and explicit human-gate status. - Owner also rejects repeated opaque long-running checks during visual review. DEV-2F now limits each visual iteration to the focused current-page behavior check and six representative frames. Any check expected to exceed 60 seconds must be named with purpose and duration before launch; full DEV-2/FG-4 regression waits for visual-direction acceptance. - DEV-2F command-chrome candidate v2 is implemented in real Godot UI: Initial Company pages now use open corner ornaments plus header/footer rails; parchment return tabs, compact A/B markers, plus/check selection commands, compare arrows and confirmation checks replace generic diamond medallions. Guild footer and disabled destinations now use the same lighter hierarchy. Focused behavior passes in 1.6 seconds at `/private/tmp/aetherbound-guild-test-evidence/dev2-command-chrome-choice/20260817T153507Z-918`; six 844x390 zh_CN 130% frames pass in 2.4 seconds at `/private/tmp/aetherbound-guild-test-evidence/dev2-command-chrome-review-v2/20260817T153537Z-1291`. Human visual acceptance remains open. Owner follow-up rejects v2's content spacing and frame finish: content and ornament share one rectangle, so titles, state copy, actors and footer controls sit too close to the edge; sparse corner strokes read as unfinished rather than intentionally open. DEV-2F remains active for a separate outer-frame/content-inset repair. - DEV-2F frame/spacing candidate v3 now renders frame and content in separate safe rectangles. One complete cut-corner hairline, four constructed corner fittings and aligned header/footer rails sit outside a stable inner inset for headings, actors, copy and commands. Focused behavior passes in 1.5 seconds at `/private/tmp/aetherbound-guild-test-evidence/dev2-frame-spacing-choice/20260817T154715Z-19139`; six 844x390 zh_CN 130% frames pass in 2.4 seconds at `/private/tmp/aetherbound-guild-test-evidence/dev2-frame-spacing-review/20260817T154743Z-20697`. Human visual acceptance remains open. - Owner accepted DEV-2F frame/spacing candidate v3 for continuation on 2026-08-17. DEV-2 source `4352e253a83ee9f3ce3bca6eac99c5e70691f989` passes the source-bound candidate suite at `/private/tmp/aetherbound-guild-test-evidence/dev2-frame-spacing-candidate/20260817T155546Z-29597` and the preserved FG-4 regression at `/private/tmp/aetherbound-guild-test-evidence/dev2-final-fg4-regression/20260817T155717Z-30828`, both with strict diagnostics 0 and complete runner cleanup. DEV-2 is complete. - DEV-3 is activated under one durable five-substep plan. DEV-3A owns only the authoritative Company-store migration and deterministic first Contract/ Market persistence: v1 Company compatibility, one active Contract, 52 Coin, Line capacity four, exact 3/4/3 offers and retry-safe receipts. Guild UI, Market review and hiring remain later DEV-3 substeps. - DEV-3A is locally complete: Company schema v2 atomically migrates valid v1 data without changing Company/Recruit identity and stores one active first Contract in the same file. Contract creation fixes 52 Coin, Line capacity four, a deterministic 3/4/3 Market and an idempotent receipt. Focused DEV-3A and two affected DEV-2 checks pass with strict diagnostics and runner cleanup. - DEV-3B is locally complete: Guild exposes one unlocked Contract, four difficulty segments, truthful Market preconditions, Cancel and explicit confirmation. Confirm reaches a persisted 52-Coin Market handoff; Continue and restart resume it without purchases. English/130%-text parsed touch and the two affected DEV-2 Company/Guild checks pass with strict diagnostics. - DEV-3C is locally complete: one stable physical 3/4/3 Market ledger keeps all rows inspection-only; a separate Recruit review shows exact identity, Profession, Trait benefit/cost, attributes, item, history, price and Company/ Line effect. Cancel restores the same offer/focus. Chinese/130%-text parsed touch and prior-boundary regression pass with strict diagnostics. - DEV-3D is locally complete: two separately confirmed 14-Coin Recruit transactions append two persistent members and distinct idempotent receipts, advancing Company `2 -> 3 -> 4` and Coin `52 -> 38 -> 24` while Line capacity remains four. Duplicate/conflict/price/candidate/restart tests and English/ 130%-text parsed touch pass; a third offer remains inspection-only at the DEV-3 stopping point. - DEV-3E candidate source `a0918bc` passed all 16 behavior/persistence/touch checks but failed the first normal-render fixture: 760x360 Market footer controls extended 2 px below the viewport. A narrow short-screen height repair passes the same six-state fixture; DEV-3E remains active pending a new source- bound full candidate. - DEV-3 final source `0da89b848c87013038ffa39c49d451fb2da8e3d1` passes the complete source-bound candidate at `/private/tmp/aetherbound-guild-test-evidence/dev3-candidate/20260817T172359Z-27922`: six DEV-1, six DEV-2 and four DEV-3 markers plus 24 normal-render states, parsed touch, layout bounds and strict diagnostics 0. Runner cleanup is complete. DEV-3 is complete; human visual/comprehension/fun, device, package, store and release gates remain open. - DEV-4 is activated under one durable five-substep plan. DEV-4A owns only an in-place prepared-party/risk foundation: deterministic four-member auto-order, explicit rear-left/front-right position semantics, atomic order/readiness receipts and three stable first-battle risk projections. Runtime Party/risk pages remain DEV-4B/D, and DEV-5 owns the first battle transaction. - DEV-4A is locally complete: one strict optional formation block in the schema-v2 Contract preserves four Recruit hashes, 24 Coin, the Market board and both hire receipts while adding deterministic order, relation/coverage facts, three stable risk projections and idempotent order/readiness receipts. Focused domain and affected DEV-3 two-hire touch regression pass with strict diagnostics and complete runner cleanup. DEV-4B Party Line is active. - DEV-4B is locally complete: Market enables Establish Line only at Company 4/4; four unified actors stand rear-left to front-right with position 0 at the right, and parsed tap-select/tap-destination, relation preview, Undo, Reset, Back and restart pass in Chinese/English at 130% text. Four normal-render review frames pass; Save & Review names its DEV-4C boundary. - DEV-4C is locally complete: Save & Review atomically persists the exact order, Readiness freezes IDs/position/coverage/threat, Revise preserves it, and Accept records one idempotent preparation receipt without a battle or risk commit. English/Chinese 130% parsed-touch and restart paths pass with strict runner cleanup. DEV-4D Risk Selection is active. - DEV-4D is locally complete: accepted Readiness opens a three-option risk board with no auto-selection, local compare/cancel/restart semantics and a frozen-party commitment preview. Begin Battle is disabled with a DEV-5 reason and no battle receipt. Chinese/English 130% parsed-touch and three normal-render risk states pass with strict runner cleanup. DEV-4E candidate is active. - DEV-4 final source `62db001e8915873bb0b7632cfe90dd40a847530f` passes the complete source-bound candidate at `/private/tmp/aetherbound-guild-test-evidence/dev4-candidate/20260817T182401Z-99737`: six DEV-1, six DEV-2, four DEV-3 and four DEV-4 markers plus 24 normal-render states, parsed touch, 44px controls, layout bounds and strict diagnostics 0. No battle receipt exists and runner cleanup is complete. DEV-4 is complete; human visual/comprehension/fun, device, package and release gates remain open. - DEV-5 is activated under one durable five-substep plan. DEV-5A owns only a current battle receipt, deterministic event timeline, result/diagnosis data and battle-local knockout state around the accepted DEV-4 snapshot. DEV-5B-D runtime/result/recovery pages and DEV-6 Company management remain pending. - DEV-5A is locally complete: one idempotent current battle receipt freezes the accepted Party/risk, persists nine exact event kinds, settles pressured victory once at Coin `24 -> 51`, records one battle-local knockout without removing a Recruit and recovers the same four stable IDs for the next stage. Focused domain and DEV-3/4 regressions pass with strict runner cleanup. - DEV-5B is locally complete: Risk Commitment now creates a real Battle Opening/Live scene with four compact actors, enemy contact corridor, disclosed threat, automatic deterministic playback, Pause/Resume, 1x/2x observation and the exact DEV-5A event rail. Continue restores an active receipt without issuing combat commands. The playback timer is owned by the Shell and is invalidated on tree exit; the prior SceneTreeTimer leak is resolved. Focused bilingual parsed-touch PASS: `/private/tmp/aetherbound-guild-test-evidence/dev5-battle-ui-fix/20260818T004251Z-65519`. DEV-5C Result/Diagnosis is now complete. - DEV-5C is locally complete: Battle Result names outcome/objective, exact Coin and XP settlement, first decisive damage, battle-local knockout identity and a compact causal chain before Continue. Settlement now keeps exactly nine events instead of duplicating `result`; three surviving Recruits each receive 16 XP while the knocked-out Recruit receives zero. Continue reaches an Knockout Review and explicit DEV-5D recovery handoff, and restart returns to Result without a duplicate settlement. Focused bilingual parsed-touch PASS: `/private/tmp/aetherbound-guild-test-evidence/dev5-result-ui-worktree/20260818T013511Z-8975`. Foundation, DEV-5B UI and DEV-3 hire regressions pass with strict runner cleanup. DEV-5D Knockout/Recovery is now complete. - DEV-5D is locally complete: Result Continue opens Knockout Review with the stable member identity and current-battle gap, Acknowledge opens Recovery, and one atomic commit returns the same Recruit IDs/Profession/Trait/level/XP/ history/equipment to next-stage Market. Duplicate recovery returns the original receipt; no Recruit is deleted or replaced. Focused bilingual parsed-touch PASS: `/private/tmp/aetherbound-guild-test-evidence/dev5-recovery-ui-worktree/20260818T020349Z-31847`. DEV-5E first-cycle candidate is now complete. - DEV-5E source-bound candidate is complete at source `05f89ad7e14323d213287e52112ff927ef812f8d`: `/private/tmp/aetherbound-guild-test-evidence/dev5-candidate/20260818T025343Z-77825`. Six DEV-1, six DEV-2, four DEV-3, three applicable DEV-4 and four DEV-5 markers pass, along with 24 normal-render cycle states, parsed touch, strict diagnostics 0, no permanent death and next-stage Market. The old DEV-4 disabled-Begin-Battle assertion is explicitly superseded by DEV-5's real Risk -> Battle marker. Exact handoff: `ABG DEV-5 candidate ready`. - DEV-6A is locally complete: Equipment review exposes sourced effect, fit, tradeoff, price and four wearer choices. One atomic purchase/equip replaces a Recruit's universal slot, returns the previous item to persistent inventory, removes one Market offer and records one receipt; duplicate, conflict, insufficient-Coin, level/XP and restart behavior pass. Focused PASS: `/private/tmp/aetherbound-guild-test-evidence/dev6-growth-worktree/20260818T035436Z-29672`. DEV-2 creation, DEV-3 hire and DEV-5 recovery regressions pass with strict cleanup. DEV-6B Roster/Recruit Detail is now the only active step. - DEV-6B is locally complete: Guild exposes a real Roster entry; four member controls and Recruit Detail show stable identity, Profession, Trait, individual level/XP, current equipment and battle history. Back and restart preserve the Company; Dismiss now opens the DEV-6C review with a real consequence summary. Focused PASS: `/private/tmp/aetherbound-guild-test-evidence/dev6-roster-worktree/20260818T040436Z-36560`. - DEV-6A growth and DEV-5 recovery regressions pass with strict cleanup. - DEV-6C is locally complete: Roster and Recruit Detail expose explicit dismissal review; Market-only dismissal returns current equipment to inventory, leaves Coin unchanged, preserves Company growth and blocks the final live member with a visible reason. Market exposes a separate voluntary Contract Return review; confirmation writes one retry-safe receipt, marks the Contract `returned`, preserves roster/Coin/growth and reaches Guild. Focused PASS: `/private/tmp/aetherbound-guild-test-evidence/dev6-return/20260818T042042Z-47775`. DEV-6B roster, DEV-6A growth and DEV-5 recovery regressions pass with strict runner cleanup. Focused commit `9e6eef9067ff9137f8e1918e9de9cb179187a0bb` is pushed and equals upstream. - DEV-6D source-bound candidate is complete at source `96173243765bc7fe897c13bafebf0affa8a033e6`: `/private/tmp/aetherbound-guild-test-evidence/dev6-candidate-final/20260818T043605Z-66692`. All DEV-1..5 and DEV-6 behavior markers pass, plus parsed touch and 24 normal-render management frames across 760x360, 844x390 and 1280x720, zh_CN/en and 100/130% text. Strict diagnostics are 0, archive SHA-256 is `7f06d4c89d75689c8851a585245149a1a8d4dc5791c598926aa5f20df3f61862`, and runner cleanup owns/removes the complete process group and workspace. - Owner review accepts the DEV-1/DEV-2 Boot, Title and initial-choice baseline for continuation, but rejects the DEV-3 onward content surfaces: Guild, Market, Recruit/Equipment review, Roster/Detail and later management pages still read as repeated cards with small actors and generic command rows. The shared H5 origin can also resume an old browser save. DEV-6V is a narrow content-surface repair only; DEV-1/DEV-2 behavior and visual baseline remain frozen, and Company/Save/Battle semantics remain unchanged. - DEV-3V focused source-bound candidate passes at source `e979af7aeb5de9aead65a13f65429120ad6578d2`: `/private/tmp/aetherbound-guild-test-evidence/dev3v-candidate/20260818T053424Z-20989`. The candidate keeps DEV-1/2 behavior, covers Guild, Contract, Market, Recruit Review and post-hire Market across 24 normal-render frames, parsed touch and strict diagnostics 0. H5 visual check: `https://gallery.aichickenfarm.cn/item/OmkTW9cqlO6I?share=ff6dec4644691d79c8c6e0bd3efbb738680abec9c2bf73b1b53574edfbe78f37&fresh=1`. DEV-3V remains IN_PROGRESS pending Owner visual review. - Before further DEV-3V code changes, the Owner-provided `IMG_8573` reference is now decomposed into the written `DEV-3 Owner UI Style Contract` in `docs/04_ART_ANIMATION_AUDIO.md`: world-first composition, full readable actors, object-led commands, open HUD rails, no nested card wall and the required landscape/text-scale acceptance matrix. UI implementation is frozen until this written contract is accepted. - P0 consolidation is complete. `docs/01` is the positive product contract; `docs/02` is systems/economy/Save authority; `docs/03` is pages/components/states; `docs/04` is art/audio; and `docs/06` is the ordered roadmap and evidence gate. The written Style Bible is the reference; the next proof is the concrete `VA-1_GUILD_COMPANY_ANCHOR` page. DEV-1R, DEV-3V and later presentation/gameplay expansion remain frozen until the anchor is Owner-reviewed. - P0 checks pass: `ABG_DESIGN_CONTRACTS_OK` and `ABG_PREDEVELOPMENT_DESIGN_OK` (`documents=6`, `pages=50`, `errors=0`). The design validator was updated to read the current consolidated docs instead of the retired `docs/product` split. No safe tracked dead product file was found; historical runtime/evidence remains preserved. - DEV-1R Boot repair is implemented at source `23f34bbe669b2d119929d9d4c47e4466cfa2116c`. Resource/save verification, recoverable Retry and the Boot -> first-launch runtime handoff pass through the owned runner. Normal-render review replaces the opaque full plate with a bright painted scene and lower field-attached verification rail at 760x360 and 844x390. Fresh-start H5 review: `https://gallery.aichickenfarm.cn/item/8pe4Em72THsp?share=652f6a7f6605215742502da8ac72b22c30406b111904be2aef0cfe999e50266f&fresh=1`. DEV-1R remains frozen by the visual anchor step and its human visual review is `FAIL`: the current frame still inherits the rejected procedural entry-chrome grammar. The H5 is not a valid acceptance candidate; first-launch setup is not yet reopened. - `VA-1A_GUILD_ANCHOR_DECOMPOSITION` is complete. The current Guild runtime uses the locked Master B background, canonical B actor cutouts, AI-generated HUD/kiosk/medallion assets, engine text and independent hit areas. It no longer uses the old full-page frame, right utility panel or footer layout. - VA-1 is `agent_visual_reviewed / OWNER_REVIEW_OPEN`. Master B normalized coordinates now determine the top rail, actor foot line, kiosk and bottom rail at 760x360, 844x390 and 1280x720. Focused behavior PASS: `/private/tmp/aetherbound-guild-test-evidence/va1-master-coordinates-behavior-v2/20260819T005226Z-2313`. Required captures PASS at `/private/tmp/aetherbound-guild-test-evidence/va1-master-coordinates-capture-v3/20260819T010012Z-7453`, `/private/tmp/aetherbound-guild-test-evidence/va1-master-coordinates-fixture-0/20260819T010257Z-9294` and `/private/tmp/aetherbound-guild-test-evidence/va1-master-coordinates-fixture-3/20260819T010257Z-9292`. - VA-1 exact-composition candidate now uses the confirmed Master B composite as the visual coordinate master, with independent engine text and transparent hit areas. This is a visual-anchor checkpoint, not yet the final dynamic layer split. Focused behavior and Guild capture pass at `/private/tmp/aetherbound-guild-test-evidence/master-b-composite-behavior-v2/20260819T022004Z-64324` and `/private/tmp/aetherbound-guild-test-evidence/master-b-composite-capture-v2/20260819T022101Z-64892`. - Owner review reopened VA-1 responsive geometry on 2026-08-19: the 16:9 Master B canvas must never stretch to a phone's device ratio. Wider or narrower landscape space belongs to the independent World layer while all engine text and hit areas remain centered with the complete master canvas. This narrow repair is `IN_PROGRESS`; prior captures do not close it. The focused responsive check now covers 800x500, 960x540 and 1280x600 with a live viewport resize, including vertical World extension on narrow screens. - Responsive repair verification passes at `/private/tmp/aetherbound-guild-test-evidence/va1-responsive-layout/20260819T032630Z-17579` (`ABG_DEV3_GUILD_RESPONSIVE_OK`), parsed Guild navigation at `/private/tmp/aetherbound-guild-test-evidence/va1-responsive-behavior-final-r2/20260819T032739Z-18460`, and normal-render Guild/Contract/Market matrices at `/private/tmp/aetherbound-guild-test-evidence/va1-responsive-capture-final-760/20260819T032656Z-17824`, `/private/tmp/aetherbound-guild-test-evidence/va1-responsive-capture-final-844/20260819T032656Z-17825` and `/private/tmp/aetherbound-guild-test-evidence/va1-responsive-capture-final-1280-r2/20260819T032739Z-18459`. - Owner follow-up requests the Guild frame to use Chinese runtime copy and to remove the AI-master horizontal lines/plus marks that read as placeholders. The active VA-1 repair therefore adds compact engine-rendered resource and command labels, repositions kiosk/member copy and keeps the existing English branch and navigation semantics intact. - Chinese HUD/placeholder repair passes focused Guild navigation at `/private/tmp/aetherbound-guild-test-evidence/va1-chinese-hud-behavior-final/20260819T035831Z-42009`, live-resize geometry at `/private/tmp/aetherbound-guild-test-evidence/va1-chinese-hud-responsive-final/20260819T035831Z-42011`, and normal-render Guild/Contract/Market states at `/private/tmp/aetherbound-guild-test-evidence/va1-chinese-hud-capture-760-final/20260819T035831Z-42010`, `/private/tmp/aetherbound-guild-test-evidence/va1-chinese-hud-capture-844-final-r2/20260819T035831Z-42013` and `/private/tmp/aetherbound-guild-test-evidence/va1-chinese-hud-capture-1280-final/20260819T035831Z-42012`. - Owner accepted the repaired Guild visual anchor for continuation on 2026-08-19 and then explicitly redirected entry reconstruction to the Title page before Boot/first-launch re-review. `VA-2` retains its existing parsed Guild interaction evidence but is not a separate active implementation step. - Title v001 was superseded after Owner review found two presentation defects: the separate World extension visibly joined a different image at non-16:9 edges, and the Title identity sat too high against the crest. Owner approved the replacement v002 design on 2026-08-19. V002 uses one complete 16:9 master with a clean sky-toned matte outside the canvas, never a second image, and moves the engine-rendered identity lower with smaller type. The v001 current-tree design/runtime copies were removed in cleanup batch 1; Git history retains their provenance. - `SYS-003 Title` v002 runtime candidate preserves New Game/Continue/Settings/ Credits semantics and passes focused behavior at `/private/tmp/aetherbound-guild-test-evidence/title-v002-behavior-final/20260819T062925Z-70066`, wider/exact/narrower live resize at `/private/tmp/aetherbound-guild-test-evidence/title-v002-responsive-final/20260819T062925Z-70064`, parsed entry touch at `/private/tmp/aetherbound-guild-test-evidence/title-v002-touch-final/20260819T063140Z-71569`, and the 20-frame entry capture matrix at `/private/tmp/aetherbound-guild-test-evidence/title-v002-capture-final/20260819T062925Z-70065`. V001 remains provenance only; v002 is the sole current Title authority and still awaits Owner runtime acceptance before another entry page is activated. - A `SYS-002 First-launch Setup` v001 image draft was generated after three zero-cost provider failures; the fourth attempt completed for `$0.014`. It is preserved under `docs/design-authority/pages/SYS-002-first-launch/drafts/v001/` with status `DRAFT_REVIEW`. It is not approved design authority, is not imported into the runtime and does not supersede the active Title review boundary. - Broader human comprehension/fun, device, package and release gates remain `OPEN`. ## Preserve - Verified DEV-1 runtime, behavior and source-bound evidence. - Existing FG-4 runtime and Save-v11 evidence as historical implementation until their newly superseded casualty/Contract-close semantics reach their named later conversion step; do not delete or rewrite them inside DEV-2. - Touch, localization, accessibility and audio-event routing. - Rejected pixel assets and H5 only as Git/evidence history. ## Frozen - Product Runtime changes are restricted to the active BAT2-4D focused closure plus the BAT2-4C timeline and diagnostic implementation. The observation service is frozen at `2d4d5a7` and the contained field is frozen at `950b32e`; later battle pages, economy settlement and unrelated battle-rule changes remain frozen until their named substeps are activated after a focused push. - No page may move from AI draft to Godot implementation without the explicit state transitions in `page-production-contract.json`. - Promotion, Artifacts, second Contract creation and second battle remain frozen at the DEV-6 stopping point. - Pixel asset expansion. - FG-5 and later Regions. - No new BAT-002 image generation or image editing is authorized. The closed BAT2-3 package reuses accepted environment, actor, enemy and engine-chrome assets with explicit provenance; BAT2-4 must reconstruct from that package. - Native packaging, devices, signing, stores and release. - Concurrent edits to the same Runtime ownership boundary; multi-Agent deconstruction, asset, test and read-only review work uses one Runtime writer. ## PTY-002 Review Issue Register - `PTY002-VIS-01` `RESOLVED_OWNER_ACCEPTED`: Owner accepted the 760x360, 844x390 and 1280x720 Runtime captures at zh_CN/en 100%/130% text scale. The complete four-person line, position 0 exposure, summary and warning hierarchy, command emphasis and disabled-before-accept Risk boundary are confirmed. Layout experiment variants remain auxiliary evidence only. ## RSK-001 Review Issue Register - `RSK001-VIS-01` `RESOLVED_OWNER_ACCEPTED`: Owner accepted the normal 100% Runtime captures and live path at actual size on 2026-08-23. The three-column reading hierarchy, frozen party snapshot and truthful command rail are confirmed. - `RSK001-VIS-02` `RESOLVED_COPY_DENSITY`: Owner accepted the page composition but reported that the repeated fact labels read too densely. Source `d0dea5b` shortens localized labels and helper copy only; all six sourced facts, values, selection semantics, hit areas and the Risk Commitment boundary remain unchanged. Fresh source-bound normal 100% captures pass; the Owner acceptance record closes RSK-001. ## RSK-002 Review Issue Register - `RSK002-VIS-01` `RESOLVED_OWNER_ACCEPTED`: Owner accepted the v001 AI draft at actual size on 2026-08-23. The singular selected-risk composition, connected consequence band, four-member Party staging and bottom commitment rail are approved for reconstruction; the approval record is under `pages/RSK-002-risk-commitment/approved/v001/`. ## RSK-002 Deconstruction Issue Register - `RSK002-DEC-01` `RESOLVED_OWNER_ACCEPTED`: Owner accepted the v001 layer map, text slots, hit areas and deconstruction board at actual size on 2026-08-23. ## RSK-002 Asset Issue Register - `RSK002-ASSET-01` `RESOLVED_OWNER_ACCEPTED`: Owner replied `OK` to the full-size clean static master and contact sheet on 2026-08-23. World/relic continuity, dynamic mask ownership, reused Recruit provenance and the no-baked-text policy are accepted; the reconstruction handoff is the next separate boundary. ## RSK-002 Runtime Issue Register - `RSK002-RUNTIME-01` `RESOLVED_OWNER_ACCEPTED`: Owner accepted source `64c1c6f` at actual size on 2026-08-23. The selected-risk/Party hierarchy, six-fact consequence band, acknowledgement gate, command rail and exact-once BAT-001 handoff are closed at normal `100%`; the acceptance record is under `pages/RSK-002-risk-commitment/verification/owner-acceptance.md`. ## BAT-001 Specification Issue Register - `BAT001-SPEC-01` `RESOLVED_SPEC_READY`: The BAT-001 contract and state matrix are complete in source `1b3adc6`; the static pre-observation boundary, normal `100%` layout, input order and frozen scope are validated before any art or Runtime work. - `BAT001-DRAFT-01` `RESOLVED_REJECTED_WRONG_AUTHORITY`: Source `task_01M0QAKYKS41600MSY318C2VZP` is preserved under `pages/BAT-001-battle-opening/rejected/v001/`. Owner rejected its sparse four-actor tableau, oversized units and parchment panels as a competing battle direction. It cannot be used for deconstruction, assets or Runtime. - `BAT001-AUTHORITY-01` `RESOLVED_OWNER_ACCEPTED`: Owner confirmed `OK` to proceed on 2026-08-23. The existing approved battle page and `phase6_battle_scale_04` proof remain the BAT-001 visual authority; the rejected v001 composition is provenance only. ## BAT-001 Reconstruction Issue Register - `BAT001-DEC-01` `RESOLVED_PREflight_26_26`: The page-specific layer map, engine text slots, responsive anchors and transparent hit areas passed the focused preflight in source `7fccbbc`; the accepted full-party battlefield and compact rail hierarchy remain intact. - `BAT001-ASSET-01` `RESOLVED_REUSE_EXISTING`: No new AI generation was used. The clean Windglass field, four actor textures and Riftblade enemy texture are bound to existing accepted provenance with no pixel conversion. ## BAT-001 Runtime Issue Register - `BAT001-RUNTIME-01` `RESOLVED_SOURCE_BOUND_PASS`: Source `f892bb6` renders the static opening with the exact Party/enemy bindings, explicit handoff and no hidden phase advance. The focused behavior attempt and four normal 100% capture attempts pass with strict diagnostics 0. - `BAT001-RUNTIME-02` `RESOLVED_OWNER_ACCEPTED`: Owner accepted the source-bound normal `100%` Runtime on 2026-08-24. The complete Party/enemy relation, compact field-attached rails, first-threat disclosure and explicit BAT-002 handoff are closed; the record is under `pages/BAT-001-battle-opening/verification/owner-acceptance.md`. ## Closed M07 Plan `M07_BAT001_BATTLE_OPENING_OWNER_RUNTIME_REVIEW` owned the actual-size review of the bounded Godot reconstruction after the accepted battle authority, validated contract/state matrix, rejected v001 output, complete reconstruction package and source-bound Runtime evidence. The player-visible stopping point is a truthful Battle Opening surface where the objective, complete bound Party order, enemy-facing direction and first disclosed threat are readable before observation starts while preserving the accepted battle page's full-party scale, continuous field and compact top/bottom HUD hierarchy. The Runtime candidate authorizes only the static opening surface and explicit handoff to BAT-002. The Owner accepted that bounded surface on 2026-08-24. All five M07 steps are complete; BAT-002 live simulation and later pages remain outside this closed milestone. Ordered checks: 1. Build BAT-001 from the reconstruction spec using the clean accepted field, exact RSK-002 Party snapshot and committed enemy offer. 2. Keep the complete Company line, compact ordinary-unit scale, enemy-facing corridor, top status rail and bottom Company rail readable at the required landscape sizes. 3. Require explicit Start Observation, preserve the original receipt exactly once and hand off to BAT-002 without advancing a tick or mutating Company. 4. Run focused behavior/input/responsive checks through the source-bound attempt runner with strict diagnostics and retain the four normal 100% captures. 5. Owner reviewed and accepted the actual-size candidate and truthful BAT-002 stopping boundary on 2026-08-24. Frozen scope: no new image generation, asset generation, live battle timeline, combat simulation, result/recovery UI, new content, economy changes, second-cycle management, device validation, packaging, store submission, release or unrelated cleanup. Commit boundary: the reconstruction package is closed in source `7fccbbc`. Runtime implementation is committed in `f892bb6`; focused source-bound behavior and capture evidence are retained under the four `bat001-*` attempt families before the now-closed Owner Runtime review step. The Owner acceptance is recorded in the BAT-001 verification package. ## BAT-002 Specification Issue Register - `BAT002-SPEC-01` `RESOLVED_SPEC_READY`: BAT-002 `page-contract.json` and `state-matrix.json` reconcile the accepted BAT-001 receipt with the authoritative automatic-battle rules. They define live actor/target/event readability, exact `Waiting for next event` empty state, invalid-event pause, BAT-003/004/005/006 handoffs and the OUT-001 stopping boundary. JSON, six focused assertions, design-contract and predevelopment checks pass. ## Closed BAT2-1 Plan `M08_BAT002_LIVE_BATTLE_SPEC` owned only the BAT-002 page contract and state matrix. The player-visible stopping point is a readable automatic battle surface reached from the accepted BAT-001 receipt: objective, encounter-only knockout rule, complete Party/enemy relation, current urgent cause, live actor state, source/target relation and recent event sequence remain visible while the deterministic timeline runs. Pause, legal speed, inspect and retreat entry are diagnostic controls only; there is no manual attack or skill command. The page stops when the immutable outcome is ready for OUT-001 and does not render result, reward or recovery UI. Ordered checks: 1. Author `BAT-002` `page-contract.json` and `state-matrix.json` from the accepted BAT-001 receipt and current gameplay/UX/art authority. 2. Define normal `100%` landscape anchors, zh_CN/en text ownership, touch/ keyboard/controller focus, reduced-motion/flash/low-power behavior and explicit BAT-003/004/005/006 handoffs. 3. Require the exact no-current-event copy `Waiting for next event`; invalid event data pauses and offers Retry Snapshot or Safe Exit; backgrounding freezes simulation and routes through BAT-006. 4. Validate JSON, the complete design contract, predevelopment authority and focused BAT-002 static assertions. 5. Commit and push the specification package before activating authority reconstruction, assets or Runtime. BAT2-1 remains the closed boundary until that push is remote-visible. Frozen scope: no image generation, page reconstruction, Runtime edits, authoritative battle-rule replacement, new content, economy change, BAT-003 inspect implementation, BAT-004 pause overlay, BAT-005 retreat confirmation, BAT-006 resume review, OUT-001 result UI, second-cycle management, device validation, packaging, stores, release or unrelated cleanup. Commit boundary: one focused BAT-002 specification commit after the separate plan-activation source `53490a1`. No later step becomes active in that commit. Final handoff: `ABG BAT-002 SPEC READY`. ## BAT-002 Authority Issue Register - `BAT002-AUTHORITY-01` `RESOLVED_APPROVED_EXISTING`: The accepted `05_battle_ui_japanese_scale.png` and `phase6_battle_scale_04` proof are copied byte-for-byte into the BAT-002 approved v001 package. Hashes, focal regions, dynamic ownership and explicit rejections preserve both full lines, ordinary-unit scale, central action gap, top status/control rails, urgent-event geometry and bottom actor-state rail. Historical `show_battle()` and static BAT-001 Runtime remain functional/neighboring provenance only. ## Closed BAT2-2 Plan `M08_BAT002_LIVE_BATTLE_AUTHORITY` owned only page-specific reconciliation of the existing Owner-approved live-battle reference and full-party scale proof. It does not generate a new design or start deconstruction, assets or Runtime. Ordered checks: 1. Copy the accepted live-battle reference and full-party scale proof into a page-specific approved v001 package without modifying either image. 2. Record hashes, original repository sources, Owner authority, focal regions, live-state dynamic ownership and explicit rejected alternatives. 3. Confirm the reference retains complete Party/enemy lines, ordinary actor scale, action gap, compact top controls and bottom actor-state rail at normal `100%` landscape size. 4. Run focused authority/hash/static checks, design-contract and predevelopment validation, then rebuild Gallery. 5. Commit and push the authority package before BAT2-3 deconstruction becomes `IN_PROGRESS`. BAT2-2 remains closed until the push is remote-visible. Frozen scope: no new image generation, image editing, deconstruction board, runtime assets, Godot changes, battle-rule/economy/content changes, later-page implementation, device validation, packaging, stores, release or unrelated cleanup. Commit boundary: one focused authority package and push after specification source `7ededea`. Final handoff: `ABG BAT-002 AUTHORITY READY`. ## BAT-002 Reconstruction Issue Register - `BAT002-DEC-01` `RESOLVED_OWNER_ACCEPTED`: the Owner replied `OK` on 2026-08-24 after reviewing the final deconstruction board and asset contact sheet. The accepted live-battle composition, complete-line scale, layer ownership, engine slots, hit areas and existing-asset provenance are closed. No Runtime code or battle simulation was part of BAT2-3. Machine evidence: BAT-002 reconstruction/spec/authority assertions pass `17/17`; reusable page preflight passes `32/32`; design-contract, predevelopment and 50-page Gallery builds pass. The clean field remains byte-identical to the accepted BAT-001 clean master, no generated player asset exists, and the deconstruction/asset package is `human_reviewed`. Runtime, device and release states remain false. ## Closed BAT2-3 Plan `M08_BAT002_LIVE_BATTLE_RECONSTRUCTION` owns only the BAT-002 v001 deconstruction and reconstruction handoff. Its player-visible stopping point is a reviewable live-battle composition with a continuous painted field, complete Party/enemy lines, central action gap, compact top controls, bottom actor-state rail and subject-attached event geometry. The deterministic timeline begins only in BAT2-4. Ordered checks: 1. Inspect the approved master and scale proof at source size, then record the deconstruction board, focal bounds, normalized layer ownership and dynamic regions. Static art, Runtime overlays and hit-area-only regions must have one owner each. 2. Author engine-owned text slots for objective, actor/target/event state, timer, playback, waiting/error and OUT-001 handoff copy in `zh_CN` and `en` at normal `100%`; author independent hit areas, focus order and non- interactive field regions with 48 logical px minimum targets. 3. Reuse the accepted clean Windglass field, existing Recruit/enemy families and engine-drawn battle chrome only. Record hashes, source paths, dynamic masks/regions, animation/VFX event bindings, contact sheet and runtime asset manifest; do not generate or edit player-facing imagery. 4. Run focused BAT-002 reconstruction assertions, page preflight, design-contract/predevelopment validation and Gallery build. Source `f9f50cd` is remote-visible; the Owner accepted the final deconstruction and zero-generation asset package on 2026-08-24. Frozen scope: no image generation/editing, Godot Runtime or battle-rule changes, live simulation, BAT-003/004/005/006, OUT-001, content/economy, device/package/store/release work or unrelated cleanup. Runtime code remains frozen until BAT2-4 is separately activated. Commit boundary: activation is source `2e18f63`; the focused package is source `f9f50cd`. This Owner acceptance closure records `ABG BAT-002 RECONSTRUCTION READY`; it does not activate BAT2-4. ## BAT-002 Runtime Issue Register - `BAT002-RUNTIME-01` `RESOLVED_SERVICE_PASS`: source `2d4d5a7` adds a backward-compatible receipt-bound observation path. The historical `advance_battle()` settles immediately at its final phase and mutates Coin, XP, Recruit history and settlement receipts; BAT-002 now uses separate begin/preview/commit/retry operations, validates event and journal hashes and stops at an immutable outcome lock. The focused service attempt and legacy DEV-5 settlement regression pass with strict diagnostics 0. - `BAT002-RUNTIME-02` `RESOLVED_FIELD_PASS`: source `950b32e` replaces the rejected card/container surface with the accepted contained field, complete four-member Party and three-enemy lines, central event projection and ordered actor-state rail. The exact English waiting copy, sparse waiting density, normal `100%` responsive layouts, 48px targets, Settings return and no-hidden- tick handoff pass with strict diagnostics 0. - `BAT002-RUNTIME-03` `RESOLVED_TIMELINE_PASS`: historical `battle_runtime_test.gd` expects immediate autoplay, active pause and 1x/2x controls on the rejected card UI. Its settlement semantics remain covered by `battle_foundation_test.gd`; timeline, pause and legal 1x/2x/4x behavior now run on the accepted field in `battle_live_timeline_test.gd` without restoring the old surface. Source `0de6c7a`; strict timeline, field, BAT-001, observation-service and legacy DEV-5 regressions pass. - `BAT002-RUNTIME-04` `RESOLVED_IMPLEMENTATION_CLOSURE`: BAT2-4C is implemented and source `0de6c7a` passes the combined source-bound field, timeline, BAT-001, observation-service and legacy DEV-5 closure attempt with strict diagnostics 0. The implementation record moves BAT-002 to `IMPLEMENTED_AWAITING_OWNER_RUNTIME_REVIEW`. - `BAT002-RUNTIME-05` `RESOLVED_SOURCE_BOUND_CANDIDATE`: source `fea2ae9` passes the owned candidate runner with four normal 100% fixtures and 40 captures; marker `ABG_BAT002_CANDIDATE_OK` appears exactly once, strict diagnostics are 0, and the archive SHA-256 is `a00f1b915f34ec9ac84b955ffc2eab7313830bcfccb9c1c1f79d4651161fb7d0`. Representative captures and the complete archive record are under the BAT-002 verification package, but the Owner rejected their visual fidelity; they remain functional provenance only. - `BAT002-RUNTIME-06` `OWNER_REJECTED_VISUAL_FIDELITY`: the candidate replaced the approved asymmetric blue/red status rails and centered ivory control ribbon with plain blocks, replaced the portrait-led Company rail with a text-heavy strip and oversized Retreat block, and used a debug-like event band instead of actor-attached event language. Automated PASS results do not overrule this visual rejection. - `BAT002-RUNTIME-07` `OPEN_APPROVED_DESIGN_RECONSTRUCTION`: BAT2-4E owns the visual repair against the approved master. Functional timeline, receipt, hashes and later-page boundaries remain frozen. No later battle page or settlement work is authorized. - `BAT002-RUNTIME-08` `RESOLVED_APPROVED_DESIGN_RECONSTRUCTION`: source `189c20b` restores the approved asymmetric rails, centered ivory controls, portrait-led actor-state rail and actor-attached event projection without changing battle semantics. Field and Timeline markers, four normal 100% capture fixtures, 17 focused static assertions and 32/32 package preflight checks pass with strict diagnostics 0. The visual-repair record is `docs/design-authority/pages/BAT-002-live-battle/verification/visual-repair.json`; BAT2-5 source-bound verification is complete and BAT2-6 is the next active boundary. - `BAT002-RUNTIME-09` `RESOLVED_SOURCE_BOUND_REPAIR_CANDIDATE`: source `189c20bc4a97071577b43912ebd49bc6d4a3be30` passes fresh-archive import, `ABG_DEV5_BATTLE_LIVE_FIELD_OK` and `ABG_DEV5_BATTLE_TIMELINE_OK` exactly once, plus `ABG_BAT002_CANDIDATE_OK` exactly once with 40 normal `100%` captures across the four required fixtures. All terminals report strict diagnostics 0 and the retained 45-file candidate archive SHA-256 is `165b35d9c5869bf335858011aa40683357758a982efe5f451a9aa3f733d918a9`. Full attempt records are in `pages/BAT-002-live-battle/verification/source-bound.json`. - `BAT002-RUNTIME-10` `OPEN_OWNER_RUNTIME_REVIEW`: BAT2-6 owns actual-size review of the repaired source-bound candidate. Acceptance must confirm the complete Party/enemy relation, normal `100%` readability and truthful BAT-003/004/005/006 plus OUT-001 boundaries; no later page or settlement work is authorized before this gate closes. - `BAT002-RUNTIME-11` `RESOLVED_OWNER_ACCEPTED`: the Owner confirmed the repaired source-bound Runtime with `这个OK啊` on 2026-08-24 at actual size. The four-member Company/three-enemy relation, approved blue/red faction rails, centered ivory controls, continuous portrait-led actor rail and actor-attached event language are accepted at normal `100%`. Strict source-bound diagnostics remain `0`; BAT-003/004/005/006 and OUT-001 stay truthful boundaries, with no reward, recovery, settlement or next-stage mutation. The acceptance record is `pages/BAT-002-live-battle/verification/owner-acceptance.md`. ## BAT2 Runtime Plan (Closed) `M08_BAT002_LIVE_BATTLE_RUNTIME` owns only the bounded first live-observation Runtime reconstructed from the accepted BAT-002 package. The player-visible stopping point is the accepted contained battlefield with the complete Party and enemy lines, ordinary-unit scale, central action corridor, compact rails and an engine-owned automatic event timeline. The player can read forecast, commit, source-to-target resolution and stable aftermath for melee/damage, ranged, magic, healing, guard, enemy pressure and knockout, use diagnostic controls, and stop at an immutable OUT-001 handoff. BAT-002 never applies reward, recovery, next-stage or Company-management operations. Ordered substeps: 1. `BAT2-4A` `COMPLETE` - add a backward-compatible observation service bound to the original operation, snapshot and single battle receipt. Begin observation without advancing a tick; preview and commit deterministic events with stable identity/order/hash validation; persist an `outcome_locked` record without settlement. Prove idempotency, corruption rejection, no reward/history mutation and legacy DEV-5 settlement compatibility in a focused service test. Source `2d4d5a7`; the final worktree service attempt is `/private/tmp/aetherbound-guild-test-evidence/bat002-observation-service-worktree/20260824T044254Z-46139` and the separate legacy attempt is `/private/tmp/aetherbound-guild-test-evidence/bat002-observation-legacy-dev5-worktree/20260824T044215Z-45630`. 2. `BAT2-4B` `COMPLETE` - replace the historical card/container `show_battle()` surface with the accepted contained 16:9 layered field. Bind all four Party actors, the committed enemy line, objective/rules, actor-state rail and reserved event geometry to the validated observation snapshot; keep exact `Waiting for next event` copy and 48px targets at the required landscapes. Source `950b32e`; the final normal-render worktree attempt is `/private/tmp/aetherbound-guild-test-evidence/bat002-live-field-final-worktree/20260824T052342Z-74920`. BAT-001 handoff, observation-service and historical settlement regressions pass separately with strict diagnostics 0. 3. `BAT2-4C` `COMPLETE` - connect forecast/commit/resolving/resolved timing and diagnostic-only pause, legal 1x/2x/4x speed, inspect, Settings and retreat entries. Add invalid-event Retry Snapshot/Safe Exit, interruption BAT-006 handoff and immutable OUT-001 handoff states without implementing those neighboring pages. Source `0de6c7a`; playback-speed invariance and frozen pause/error/interruption behavior pass. 4. `BAT2-4D` `COMPLETE` - run the focused service/Runtime/input/responsive regression set, record the implementation boundary and move the page only to `IMPLEMENTED_AWAITING_OWNER_RUNTIME_REVIEW`. Source `0de6c7a723ebec5d4202966c926b8fac0fb3332f`; combined source-bound attempt: `/private/tmp/aetherbound-guild-test-evidence/bat002-closure-source-bound/20260824T071013Z-49976`. 5. `BAT2-4E` `COMPLETE` - source `189c20b` reconstructs the approved battle presentation in Runtime: asymmetric blue/red crest endcaps and beveled faction rails; centered ivory pause/speed/inspect ribbon; a continuous dark-gold bottom rail with event/timer module, numbered portrait cards, HP/resource/status slots and a compact boundary command; field-attached objective/event facts, source-target paths, urgent markers and floating values. Focused visual-repair evidence passes without changing battle semantics. 6. `BAT2-5` `COMPLETE` - source-bound verification from `189c20bc4a97071577b43912ebd49bc6d4a3be30` runs fresh import, Field, Timeline and four normal `100%` fixtures. The three PASS attempts, exact markers, 40 captures and archive hash are recorded in `verification/source-bound.json`; the `fea2ae9`/`aa6e0c4` captures remain rejected visual provenance. 7. `BAT2-6` `COMPLETE` - the Owner accepted the repaired actual-size candidate with `这个OK啊` on 2026-08-24. BAT-002 is closed at the immutable OUT-001 handoff; later pages remain frozen until separately planned. Acceptance checks: the approved master remains the visual authority; top rail silhouette/material hierarchy, centered control ribbon, field dominance, ordinary actor scale, continuous portrait-led bottom rail and actor-attached event language must read as the same UI family at actual size. Also preserve one original receipt and unchanged snapshot identity; event-preview/commit hashes and order; no Coin, XP, Recruit-history, settlement, recovery or next-stage mutation; exact required state names and waiting copy; complete Party/enemy lines and accepted scale; contained 16:9 at `760x360`, `844x390` and `1280x720` in `zh_CN`/`en` at normal `100%`; touch, keyboard/controller focus and 48px targets; strict Godot diagnostics; preserved BAT-001 handoff and legacy DEV-5 settlement regressions. Owned paths: `runtime/entry/battle_service.gd`, `runtime/entry/entry_shell.gd`, a BAT-002-specific engine-art helper under `runtime/entry/`, focused BAT-002 tests under `runtime/tests/dev5/`, the BAT-002 page implementation/verification records, and the BAT-002 entries in this checkpoint and `docs/06_DEVELOPMENT_AND_REVIEW.md`. Forbidden paths: `runtime/domain/p9_2/` and its historical pixel presenter; approved/reconstruction PNG editing; new image/audio generation; BAT-003, BAT-004, BAT-005, BAT-006 or OUT-001 page implementation; reward, XP, recovery, next-stage, content/economy or Save-schema replacement; device/package/store/ release work; unrelated cleanup. Do not stage or delete untracked `.uid`, `.import` or `prototype_incremental/` files. Commit boundaries: this plan/checkpoint activation was pushed before BAT2-4A product edits. Each substep receives its narrowest focused verification and focused pushed commit before the next substep becomes `IN_PROGRESS`; a failed check leaves the current substep active. BAT2-4D closes at source `0de6c7a`; the `fea2ae9`/`aa6e0c4` candidate is retained as visually rejected provenance. This rejection/repair activation was pushed before BAT2-4E product code. BAT2-4E closes at focused visual-repair commit `189c20b`; BAT2-5 closes with the fresh source-bound attempts recorded in `verification/source-bound.json`. BAT2-6 closes with the Owner acceptance record in `verification/owner-acceptance.md`. Final BAT2-4 handoff remains `ABG BAT-002 RUNTIME IMPLEMENTED`; no neighboring page or settlement work is authorized without a separately activated durable plan. ## Next Action M31 MVP Release Readiness is complete. The local first-cycle candidate passes the fresh source-bound audit, DEV-5 candidate regressions, M27-M30 controller boundaries and normal `100%` visual inspection. The shortest next action is an Owner decision on the remaining human/device/audio/package gates. iOS project/export, signing, store and release work require a separate explicit authorization and durable plan; second-cycle repair remains outside M31. Historical milestone closure: M09, M10 and M11 `BAT-003`/`BAT-004` are closed. M12 `OUT-001..004` is closed at source `f632002` with domain, Runtime and candidate capture markers passing under `tools/run_test_attempt.py`. M13 then completed the source-bound first-cycle audit at `e68f888`, M14 cleanup is complete, M15 Runtime Foundation is closed at `b5c78fd`, and M16 Company Page Pilot is closed at `fa525e6`. M17 Market Controller Pilot is complete at source `dd38db6`, and M18 Recruit Review Controller Pilot is complete at source `4a8a004`. M19 Contract Choice Controller Pilot is complete at source `deac574`; its focused controller/regression attempt, four-fixture normal `100%` capture attempt and full source-bound MVP first-cycle audit all pass with exact-once markers, strict diagnostics `0`, 128 normal frames and owned workspace cleanup. M20 Guild Controller Pilot is complete at source `1323f23`; its focused controller/runtime/regression and full source-bound MVP audit pass with exact-once markers, strict diagnostics `0`, Guild captures and owned workspace cleanup. M21 Party Line Controller Pilot is complete at source `0c44800`; its focused controller/runtime/regression and full source-bound MVP audit pass with exact-once markers, strict diagnostics `0`, 24 focused Party/Formation capture frames, 128 normal MVP frames and owned workspace cleanup. M22 Readiness Controller Pilot is complete at source `ab83290`; its activation boundary is source `0098b5b`, controller source `6647b05`, and the accepted PTY-002 View integration, focused DEV-4 candidate and full source-bound MVP audit all pass with exact-once markers, strict diagnostics `0`, 24 focused normal `100%` frames, 128 normal MVP frames and owned workspace cleanup. M23 Risk Board Controller Pilot is complete at source `8ac91f2`; its activation boundary is source `2cf4f56`, controller source `b37f60c`, and the accepted RSK-001 View integration, focused DEV-4 candidate and full source-bound MVP audit all pass with exact-once markers, strict diagnostics `0`, 24 focused normal `100%` frames, 128 normal MVP frames and owned workspace cleanup. M24 Risk Commitment Controller Pilot is complete at source `9518e2e`; its activation boundary is source `e8825f7`, controller source `3e80083`, and the accepted RSK-002 View integration, focused candidate and full source-bound MVP audit all pass with exact-once markers, strict diagnostics `0`, 24 focused normal `100%` frames, 128 normal MVP frames and owned workspace cleanup. M25 Battle Opening Controller Pilot is complete at source `3a0c066`; its activation, controller, View integration, focused candidate and full MVP first-cycle audit all pass with exact-once markers, strict diagnostics `0`, 128 normal MVP frames and owned workspace cleanup. M26 Battle Live Controller Pilot is complete at source `2c872f9`; M27-A is complete at source `26fa8b7`, M27-B is complete at source `d26a03e`, M27-C is complete at source `a3f31e2` and M27-D closes at source `aa8d63b` under its own durable plan. M28 is the next explicitly activated OUT-002 architecture seam under `docs/plans/M28_KNOCKOUT_REVIEW_CONTROLLER_PILOT.md`. - M26 is the bounded BAT-002 Live Battle Controller migration. Its activation plan is `docs/plans/M26_BATTLE_LIVE_CONTROLLER_PILOT.md`; `M26-A` records the stopping point, observation/receipt invariants and forbidden scope before BAT-002 product code changes; `M26-B` is complete at source `31ed44f`, `M26-C` at `37b5032` and `M26-D` closes at `2c872f9`. Its source-bound controller/View attempt `/private/tmp/aetherbound-guild-test-evidence/m26-battle-live-controller-focused/20260825T101026Z-61009` passes exact-once `ABG_M26_BATTLE_LIVE_CONTROLLER_OK`, `ABG_DEV5_BATTLE_UI_OK` and `ABG_DEV5_CANDIDATE_SUITE_OK`, strict diagnostics `0`, observation/BAT-003/004 regressions and owned workspace/process cleanup (archive SHA-256 `961dcc73e3abeb7b8ce420e582f838fe3abceb1c39b7048a5d650b379aeebefd`). The full source-bound MVP first-cycle audit `/private/tmp/aetherbound-guild-test-evidence/m26-mvp-audit/20260825T102223Z-72665` passes exact-once `ABG_MVP_FIRST_CYCLE_AUDIT_OK` with 180 evidence files, 128 normal `100%` frames across `zh_CN`/`en` and `760x360`, `844x390`, `1280x720`, strict diagnostics `0`, parsed touch coverage, restart-to-Market and owned workspace/process cleanup (archive SHA-256 `cf905fbf5f03301d0078e619b1abc40e352204a25e82a952d25172849bd05df5`). The scope is limited to copied observation/battle/Party/enemy/event view data, playback-state classification and diagnostic command eligibility; accepted BAT-002 composition, timeline semantics, interruption boundaries and OUT-001 handoff remain frozen. - M27 is the completed bounded OUT-001 Battle Result Controller migration. Its activation plan is `docs/plans/M27_BATTLE_RESULT_CONTROLLER_PILOT.md`; `M27-A` is complete at source `26fa8b7`, `M27-B` is complete at source `d26a03e`, `M27-C` is complete at source `a3f31e2`, and `M27-D` closes at source `aa8d63b` after the source-bound verification/handoff boundary. The scope is limited to copied result/decisive-event/causal/reward-draft/knockout view data and Continue eligibility; accepted OUT-001 composition and downstream Recovery semantics remain frozen. - M28 is the completed bounded OUT-002 Knockout Review Controller migration. Its activation plan is `docs/plans/M28_KNOCKOUT_REVIEW_CONTROLLER_PILOT.md`; `M28-A` records the settled-result, knockout identity, battle-local return and reward/recovery continuation invariants before any OUT-002 product code changes. The scope is limited to copied knockout view data and acknowledgement target eligibility; accepted OUT-002 composition and downstream Reward/Recovery semantics remain frozen. - M29 is the completed bounded OUT-003 Reward Choice Controller migration. Its activation plan is `docs/plans/M29_REWARD_CHOICE_CONTROLLER_PILOT.md`; `M29-A` records the settled-result, open-draft, option identity and claim/skip invariants before any OUT-003 product code changes. The scope is limited to copied reward-choice view data and command eligibility; accepted OUT-003 composition and downstream Recovery semantics remain frozen. - M30 is the bounded OUT-004 Recovery Controller migration. Its activation plan is `docs/plans/M30_RECOVERY_CONTROLLER_PILOT.md`; `M30-A` records the settled-result, reward-completion, stable-identity and one-recovery-receipt invariants before any OUT-004 product code changes. The scope is limited to copied recovery view data and Commit/Market eligibility; accepted OUT-004 composition and downstream Market semantics remain frozen. Second-cycle systems/content, broader region/endgame production, device, package, signing, store/release and human comprehension/fun gates remain outside M31 and require their own explicitly activated durable plan or Owner gate. ### 2026-08-25 - M34 Knockout Review Page View Refactor Activated - The Owner asked to continue splitting page Views after the M33 Reward Choice pilot. `M34_KNOCKOUT_REVIEW_PAGE_VIEW_REFACTOR` is now the sole active plan in `docs/plans/M34_KNOCKOUT_REVIEW_PAGE_VIEW_REFACTOR.md`. - M34 targets only OUT-002 Knockout Review. It preserves the M28-accepted settled result, battle-local knockout identity/gap, Recruit portrait and identity facts, Back/Acknowledge controls and Reward Choice/Recovery routes. `ABGKnockoutReviewPageView` will own Godot nodes and explicit intents; EntryShell remains the composition root and the controller remains the copied-facts authority. - M34-A freezes the `_readiness_member()` presentation boundary, exact node names, forbidden imports and M28 normal-capture equivalence target before Runtime product code changes. Result, Reward Choice, Recovery, Market and Battle Views remain outside this plan. - M34-A is complete at source `9bbdbb9`; M34-B is complete at source `7a4c1ca` (product integration; docs recorded at `d6208d8`). The extracted UI-only Knockout Review View preserves the accepted node tree, portrait/identity presentation and deferred `back`/`acknowledge` intent wiring. M34-C is complete at source `4c7a0ac`; M34-D closes at source `5b811fb` with the source-bound audit and final handoff. No later page migration is active. ### 2026-08-25 - M34 Knockout Review View Verification Complete - M34-C passes at source `4c7a0ac55b2825ccf3d24ebac6ebb9e33e1267ef`. The source-bound View contract, M28/M29/M30 controller and M12/DEV-5 route regressions, DEV-5 candidate and full MVP first-cycle audit all pass with exact-once markers, strict diagnostics `0`, parsed touch, owned cleanup and normal `100%` frames. - The four Knockout Review captures are byte-identical to the M28 baseline at `760x360`/`zh_CN`, `844x390`/`en`, `1280x720`/`zh_CN` and `1280x720`/`en`. Evidence is recorded in `docs/runtime/M34_KNOCKOUT_REVIEW_PAGE_VIEW_VISUAL_AUDIT.md`. - M34-D closes at source `5b811fb` with the source-bound audit, byte-level equivalence record and ordered next-extraction map. No next page migration is activated here; a new durable plan is required. ### 2026-08-25 - M34 Knockout Review View Pilot Closed - M34-D closes at source `5b811fb`. OUT-002 Knockout Review is now a passive `ABGKnockoutReviewPageView` with explicit deferred `back`/`acknowledge` intents, while controller, settlement, Reward/Recovery routes and Battle semantics remain unchanged. - The source-bound contract, regressions, DEV-5 candidate, MVP audit and four-fixture byte-equivalence evidence are recorded in `docs/runtime/M34_KNOCKOUT_REVIEW_PAGE_VIEW_VISUAL_AUDIT.md`. - M34 is complete. At closure no later migration was active; M35 is now separately activated under its own Owner-authorized durable plan. ### 2026-08-25 - M35 Battle Result Page View Refactor Activated - M34 Knockout Review View is closed. The next Owner-requested architecture milestone is `M35_BATTLE_RESULT_PAGE_VIEW_REFACTOR`, with its durable plan under `docs/plans/`. - M35 targets only OUT-001 Battle Result. It preserves the M27-accepted outcome, causal chain, decisive event, Coin/XP totals, Knockout summary, diagnosis toggle, Continue target and normal `100%` presentation. - M35-A was the sole active step at activation. Result View extraction, Risk, Reward, Recovery, Market and live Battle Views remain outside this plan. ### 2026-08-25 - M35 Battle Result View Extraction Started - M35-A closes at source `37d1731`, freezing the OUT-001 Result composition, UI-only formatting boundary, exact node names, forbidden imports and M27 normal-capture equivalence target. - M35-B was the sole `IN_PROGRESS` step during extraction. It added only `ABGBattleResultPageView` and deferred `diagnosis`/`continue` intent wiring; settlement, Reward/Knockout/Recovery routes and Save semantics remain frozen. ### 2026-08-25 - M35 Battle Result View Verification Complete - M35-B/C pass at source `7ba4326c508d500d41ec115415833bdd0cf697ae`. The source-bound View contract, M27/M28/M29/M30 controller and M12/DEV-5 route regressions, DEV-5 candidate and full MVP first-cycle audit all pass with exact-once markers, strict diagnostics `0`, parsed touch, owned cleanup and normal `100%` frames. - The four Battle Result captures are byte-identical to the M27 baseline at `760x360`/`zh_CN`, `844x390`/`en`, `1280x720`/`zh_CN` and `1280x720`/`en`. Evidence is recorded in `docs/runtime/M35_BATTLE_RESULT_PAGE_VIEW_VISUAL_AUDIT.md`. - M35-D closes at source `4a2bb82` with the source-bound audit, byte-level equivalence record and final handoff. No next page migration was activated at closure; a new durable plan is required. ### 2026-08-25 - M35 Battle Result View Pilot Closed - M35-D closes at source `4a2bb82`. OUT-001 Battle Result is now a passive `ABGBattleResultPageView` with explicit deferred `diagnosis`/`continue` intents, while controller, settlement, Reward/Knockout/Recovery routes and Battle semantics remain unchanged. - The source-bound contract, regressions, DEV-5 candidate, MVP audit and four-fixture byte-equivalence evidence are recorded in `docs/runtime/M35_BATTLE_RESULT_PAGE_VIEW_VISUAL_AUDIT.md`. - M35 is complete. At closure no later migration was active; any further View migration requires a new Owner-authorized durable plan. - Historical completed plan: `docs/plans/M36_RISK_COMMITMENT_PAGE_VIEW_REFACTOR.md` (`COMPLETE`) - M36-A is complete at source `e9ab79d`, freezing the RSK-002 custom 16:9 Risk Commitment composition, exact semantic node names, six-intent command boundary, forbidden imports and M24 normal-capture equivalence target. M36-B is complete at the product integration source. The passive View, normalized canvas and deferred six-intent wiring preserve the accepted page; M36-C is complete at source `26190de` with the source-bound contract, regressions, DEV-4 candidate, MVP audit and four-fixture byte-equivalence evidence in `docs/runtime/M36_RISK_COMMITMENT_PAGE_VIEW_VISUAL_AUDIT.md`. M36-D closes at source `3a82056` with the final handoff. Readiness and later preparation Views remain outside this plan and require a new durable plan. ### 2026-08-25 - M40 Recruit Review Page View Refactor Activated - M39 Party Line View is closed. The next Owner-requested architecture milestone is `M40_RECRUIT_REVIEW_PAGE_VIEW_REFACTOR`, recorded in `docs/plans/M40_RECRUIT_REVIEW_PAGE_VIEW_REFACTOR.md`. - M40 targets only SHP-002 Recruit Review. It preserves the accepted portrait-led static master, stable offer identity, seven engine-owned fact slots, Company/Line impact, sourced price, Hire eligibility, same-offer Cancel return, approved invisible `RecruitReviewSettings` hit area and normal `100%` presentation. Hire/economy, Market, Save, localization, packaging and 130% scope remain frozen. - M40-A is the sole `IN_PROGRESS` step. It freezes the Controller/ViewData boundary, forbidden imports, exact node names, three-intent command boundary and M18 normal-capture equivalence target before product code. No Recruit Review product code has changed in M40 yet. ### 2026-08-26 - M41 Market Page View Refactor Activated - M40 Recruit Review View is closed. The next Owner-authorized architecture milestone is `M41_MARKET_PAGE_VIEW_REFACTOR`, recorded in `docs/plans/M41_MARKET_PAGE_VIEW_REFACTOR.md`. - M41 targets only the accepted SHP-001 Market surface. It preserves the matte/normalized 16:9 canvas, static master, `MarketLayout` identity, Company/Line/Coin and board facts, Recruit/Equipment/Battle category rails, stable offer selection, inspect-only review/route boundaries, Back and Settings context and normal `100%` presentation. - M41-A closes at source `ef29bdc`: the 2048x1152 clean master, contained 16:9 canvas, `MarketLayout` wrapper, frozen semantic node names, normalized hit/focus anchors and Controller/ViewData boundary are recorded. - M41-B closes at source `9a440b3`: `ABGMarketPageView` owns the accepted matte/master/canvas, offer presentation and focus; EntryShell translates only explicit deferred intents and the former Market UI builders are removed. Controller, M09 Runtime, M10 Recruit Review, DEV-3 Market and Hire focused checks pass with strict diagnostics `0`. M41-C closes at source `b88b211`: the source-bound contract/regression suite, DEV-3 candidate and full MVP first-cycle audit pass with strict diagnostics `0`; the M09 Market capture set is byte-equivalent to the immutable `8d377f0` baseline at all four normal `100%` fixtures. M41-D closes at `b88b211`; Market is complete and no later View migration is active. ### 2026-08-26 - M45-B Market Contract Return Boundary Restored; Receipt Safety Started - M45-B closes at source `23c9bc5`. The Market Controller now exposes copied Contract Return command facts, `ABGMarketPageView` renders the distinct `MarketReturnContract` action, and EntryShell translates only the deferred `return_contract` intent into the existing Shell-owned review. - The review defaults focus to Cancel and blocks stale or formation-locked states with truthful notices. Existing Contract Return transaction, receipt, Save and Guild handoff semantics remain unchanged. Focused Controller/View, runtime and DEV-6 return checks pass with strict diagnostics `0`. - M45-C is now the sole `IN_PROGRESS` step. It hardens receipt identity, atomicity, retry/conflict behavior, restart persistence and pre-M45 save compatibility; Market composition and unrelated gameplay remain frozen. ### 2026-08-26 - M45-C Contract Return Receipt Safety Verified; Candidate Handoff Started - M45-C closes at source `ecf0b8a6fd426baf0ecaefd0fd97ab5ae42dd853`. Receipt identity, intent, retained roster, destination and content-hash validation are enforced; duplicate retries are idempotent, conflicting retries and malformed receipts are rejected without mutation, and valid pre-M45 Market saves remain readable. - The source-bound focused attempt `m45-c-focused-source/20260826T060814Z-91122` passes `ABG_M45_CONTRACT_RETURN_SAFETY_OK` exactly once with strict diagnostics `0`, archive SHA-256 `f1d51ebaf99d28dd716182c8d46c3680641becf88b7dd550d62d7e90e26940fb`, and complete owned process/workspace cleanup. - M45-D is now the sole `IN_PROGRESS` step for the DEV-6 candidate, full MVP first-cycle audit and normal `100%` Market/Contract Return/Guild capture inspection. `130%` remains supplemental and non-blocking. ### 2026-08-26 - M45 Contract Return Repair Complete - M45-D closes at source `0b607d657324670b06030655878462080a5a840f` after the source-bound DEV-6 candidate, full MVP first-cycle audit and dedicated Contract Return visual capture all pass. The candidate reports 24 second-cycle normal-render frames (with the established 130% supplemental fixtures); the MVP audit reports 128 normal first-cycle frames; the dedicated pass reports 12 normal `100%` Market, Contract Return Review and returned Guild frames across `760x360`/`zh_CN`, `844x390`/`en` and `1280x720`/`zh_CN,en`. - Strict diagnostics are `0`, required markers appear exactly once, parsed touch/restart checks pass, all owned process groups and workspaces are removed, and automated 44px bounds, clipping and overlap checks pass. - M45 is complete at its written stopping point. No new Contract, Battle, economy, Save schema, content, packaging, device, store or release work was started. `.uid`, `.import` and `prototype_incremental/` remain untouched. ### 2026-08-26 - M46-B Shared UI Foundation Verified; Control Migration Started - M46-B closes at source `f736d7a`. The shared token, command factory, owned vector icon and notice primitives are presentation-only and preserve the existing PageView/EntryShell callbacks, semantic node names and page-specific compositions. The Risk inheritance `UI_FONT` compatibility alias is retained. - The source-bound attempt `m46-ui-foundation-focused/20260826T122929Z-99785` passes `ABG_M46_UI_FOUNDATION_OK` exactly once with strict diagnostics `0`, return code `0`, source revision `f736d7ac41a56feb50e9336f97faa5a6fa90c339`, and owned process/workspace cleanup complete. - M46-C is now the sole `IN_PROGRESS` step. It owns only the bounded migration of repeated MVP commands, notices and Unicode command glyphs; gameplay, economy, Save/Receipt, routing, static masters, `.uid`, `.import` and `prototype_incremental/` remain frozen. ### 2026-08-26 - M46 MVP UI Consistency Pass Complete - M46-C closes at source `ebc0c8f`. Market, Party, Readiness, Risk Board, Risk Commitment, Result, Recovery and Company Views now use the shared command state, icon and notice helpers for repeated MVP chrome while preserving stable node names, explicit intents, focus order and page-specific layout. - M46-D closes at source `ebc0c8f`. The eight focused View contracts, DEV-3, DEV-4, DEV-5 and DEV-6 candidate suites, and the full MVP first-cycle audit pass through `tools/run_test_attempt.py` with exact-once markers, strict diagnostics `0`, parsed touch/restart and owned cleanup. The MVP audit retains 128 normal `100%` frames; current-source Company and Contract Return/Guild capture sets cover the remaining page-family fixtures. - Manual review of the required `760x360`, `844x390` and `1280x720` `zh_CN`/`en` normal captures finds no blocking clipping, overlap or focal hierarchy regression. Evidence is recorded in `docs/runtime/M46_UI_CONSISTENCY_VISUAL_AUDIT.md`. - M46 is complete at its written stopping point. No later implementation step is active; gameplay, economy, Save/Receipt, content, device, packaging, signing, store and release work remain outside this milestone. `.uid`, `.import` and `prototype_incremental/` remain untouched.