← ClaudeAtlas

add-external-skilllisted

Add or update external skills in this marketplace as git-subdir entries and keep the README catalog in sync. Usage: /add-external-skill <owner/repo> [path] [name] | /add-external-skill update
filippolmt/skills · ★ 1 · AI & Automation · score 70
Install: claude install-skill filippolmt/skills
Keep `.claude-plugin/marketplace.json` and the README **Available skills** catalog in sync with upstream external skills. Arguments: `$ARGUMENTS` - `<owner/repo> [path] [name]` → **add mode** (default). - `update` (optionally `update <owner/repo>` to scope to one repo) → **update mode**. Granularity is the CLAUDE.md rule; what it does not say is where `name` comes from — the skill folder's basename for a per-skill entry, the `name` in `plugin.json` for a whole-plugin one. ## Fetches Both modes use these. `HEAD` resolves the repo's default branch, so `main` vs `master` is never a guess. Skill folders in a repo: ```bash curl -fsSL "https://api.github.com/repos/<owner>/<repo>/git/trees/HEAD?recursive=1" \ | jq -r '.tree[] | select(.path | endswith("/SKILL.md")) | .path | sub("/SKILL.md$";"")' ``` Latest tags (does this repo publish semver tags?): ```bash curl -fsSL "https://api.github.com/repos/<owner>/<repo>/tags?per_page=5" | jq -r '.[].name' ``` The SHA a `ref` resolves to — `HEAD` for a branch pin, the tag name for a tag pin: ```bash curl -fsSL "https://api.github.com/repos/<owner>/<repo>/commits/<ref>" \ -H "Accept: application/vnd.github.sha" ``` A skill's upstream frontmatter `description` — the **one-liner**, usually its first sentence: ```bash curl -fsSL "https://raw.githubusercontent.com/<owner>/<repo>/<sha>/<path>/SKILL.md" ``` If `curl` is blocked/redirected here, fetch the same URLs via any HTTP tool — the endpoints are identical. ## Pinning the `ref` Ren