#!/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()
