Add investor visual QA evidence gate

This commit is contained in:
2026-05-19 11:20:45 -07:00
parent 81bf5ec433
commit 1ac7166942
6 changed files with 195 additions and 1 deletions
@@ -29,6 +29,11 @@ echo 04-loading
echo 05-first-spawn
echo 06-pause-menu
echo 07-save-quit
echo 08-terrain
echo 09-vegetation
echo 10-water
echo 11-campfire
echo 12-shelter
echo.
echo Create visual-startup-check.txt in the capture folder with package path,
echo launcher used, capture method, tester, pass/fail result, and notes.
@@ -0,0 +1,60 @@
@echo off
setlocal EnableExtensions
set "PROJECT_DIR=%~dp0.."
set "PACKAGE_DIR=%PROJECT_DIR%\Builds\WindowsDevelopment"
set "DEMO_EXE=%PACKAGE_DIR%\AgrarianGame.exe"
set "CAPTURE_ROOT=%PROJECT_DIR%\Saved\VisualQA\InvestorDemo"
if /I "%~1"=="--check-tools" goto CHECK_TOOLS
call :CHECK_COMMON || exit /b %ERRORLEVEL%
if not exist "%CAPTURE_ROOT%" mkdir "%CAPTURE_ROOT%" >nul 2>nul
echo.
echo Agrarian investor-demo full visual QA evidence checklist
echo --------------------------------------------------------
echo Package: "%PACKAGE_DIR%"
echo Capture root: "%CAPTURE_ROOT%"
echo.
echo Use Sunshine plus Moonlight or an equivalent real GPU desktop capture path.
echo Do not use QEMU guest-agent screenshots for this visual gate.
echo Use the Default rendering preset unless intentionally validating another profile.
echo.
echo Required capture labels:
echo 01-startup-credits
echo 02-character-selection
echo 03-first-spawn
echo 04-terrain
echo 05-vegetation
echo 06-water
echo 07-campfire
echo 08-shelter
echo 09-pause-menu
echo 10-save-quit
echo.
echo Create visual-qa-summary.txt beside the captures with package path,
echo version label, rendering preset, capture method, tester, pass/fail result,
echo visible defects, and investor-viewing decision.
echo.
exit /b 0
:CHECK_TOOLS
call :CHECK_COMMON || exit /b %ERRORLEVEL%
echo READY: packaged demo exists and SunshineService is running.
exit /b 0
:CHECK_COMMON
if not exist "%DEMO_EXE%" (
echo ERROR: Packaged demo executable not found: "%DEMO_EXE%"
exit /b 2
)
sc query SunshineService | find /I "RUNNING" >nul 2>nul
if errorlevel 1 (
echo ERROR: SunshineService is not running. Start Sunshine before the investor visual QA capture.
exit /b 3
)
exit /b 0
@@ -0,0 +1,75 @@
#!/usr/bin/env python3
"""Verify the packaged investor-demo visual QA evidence gate is documented."""
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
DOC = ROOT / "Docs" / "Ops" / "PackagedDemoVisualQAEvidence.md"
STARTUP_DOC = ROOT / "Docs" / "Ops" / "PackagedClientGpuStartupVisualTest.md"
BAT = ROOT / "Scripts" / "RunWindowsInvestorVisualQACheck.bat"
STARTUP_BAT = ROOT / "Scripts" / "RunWindowsGpuStartupVisualCheck.bat"
ROADMAP = ROOT / "AGRARIAN_DEVELOPMENT_ROADMAP.md"
REQUIRED_LABELS = [
"01-startup-credits",
"02-character-selection",
"03-first-spawn",
"04-terrain",
"05-vegetation",
"06-water",
"07-campfire",
"08-shelter",
"09-pause-menu",
"10-save-quit",
]
def require(condition, message):
if not condition:
raise SystemExit(f"FAILED: {message}")
def main():
doc = DOC.read_text(encoding="utf-8")
startup_doc = STARTUP_DOC.read_text(encoding="utf-8")
bat = BAT.read_text(encoding="utf-8")
startup_bat = STARTUP_BAT.read_text(encoding="utf-8")
roadmap = ROADMAP.read_text(encoding="utf-8")
for token in [
"Sunshine plus Moonlight",
"Saved\\VisualQA\\InvestorDemo",
"visual-qa-summary.txt",
"Do not commit raw captures to Git",
"Default",
"investor visual MVP ready",
]:
require(token in doc, f"visual QA evidence doc missing {token!r}")
for label in REQUIRED_LABELS:
require(label in doc, f"visual QA evidence doc missing {label!r}")
require(label in bat, f"Windows visual QA helper missing {label!r}")
for token in [
"08-terrain",
"09-vegetation",
"10-water",
"11-campfire",
"12-shelter",
]:
require(token in startup_doc, f"startup GPU visual doc missing expanded label {token!r}")
require(token in startup_bat, f"startup GPU visual helper missing expanded label {token!r}")
require("SunshineService" in bat, "Windows visual QA helper must check SunshineService")
require("--check-tools" in bat, "Windows visual QA helper must support --check-tools")
require(
"[x] Add packaged-demo visual QA screenshots or short clips" in roadmap,
"0.1.O packaged-demo visual QA evidence roadmap item is not checked off",
)
print("OK: packaged investor-demo visual QA evidence gate is documented and scripted.")
if __name__ == "__main__":
main()