Skip to content
Agentmart
Submit a tool

fetch

Resolves Fetch @<path> references in instructions for Claude Code only — NOT compatible with opencode.

Skill by Mikel Madariaga

IndexedMIT★ 3
Write a review

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.

We use your email only for this newsletter. Privacy

About

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.

Use cases: agent-building

No 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.

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
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Mikel Madariaga

Cite this page

fetch skill. Agent Mart. https://agentmart.dev/skills/mmadariaga-fetch (last updated 2026-10-24)