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.
35 lines
908 B
Python
35 lines
908 B
Python
#!/usr/bin/env -S uv run
|
|
# /// script
|
|
# dependencies = []
|
|
# ///
|
|
"""make_config — generate adws/adw_sssf_config/sssf.config.yaml with great defaults.
|
|
|
|
Usage:
|
|
uv run <skill>/scripts/make_config.py [--force]
|
|
"""
|
|
|
|
import argparse
|
|
import shutil
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
TEMPLATE = Path(__file__).resolve().parent.parent / "templates" / "sssf.config.yaml"
|
|
|
|
|
|
def main() -> int:
|
|
parser = argparse.ArgumentParser(description=__doc__)
|
|
parser.add_argument("--force", action="store_true")
|
|
args = parser.parse_args()
|
|
|
|
dest = Path.cwd() / "adws" / "adw_sssf_config" / "sssf.config.yaml"
|
|
if dest.exists() and not args.force:
|
|
print(f"{dest} already exists — use --force to overwrite")
|
|
return 1
|
|
dest.parent.mkdir(parents=True, exist_ok=True)
|
|
shutil.copy2(TEMPLATE, dest)
|
|
print(f"wrote {dest}")
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|