Add investor demo acceptance gate

This commit is contained in:
2026-05-19 11:23:59 -07:00
parent 1ac7166942
commit f27f2f9969
4 changed files with 117 additions and 2 deletions
+1 -1
View File
@@ -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] 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] 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. - [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 ## 0.1.P MVP Audio And Atmosphere
@@ -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\<version-or-build>\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.
```
+3 -1
View File
@@ -27,7 +27,9 @@ visual/menu quality gate is complete and verified:
- optional ray tracing is reserved for cinematic/high-end presentation and is - optional ray tracing is reserved for cinematic/high-end presentation and is
never required for baseline visual credibility; never required for baseline visual credibility;
- packaged-demo visual QA screenshots or clips are captured from a real GPU - 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 ## Current Demo Language
@@ -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()