api-pagination
Implement correct, fast API pagination — cursor vs offset trade-offs, opaque cursor encoding, stable sort keys, page-size limits, total-count costs, and…
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
$ npx -y skills add vanara-agents/skills --skill vanara-route --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/vanara-routeContext preview
The summary Claude sees to decide when to auto-load this skill.
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
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.
Repo: vanara-agents/skills
Implement correct, fast API pagination — cursor vs offset trade-offs, opaque cursor encoding, stable sort keys, page-size limits, total-count costs, and…
Deep reference for caching — what to cache, cache-aside vs read/write-through/write-behind, TTLs with jitter, eviction (LRU/LFU/FIFO), invalidation, and…
Write Conventional Commits — the type(scope)!: subject + body + footer spec — so history is readable and changelogs and SemVer bumps can be derived…
How to write safe, reversible, zero-downtime database schema migrations — additive-first changes, the expand/migrate/contract pattern, batched backfills,…
How to handle errors explicitly and consistently across an app — validate at boundaries, classify operational vs programmer errors, add context while…
Run git collaboration that scales — trunk-based vs git-flow decided by deploy cadence, branch protection and required checks, PR sizing and review etiquette,…