#!/usr/bin/env python3 """Offline checks for the architecture package; no cloud calls or provisioning.""" from pathlib import Path import re, sys root = Path(__file__).parents[1] def get_file_path(filename): search_dirs = [ root / "deliverables" / "as-is", root / "deliverables" / "target", root / "deliverables" / "validation", root / "deliverables" / "guides", root / "deliverables", root / "docs", root, ] for d in search_dirs: candidate = d / filename if candidate.is_file(): return candidate return root / "deliverables" / "guides" / filename required_files = [ get_file_path("requirements.md"), get_file_path("architecture.md"), get_file_path("architecture.mmd"), get_file_path("solution-architecture-guide.md"), root / "terraform" / "main.tf", root / "terraform" / "variables.tf", ] missing = [str(p.relative_to(root)) for p in required_files if not p.is_file()] guide_path = get_file_path("solution-architecture-guide.md") if guide_path.is_file(): text = guide_path.read_text(encoding="utf-8") checks = ["Functional requirements", "Selected products", "Validation results", "Terraform", "Mermaid"] missing += [f"guide section: {x}" for x in checks if x not in text] else: missing.append("solution-architecture-guide.md") mmd_path = get_file_path("architecture.mmd") if mmd_path.is_file(): if not re.search(r"flowchart|graph", mmd_path.read_text(encoding="utf-8")): missing.append("Mermaid graph") if missing: print("FAIL: " + ", ".join(missing)); sys.exit(1) print("PASS: required architecture artifacts and guide sections are present")