"""validate_agents_shrink_v1.py — AGENTS shrink validator""" from __future__ import annotations import hashlib from pathlib import Path import yaml ROOT = Path(__file__).resolve().parents[1] AGENTS = ROOT / "AGENTS.md" INDEX = ROOT / "governance" / "agents_index.yaml" def _sha256(path: Path) -> str: return hashlib.sha256(path.read_bytes()).hexdigest() def main() -> int: lines = AGENTS.read_text(encoding="utf-8").splitlines() if len(lines) > 350: print(f"AGENTS_SHRINK_FAIL: AGENTS.md lines={len(lines)} > 350") return 1 if not INDEX.exists(): print("AGENTS_SHRINK_FAIL: missing governance/agents_index.yaml") return 1 index = yaml.safe_load(INDEX.read_text(encoding="utf-8")) or {} rule_files = index.get("rule_files") if isinstance(index.get("rule_files"), list) else [] missing = [] for rel in rule_files: path = ROOT / str(rel) if not path.exists(): missing.append(str(rel)) if missing: print(f"AGENTS_SHRINK_FAIL: missing rule files {missing}") return 1 print("AGENTS_SHRINK_OK") print(f"agents_lines={len(lines)} rule_files={len(rule_files)}") return 0 if __name__ == "__main__": raise SystemExit(main())