fetch
Resolves Fetch @<path> references in instructions for Claude Code only — NOT compatible with opencode.
Skill by Mikel Madariaga
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/mmadariaga-fetch
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
Use cases: agent-building
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 and code. Checked Oct 26, 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/fetch
What's inside
- Skill name
fetch- Description
- Resolves Fetch @<path> references in instructions for Claude Code only — NOT compatible with opencode. Maps @<subpath> to .claude/<subpath> (project) then ~/.claude/<subpath> (global), and @skills/<name>/SKILL.md to the Skill tool. This skill MUST be loaded before any @sai/ fetch directive.
- License
- MIT
- Compatibility
- claude
- Metadata
- author: Mikel Madariaga · version: 1.0
- Instructions
- 53 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
## Active harness and roots
Active harness identity: `claude`.
Resolve project-local `.claude/` before user-global `~/.claude/`. These are the only roots for SAI instructions: content found under any other root belongs to another harness, so reject it and stop.
### Path composition
Every agent that loads fetch inherits this rule, on both harnesses. It governs how a path is written, not where an agent may go.
- Inside the project: write paths relative to the working directory. Never compose an absolute path from the project-root string.
- Outside the project: use the path exactly as supplied. Never derive it by string manipulation.
Observed: composed absolute paths have dropped a path segment (a worker in `C:\Projects\mine\shared-ai.worktree-1` produced `C:\Projects\mine\sai\commands` for a directory inside the repository), while relative paths and literal absolute paths resolved correctly in every observed run.
## Fetch @ resolution rules (apply to EVERY instruction)
Resolve every `Fetch @<path>` or `Also fetch @<path>` directive in any instruction text by the first matching row:
| Pattern | Resolution |
|---------|-----------|
| `Fetch @skills/<name>/SKILL.md` | Invoke the `Skill` tool with skill name `<name>`, e.g. `Skill("budget")` |
| `Fetch @skills/<name>/SKILL.md and follow those instructions exactly.` | Invoke the `Skill` tool with skill name `<name>`, then follow its instructions |
| `Fetch @<subpath>` (any other path) | See Project-local `sai/` root probe below. |
### Project-local `sai/` root probe
This session probes the project-local `sai/` root exactly once, on the first `Fetch @<subpath>` directive whose path begins with `sai/`, not on the harness root itself — a project without a local SAI copy can still have `.claude/skills/` from `openspec init`.
- **Not yet probed, or probed and found present**: Read `.claude/<subpath>` first; if it exists, use its content and, for the first `sai/`-prefixed directive, remember for the rest of this session that the project-local `sai/` root is present. If that Read finds no file, Read `~/.claude/<subpath>` directly; if that read also fails, stop and report: File not found: <subpath> (checked .claude/ and ~/.claude/). For the first `sai/`-prefixed directive, a failed local Read also means: remember for the rest of this session that the project-local `sai/` root is absent.
- **Probed and found absent**: resolve every subsequent `Fetch @<subpath>` directive whose path begins with `sai/` by reading `~/.claude/<subpath>` directly, with no local Read attempt; other prefixes keep the local-first read above; if that read fails, stop and report: File not found: <subpath> (checked .claude/ and ~/.claude/)
- A project-local `sai/` root created after this session's probe is not seen until the next session.
### Path scope
Every path a fetch directive resolves names exactly one file beginning with `sai/`, `commands/`, or `skills/` under the project-local or user-global root; the harness root itself is never named. A directive whose resolved path would land outside those three prefixes — a fourth top-level segment such as `@vendor/notes.md`, or a root-naming directive such as `@sai/` — is rejected before any filesystem access. Report the directive and the three permitted prefixes and stop.
### Recursion
Skills you load and files you fetch may themselves contain `Fetch @` directives. Apply the same resolution rules recursively — the fetch rules remain active for all subsequent instructions in this session.
### File disambiguation
`@sai/commands/X.md` and `@commands/X.md` are different files. Always read the full resolved path, and treat two references as the same file only when their full paths match:
| Reference | Resolves to |
|-----------|-------------|
| `@sai/commands/X.md` (project-local) | `.claude/sai/commands/X.md` |
| `@sai/commands/X.md` (user-global) | `~/.claude/sai/commands/X.md` |
| `@commands/X.md` (project-local) | `.claude/commands/X.md` |
| `@commands/X.md` (user-global) | `~/.claude/commands/X.md` |From mmadariaga/shared-ai, MIT.
More from mmadariaga/shared-ai
- 0.604score
budget-explorer
Mikel Madariaga
Binds cheap research subagent to the opencode budget-explorer agent keyword.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
budget-executor
Mikel Madariaga
Binds "executor subagent" to Claude Code subagent dispatch routed through the budget-executor agent file.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
budget-explorer
Mikel Madariaga
Binds "cheap research subagent" to Claude Code subagent dispatch routed through the budget-explorer agent file.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
budget-subagent
Mikel Madariaga
Binds "task subagent" to Claude Code subagent dispatch routed through the budget-subagent agent file.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
budget-executor
Mikel Madariaga
Binds "executor subagent" to the OpenCode budget-executor agent keyword.
SkillAFreshness: A★ 3Claude Code +9 - 0.367score
openspec-apply-change
openspec
Implement tasks from an OpenSpec change.
SkillAFreshness: A★ 3Claude Code +9 - 0.367score
openspec-archive-change
openspec
Archive a completed change in the experimental workflow.
SkillAFreshness: A★ 3Claude Code +9 - 0.367score
openspec-propose
openspec
Propose a new change with all artifacts generated in one step.
SkillAFreshness: A★ 3Claude Code +9 - 0.367score
openspec-explore
openspec
Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements.
SkillAFreshness: A★ 3Claude Code +9
Signals
- Stars
- 3
- Forks
- 0
- Open issues
- 14
- Last commit (this folder)
- Oct 1, 2026 (27 days ago)
- Last release
- Oct 22, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.0
- License
- MIT
- Repository
- github.com/mmadariaga/shared-ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Mikel Madariaga
- 0.604score
budget-executor
Mikel Madariaga
Binds "executor subagent" to Claude Code subagent dispatch routed through the budget-executor agent file.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
budget-explorer
Mikel Madariaga
Binds "cheap research subagent" to Claude Code subagent dispatch routed through the budget-explorer agent file.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
budget-subagent
Mikel Madariaga
Binds "task subagent" to Claude Code subagent dispatch routed through the budget-subagent agent file.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
budget-executor
Mikel Madariaga
Binds "executor subagent" to the OpenCode budget-executor agent keyword.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
budget-explorer
Mikel Madariaga
Binds cheap research subagent to the opencode budget-explorer agent keyword.
SkillAFreshness: A★ 3Claude Code +9
Cite this page
fetch skill. Agent Mart. https://agentmart.dev/skills/mmadariaga-fetch (last updated 2026-10-24)