Port the sssf skill from ~/.agents/skills/sssf into this repo so it can be distributed and installed with the skills CLI (skills add INDigitalStudio/skills --skill sssf). - Copy the skill (SKILL.md, cookbooks, references, scripts, templates, and the visualizer app source) into sssf/. - Gitignore build/runtime artifacts: the visualizer's node_modules/ and dist/, Python bytecode, and the machine-specific repos.json. - Make the skill location-independent: install.py now stamps the skill's real path into the stamped justfile's skill_dir (replacing the hardcoded ~/.agents/skills/sssf), so 'just obs' finds the visualizer wherever the CLI installed the skill. - Update cookbooks to use <skill>/scripts/... instead of the hardcoded path, and document the skills CLI install command. - Update the repo README with install instructions.
21 lines
673 B
Python
21 lines
673 B
Python
"""Prompt rendering: load system/user refs from config, replace {{placeholders}}."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
|
|
def render(template_path: str | Path, variables: dict[str, str]) -> str:
|
|
text = Path(template_path).read_text()
|
|
for key, value in variables.items():
|
|
text = text.replace("{{" + key + "}}", value)
|
|
return text
|
|
|
|
|
|
def save(directory: str | Path, name: str, content: str) -> Path:
|
|
"""Save the exact prompt sent, before execution — the audit copy."""
|
|
directory = Path(directory)
|
|
directory.mkdir(parents=True, exist_ok=True)
|
|
path = directory / name
|
|
path.write_text(content)
|
|
return path
|