#!/usr/bin/env python3 """Query the generated organization design registry by surface/pattern/state.""" import argparse import json import os import sys HERE = os.path.dirname(os.path.abspath(__file__)) ROOT = os.environ.get("CLAUDE_PROJECT_DIR") or os.path.dirname(os.path.dirname(HERE)) REGISTRY = os.path.join(ROOT, "org-os", "08-design", "generated", "registry.json") def main(argv=None): parser = argparse.ArgumentParser() parser.add_argument("--surface") parser.add_argument("--pattern") parser.add_argument("--state", choices=["experimental", "candidate", "stable", "deprecated"]) args = parser.parse_args(argv) try: with open(REGISTRY, encoding="utf-8") as handle: registry = json.load(handle) except Exception as exc: print(f"design registry unavailable; run compile_design_system.py: {exc}", file=sys.stderr) return 2 result = {"current-release": registry.get("current-release")} for collection in ("components", "patterns", "page-archetypes"): values = registry.get(collection, []) if args.surface: values = [item for item in values if args.surface in (item.get("surfaces") or [])] if args.state: values = [item for item in values if item.get("state") == args.state] if args.pattern: values = [item for item in values if ( item.get("id") == args.pattern or args.pattern in (item.get("patterns") or []) or args.pattern in (item.get("components") or []))] result[collection] = values print(json.dumps(result, ensure_ascii=False, indent=2)) return 0 if __name__ == "__main__": raise SystemExit(main())