ryanthedev/oberskills/agent
Claude Code and agent skill by ryanthedev/oberskills
- community
Checking that the SKILL.md file is still in the repository.
Subagent dispatch guidance for the Agent tool — whether to delegate or work inline, the four-part delegation contract, model and effort selection, parallel fan-out sizing, fork vs fresh subagent, and dispatching independent verifier agents. Use before any Agent tool call: spawning subagents, fanning out work across files or research angles, delegating exploration or review, briefing a verifier, or deciding whether delegation is worth it at all. Not for: wording a prompt that isn't an agent dispatch (use oberskills:prompt) or authoring reusable skill and agent definition files — structure, frontmatter, and evals (use oberskills:skill-craft); their prompt bodies (use oberskills:prompt).
Install
npx vskill@latest install ryanthedev/oberskills/agentSKILL.md
Dispatching subagents
Guidance for writing Agent tool calls (the Task tool was renamed Agent in v2.1.63; Task(...) still works as an alias). A subagent is a context-isolation tool: it spends tokens in its own window and returns a distilled summary, so your window stays clean. That isolation is also the failure surface — the delegation prompt is the only channel in, and the return summary is the only channel out. Keep both channels precise.
Platform mechanics: references/mechanics.md in this skill directory · Orchestration patterns: references/patterns.md in this skill directory · Verifier dispatch: references/verifier-dispatch.md in this skill directory
Host Mapping
Use the host's available subagent or delegation tool when present. If no such tool is available, work inline and state that the host has no subagent surface.
| Concept | Claude Code | Codex/other hosts | |
|---|---|---|---|
| Spawn work | Agent(...) / Task tool | Host-provided subagent/delegation tool, when available | |
| Wait or follow up | Agent return / resume | Host-provided wait or message operation, when available | |
| No delegation surface | Work inline | Work inline |
1. The dispatch gate
Agents cost roughly 4x the tokens of working inline; multi-agent fan-outs cost roughly 15x (Anthropic multi-agent research system). Delegation pays for itself only when isolation or parallelism buys something — multi-agent beat single-agent Opus by 90.2% on breadth-first research precisely because the task decomposed into independent directions. Deciding how to dispatch is itself the first dispatch decision.
| Situation | Route | Why | |
|---|---|---|---|
| Needs back-and-forth, or phases share heavy context (plan → implement → test on one artifact) | Inline | State dies at each subagent boundary; coupled work loses it | |
| Quick targeted change; latency matters | Inline | Subagents start cold and re-gather context | |
| Task needs mid-task user input | Inline | A subagent has no user channel — the harness strips AskUserQuestion from every subagent | |
| Side question about content already in this conversation | /btw | Sees the full conversation but has no tool access — for what the session already knows, not for finding out something new | |
| Side task that needs your full conversation context | Fork | Inherits the whole conversation and reuses the parent prompt cache — cheaper than re-briefing a fresh subagent. Always runs on your model | |
| Self-contained task producing verbose output you won't reference again (test runs, log digs, doc fetches, codebase searches) | One subagent | The single most valuable use: tens of thousands of tokens explored, only the distilled summary returned | |
| Independent items to process the same way (many files, many candidates, research angles) | Parallel fan-out, same turn | Independence is the requirement; see §4 for sizing | |
| Output needs checking | Separate verifier subagent | Producers can't grade their own work; see §5 |
Once you've decided to delegate, pick the dispatch mode. Background versus foreground is set by the harness, not by a call parameter (Claude Code mechanics; details in the mechanics reference §7):
| Mode | Use when | |
|---|---|---|
| Background (interactive sessions — every dispatch) | Always, interactively: you're notified on completion in a later turn, and a permission prompt from the subagent surfaces in your session rather than being denied. When the result gates your next step, the gate is waiting for that notification — keep to work that doesn't depend on it, and never predict the result | |
Foreground (fork mode off — headless -p/SDK; always for in-process teammates) | The harness blocks on a subagent when the result is needed before continuing; otherwise it still backgrounds | |
subagent_type: "fork" | The task needs your conversation, not a briefing (§1 gate row). A model override is ignored | |
isolation: "worktree" | Parallel agents writing to the same repo. Costs a temp worktree per agent; skip it for read-only work | |
isolation: "remote" | Long detached work in a cloud environment. Always background; availability is gated |
Where prompts can't surface — dontAsk mode, or a headless run with no permission handler configured (mechanics reference §7) — pre-grant every permission the task needs; otherwise a delegated edit fails while the subagent reports success.
Spawn-bias drifts across model generations — state trigger conditions in both directions: when a task fans out across independent items, delegate rather than iterating serially; AND when a single read or a sequential edit means just doing it.
2. The delegation contract
The delegation prompt is the only thing the subagent knows about your task. It does not see this conversation, your invoked skills, or files you've read. Thin prompts cause cold-start thrash: the agent re-discovers context you already had. Every dispatch contains four parts (Anthropic's orchestrator finding: without an objective, an output format, tool guidance, and clear boundaries, agents duplicate work and leave gaps):
Add a CONTEXT block when the agent needs state from this conversation:
- Decisions already made (so it doesn't relitigate them).
- What was already tried and failed (so it doesn't repeat it).
- For multi-dispatch chains, the goal anchor:
ORIGINAL GOAL / COMPLETED SO FAR / CURRENT SUBTASK / REMAINING PLAN— agents drift off-goal within 10–15 steps without it (ReCAP). - Any CLAUDE.md rule the task depends on (e.g. "ignore vendor/") when dispatching Explore or Plan — those two built-ins skip CLAUDE.md and git status.
Subagents don't inherit your skills. A fresh subagent has zero awareness of skills you've used. Load them explicitly, as flat lines at the top of the prompt — agents execute flat Skill(...) / Read(...) lines but skip nested directives like "follow every instruction in that file". Resolve all paths yourself before dispatch:
For a reusable agent definition (a file in agents/), prefer the skills: frontmatter field, which preloads full skill content at startup.
Write the objective as an outcome, not actions:
| Question | Bad | Good | |
|---|---|---|---|
| What outcome do I need? | "Search for files" | "Find where user auth is implemented" | |
| What will I do with the result? | "Look at it" | "Understand the pattern to add OAuth" | |
| How will I know it succeeded? | "It returns something" | "File paths + the approach, in ≤1 page" |
If the objective can't be stated as an outcome because the user's own intent is ambiguous, run oberskills:clarify before dispatching. Length is fine; vagueness is not. For a long or novel brief — a new reusable agent definition, or instructions beyond a screen — invoke Skill(oberskills:prompt) for wording-level craft first.
3. Model and effort
Two levers, in order: drop effort before dropping a model tier. Lower effort on the same model is the cheap knob — Anthropic's effort table names subagents as the typical low use — and a weaker model running longer is not a substitute for a stronger one (a model upgrade beat doubling the token budget in Anthropic's testing). Don't compensate for a too-weak subagent by letting it run more.
Where each lever binds (Claude Code). The Agent call takes model but has no effort parameter: a subagent's effort comes from its definition's effort frontmatter, otherwise from your session. For an ad-hoc dispatch to a built-in type, tier and the scope of the brief are the only per-call levers, and the subagent runs at your session's effort. A worker role you dispatch repeatedly earns a definition file with effort pinned (field table: mechanics reference §3); in an API harness you own, set effort per request.
Effort semantics: low buys terse, direct execution with fewer tool calls; medium buys deliberation over alternatives; high+ buys extended reasoning on ambiguity. Defaults by role: low for bounded workers, medium for analysis and synthesis, high or above only for deciders. Effort steers thinking and tool-call volume, not prose length — a return that runs long needs a size bound in OUTPUT (§2), not lower effort. Level names don't buy the same amount of thinking on different models, and Anthropic's guidance on every recent release is to re-run an effort sweep rather than port settings, so treat these role defaults as starting points, not constants. At xhigh/max, leave room in max_tokens: thinking and response text share that cap (number in the snapshot). Behavioral deltas that follow from effort choices: the prompt skill's claude-models.md §5.
| Tier alias | Dispatch role | |
|---|---|---|
haiku | Read-only discovery: file search, classification, log/screenshot triage. Smallest context window of the lineup — don't hand it huge inputs | |
sonnet | Workhorse workers: extract, analyze, synthesize; parallel research fan-outs; code analysis | |
opus | Subagents that write code, make decisions, or carry tricky reasoning — and the default orchestrator (below) | |
fable | Escalation tier: work the tier below has failed at raised effort, or hours-long long-horizon runs. Rarely a subagent | |
omit model (inherit) | Default for writers and deciders, and the safe choice during capacity incidents, when an explicit model: "opus" can hang at "Initializing…" (mechanics reference §8). On a top-tier session this bills at the top tier — forks always do |
Orchestrator default: start one tier below the top, escalate on measured failure. Anthropic's model-selection guidance starts most work one tier below the top and moves to the top model for demanding long-horizon work, or when evals at raised effort still fall short. That is this section's ladder — effort first, then tier — applied to the orchestrator. Ratios price tokens, not tasks: a model can write longer responses, longer files, and more narration for the same job (the snapshot names which), so a flat per-token price can still mean a higher bill. The lever is a length bound in the contract and a conciseness instruction (the prompt skill's snippets.md #22), not effort.
Routing defaults: research/lookup → general-purpose with model: "haiku" (built-in Explore now inherits your model, so it is no longer cheap by construction — mechanics reference §2); extract/analyze worker → sonnet, from a definition with effort: low|medium when the role recurs; write/decide → inherit. When several sources set a subagent's model, the per-call model wins — except on a fork, which ignores it and always runs on your model. Full resolution order: mechanics reference §1.
Lineup snapshot — verified 2026-09-21
The guidance above reads correctly without this block; at the next model release, edit here. Aliases resolve to the latest model in each tier (claude --help: "an alias for the latest model"), so a dispatch written today follows the next upgrade. Sources, all fetched on that date: Anthropic's pricing page, models overview, choosing-a-model guide, effort page, and the Opus 5 and Fable 5.1 prompting pages.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/agent/SKILL.md
Popularity
- Repository stars
- 43
- Repository forks
- 4
- 7-day trend score
- 19
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/ryanthedev/oberskills/agent)