api-pagination
Implement correct, fast API pagination — cursor vs offset trade-offs, opaque cursor encoding, stable sort keys, page-size limits,…
Given a task, find the best-fit installed Vanara agent and run it. Reads the installed agent roster, scores each by how well its stated purpose matches the task, delegates to the strongest match, and — when nothing fits — records the gap so you can request the missing agent. Use
Claude Code
$ npx -y skills add vanara-agents/skills --skill vanara-route --agent claude-code
Codex
$ npx skills add vanara-agents/skills --skill vanara-route -a codex -y
Cursor
$ npx skills add vanara-agents/skills --skill vanara-route -a cursor -y
Gemini CLI
$ npx skills add vanara-agents/skills --skill vanara-route -a gemini-cli -y
GitHub Copilot
$ npx skills add vanara-agents/skills --skill vanara-route -a github-copilot -y
OpenCode
$ npx skills add vanara-agents/skills --skill vanara-route -a opencode -y
Windsurf
$ npx skills add vanara-agents/skills --skill vanara-route -a windsurf -y
name: vanara-route description: Given a task, find the best-fit installed Vanara agent and run it. Reads the installed agent roster, scores each by how well its stated purpose matches the task, delegates to the strongest match, and — when nothing fits — records the gap so you can request the missing agent. Use when you are not sure which specialist should handle a job, or you want the toolkit to pick for you. type: skill version: 1.0.1 updated: 2026-07-27
You are routing a task to the **best-capable installed agent**, then handing off to it. Claude Code already auto-selects agents from their descriptions; this skill adds two things on top: an *explicit* "pick the strongest specialist for this exact task" step you can invoke on demand, and a **gap-capture** path for when the toolkit has nothing that fits.
1. **Enumerate the roster.** Run `node .claude/skills/vanara-route/scripts/roster.mjs` (or read `.claude/agents/*.md` directly) to list every installed agent with its `name` and `description` — the path is from your project root, where Claude Code runs. The description is the agent's own statement of when it should be used — treat it as the primary signal.
2. **Score each candidate against the task.** For every agent, judge fit on:
→ `iac-author`; a failing test → `test-author`; a slow query → `database-administrator`).
plan)? A read-only reviewer is the wrong pick for "implement".
for exactly those triggers. Assign each a confidence: **strong / partial / none**.
3. **Act on the best match.**
return its result. Say which agent you chose and why in one line.
order the work implies, or present the short list and let the user pick.
fit, and ask before running it.
4. **Never fabricate a specialist.** If the roster has no agent for the job, routing has failed on purpose — that failure is a signal, not something to paper over.
When no installed agent covers the task, append one line to the local gap log so it is not lost. Do this with the helper (it is append-only and creates the file if needed):
node .claude/skills/vanara-route/scripts/log-gap.mjs "one-line capability that was missing"
This writes to `~/.vanara/gaps.jsonl` **on the user's machine only** — nothing is sent anywhere. Then tell the user, in one sentence, that they can submit the request with `vanara request` (which prepares an email to the Vanara team; the user sends it, or not). See [references/gap-reporting.md](references/gap-reporting.md) for the privacy model.
`vanara list` first; there is nothing to route to.
one. Prefer asking over running the wrong specialist on a real task.
an *orchestration* job — prefer an orchestrator pack if one is installed over a single agent.
log — only a short, generic description of the missing capability.
the user rather than re-routing endlessly.
> **Task:** "our Terraform plan keeps showing drift on the prod VPC — figure out why." > > Roster scan → `iac-author` (writes/refactors IaC) is a *partial* verb match (this is > diagnosis, not authoring); no dedicated drift-diagnosis agent exists. Route names > `iac-author` as the closest fit, flags it as approximate, and logs the gap > *"Terraform drift diagnosis / state reconciliation"* so it can be requested.
See [references/matching-heuristics.md](references/matching-heuristics.md) for the full scoring rubric and worked examples.
$ task: "our checkout p99 doubled since Tuesday" ROUTE SCORING (installed items): debugger 0.86 ← symptom is a regression, not a design ask perf-optimizer 0.79 (would optimize; can't explain "since Tuesday") sql-index-tuning 0.61 (plausible cause, wrong entry point) incident-responder 0.44 (no user-facing outage declared) DECISION: debugger — a dated regression wants hypothesis-driven bisection first; perf work without the culprit is guessing with a profiler. HANDOFF: debugger gets the task + the "since Tuesday" anchor + last deploys.
Routing is a ranked decision with reasons, and the runner-up matters: if debugger's bisection lands in a query plan, sql-index-tuning is next, and the route log already says why.
🐒 Free agents, skills & packs for Claude Code One subscription. An army of Claude Code agents. 30 production-grade agents, skills, and packs for Claude Code — free, Apache-2.0, install with one command.
Implement correct, fast API pagination — cursor vs offset trade-offs, opaque cursor encoding, stable sort keys, page-size limits,…
Deep reference for caching — what to cache, cache-aside vs read/write-through/write-behind, TTLs with jitter, eviction…
Write Conventional Commits — the type(scope)!: subject + body + footer spec — so history is readable and changelogs and SemVer…
How to write safe, reversible, zero-downtime database schema migrations — additive-first changes, the expand/migrate/contract…
How to handle errors explicitly and consistently across an app — validate at boundaries, classify operational vs programmer…
Run git collaboration that scales — trunk-based vs git-flow decided by deploy cadence, branch protection and required checks, PR…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.