diff --git a/src/resources/extensions/sf/skills/acquiring-skills/SKILL.md b/src/resources/extensions/sf/skills/acquiring-skills/SKILL.md index fdeee8f9e..74d68710b 100644 --- a/src/resources/extensions/sf/skills/acquiring-skills/SKILL.md +++ b/src/resources/extensions/sf/skills/acquiring-skills/SKILL.md @@ -1,6 +1,6 @@ --- name: acquiring-skills -description: Safely discover and install skills from external repositories or other local sf projects. Use when a user asks for something where a specialised skill likely exists (browser testing, PDF processing, infra automation, etc.) and you want to bootstrap rather than start from scratch. Always verify untrusted sources with the user. +description: Discover and install skills from the Anthropic skills marketplace or other external repositories. Use when a user asks for something where a specialised skill likely exists (browser testing, PDF processing, infra automation, etc.) and you want to bootstrap rather than start from scratch. Always verify untrusted sources with the user. --- # Acquiring New Skills @@ -18,10 +18,8 @@ Skills can contain: | Source | Why trusted | |---|---| -| `https://github.com/anthropics/skills` | Anthropic's official Agent Skills. | +| `https://github.com/anthropics/skills` | Anthropic's official Agent Skills marketplace. | | `https://github.com/singularity-ng/singularity-forge` | sf's own repo (never download to overwrite — only as reference). | -| Local sister repos under `/home/mhugo/code/` (ace-coder, letta-workspace, dr-repo, etc.) | User-owned local code; treat as trusted but still inspect scripts. | -| `mikki-bunker:~/code/` | The user's bunker host; trusted but still inspect. | ### Untrusted sources (ALWAYS verify with user) @@ -68,20 +66,14 @@ Only proceed with skill acquisition if the user agrees. | Repository | Description | |---|---| -| `https://github.com/anthropics/skills` | Anthropic's official Agent Skills. | -| `~/code/ace-coder/.claude/skills/` (local) | ACE skills the user has on disk. | -| `~/code/letta-workspace/.agents/skills/` (local) | Letta workspace skills. | -| `mikki-bunker:~/code/letta-workspace/letta-code/skills/` (remote) | Letta Code skills on the bunker host. | -| `mikki-bunker:~/code/singularity-package-intelligence/.claude/skills/` (remote) | Generic agent skills on bunker. | - -Browse repo READMEs for skill listings. Don't download blind — pick the one that matches. +| `https://github.com/anthropics/skills` | Anthropic's official Agent Skills. Browse the `skills/` directory for available skills. | ## Installation Locations in sf | Location | Path | When to use | |---|---|---| | **Project (sf core)** | `src/resources/extensions/sf/skills//` | Skills bundled with sf, available to every sf install. Default for general-purpose skills. | -| **Per-project bundled** | `/.sf/skills//` | Skills useful only inside a specific project. | +| **Per-project bundled** | `/.sf/skills//` | Skills useful only inside a specific project. | | **User-local** | `~/.sf/skills//` | User-only skills not committed to a repo. | **Default**: Project (sf core) for skills that benefit anyone running sf. Per-project for things only that project's contributors need. @@ -92,54 +84,58 @@ Before installing, ensure the skill follows sf naming: - Lowercase kebab-case directory name. - Match the directory name exactly to the `name:` field in frontmatter. -- No prefixes like `dr-`, `ace-` — strip them. (`dr-spec-first-tdd` → `spec-first-tdd`.) +- No vendor prefixes — strip them. (`ace-spec-first-tdd` → `spec-first-tdd`, `letta-webapp-testing` → `webapp-testing`). - See [`creating-skills`](../creating-skills/SKILL.md) for the full convention. ## How to Acquire -### Method 1 — Clone to `/tmp`, inspect, copy +### Method 1 — Clone from Anthropic marketplace, inspect, copy ```bash # 1. Clone the repo (shallow) git clone --depth 1 https://github.com/anthropics/skills /tmp/skills-temp -# 2. Inspect the skill you want +# 2. Browse available skills +ls /tmp/skills-temp/skills/ + +# 3. Inspect the skill you want cat /tmp/skills-temp/skills/webapp-testing/SKILL.md ls /tmp/skills-temp/skills/webapp-testing/scripts/ # if any # Read every script before running anything -# 3. Copy to sf (default location) +# 4. Copy to sf (default location: project bundled skills) cp -r /tmp/skills-temp/skills/webapp-testing \ - /home/mhugo/code/singularity-forge/src/resources/extensions/sf/skills/ + /src/resources/extensions/sf/skills/ -# 4. Cleanup +# 5. Adapt for sf (see Adaptation Checklist below) +# 6. Cleanup rm -rf /tmp/skills-temp ``` -### Method 2 — rsync from another local repo +### Method 2 — Copy from another local project + +If the user has skills in another local repository they want to port: ```bash -rsync -av ~/code/ace-coder/.claude/skills/ace-systematic-debugging/ \ - /tmp/bunker-skills/systematic-debugging/ +# 1. Copy to temp for inspection +cp -r /.claude/skills/ /tmp/port-skill/ -# Inspect, then port (rename without ace- prefix, sf-adapt tooling references) +# 2. Inspect +# 3. Adapt for sf +# 4. Copy to sf skills directory +cp -r /tmp/port-skill/ \ + /src/resources/extensions/sf/skills/ ``` -### Method 3 — rsync from bunker (over SSH) - -```bash -mkdir -p /tmp/bunker-skills -rsync -av -e ssh \ - mikki-bunker:'~/code/letta-workspace/letta-code/skills//' \ - /tmp/bunker-skills// -``` +## Adaptation Checklist After fetching, **adapt for sf**: -- Strip foreign prefixes (`dr-`, `ace-`, `letta-`). +- Strip vendor prefixes (`ace-`, `letta-`, `dr-`, etc.). - Replace foreign tooling references (Letta MCP tool calls, claude-flow CLIs) with sf-native equivalents (`rg`, `npm test`, `sf_*` tools, `advisory-partner` skill, etc.). - Drop bootstrap gates that don't apply (`onboarding()`, `IN_NIX_SHELL`, etc.). - Cite sf doctrine: `AGENTS.md`, `docs/SPEC_FIRST_TDD.md`, the relevant sister skill. +- Update the `description` frontmatter to mention sf-native tools if applicable. See [`creating-skills`](../creating-skills/SKILL.md) for the conventions adapted skills must follow. @@ -158,6 +154,7 @@ User asks: "Can you help me test my React app's UI?" 3. **If user agrees, fetch**: ```bash git clone --depth 1 https://github.com/anthropics/skills /tmp/skills-temp + ls /tmp/skills-temp/skills/ # find relevant skill cat /tmp/skills-temp/skills/webapp-testing/SKILL.md ls /tmp/skills-temp/skills/webapp-testing/scripts/ # Read each script @@ -166,7 +163,7 @@ User asks: "Can you help me test my React app's UI?" 5. **Install**: ```bash cp -r /tmp/skills-temp/skills/webapp-testing \ - /home/mhugo/code/singularity-forge/src/resources/extensions/sf/skills/ + /src/resources/extensions/sf/skills/ rm -rf /tmp/skills-temp ``` 6. **Use**: `Skill(skill: "webapp-testing")`. @@ -176,7 +173,7 @@ User asks: "Can you help me test my React app's UI?" - **Read every script before executing it.** No exceptions, even from trusted sources. - **Don't `curl | bash`** unless the user has personally inspected and approved the URL. - **Untrusted sources require explicit user approval** before download. -- **Strip foreign prefixes** when porting (`dr-`, `ace-`, `letta-`). +- **Strip vendor prefixes** when porting (`ace-`, `letta-`, `dr-`). - **Adapt tooling references** to sf-native equivalents. - **Cite sf doctrine** — link `AGENTS.md` and `docs/SPEC_FIRST_TDD.md` rather than restating their rules. - **Don't overwrite an existing sf skill** without diffing first; if names collide, decide whether to merge, supersede, or rename.