import re from pathlib import Path DIRECTIVES_DIR = Path("conductor/directives") SKIP_DIRS = {"presets"} def _iter_directive_subdirs() -> list[Path]: if not DIRECTIVES_DIR.is_dir(): return [] return sorted( p for p in DIRECTIVES_DIR.iterdir() if p.is_dir() and p.name not in SKIP_DIRS ) def test_every_directive_has_v1_and_meta() -> None: missing: list[tuple[str, str]] = [] for sub in _iter_directive_subdirs(): for fname in ("v1.md", "meta.md"): if not (sub / fname).is_file(): missing.append((sub.name, fname)) assert not missing, f"Directives missing required files: {missing}" def test_every_meta_md_references_directive_name() -> None: mismatches: list[str] = [] for sub in _iter_directive_subdirs(): meta = sub / "meta.md" if not meta.is_file(): continue text = meta.read_text(encoding="utf-8") if not re.search(rf"^#\s*{re.escape(sub.name)}\b", text, re.MULTILINE): mismatches.append(sub.name) assert not mismatches, f"meta.md headers mismatch directory name: {mismatches}" def test_every_v1_md_starts_with_heading() -> None: bad: list[str] = [] for sub in _iter_directive_subdirs(): v1 = sub / "v1.md" if v1.is_file() and not re.match(r"^#\s+", v1.read_text(encoding="utf-8", errors="ignore")): bad.append(sub.name) assert not bad, f"v1.md missing top-level heading: {bad}"