Files
geointel/scripts/validate_m13_codex_assets.py
Jens faeb58ef6d
GeoIntel release gates / Compile, test, contracts and builds (push) Successful in 1m49s
GeoIntel release gates / Python and npm vulnerability policy (push) Successful in 21s
GeoIntel release gates / Production AI image, SBOM and container scan (push) Successful in 5m39s
GeoIntel release gates / Deploy exact gated revision to Unraid (push) Failing after 58m43s
Initial public release
2026-08-31 21:56:53 +02:00

44 lines
1.3 KiB
Python

#!/usr/bin/env python3
from pathlib import Path
import sys
ROOT = Path(__file__).resolve().parents[1]
required = [
"docs/30-codex-optimization/CODEX_OPTIMIZATION_OVERVIEW.md",
"docs/30-codex-optimization/CODEX_RUN_CHECKLIST.md",
"docs/30-codex-optimization/PROMPT_DISCIPLINE.md",
"docs/30-codex-optimization/TOKEN_BUDGET_POLICY.md",
"docs/30-codex-optimization/SECRETS_AND_ENV_POLICY.md",
"docs/30-codex-optimization/PARALLEL_AGENT_STRATEGY.md",
"docs/30-codex-optimization/CODEX_SKILLS_INDEX.md",
"prompts/codex/m13/DAY_1_OPTIMIZED_MASTER_PROMPT.md",
"prompts/codex/m13/PASS_COMPLETION_REPORT_PROMPT.md",
"prompts/codex/m13/PARALLEL_AGENT_COORDINATION_PROMPT.md",
]
skills = [
"geoai-backend-build",
"postgis-migration",
"raster-pipeline",
"vector-processing",
"frontend-maplibre-workbench",
"qaqc-review",
"codex-pass-review",
]
missing = []
for item in required:
p = ROOT / item
if not p.exists() or p.stat().st_size == 0:
missing.append(item)
for skill in skills:
p = ROOT / "skills" / skill / "SKILL.md"
if not p.exists() or p.stat().st_size == 0:
missing.append(str(p.relative_to(ROOT)))
if missing:
print("M13 validation failed. Missing/empty assets:")
for item in missing:
print(f"- {item}")
sys.exit(1)
print("M13 Codex optimization assets OK")