Something went wrong. Try again.
personal memory agent
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051#!/usr/bin/env python3# SPDX-License-Identifier: AGPL-3.0-only# Copyright (c) 2026 sol pbc
"""Check native-sol design records are linked from durable docs navigation."""
from __future__ import annotations
import refrom pathlib import Path
REPO_ROOT = Path(__file__).resolve().parents[1]DESIGN_DIR = REPO_ROOT / "docs/design/native-sol-client"NAV_DOCS = (REPO_ROOT / "docs/PORTING.md",)LINK_RE = re.compile(r"docs/design/native-sol-client/[A-Za-z0-9_.-]+\.md")
def check_links() -> list[str]: design_files = sorted(DESIGN_DIR.glob("*.md")) errors: list[str] = [] if not design_files: errors.append(f"{DESIGN_DIR.relative_to(REPO_ROOT)} has no design records") expected = {path.relative_to(REPO_ROOT).as_posix() for path in design_files} linked: set[str] = set() for nav_doc in NAV_DOCS: if not nav_doc.is_file(): errors.append(f"{nav_doc.relative_to(REPO_ROOT)} is missing") continue linked.update(LINK_RE.findall(nav_doc.read_text(encoding="utf-8"))) if not linked: errors.append("native-sol durable docs link set is empty") missing = sorted(expected - linked) if missing: errors.append(f"native-sol design records not linked: {missing!r}") return errors
def main() -> int: errors = check_links() if errors: print("native sol docs link check failed:") for error in errors: print(f"- {error}") return 1 print("native sol docs links ok") return 0
if __name__ == "__main__": raise SystemExit(main())