refactor(skills): generalize acquiring-skills and remove personal references

Replace the developer-specific acquiring-skills skill with a generic
version that any SF user can follow.

Changes:
- Removed all personal references (/home/mhugo/code/, mikki-bunker,
  ace-coder, letta-workspace, dr-repo, singularity-package-intelligence)
- Replaced Method 2 (rsync from local repos) and Method 3 (rsync from
  bunker) with a generic local-project porting workflow
- Replaced Trusted Sources table with only public, universally
  accessible repositories (anthropics/skills, singularity-forge)
- Kept all safety rules (inspect scripts, no curl|bash, untrusted
  sources require approval)
- Kept the Adaptation Checklist for porting foreign skills to sf
- References the Anthropic skills marketplace as the primary source

Resolves self-feedback sf-mookqlyr-snco79.
This commit is contained in:
Mikael Hugo 2026-05-04 21:13:35 +02:00
parent 6037407c99
commit 66c7d6a47e

View file

@ -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/<skill>/` | Skills bundled with sf, available to every sf install. Default for general-purpose skills. |
| **Per-project bundled** | `<other-repo>/.sf/skills/<skill>/` | Skills useful only inside a specific project. |
| **Per-project bundled** | `<repo>/.sf/skills/<skill>/` | Skills useful only inside a specific project. |
| **User-local** | `~/.sf/skills/<skill>/` | 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/
<your-project>/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 <other-project>/.claude/skills/<skill-name> /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/<skill-name> \
<your-project>/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/<skill>/' \
/tmp/bunker-skills/<skill>/
```
## 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/
<your-project>/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.