134 lines
9.6 KiB
Markdown
134 lines
9.6 KiB
Markdown
# M46 MVP UI Consistency — Source-Bound Visual Audit
|
|
|
|
## Scope and stopping point
|
|
|
|
M46 is a bounded presentation/component pass over the already playable MVP.
|
|
It standardizes repeated command states, owned command icons, type/spacing
|
|
tokens and notice/disabled surfaces without flattening the accepted page
|
|
compositions. Market, Guild, Party/Readiness, Risk, Battle and Company keep
|
|
their task-specific art masters, normalized 16:9 canvases and field-attached
|
|
layout. Gameplay, economy, Contract/Battle rules, Save/Receipt semantics,
|
|
routing, content identities and localization semantics were not changed.
|
|
|
|
Normal `100%` landscape is the blocking visual scope. `130%` evidence remains
|
|
supplemental and non-blocking, as recorded in the Owner-approved repository
|
|
contract.
|
|
|
|
Product migration source: `ebc0c8f26c222d4764064e7998e3b143da727f4f`.
|
|
Foundation source: `f736d7ac41a56feb50e9336f97faa5a6fa90c339`.
|
|
|
|
## Architecture boundary
|
|
|
|
- `ABGUI_Tokens`, `ABGUIFactory` and `ABGUIIcon` remain presentation-only.
|
|
- Passive Views consume copied Controller/ViewData snapshots and emit the same
|
|
explicit deferred intents and stable semantic node names as before.
|
|
- `ABGPageView.set_command_state()` is the shared disabled/selected state
|
|
entry point for Company/Result/Recovery controls.
|
|
- Market, Party, Readiness, Risk Board and Risk Commitment migrate repeated
|
|
command chrome through the shared factory while retaining their local
|
|
content controls, art masters and normalized geometry.
|
|
- The shipped command glyphs for Settings, Back, Company, Coin, Equipment and
|
|
action commands now use the owned vector icon grammar. Risk option glyphs
|
|
remain content markers, not command chrome.
|
|
- EntryShell remains the composition and application boundary; no mass
|
|
rewrite or Router extraction was introduced.
|
|
|
|
## Source-bound evidence
|
|
|
|
All accepted attempts used `tools/run_test_attempt.py` with immutable source
|
|
archives, owned HOME/cache/TMP/browser roots, exact-once marker accounting,
|
|
strict diagnostics and complete process-group/workspace cleanup.
|
|
|
|
| Check | Attempt | Result | Evidence archive SHA-256 |
|
|
| --- | --- | --- | --- |
|
|
| Shared foundation | `m46-ui-foundation-focused/20260826T122929Z-99785` at `f736d7a` | PASS; `ABG_M46_UI_FOUNDATION_OK` exactly once; tokens, factory, icons, notices and touch checks; strict diagnostics `0`; owned cleanup | no retained evidence files |
|
|
| Market View contract | `m46-c-market_page_view_test/20260826T125129Z-22546` | PASS; `ABG_M41_MARKET_VIEW_CONTRACT_OK` exactly once; strict diagnostics `0`; owned cleanup | no retained evidence files |
|
|
| Party Line View contract | `m46-c-party_line_page_view_test/20260826T125152Z-22882` | PASS; `ABG_M39_PARTY_LINE_VIEW_CONTRACT_OK` exactly once; strict diagnostics `0`; owned cleanup | no retained evidence files |
|
|
| Readiness View contract | `m46-c-readiness_page_view_test/20260826T125211Z-23202` | PASS; `ABG_M37_READINESS_VIEW_CONTRACT_OK` exactly once; strict diagnostics `0`; owned cleanup | no retained evidence files |
|
|
| Risk Board View contract | `m46-c-risk_board_page_view_test/20260826T125229Z-23448` | PASS; `ABG_M38_RISK_BOARD_VIEW_CONTRACT_OK` exactly once; strict diagnostics `0`; owned cleanup | no retained evidence files |
|
|
| Risk Commitment View contract | `m46-c-risk_commitment_page_view_test/20260826T125245Z-23757` | PASS; `ABG_M36_RISK_COMMITMENT_VIEW_CONTRACT_OK` exactly once; strict diagnostics `0`; owned cleanup | no retained evidence files |
|
|
| Battle Result View contract | `m46-c-battle_result_page_view_test/20260826T125302Z-24054` | PASS; `ABG_M35_BATTLE_RESULT_VIEW_CONTRACT_OK` exactly once; strict diagnostics `0`; owned cleanup | no retained evidence files |
|
|
| Recovery View contract | `m46-c-recovery_page_view_test/20260826T125320Z-24295` | PASS; `ABG_M32_RECOVERY_VIEW_CONTRACT_OK` exactly once; strict diagnostics `0`; owned cleanup | no retained evidence files |
|
|
| Company View contract | `m46-c-company_page_view_test/20260826T125337Z-22545` | PASS; `ABG_M44_COMPANY_PAGE_VIEW_CONTRACT_OK` exactly once; strict diagnostics `0`; owned cleanup | no retained evidence files |
|
|
| DEV-3 candidate | `m46-d-dev3-candidate/20260826T125502Z-25993` | PASS; `ABG_DEV3_CANDIDATE_SUITE_OK` exactly once; 24 normal-render frames; parsed touch; strict diagnostics `0`; owned cleanup | `4525acf73eb155deeb9877bf5a3f6fc237abe4377e6b5a64b290e4dd6e867fc0` |
|
|
| DEV-4 candidate | `m46-d-dev4-candidate/20260826T125705Z-28196` | PASS; `ABG_DEV4_CANDIDATE_SUITE_OK` exactly once; 24 normal-render frames; parsed touch; strict diagnostics `0`; owned cleanup | `9ab49d9831ebdccc80ac32045af4e0af4b7864e561378c16e167b5e85210efaa` |
|
|
| DEV-5 candidate | `m46-d-dev5-candidate/20260826T125831Z-29634` | PASS; `ABG_DEV5_CANDIDATE_SUITE_OK` exactly once; 24 normal-render frames; parsed touch; strict diagnostics `0`; owned cleanup | `bb77c47994940a0d3f93d7fe52c7fa4406779b69e0a2c0c7fec1d625d259f401` |
|
|
| DEV-6 candidate | `m46-d-dev6-candidate/20260826T130007Z-31282` | PASS; `ABG_DEV6_CANDIDATE_SUITE_OK` exactly once; 24 normal-render frames; parsed touch; strict diagnostics `0`; owned cleanup | `f2c608563ed3a741dff6c466f5e8c641f151f22f92748846444c104ae0e803f4` |
|
|
| MVP first-cycle audit | `m46-d-mvp-first-cycle-audit/20260826T130153Z-33276` | PASS; `ABG_MVP_FIRST_CYCLE_AUDIT_OK` exactly once; 128 normal `100%` frames / 180 evidence files; locales `zh_CN,en`; required viewports; parsed touch/restart; strict diagnostics `0`; owned cleanup | `5433de35ad94e3eaab5cd30b9d3c9db01cbb1c92dd5af35b1339fff969c4a413` |
|
|
| Current Company captures | `m46-d-company-capture/20260826T132145Z-53462` | PASS; `ABG_M16_COMPANY_CAPTURE_OK` exactly once; eight normal `100%` Roster/Recruit Detail frames across all four fixtures; authored 44px target check; strict diagnostics `0`; owned cleanup | `9e8da00b61af5dba758c9387a61ee8fcb3cb4ec65720daeabb2ba4cffe621d14` |
|
|
| Current Contract Return/Guild captures | `m46-d-contract-return-capture/20260826T132252Z-54509` | PASS; `ABG_M45_CONTRACT_RETURN_CAPTURE_OK` exactly once; 12 normal `100%` Market/Contract Return/Guild frames across all four fixtures; bounds, overlap and clipping checks; strict diagnostics `0`; owned cleanup | `1c43556f6ecfd3ab0f683ce4ca9a1a3afe338b2ea8d6e264afcfaefce581e2a0` |
|
|
|
|
The first Company capture invocation at `20260826T131211Z-44224` used an
|
|
incorrect headless normal-render command and was interrupted during startup.
|
|
It is retained only as a handled runner terminal and is not acceptance
|
|
evidence. The corrected normal-render invocation above is the accepted capture
|
|
set.
|
|
|
|
## Normal `100%` visual matrix
|
|
|
|
The accepted MVP audit supplies 128 normal frames across the first-cycle
|
|
Market/Recruit, Party/Readiness/Risk, Battle Opening/Live, Result, Knockout,
|
|
Reward, Recovery and restart states. Its capture fixtures cover:
|
|
|
|
- `760x360 / zh_CN / 100%`
|
|
- `844x390 / en / 100%`
|
|
- `1280x720 / zh_CN / 100%`
|
|
- `1280x720 / en / 100%`
|
|
|
|
The current Company capture set adds Roster and Recruit Detail for all four
|
|
fixtures. The current Contract Return capture set adds Market,
|
|
Contract Return Review and returned Guild for all four fixtures. Together the
|
|
retained sets cover every M46 page family at the required normal viewports and
|
|
locales; the DEV-3/4/5/6 candidate archives provide additional supplemental
|
|
states and 130% fixtures.
|
|
|
|
## Manual visual review
|
|
|
|
Representative full-resolution frames were extracted from the retained
|
|
archives and reviewed at the required normal fixtures. Automated capture
|
|
checks cover complete frame dimensions, viewport containment, authored touch
|
|
targets and the relevant page-specific overlap/clipping assertions; manual
|
|
review checked the same frames for hierarchy and visual drift.
|
|
|
|
### Findings
|
|
|
|
- **Command language — PASS.** Market, Party/Readiness, Risk, Result/Recovery
|
|
and Company now read as one family through the shared navy/gold/ivory
|
|
states, focus treatment, disabled contrast and owned Settings/Back/action
|
|
icons.
|
|
- **Task composition — PASS.** The Market right rail and field-attached exit,
|
|
Party formation line, Risk parchment/cards and Battle field HUD remain
|
|
distinct and readable. The consistency pass did not turn them into a card
|
|
wall or replace their accepted art masters.
|
|
- **Notices and disabled states — PASS.** Receipt/status notices use the same
|
|
bordered surface language; disabled Continue/Begin Battle/return actions
|
|
retain truthful muted state without obscuring the authored copy.
|
|
- **Responsive containment — PASS.** The inspected short landscape and wide
|
|
landscape frames keep the 16:9 masters centered/contained, with footer and
|
|
right-rail controls inside the viewport. No visible clipping or command
|
|
overlap was found in the reviewed frames; automated bounds checks cover the
|
|
full capture sets.
|
|
- **Typography and density — PASS at the blocking scope.** Engine-rendered
|
|
values remain legible at normal `100%`. Market and Risk Commitment retain
|
|
intentionally compact fact copy inside their authored slots; the existing
|
|
`130%` fixtures remain supplemental and are not a M46 blocker.
|
|
|
|
## Scope and repository checks
|
|
|
|
- Existing semantic node names, explicit intents, focus order, routing and
|
|
Save/Receipt behavior remain covered by the focused View contracts and the
|
|
DEV/MVP suites.
|
|
- No gameplay, economy, content, static-master, localization, packaging,
|
|
device, signing, store or release work was started.
|
|
- `git diff --check` passes. The only untracked files are Godot-generated
|
|
`.uid`/`.import` metadata and `prototype_incremental/`, all retained per the
|
|
repository contract and not staged.
|
|
|
|
## Verdict
|
|
|
|
M46-C migration and M46-D verification satisfy the written stopping point.
|
|
The MVP now has one coherent reusable command/icon/type/notice language while
|
|
preserving its page-specific composition and runtime behavior.
|
|
|
|
`ABG M46 MVP UI CONSISTENCY PASS COMPLETE`
|