67 lines
2.0 KiB
Python
67 lines
2.0 KiB
Python
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
|
|
|
|
REQUIRED_SNIPPETS = {
|
|
"Docs/ArtUxCodeAndAssetStandards.md": [
|
|
"## MVP Realism Target Rules",
|
|
"production-directed proxies, not final art",
|
|
"avoid cosmetic-only changes",
|
|
"real-world biome references",
|
|
],
|
|
"Docs/CharactersAndObjects/MvpReadableSurvivalObjectProxies.md": [
|
|
"Final realistic art should replace these proxies",
|
|
"without changing survival",
|
|
],
|
|
"Docs/Terrain/GroundZeroNaturalEnvironmentPass.md": [
|
|
"coastal scrub",
|
|
"drive density and shape selection from land-cover",
|
|
],
|
|
"Docs/Terrain/GroundZeroWaterSourceVisualPass.md": [
|
|
"production water material",
|
|
"bank geometry",
|
|
],
|
|
"Docs/Terrain/GroundZeroDensitySightlineTuning.md": [
|
|
"coastal scrub biome",
|
|
"without hiding the first playable survival loop",
|
|
],
|
|
"Scripts/setup_ground_zero_demo_map.py": [
|
|
'M_AGR_GZ_Terrain_CoastalScrub',
|
|
'M_AGR_GZ_Tree_CoastalOak',
|
|
'M_AGR_GZ_Shrub_CoyoteBrush',
|
|
'M_AGR_GZ_Grass_DryCoastal',
|
|
'M_AGR_GZ_Stone_Sandstone',
|
|
'SIGHTLINE_TUNING_CONFIG',
|
|
],
|
|
"AGRARIAN_DEVELOPMENT_ROADMAP.md": [
|
|
"[x] Preserve realism as the target",
|
|
"production realism",
|
|
"cosmetic throwaways",
|
|
],
|
|
}
|
|
|
|
|
|
def main():
|
|
failures = []
|
|
for relative_path, snippets in REQUIRED_SNIPPETS.items():
|
|
path = ROOT / relative_path
|
|
if not path.exists():
|
|
failures.append(f"missing {relative_path}")
|
|
continue
|
|
|
|
text = path.read_text(encoding="utf-8")
|
|
for snippet in snippets:
|
|
if snippet not in text:
|
|
failures.append(f"{relative_path} missing snippet: {snippet}")
|
|
|
|
if failures:
|
|
raise SystemExit("MVP realism target verification failed:\n" + "\n".join(failures))
|
|
|
|
print("PASS: MVP realism target standards are documented and wired to 0.1.O visual gates.")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|