diff --git a/AGRARIAN_DEVELOPMENT_ROADMAP.md b/AGRARIAN_DEVELOPMENT_ROADMAP.md index 298222d..df0186f 100644 --- a/AGRARIAN_DEVELOPMENT_ROADMAP.md +++ b/AGRARIAN_DEVELOPMENT_ROADMAP.md @@ -829,7 +829,7 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe - [x] Define default, recommended, and cinematic investor rendering presets, with ray tracing available only as an optional high-end/cinematic mode and never required for baseline visual credibility. Added `Config/AgrarianRenderingPresets.ini`, `Docs/Rendering/InvestorRenderingPresets.md`, and a verifier that requires Default and Recommended to remain non-ray-traced while Cinematic is the only optional high-end ray-tracing profile. - [x] Verify the non-ray-traced compatibility/default path still looks credible on common investor, tester, and remote-session hardware. Added a dedicated non-ray-traced default verifier that checks Default and Recommended disable `r.RayTracing`, `r.Lumen.HardwareRayTracing`, and `r.PathTracing`, keeps Cinematic as the only optional ray-tracing profile, and documents that packaged investor demos should launch on Default unless another profile is explicitly selected. - [x] Add packaged-demo visual QA screenshots or short clips for startup credits, character selection, first spawn, terrain, vegetation, water, campfire, shelter, pause menu, and save/quit before each investor build is called ready. Added a full investor-demo visual QA evidence runbook, Windows helper, startup capture expansion, and verifier requiring Sunshine/Moonlight or equivalent real-GPU captures for startup credits, character selection, first spawn, terrain, vegetation, water, campfire, shelter, pause, and save/quit before a packaged build is called investor-ready. -- [ ] Add an investor-demo acceptance gate: no current build should be described as investor visual MVP if menus are confusing, character art is mannequin-only, terrain is flat/tan, foliage is absent or unreadable, or core objects still read as primitive debug shapes. +- [x] Add an investor-demo acceptance gate: no current build should be described as investor visual MVP if menus are confusing, character art is mannequin-only, terrain is flat/tan, foliage is absent or unreadable, or core objects still read as primitive debug shapes. Added an investor-demo acceptance gate document, updated demo status wording, and added verification that hard-fail conditions cover confusing menus, mannequin-only characters, flat/tan terrain, absent/unreadable foliage, unreadable water, primitive debug objects, non-ray-traced default credibility, and missing visual QA evidence. ## 0.1.P MVP Audio And Atmosphere diff --git a/Docs/Investor/InvestorDemoAcceptanceGate.md b/Docs/Investor/InvestorDemoAcceptanceGate.md new file mode 100644 index 0000000..0011651 --- /dev/null +++ b/Docs/Investor/InvestorDemoAcceptanceGate.md @@ -0,0 +1,52 @@ +# Investor Demo Acceptance Gate + +No packaged build should be called an investor visual MVP unless it passes the +0.1.O visual/menu acceptance gate and has a real-GPU visual QA evidence set. + +## Hard Fail Conditions + +The build fails investor visual MVP acceptance if any of these are true: + +- menus are confusing, unfocused, unclickable, or do not support predictable + back/escape behavior; +- startup credits, character selection, server/join, loading, pause, save, or + quit feel like gameplay is running underneath an accidental overlay; +- character art is mannequin-only or ignores the selected young-adult male/ + female archetype; +- terrain still reads as flat tan placeholder ground; +- foliage, shrubs, bushes, grass, and trees are absent, unreadable, or hide + gameplay-critical objects; +- water does not read as a collectable freshwater source; +- campfire, shelter, resources, pickups, or wildlife still read as primitive + debug shapes or primitive debug shapes; +- the non-ray-traced Default rendering path is not visually credible; +- required visual QA screenshots or clips are missing. + +## Required Evidence + +Before a package is marked investor visual MVP ready, capture and review the +evidence listed in `Docs/Ops/PackagedDemoVisualQAEvidence.md`. + +Required pass/fail summary: + +`Saved\VisualQA\InvestorDemo\\visual-qa-summary.txt` + +The summary must record the package path, version label, rendering preset, +capture method, tester, pass/fail result, visible defects, and final +investor-viewing decision. + +## Allowed Build Language + +If the acceptance gate has not passed, use: + +```text +Agrarian systems-first investor prototype - visual MVP gate pending. +Not for public distribution. +``` + +If the gate passes with current evidence, use: + +```text +Agrarian investor visual MVP preview - internal investor build. +Not for public distribution. +``` diff --git a/Docs/Investor/InvestorDemoStatus.md b/Docs/Investor/InvestorDemoStatus.md index de0aa0c..3b68a4f 100644 --- a/Docs/Investor/InvestorDemoStatus.md +++ b/Docs/Investor/InvestorDemoStatus.md @@ -27,7 +27,9 @@ visual/menu quality gate is complete and verified: - optional ray tracing is reserved for cinematic/high-end presentation and is never required for baseline visual credibility; - packaged-demo visual QA screenshots or clips are captured from a real GPU - desktop path before the build is called visually ready. + desktop path before the build is called visually ready; +- the build passes `Docs/Investor/InvestorDemoAcceptanceGate.md` with no hard + fail conditions. ## Current Demo Language diff --git a/Scripts/verify_investor_demo_acceptance_gate.py b/Scripts/verify_investor_demo_acceptance_gate.py new file mode 100644 index 0000000..23a3e0c --- /dev/null +++ b/Scripts/verify_investor_demo_acceptance_gate.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python3 +"""Verify the investor demo visual MVP acceptance gate is documented.""" + +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] +GATE_DOC = ROOT / "Docs" / "Investor" / "InvestorDemoAcceptanceGate.md" +STATUS_DOC = ROOT / "Docs" / "Investor" / "InvestorDemoStatus.md" +VISUAL_QA_DOC = ROOT / "Docs" / "Ops" / "PackagedDemoVisualQAEvidence.md" +ROADMAP = ROOT / "AGRARIAN_DEVELOPMENT_ROADMAP.md" + + +REQUIRED_GATE_SNIPPETS = [ + "No packaged build should be called an investor visual MVP unless it passes", + "menus are confusing", + "character art is mannequin-only", + "terrain still reads as flat tan placeholder ground", + "foliage, shrubs, bushes, grass, and trees are absent", + "water does not read as a collectable freshwater source", + "primitive debug shapes", + "non-ray-traced Default rendering path", + "required visual QA screenshots or clips are missing", + "visual-qa-summary.txt", + "Agrarian systems-first investor prototype - visual MVP gate pending.", + "Agrarian investor visual MVP preview - internal investor build.", +] + + +def require(condition, message): + if not condition: + raise SystemExit(f"FAILED: {message}") + + +def main(): + gate = GATE_DOC.read_text(encoding="utf-8") + status = STATUS_DOC.read_text(encoding="utf-8") + visual_qa = VISUAL_QA_DOC.read_text(encoding="utf-8") + roadmap = ROADMAP.read_text(encoding="utf-8") + + for snippet in REQUIRED_GATE_SNIPPETS: + require(snippet in gate, f"acceptance gate doc missing {snippet!r}") + + for snippet in [ + "InvestorDemoAcceptanceGate.md", + "Current classification: systems-first investor prototype.", + "visual MVP gate pending", + ]: + require(snippet in status, f"investor status doc missing {snippet!r}") + + require("visual-qa-summary.txt" in visual_qa, "visual QA evidence doc must require visual-qa-summary.txt") + require( + "[x] Add an investor-demo acceptance gate" in roadmap, + "0.1.O investor-demo acceptance gate roadmap item is not checked off", + ) + + print("OK: investor demo visual MVP acceptance gate is documented.") + + +if __name__ == "__main__": + main()