Capability Routing Map
Skills are procedures. Tools are capabilities. Duplicate skill/tool pages are valid when they document different layers: the skill tells the agent how to run the workflow; the tool page tells the agent what the capability is, when it wins, and what replaces it. Source: User, 2026-06-17
This page is harness-agnostic. Cursor, Codex, Claude Code, OpenClaw, Hermes, and future agents should treat this page plus Skill Resolver as the canonical tool-routing brain. Files such as config/cursor/rules/tool-hierarchy.mdc are compact projections for a specific loader, not independent sources of truth.
Decision Rule
When a task overlaps multiple tools, route by capability family first, then by task shape, then by interface cost.
Discovery happens one layer earlier in Agent Capability Registry: what exists, how it is invoked, what it requires, and who owns it. This map decides what to use first.
Coverage happens alongside discovery in Ecosystem Capability Coverage: whether an ecosystem is present in skills.sh/MCP/CLI sources, promoted into wiki pages, routed in the resolver, included in packs, and backed by verification. Run that audit before large page consolidation or service-pack edits so the wiki does not over-promote whichever vendor family happened to be documented first.
- Family - search, browser/computer use, service/API access, docs lookup, model choice, QA, content, data movement, or memory.
- Task shape - deterministic vs exploratory, current vs compiled, repeated vs one-off, shell-agent vs IDE-agent, human-facing vs internal.
- Interface cost - prefer the narrowest reliable interface: local wiki/search or CLI before MCP; MCP before raw HTTP; browser before computer-use screenshots only when interaction is unavoidable.
When to open this map
Open this page when the tool question is not a simple service lookup. Common triggers:
- "Should I use Playwright, agent-browser, or Chrome DevTools?"
- "Should I search the web, qmd, or last30days?"
- "Should this be a skill, tool page, concept page, or resolver row?"
- "Should I use a CLI, MCP, browser, or raw API?"
- "Which agent runtime/model path fits this constraint?"
If the task is already covered by a specific skill with no ambiguity, read that skill instead of over-routing. This map is for capability boundaries.
Cost Ladder
Prefer the lowest-cost interface that preserves correctness:
- local files /
rg/ qmd - deterministic scripts or CLI
- official docs or local docs mirrors
- MCP tools
- browser automation
- raw computer-use / screenshot driving
- custom one-off code
Drop lower only when the current rung cannot answer the task.
Skill vs Tool Layer Rule
The wiki no longer mirrors every executable skill as wiki/skills/foo.md. Executable procedures live
in skills/**/SKILL.md, inventory lives in Skill Registry, readable skill-family synthesis lives
in wiki/concepts/*-skills.md, and tool pages own product/capability facts.
| Layer | Owns | Example |
|---|---|---|
| Executable skill | Trigger phrases, preconditions, step-by-step workflow, required reads, verification, output shape | skills/engineering/agent-browser/SKILL.md: how to run browser automation in an agent loop |
| Skill family page | Cross-skill routing, family tradeoffs, cleanup rules, notable procedures | Browser Testing Skills |
| Tool page | Product/capability facts, tradeoffs, alternatives, timelines, related tools | [[agent-browser]] tool: CLI/MCP surfaces, Lightpanda/Chrome engines, React/perf strengths |
| Concept page | General principle that cuts across tools | [[computer-use-patterns]]: browser-use spectrum and persistent playbook pattern |
| Resolver row | Which one fires first for a concrete user request | [[SKILL-RESOLVER]] Browser Automation table |
Do not recreate a skill article only because a skill exists. Promote durable ideas into the right family page, tool page, or concept page; preserve old slugs with redirects.
Core Capability Families
| Family | First route | Tool hierarchy | Drop rank when |
|---|---|---|---|
| Kevin/wiki knowledge | The Brain-Agent Loop | qmd search for exact names → qmd query for synthesis → read pages + backlinks → web only for gaps |
qmd lacks current/external facts |
| Repo topology / code graph | Graphify + graphify-sidecar skill |
npm run graphify:sidecar -- status → build/query/path/explain/affected in outputs/graphify/ → raw-file verification with rg/reads |
The question is compiled wiki truth, exact text, or the graph is stale/noisy |
| Current internet/social research | last30days skill |
last30days → agent-reach → Exa Agent for async structured list/enrichment research → WebSearch / source-specific browsing |
Need exact current docs, a primary source, or low-latency fetch |
| External docs / APIs | rtfm / docs skill if present |
nia-docs filesystem docs → official docs / plugin docs → WebSearch |
Docs are private, dynamic, or not indexable |
| Service/API access | Agent-Native CLIs | PrintingPress <svc>-pp-cli → print one → official CLI → MCP → raw HTTP |
IDE-only task needs MCP discovery; no CLI/auth exists |
| Browser/computer use | Computer Use and Browser Automation Patterns | browser-harness → agent-browser CLI/MCP → Chrome DevTools MCP → cursor-ide-browser → screenshot/computer-use fallback | Need deterministic CI, use Playwright first |
| Local dev server URLs | Portless | portless skill → portless doctor → framework-specific port/host flags → manual port routing last |
The project cannot use Node 24+ or local proxy/CA changes |
| Deterministic browser tests | Complementary Browser Testing | Playwright → browser-harness/agent loop to discover new assertions | The question is visual judgment, not repeatable behavior |
| Open-source / model choice | The Eval Loop (Slop Is an Output Problem) + model tool page | existing harness/provider → Vercel AI Gateway / AI SDK → OpenRouter Fusion for multi-perspective research/critique → captured model page like GLM-5.2 → local/self-host route when privacy/cost demands | No benchmark for the task; build an eval before switching |
| Code review / bugs | gstack-review |
gstack-review → counterfactual → cross-modal-review → language/security-specific skill | The user asks for QA, design review, or CI repair instead |
| QA / dogfood | gstack-qa |
gstack-qa → dogfood → beta-dx-walk → browser-harness / agent-browser | Need deterministic regression, write Playwright |
| Design/frontend | taste-skills-playbook |
taste router → frontend-design/frontier → local design skills → Impeccable or UI Skills/component-source shelf when specialized → web-design-guidelines → vercel-react-best-practices → browser verification | The task is code correctness rather than UI quality |
| Charts/data visualization | Plotly + Evil Charts | analytical question → Plotly for Python/JS interactive analysis or Dash → Evil Charts/Recharts for product-dashboard treatment → browser/accessibility verification | The need is a static editorial graphic or a simpler native table |
| Technology vitality | Is This Tech Dead? as first-pass signal | aggregate score → official release/security/maintainer evidence → project constraints → migration cost | A dashboard score is being treated as a final adoption verdict |
| Agent UI / messaging surfaces | Agent GUIs | Copilotkit / AG-UI Protocol for app-embedded run state and approvals -> JSON Render -- Generative UI Framework or OpenUI -- Generative UI Language and Runtime for catalog-constrained generated UI by wire format -> Photon Spectrum for iMessage, SMS, Slack, Telegram, WhatsApp, terminal, or custom messaging providers -> Human-in-the-Loop Control before side effects | The product is not exposing an agent interaction surface |
| Data movement | Agent-Native CLIs | ingestr → service pp-cli / official CLI → custom dlt/SQLAlchemy/pandas | Connector missing or transform is domain-specific |
| Document/media extraction | Retrieval Quality | liteparse for local PDF/layout extraction and page screenshots → markitdown for broad ordinary file-to-Markdown → defuddle for web pages → mineru for hard OCR/table/formula PDFs → omniparse for local multimodal/GPU-heavy corpora | License, GPU, or commercial-use constraints make heavyweight parsing wrong |
| Deterministic video generation | Remocn | remocn skill + remotion-best-practices → hyperframes/text-to-lottie by artifact shape → AI video MCPs for generative media | The user needs live UI/browser verification instead of rendered media |
| Content/career | social-draft / career-ops |
social-draft → humanizer → kevin-voice; career-ops → recruiter-discovery/content-pipeline workflows | The task is strategy, use content-strategy first |
| Memory/codification | No One-Off Work | update wiki → create/extend skill → automation if recurring → doctor/index/qmd | The task is genuinely one-off session context |
| Agent loop design | Loopy | loop-me → loopy → skill-creator/automation; add agent-eval-library when the judge matters |
The task is a one-time plan, use borrowed-intelligence/improve |
| Agent self-improvement evals | Agent Self-Improvement Eval Library | receipt suite → npm run agent-self-eval → Red Queen Gödel Machine hardening → Loopy loop |
The task is ordinary content/product output quality; use The Eval Loop (Slop Is an Output Problem) |
Browser and Computer Use
The browser stack is split by task type, with one default: agent-browser owns agent-driven browser work. Playwright owns committed test artifacts.
| Task | Use first | Why |
|---|---|---|
| Agent-driven browsing / scraping / form fill / screenshot / UI QA | Browser Testing Skills | Compact snapshots, refs, screenshots, sessions, batch commands, Chrome profile support |
| Logged-in Chrome or personal-account flow | Browser Testing Skills with Chrome profile / auto-connect | Same agent-browser workflow with real auth state |
| React/perf/Web Vitals | Browser Testing Skills | Web Vitals and React render introspection |
| Visual bug hunt / responsiveness | Browser Testing Skills | diff screenshot, diff snapshot, viewport sweeps, rendered proof |
| CI E2E / repeatable regression | Browser Testing Skills | Deterministic, reviewable, gates every PR |
| Screenshot-first/self-healing real-Chrome edge case | Browser Harness - Self-Healing Browser Automation | Specialist fallback when compositor-level clicks or self-healing helpers are the point |
| Computed CSS / box model deep dive | Chrome DevTools MCP | Explain why the bug happens after agent-browser finds it |
| IDE-native quick look | cursor-ide-browser | Built into Cursor's vision pipeline |
| Desktop/Electron app | electron skill, then screenshot/computer-use fallback |
Structured app automation before raw screen driving |
| Repeated website workflow | Autobrowse (Browserbase Skills) / Browserbase skill family route | Learn once, save playbook, amortize browsing cost |
| Undocumented website API discovery | Browser to API candidate route | Capture observed traffic, generate an OpenAPI hypothesis, redact before promotion |
Search and Research
| Need | Use | Notes |
|---|---|---|
| Search Kevin's compiled brain | QMD - Local Wiki Search Engine | Brain-first. Exact names via qmd search; synthesis via qmd query. |
| Ask codebase topology/path/blast-radius questions | Graphify / graphify-sidecar |
Sidecar-first for focused graph context, then verify with source reads. |
| Research what people currently say | last30days |
Multi-platform, engagement-weighted current signal. |
| Read/search live social/web/video platforms | Security and Review Skills | Use when the source is X/Reddit/YouTube/etc. |
| Build or enrich structured public-web lists | Exa Agent | Async research runs with outputSchema, grounding, cost accounting, and continuation; overkill for one search. |
| Current library/API docs | NIA Docs - Docs as Filesystem for Agents | Mount docs as files, then tree / grep / cat. |
| Find agent skills | find-skills |
Search installable skills; run skill-auditor before installing. |
| Exact repo text | rg |
Local repo search still beats every semantic layer for exact strings. |
Model and Agent Runtime Choice
Do not pick a model because it is new. Pick the runtime path from the product constraint.
| Constraint | Route |
|---|---|
| Coding inside an existing harness | Use the harness-native model picker first: Cursor / Claude Code / Codex / agent runtime. |
| AI feature in a Vercel/React app | Vercel AI SDK + AI Gateway; evaluate model swaps behind the same interface. |
| Deep research / architecture critique needs multiple model perspectives | OpenRouter Fusion as alias/plugin/server tool; use selectively, not as a routine coding model. |
| Long-horizon open-weights coding/model eval | GLM-5.2 is the current captured open-weights reference; run it via AI Gateway first, then local/self-host only when needed. |
| Need durable agent sessions / sandboxed filesystem runtime | Vercel Eve, AI SDK HarnessAgent, Agent Machines, or Dedalus Machines - How They Work depending on product boundary. |
| Need a persistent personal operator stack on a local Mac | Hermes Mac Mini Agent OS: Hermes + Hindsight + Honcho + qmd/Obsidian + agent-browser + ACP workers + Telegram threads. |
| Need coding-agent product comparison | Compare ZCode, Vercel Eve, Loop, Cursor/Claude Code harness pages. |
| Need safety or content quality | Build an The Eval Loop (Slop Is an Output Problem) first; do not substitute model vibes for output tests. |
| Need an agent to benchmark itself | Use Agent Self-Improvement Eval Library first; keep the evaluator evolving with Red Queen Gödel Machine. |
Service Access
For external apps and services, the hierarchy is interface-first:
- Existing PrintingPress pp-cli - local mirror, compound commands, low token cost.
- Print one - if Kevin will hit the target again and no pp-cli exists.
- Official CLI -
gh,stripe,vercel,aws,supabase, etc. - MCP - best for IDE/desktop agents, tool discovery, or services with no CLI.
- Raw HTTP - last resort; codify into a CLI/skill if repeated.
Headless auth: use Agent Cookie - Session State Sync for the Agent's Second Mac only after explicitly surfacing the security tradeoff.
For websites with no published API but observable XHR/fetch traffic, use the Browser to API candidate route only after choosing browser exploration as the right interface. Capture with browser-trace, generate a spec, then review/redact the report before writing any durable client. Do not treat this route as a substitute for official APIs, partner access, or terms-of-service review.
Ecosystem Pages
Tier-1 service ecosystems must have a canonical wiki/tools/<ecosystem>.md page before they are treated as promoted in packs. That page owns the readable product-level synthesis: when to use the ecosystem, what not to confuse it with, routing, install/use guidance, failure modes, and verification path. Skills still own procedures, and source/ingest pages still own raw evidence. Source: User request, 2026-06-27; Ecosystem Capability Coverage
This is the guardrail that separates capability concepts from vendors: Browserbase Ecosystem is a browser-workflow ecosystem; Browser Testing Skills is the default agent browser route; Browser Testing Skills is the committed regression-test route; Browser Harness - Self-Healing Browser Automation is a specialist fallback. TanStack Ecosystem is a frontend data/routing library ecosystem; Security and Review Skills, Firebase Ecosystem, and ClickHouse Ecosystem remain backend/data ecosystems. Sentry Ecosystem, Datadog Ecosystem, and PostHog Ecosystem all sit under observability, but they answer different questions.
The cluster-level canonical pages are Identity, Session, and Routing, Browser Automation and QA, Local Web Verification, Agent Search and Retrieval, Skills, Tools, and Capability Discovery, Google Workspace Skills, Firebase Skills, Azure Skills, Cloud, Data, and Service Skills, Frontend, Design, Motion, and Accessibility, and Agent Harness, Runtime, Memory, and Evals. Use these as the readable synthesis layer before diving into individual tool pages or executable skill files.
Maintenance Rule
When adding a new tool or skill:
- Add the fact page (
wiki/tools/orwiki/concepts/) if the capability is durable. - Add or update the executable skill only if there is a repeatable procedure.
- Run
npm run skill-registryso executable coverage and family routing stay current. - Add a resolver row in
[[SKILL-RESOLVER]]. - Add or update this map if the change affects a capability family, tool boundary, or first-route decision.
- Mirror compact routing into harness projections only after the generic pages are correct, e.g.
config/cursor/rules/tool-hierarchy.mdc, agent-doc packs, or future Codex/Claude/OpenClaw/Hermes projection files. - Run
npm run ecosystem-coverage:auditwhen the change affects a service ecosystem. - Run
npm run routing-doctor,npx tsx scripts/doctor.ts --quiet,npx tsx scripts/build-index.ts, andqmd update && qmd embed.
Timeline
- 2026-07-14 | Added technology-vitality, chart-engine/treatment, and Impeccable design-language routes; refreshed ACP and Hermes memory boundaries from their official docs. Source: User request, 2026-07-14
- 2026-07-02 | Added Graphify as the safe repo-topology sidecar route, explicitly below qmd for wiki knowledge and above raw file sweeps for structural graph/path/affected-node questions. Source: User request, 2026-07-02
- 2026-06-30 | Added Exa Agent as the async structured research/enrichment route between live-source research and generic WebSearch; it is for list-building, row enrichment, and schema-backed research, not for Kevin wiki recall or low-latency lookup. Source: X/@ExaAILabs, 2026-06-16
- 2026-06-30 | Promoted LiteParse into the document/media extraction route as the fast local PDF/layout parser with an imported executable skill; MarkItDown - Universal File-to-Markdown Converter remains the broad ordinary file converter and MinerU/OmniParse remain escalation routes. Source: X/@jerryjliu0, 2026-05-27; Source: GitHub/npm/PyPI, 2026-06-30
- 2026-06-30 | Surfaced Photon Spectrum as the messaging-channel agent UI route and Its Hover / Super Hover as deliberate animated hover/icon affordance references so routing-doctor can discover their tool pages. Source: routing-doctor, 2026-06-30
- 2026-06-30 | Added Browser to API as the candidate route for undocumented website API discovery, with explicit redaction and API-contract caveats. Source: X/@derekmeegan, 2026-05-13
- 2026-06-29 | Made this page the explicit harness-agnostic source of truth for tool routing; Cursor
tool-hierarchy.mdcis a projection that mirrors this map and Skill Resolver. Source: User correction, 2026-06-29 - 2026-06-29 | Added Loopy and agent self-improvement evals as capability families so repeatable loop design and evaluator hardening route before generic skill creation. Source: User request, 2026-06-29
- 2026-06-27 | Linked ecosystem capability coverage as the pre-consolidation check for service ecosystem promotion across skills.sh, MCP/CLI, wiki pages, routing, packs, and verification. Source: User request, 2026-06-27;
scripts/audit-ecosystem-coverage.ts - 2026-06-27 | Replaced skill/tool mirror guidance with the executable skill + generated registry + family synthesis model. Source: User request, 2026-06-27;
scripts/generate-skill-registry.ts - 2026-06-18 | Linked Agent Capability Registry as the discovery layer that feeds this routing map. Source: whole-wiki graph audit, 2026-06-18
- 2026-06-18 | Added open conditions and the interface cost ladder so future agents know when to use the map and when to stay with a specific skill. Source: User request, 2026-06-18
- 2026-06-17 | Created after Kevin clarified that duplicated skill/tool entries are acceptable when they represent different layers; the needed cleanup is capability hierarchy and routing, not blind deduplication. Source: User, 2026-06-17