scripts/sync_memory_schemas.py
Rama main · réplica de lectura del repositorio original.
"""Copy canonical memory schemas into self-contained host packages."""
from __future__ import annotations
import argparse
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
BUNDLES = {
"plugins/claude-code/schemas": ["coding-session.md", "session.md", "task.md", "decision.md"],
"plugins/codex/schemas": ["coding-session.md", "task.md", "decision.md"],
"integrations/tau/schemas": ["coding-session.md", "session.md", "task.md", "decision.md"],
}
def main() -> None:
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--check", action="store_true", help="Report drift without writing")
args = parser.parse_args()
drift: list[str] = []
for directory, names in BUNDLES.items():
for name in names:
source = ROOT / "integrations/shared/schemas" / name
target = ROOT / directory / name
expected = source.read_bytes()
if args.check:
if not target.exists() or target.read_bytes() != expected:
drift.append(str(target.relative_to(ROOT)))
else:
target.parent.mkdir(parents=True, exist_ok=True)
target.write_bytes(expected)
if drift:
parser.exit(1, "Schema copies differ: " + ", ".join(drift) + "\n")
if __name__ == "__main__":
main()