fold/scripts/generate_embedded_skill.py
trvon b0b51f1e71
feat: converge quality and scan interfaces
- fail closed on MCP input and compile database policy
- add shared scan catalogs, finding queries, and tiered gates
2026-07-29 00:57:33 -04:00

51 lines
1.4 KiB
Python

#!/usr/bin/env python3
"""Generate Fold's C++ embedded skill header from the canonical SKILL.md."""
from __future__ import annotations
import argparse
from pathlib import Path
DELIMITER = "FOLDSKILL"
def render(skill: str) -> str:
terminator = f'){DELIMITER}"'
if terminator in skill:
raise ValueError(
f"skill contains reserved raw-string terminator {terminator!r}"
)
return (
"#pragma once\n\n"
"namespace fold::cli {\n\n"
f'inline constexpr const char* kEmbeddedFoldSkill = R"{DELIMITER}('
f"{skill}"
f'){DELIMITER}";\n\n'
"} // namespace fold::cli\n"
)
def main() -> int:
parser = argparse.ArgumentParser()
parser.add_argument("--input", type=Path, required=True)
parser.add_argument("--output", type=Path, required=True)
parser.add_argument("--check", action="store_true")
args = parser.parse_args()
generated = render(args.input.read_text(encoding="utf-8"))
if args.check:
if (
not args.output.exists()
or args.output.read_text(encoding="utf-8") != generated
):
print(f"generated embedded skill is stale: {args.output}")
return 1
return 0
args.output.parent.mkdir(parents=True, exist_ok=True)
args.output.write_text(generated, encoding="utf-8")
return 0
if __name__ == "__main__":
raise SystemExit(main())