Skip to content

V0 — 3D Restaurant Readability Sandbox (visual track — do not merge, Art PM review) - #4

Open
HSpector1 wants to merge 10 commits into
mainfrom
prototype/v0-3d-restaurant-sandbox
Open

V0 — 3D Restaurant Readability Sandbox (visual track — do not merge, Art PM review)#4
HSpector1 wants to merge 10 commits into
mainfrom
prototype/v0-3d-restaurant-sandbox

Conversation

@HSpector1

Copy link
Copy Markdown
Owner

V0 — 3D Restaurant Readability Sandbox

Isolated visual-development track. Presentation-only. Owns no gameplay truth. Not integrated with the M0 RestaurantSim.Core.

Do not merge yet. This PR is open for Art PM review (Howard & Aaron). V0 recommends; it does not approve the visual direction, authorize M1, integrate the simulation, or self-merge.

The question V0 answers

Can a first-time viewer look at one small 3D restaurant during service and quickly understand where customers are, what staff are doing, where congestion is forming, and which area needs attention — without narration?

What's here

  • Engine: Godot 4.7.1-stable, Forward+ (Metal), GDScript only. Binary lives outside the repo; not committed.
  • Scale lab (1 u = 1 m locked) + three camera candidates (isometric / orbit / hybrid) + wall modes (solid / auto-hide / cutaway / transparent).
  • Gray-box restaurant: 10 tables / 32 seats, host + waiting, compact 4-station kitchen + pass + dish, restrooms via a deliberate ~0.85 m pinch, staff door.
  • Pure, seekable Mock/Scripted service with four scenarios whose peaks are visually distinct: healthy, kitchen bottleneck, front-of-house bottleneck, host/seating bottleneck.
  • Readability language: role = colour + a second signal; table state via tinted top + disc; vertical station gauges; overlays OFF/MINIMAL/FULL; a HUD with a persistent "MOCK / SCRIPTED — not a simulation" tag.
  • Evidence: 24 screenshots + 3 recordings + a performance CSV, all reproducible via tools/v0/capture.sh.

The critical read (§31.5): kitchen vs front-of-house bottleneck are unmistakably different

Kitchen bottleneck Front-of-house bottleneck
kitchen foh
Tall red grill gauge + orange waiting-for-food tables + servers massed idle at the pass Calm green/idle kitchen + yellow/cyan/brown tables + a red overloaded-server ring

Scale reference and CC0 asset-assisted comparison (imports ~1:1 at 1.83 m, 43 animations):

Scale reference Asset-assisted (CC0 Universal Animation Library)
scale asset

Performance (M3 Max, 1920×1080, vsync off)

Typical frame ~3 ms (~330 FPS); worst single frame 13.9 ms (72 FPS); <850 draw calls; ~335 MB VRAM — large headroom over the 60 FPS target. Numbers are gray-box on one machine; not a production guarantee. Full table in reports/visual/v0/performance/performance.csv and the report §H.

Isolation & scope (verified)

  • Branched from origin/main (06f0a7e, base only) into worktree ../Restaurant-VisualSandbox. The three M0 backend branches are untouched; nothing is merged.
  • V0 touches only visual/, docs/art/, reports/, tools/, .gitignore. Zero .cs/src/tests.
  • No restricted asset binaries committed — only text provenance (docs/art/ASSET-EVALUATION.md). Owner-supplied packages stay quarantined; the two Quaternius packs are CC0 (confirmed), the loose-FBX and wintersets packages are do-not-use.
  • All §13 non-goals confirmed absent.

Gate recommendation

Verdict: Pass-with-notes
Action: Continue

Continue = recommend an Art PM review + a limited visual refinement pass. It does not authorize M1, backend integration, or final art.

Notes: the human visual test (§30) is prepared but not yet run (owners' to conduct); performance is validated on one machine with gray-box only.

The single Art PM decision (see report §K)

Adopt the V0 defaults — Hybrid-C camera + 1 u = 1 m scale + treatment-A readability baseline — and authorize a limited V0 refinement pass. Do not begin M1.

How to review

GODOT=~/.local/opt/godot/Godot.app/Contents/MacOS/Godot
"$GODOT" --path visual/RestaurantVisualSandbox            # run interactively (1/2/3 cameras, F1-F4 scenarios, Space pause, Tab overlays, H walls)
tools/v0/capture.sh                                       # regenerate all evidence

Full detail: reports/visual/v0/V0-REPORT.md (sections A–K, all 12 §31 pass criteria mapped to evidence).

🤖 Generated with Claude Code

claude added 10 commits July 29, 2026 08:20
Create the physically-separate visual track (branch prototype/v0-3d-restaurant-sandbox,
worktree ../Restaurant-VisualSandbox) from origin/main. No backend/M0 content.

- Godot 4.7.1-stable project skeleton under visual/RestaurantVisualSandbox/
  (Forward+; 1 unit = 1 m; V0 config autoload; boot-verified, renders on Metal).
- Directory structure per assignment section 8 (scenes/, scripts/, docs/art/,
  reports/visual/v0/, local-assets/).
- v0_config.gd locks the scale standard (section 17) and the role/state visual
  language (sections 21-22) as the single source of truth.
- .gitignore: Godot cache (.godot/), local-assets/ quarantine, exports; keeps
  reports/visual/v0/ evidence committable (section 9).
- local-assets/ quarantine README; asset source archives stay out of the repo.

Presentation-only. Owns no gameplay truth. Not integrated with RestaurantSim.Core.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The shared visual contract every scene/script/doc conforms to: the one readability
question, engine lock (Godot 4.7.1 / Forward+ / GDScript-only, no C# integration),
scale lock (1u=1m), the Mock/Scripted/VisualOnly naming rule, the visual-truth
boundary (renderer owns no gameplay truth), placeholder-first policy, the non-goals,
and the pass criteria. Where contract and instinct disagree, the contract wins.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Every owner-supplied package inspected read-only from Desktop; no binary extracted
into the repo. Licenses verified twice (bundled file + live source):
- Downtown City MegaKit [Standard]: CC0 (Quaternius) - cleared, not committed (hygiene)
- Universal Animation Library [Standard]: bundled License.txt empty; CC0 confirmed at
  quaternius.com 2026-07-29; Godot-ready GLBs - cleared, not committed
- FBX-...zip: no license, unknown publisher - REJECTED (do not use)
- wintersets.zip: legacy game mod, presumed proprietary - REJECTED (do not use)

.gitignore: quarantine local-assets/* but keep its README as committed documentation.
Ownership of a package is not permission to redistribute its source in a public repo.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Scale lock made visual and testable (section 17): scale-reference scene with a
1 m cube, adult capsule, door, 2-/4-top tables, chair, counter, appliance, and
main/kitchen/pinch aisle swatches, all sized from v0_config and rendered so an
imported asset can be compared against known human scale (never the reverse).

Three camera candidates in one rig (section 19): ISO_A orthographic isometric,
ORBIT_B free management orbit, HYBRID_C overview+focus+return. Driven both
interactively and by the capture harness.

Reproducible-evidence harness: capture_runner renders any capturable scene to a
1920x1080 PNG at an absolute path (single shot or JSON shot-list) with camera and
config overrides. No manual screenshotting. mat_lib caches a small shared material
set; stage.gd provides the two visual treatments (A clean / B grounded, section 27).

Verified: scale ref renders correctly in both orbit and isometric at 1920x1080.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
One compact floor readable from a single management view, with distinct zones
(section 18): entrance + host stand + waiting; a 10-table / 32-seat dining room;
a compact kitchen with four visually distinct stations (Grill/Fry/Range/Garde),
a pass line, and a dishwashing zone; restrooms reached by a deliberately narrow
~0.9 m corridor (the circulation-risk pinch) with an open main aisle as the
obvious alternative path; a staff/storage door; exterior walls and faint zone
floor tints. Half-height interior dividers let the camera see over them.

Exterior walls support solid / auto-hide / cutaway / transparent modes that
follow the camera (section 20); roof hidden by default in management view.
sandbox_root wires interactive controls (1/2/3 cameras, H walls, J roof, L zone
labels, F/G hybrid focus) and a capture_configure hook for the harness.

Verified: renders correctly in orbit and isometric at 1920x1080; auto-hide
produces a clean dollhouse view; all zones legible from one overview.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
MockService: a PURE, seekable Mock/Scripted/VisualOnly timeline (section 14) —
snapshot(scenario, t) returns an authored per-beat snapshot of facts and owns no
gameplay truth (section 15). Four scenarios with visually unmistakable, mutually
distinct peak beats: healthy, kitchen bottleneck, front-of-house bottleneck, and
host/seating bottleneck.

ServiceView: the renderer that only decides HOW to show the snapshot — actor pools
(customers/host/servers/cooks/busser), table state via tinted tabletop + floating
disc, vertical station pressure gauges, and toggleable overlays (OFF/MINIMAL/FULL/
SELECTION): patience pips, workload rings, pass plates, queue counts, path hints.
A 2D HUD shows scenario, scripted clock, headline, a role/state legend, and a
persistent 'MOCK / SCRIPTED - not a simulation' tag.

sandbox_root drives playback (pause/speed/reset/scenario/overlay/cameras) and the
capture hook. Verified: the kitchen bottleneck (tall red grill gauge + orange
tables + servers massed at the pass) reads clearly different from the FOH
bottleneck (calm green kitchen + yellow/cyan/brown tables + overloaded server),
satisfying the section 31.5 contrast. Live playback runs error-free.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Reproducible evidence via tools/v0/capture.sh (editor scan -> screenshots ->
perf probe). Committed under reports/visual/v0/:
- 24 screenshots (1920x1080): 3 camera candidates + hybrid focus; whole/kitchen/
  dining views; all four scenario peaks; overlay off/minimal/full; wall modes
  solid/auto-hide/cutaway/transparent + roof; treatments A/B; scale reference;
  and a CC0 asset-assisted comparison.
- 3 MP4 recordings: kitchen-bottleneck and FOH-bottleneck full scripted services,
  and a camera-orbit demo (Godot Movie Maker -> ffmpeg).
- performance.csv: 5 load configs. Result: 257-361 avg FPS, worst single frame
  13.9 ms (72 FPS), 670-848 draw calls, 137k-475k primitives, ~335 MB VRAM on the
  M3 Max test machine -> large headroom over the 60 FPS target.

Asset-assisted finding: Universal Animation Library GLB (CC0) imports natively,
measures 1.83 m (scale factor 0.984 to our 1.80 m standard -> ~1:1, no rescale),
with 43 animations. Source binary stays in git-ignored placeholders/_assetlab/.

Tooling: perf_probe.gd/Perf.tscn, asset_compare.gd/AssetCompare.tscn,
capture_runner --outdir/--focus, sandbox_root recording driver, shots_evidence.json.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Author the V0 documentation set (docs/art/) and the final report
(reports/visual/v0/V0-REPORT.md), grounded in the captured evidence:
- SCALE-STANDARD, CAMERA-EVALUATION, READABILITY-CONTRACT, ART-DIRECTION-HYPOTHESES,
  PERFORMANCE-BUDGET (with the measured CSV), and the living handoff trio
  V0-CURRENT-STATE / V0-NEXT-ACTION / V0-DECISION-LOG (section 34).
- V0-REPORT.md: sections A-K per section 36, all 12 section-31 pass criteria mapped
  to evidence, the required Verdict/Action block, and the single Art PM decision.

Gate recommendation: Pass-with-notes / Continue (Continue = recommend an Art PM
review + limited visual refinement; does NOT authorize M1, backend integration, or
final art). Notes: human visual test (section 30) prepared but not run; performance
validated on one machine (M3 Max) with gray-box only.

Recommended Art PM decision: adopt Hybrid-C camera + 1u=1m scale + treatment-A
readability baseline; authorize a limited V0 refinement pass; do not begin M1.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
An independent 3-agent adversarial pass (visual-truth boundary / evidence
authenticity / definition-of-done) returned non-blocking PASS across the board.
Fixes for its notes:
- Overlay triptych was not a controlled comparison: 22-overlay-full.png was
  byte-identical to 11-scenario-kitchen-bottleneck.png. Re-captured 20/21/22 as a
  clean HUD-off off/minimal/full set (only overlay mode varies); all now distinct.
- Report: softened 'red overloaded-server ring' to a workload ring and recorded that
  the overloaded marker reads subtly at full-overview distance (a refinement-pass
  item); flagged the asset numbers as builder-attested (CC0 source git-ignored);
  marked §31 criterion 4 partial like criterion 3 (both await the human visual test);
  toned down the performance 'headroom' wording; added a point-in-time-artifact note.
- Living docs: replaced stale HEAD hashes / commit counts with 'run git log'.

Boundary verdict: snapshot() proven pure, renderer owns no gameplay truth, HUD
'MOCK/SCRIPTED' tag persistent. Evidence verdict: all images real & 1920x1080, perf
table matches the CSV exactly. DoD verdict: met.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Update V0-CURRENT-STATE and V0-NEXT-ACTION now that the PR is open (#4) and the
adversarial verification pass is complete: next authorized action is the §30 human
visual test, not opening the PR. No code or evidence changes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@HSpector1 HSpector1 left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Independent V0 Visual Sandbox Audit — Review

A. Review identity

Repository HSpector1/Restaurant
Pull request #4prototype/v0-3d-restaurant-sandboxmain
Exact commit reviewed a9a4230622959987a3458300936d5ab96f987439 (matches origin PR head)
Date 2026-07-29
Method Fresh clone at /tmp/v0-audit, read-only; project run from the clean clone; evidence regenerated and diffed; images inspected; licenses re-verified at source
Environment Godot 4.7.1-stable (a13da4feb), Forward+/Metal, Apple M3 Max, macOS 26.5.1, 1920×1080
Sub-agents Lead + 5 read-only reviewers: A Repo/Isolation, B Camera, C Readability, D Scale/Assets, E Performance/Reproducibility

B. Executive verdict

  • Technical verdict: Pass-with-notes
  • Action: Continueauthorize the uncoached human V0 visual test.
  • Human-test authorization: YES (with the configuration in §L and the small pre-test items in §M).
  • Merge recommendation: DO NOT merge PR #4 before the human gate.
  • M1: not authorized. Backend integration: not authorized. Refinement pass: not authorized by this gate.

No Blocker and no High findings across any dimension. Every one of the five dimensions returned PASS or PASS-with-notes. The build runs cleanly from a fresh clone, its committed screenshots are byte-identical deterministic outputs of the committed code (regenerated and diffed — only performance.csv drifts, as expected), isolation from the M0 backend is total, and asset licenses are verified at source. Most importantly, an independent reviewer's uncoached first-reads of all four scenarios were correct and distinct — the core V0 readability question looks answerable.

C. Claims table

Builder claim Verdict Evidence
Branched from minimal main Confirmed merge-base(HEAD, origin/main) = 06f0a7e (the base-only tip)
Backend branches / M0 PRs untouched Confirmed M0 branch tips intact on origin; PRs #1–3 still OPEN; diff has 0 .cs/src/tests
Godot 4.7.1 Forward+/Metal Confirmed Ran the project; 4.7.1.stable.official.a13da4feb, Metal 4.0/Forward+
Three camera candidates Confirmed camera_rig.gd ISO/ORBIT/HYBRID; screenshots 01–04
Hybrid-C recommended Confirmed Reviewer B concurs (Hybrid = Orbit + focus/return)
1 unit = 1 meter Confirmed (lock-with-notes) v0_config.gd drives all geometry + labels; scenes 50/51 read coherently
Gray-box + scripted scenarios Confirmed 4 scenarios; pure seekable MockService.snapshot(scenario,t)
Distinct kitchen / FOH / host / healthy Confirmed Distinct with HUD hidden; kitchen-vs-FOH survives greyscale at the top level
Treatment A as readability baseline Confirmed (baseline, not final style) 40/41
Quaternius assets CC0 Confirmed at source quaternius.com: MegaKit CC0 + Animation Library CC0 (independently fetched)
Restricted/unclear assets excluded Confirmed loose-FBX (no license) + wintersets (legacy) documented do-not-use; no binaries committed
~330 FPS typical / 72 FPS worst Refined Structural cost reproduces exactly; FPS is run-variable (fresh worst 103–420); "72" was a one-off
24 screenshots, 3 recordings Confirmed 23 shot-list PNGs byte-identical on regen + 1 asset-assisted; 3 MP4s
No authoritative gameplay logic Confirmed snapshot() proven pure; renderer reads one-way; no money/served/satisfaction computed
Persistent mock/scripted disclosure Confirmed (see D-note) "MOCK / SCRIPTED — not a simulation" HUD tag, unconditional in _build_hud()
All V0 non-goals absent Confirmed Non-goal grep = documentation-only; no navmesh/save/economy/AI

D. Repository & isolation — PASS

Fresh-clone git diff 06f0a7e..a9a4230 touches only .gitignore, docs/art/*, local-assets/README.md, reports/visual/v0/*, tools/v0/capture.sh, visual/RestaurantVisualSandbox/*zero .cs/.sln/.csproj, zero src//backend tests/ (only a 0-byte tests/.gitkeep). No tracked engine caches or asset binaries; git check-ignore confirms .godot/, placeholders/_assetlab/, local-assets/* (README kept), and asset-cache/ are ignored while the intended evidence is kept. Visual-authority boundary holds: snapshot() is a pure function of authored beats; ServiceView.apply() only reads the snapshot to choose colours/positions/overlay visibility and never writes back. All FileAccess.WRITE is evidence-capture I/O in diagnostic tooling. Every non-goal keyword hit is documentation-only.

  • A6 (Low): .gitignore ignores the .import/ directory and _assetlab/, but not *.import sidecar files generally. Latent only (zero .import files exist today). Optional hardening: add *.import.

E. Camera & controls — PASS-with-notes

Clean single-node three-candidate rig; bounds match the docs (pitch 14–80, dist 6–48, ortho 7–44); the faces_camera dot-product wall-hide test is provably correct for the shown camera positions. Verdict: advance Hybrid-C as the primary management camera (Hybrid is Orbit + a focus/return convenience — do not retire Orbit).

  • CAM-01 (Medium): focus_on()/return_to_overview() restore the frame()-time overview pose, not necessarily the exact pre-focus orientation if the user orbited first. Fix before Hybrid-C ships as the shipping camera; does not gate the test.
  • CAM-02 (Medium): the focused view (pitch 28, dist 9) drops the room frame with no compass/return-hint. For the human test, add a "Focused — press G to return" hint and brief the operator.
  • CAM-03 (Medium): rig WASD-pan poll isn't gated on the same focus condition as key handling. Harmless to the committed evidence (capture sets interactive=false); tidy later.

F. Scale — LOCK-with-notes

1 u = 1 m is coherent and structurally enforced: v0_config.gd defines every dimension metrically, and both the reference scene and the mesh builders size all proxies from those same constants (labels print the same constants, so geometry and labels cannot silently diverge). Screenshots 50/51 show correct relative ordering (adult ≈ 1.8× the 1 m cube; walk-through door; human-scale furniture). No scale hacks. Classify: ready to lock for V0 (notes are minor).

G. Readability — PASS-with-notes (the core question)

An independent, uncoached reviewer's first-reads of all four scenarios were correct and distinct: healthy = calm/no-red; kitchen = tall RED grill gauge pulling the eye to the back wall + orange tables; FOH = short cool kitchen gauges but cyan/red pass + mixed dining; host = entrance queue + idle kitchen. The lead independently confirmed the kitchen-vs-FOH distinction holds with the HUD headline hidden and survives desaturation at the top level (station-gauge height + queue-count text are non-colour cues). This is the §31.5 pass criterion, and it is met.

  • C2 (Medium): per-table state is colour-only — in greyscale, table discs/tabletops collapse to near-identical grey (an orange "waiting-food" table is indistinguishable from a green "available" one). The area-level read is safe (gauge height); the per-table vocabulary is not colour-blind-safe. Document this before an uncoached test, or add a non-colour per-table signal (shape/fill/icon).
  • C5 (Medium): at 960 px the on-world labels overprint capsules ("KITC.." truncates, "queue 3" overlaps the bar). Run the human test at ≥1920×1080 (where labels are legible) and fix label occlusion.
  • Roles are distinguishable by colour + prop (toque/tray/clipboard/bin) — good, not colour-only.

H. Treatment — advance A as readability baseline (not final style)

Treatment A (clean/brighter) is the more readable at management distance; B (grounded/moody) is darker and better for marketing stills. Recommend A as the readability baseline / art-direction foundation, explicitly not the final shipped style.

I. Assets & licenses — PASS

Both used/evaluated packs are CC0, verified at source (not just filenames): Downtown City MegaKit and Universal Animation Library, both stated CC0 on quaternius.com. docs/art/ASSET-EVALUATION.md correctly handles the Animation Library's empty bundled License.txt by confirming CC0 at the source page. Loose-FBX (no license) and wintersets (legacy game mod) are correctly excluded / do-not-use. No asset source binary is committed. Animation compatibility (1.83 m, scale factor 0.984, 43 animations) is credible and reproduces the scale lock — but it is builder-attested: the CC0 GLB is git-ignored, so screenshot 60 is not regenerable from the clone alone (correct license hygiene; note the asymmetry).

J. Performance & reproducibility — ADEQUATE (scoped to the M3 Max)

The load-independent structural columns (draw calls 671–848, primitives 137k–475k, VRAM ~335 MB, mesh/actor counts) are stable and reproduce exactly. These are the defensible signal and they indicate real gray-box headroom.

  • PERF-1 (Medium): the FPS columns are run-variable (committed worst 72–330 vs fresh worst 103–420) and read as more precise than the data supports. Reframe: lead with frame-time (~3 ms typical) + draw calls + VRAM; present worst-frame as a range or drop it. "Far exceeds 60 FPS" is fair only as "no red flags on one high-end machine, gray-box, uncapped vsync."
  • PERF-4 (Medium): no documented step tells a fresh reviewer how to obtain Godot 4.7.1-stable (the version is pinned; the download is not). One line in the README/capture.sh closes it.
  • Media = 27 files / ~7.7 MB, no LFS — proportionate for V0; recommend recordings move to release artifacts at future milestones.

K. Evidence — authentic and reproducible

All 23 shot-list screenshots regenerated byte-identical from the clean clone (deterministic; not hand-picked). Images are 1920×1080 and match their labels; the earlier duplicate (22 == 11) is fixed (the triptych is now a controlled HUD-off off/minimal/full set). The report's §H table matches the committed CSV exactly. The only non-reproducible artifact is screenshot 60 (git-ignored CC0 source, disclosed).

L. Human-test configuration (recommended, single-variable)

Setting Value
Camera Hybrid-C, default overview; focus-dive available; brief operator "press G to return"
Resolution ≥1920×1080 on a real display (not 960 px)
Walls AUTO_HIDE default (context + interior visibility)
Treatment A
Overlays MINIMAL→FULL (station gauges + queue-count labels ON); HUD headline OFF during the blind comprehension phase so the answer is not given away
Mock disclosure Facilitator verbally states "mock/scripted visualization" during the blind phase (the HUD tag is hidden with the headline); reveal the HUD after each answer
Scenario order Healthy first (baseline), then the three bottlenecks in a non-obvious order; titles hidden until the viewer answers
Reset R resets the active scenario; F1–F4 select scenario

Do not vary camera and treatment and overlay simultaneously — hold them fixed and vary only the scenario.

M. Required corrections before an honest human test

(test-protocol / doc items only — none require a code refinement pass, and none are code blockers)

  1. Run at ≥1920×1080 and confirm on-world labels are legible (C5).
  2. Brief the operator on focus→G-return and keep a return hint visible (CAM-02).
  3. Disclose the colour-only limitation of per-table state to note-takers (C2) — do not let a colour-blind pilot's confusion be misread as a design failure.
  4. Nice-to-have: one-line Godot-download note (PERF-4); reframe FPS wording (PERF-1). Not required to run the test.

N. Final gate

Verdict: Pass-with-notes
Action: Continue

Continue authorizes the uncoached human V0 visual test only. It does not authorize the limited refinement pass, merging PR #4, backend integration, or M1.

O. Required Art PM decision

Authorize the uncoached human visual test of V0 (PR #4) using the §L configuration — Hybrid-C overview, Treatment A, MINIMAL/FULL overlays with the HUD headline hidden during the blind phase, at ≥1920×1080 — and keep PR #4 unmerged until that test is run. Everything else (refinement pass, merge, integration, M1) stays deferred pending the test's outcome.


Independent review complete. Read-only. PR #4 not modified, not merged. M0 backend untouched. No refinement, integration, or M1 begun.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants