Files
aetherbound-guild/CURRENT_CHECKPOINT.md
T

2124 lines
139 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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: <boundary>`.
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.