adopting-external-skills
Import external skills into the Codespace tree, adapted.
Skill by gitricko
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/gitricko-adopting-external-skills
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/adopting-external-skills
What's inside
- Skill name
adopting-external-skills- Description
- Import external skills into the Codespace tree, adapted.
- License
- MIT
- Instructions
- 90 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (1)
- SKILL.md
SKILL.md (first lines)
# Adopting External Skills
Bring a skill from an external/upstream source (e.g. mattpocock/skills, an
obra-style repo) into the user's committable Codespace skills tree
(`skills/`). The rule is *adapt, don't copy 1:1* — strip what
won't work, graft the genuinely novel ideas into an existing base skill when
one already covers the territory, and make the result Hermes-shaped and
git-persisted.
## When to Use
- User points at an upstream skill (URL or repo) and asks "how would you structure this in our skills? / copy it?"
- A new external skill notes the execution technique beats what an existing local skill already documents.
## Decide: new skill or graft into an existing one
**Check for an existing local skill covering the same territory FIRST**
(`skills_list` + `skill_view`). If one exists and is solid, GRAFT the novel
distinctive content into it — do not create a narrow sibling. If the upstream
turns out to be *less* complete than the local skill, say so and fold in only
what the local one genuinely lacks.
Split-coordinator skills ("call these two sub-skills") are usually dead ends:
merge their behavior into one active skill under a single name rather than
shipping a routing stub.
## Procedure
1. **Fetch the upstream raw content.** Use the `raw.githubusercontent.com`
URL, NOT the github blob URL — the blob URL returns only page chrome
(repo/path metadata), never the file body. `web_extract` on the raw URL
works; for small files (<2KB, and whenever the extract backend times out)
fall back to `terminal(command="curl -s <raw-url>")`.
2. **List the skill's full file set** so you don't miss support files:
`terminal(command="curl -s https://api.github.com/repos/<owner>/<repo>/contents/<path>")`
and grep for `"name"` at every level (SKILL.md + references/ + agents/
configs). Fetch the referenced templates/formats too — they are often the
most reusable part.
3. **Strip what is not Hermes.** Remove `agents/openai.yaml` (OpenAI-Codex
config, no Hermes equivalent), and frontmatter fields that mean nothing
here like `disable-model-invocation`. Keep `name` + `description` as the
core trigger; description should be self-contained within ~57 chars.
4. **Adapt content.** Graft distinctive, reusable ideas from the upstream
into the base skill. Deep templates/formats (an ADR format, a glossary
format, a mocking guideline) go in `references/<topic>.md` under the skill
dir, pointed to from SKILL.md — don't inline bulk in the body.
5. **Place in the committable tree.** Write to `skills/<name>/`
(symlinked to `~/.hermes/skills/codespace/`), NOT `~/.hermes/skills/`
directly — the symlinked dir is what is git-tracked and survives rebuilds.
6. **Verify the CI gates** mirror our lint-check: frontmatter opens with `---`
on byte 0, closes within the first 20 lines, and has a `name:` field.
`markdownlint` is often not installed locally — say the structural gates
passed but the line-length rule is unverified locally, and watch for long
upstream lines on commit (CI will flag them).
## Duplicate-name collision
If a Hermes-managed copy of the same skill already lives elsewhere (e.g.
`~/.hermes/skills/<category>/<name>/`), the loader sees two same-named skills
and auto-triggering becomes ambiguous. When the new git-tracked copy is the
authoritative one, the fix is to DELETE the stale Hermes-managed copy so only
the persisted version remains. The repo path is unaffected (it was never
tracked). Do not leave both to fight over the loader.
## Pitfalls
- **Blob URL instead of raw URL.** `github.com/.../blob/main/...` returns page
chrome, not content. Always hit `raw.githubusercontent.com/.../main/...`.
- **Extract backend rate/timeout flakiness.** `web_extract`/the search backend
intermittently times out or returns an error on keyless fetch. For short
files, `curl -s` the raw URL is the reliable path.
- **Skill-format mismatch (grill-with-docs case).** An upstream "coordinator"
skill with `disable-model-invocation: true` is a two-line router — merging it
into the skill it routes to removes a dead hop.
- **Grafting skips the target's own layers.** When extending a local base
skill, remember the local one may carry its own rich scaffolding
(rationalizations, checklists, Hermes integration). Preserve all of it and
ADD the upstream idea — do not let the shorter upstream file crowd it out.
- **The repo persistence symlink.** Confirm `~/.hermes/skills/codespace` still
points at `skills` before writing, and verify the new dir
appears under it, not just in an un-symlinked category path.
## Verification
- `head -1` == `---`; a `^---$` within lines 2-20; a `^name:` in frontmatter — all PASS.
- New skill dir resolves under `~/.hermes/skills/codespace/` (symlinked), i.e. committable.
- `skills_list` shows the new skill (note: the loader cache may delay it ~30s until next session).
- No stale same-named sibling remains to collide in the loader.
- Every upstream support file either landed in `references/` or was deliberately dropped (and why).From gitricko/.minions, MIT.
More from gitricko/.minions
- 0.586score
ci-lint-check
gitricko
Run pre-commit CI lint validation locally before pushing to avoid GitHub Actions failures.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
minions-llm-proxy-ops
gitricko
Use when operating or debugging the .minions LLM proxies.
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
ci-debugging
gitricko
Use when a CI/test failure seems to have one cause but the real root is different, or when a silent failure hides the real issue.
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
codespace-port-visibility
gitricko
Automate Codespace port visibility via CLI w/ vscode token.
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
docker-test-shell
gitricko
Use when testing in a clean throwaway container.
SkillAFreshness: A★ 1Claude Code +9 - 0.579score
codespace-gh-auth
gitricko
Extract GitHub token from VS Code for API in Codespaces.
SkillAFreshness: A★ 1Claude Code +9 - 0.574score
minions-9router-models
gitricko
Manage 9Router model list via etc/9router-models.json.
SkillAFreshness: A★ 1Claude Code +9 - 0.549score
codespace-webtop
gitricko
Native Selkies/XFCE webtop (browser desktop) via pixelflux-based selkies package — install, run, and autostart on any Ubuntu base system
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
ci-log-capture
gitricko
Use when test scripts redirect probe output to /dev/null, hiding failure details.
SkillBFreshness: B★ 1Claude Code +9 - 0.546score
codespace-lavish
gitricko
Launch a headed Lavish-AXI whiteboard over noVNC in Codespaces.
SkillBFreshness: B★ 1Claude Code +9 - 0.546score
codespace-vscode-open
gitricko
Auto-discover VS Code CLI in Codespaces and open files in connected editor
SkillBFreshness: B★ 1Claude Code +9 - 0.546score
agent-context-transfer
gitricko
Transfer implementation context to a fresh agent for seamless handoff
SkillBFreshness: B★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 2
- Open issues
- 3
- Last commit (this folder)
- Oct 13, 2026 (15 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/gitricko/.minions
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from gitricko
- 0.586score
ci-lint-check
gitricko
Run pre-commit CI lint validation locally before pushing to avoid GitHub Actions failures.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
minions-llm-proxy-ops
gitricko
Use when operating or debugging the .minions LLM proxies.
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
ci-debugging
gitricko
Use when a CI/test failure seems to have one cause but the real root is different, or when a silent failure hides the real issue.
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
codespace-port-visibility
gitricko
Automate Codespace port visibility via CLI w/ vscode token.
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
docker-test-shell
gitricko
Use when testing in a clean throwaway container.
SkillAFreshness: A★ 1Claude Code +9 - 0.579score
codespace-gh-auth
gitricko
Extract GitHub token from VS Code for API in Codespaces.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
adopting-external-skills. Agent Mart. https://agentmart.dev/skills/gitricko-adopting-external-skills (last updated 2026-10-24)