Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Pull version-current Convex docs for the version this project uses — pin the installed version, fetch page-as-markdown or check node_modules types, freshness hierarchy — instead of writing a possibly-stale API from memory.
.claude/skills/get-convex-convex-docs/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | -3% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -3% | 0% |
| case-16 | ✗→✓ | ▲ Improved | -9% | 0% |
| case-05 | ✓→✓ | = Same ✓ | -13% | 0% |
| case-06 | ✓→✓ | = Same ✓ | -6% | 0% |
<!-- GENERATED from convex-agents content/capabilities/convex-docs.json — do not edit by hand. -->
convex-expert carries baked, plugin-versioned knowledge — excellent for stable idioms, but it goes stale exactly where it hurts: a component that gained a new export, a CLI flag that changed, an API renamed between versions. This capability is the freshness discipline layered on top: pin to the project's real version, fetch the live page cheaply as markdown, and never write an unfamiliar API from memory when the current source is one fetch away.
convex version (node -p "require('./node_modules/convex/package.json').version" or package.json), and the versions of any @convex-dev/* components in play. The docs you trust must match THESE versions — version skew is the single largest source of wrong Convex code.(a) if a served docs tool / MCP search_convex_docs is available, use it (it returns version-scoped, reranked answers sized to the context window); (b) else fetch the specific docs page as MARKDOWN — request docs.convex.dev/<path> and prefer a .md/markdown form when the site serves one (far fewer tokens than HTML), or the component's README at the pinned version; (c) only then fall back to a general web search, and treat its version as unverified. Do NOT skip to writing the API from memory when currentness is in doubt.
node_modules/@convex-dev/<x>/ (its package.json exports, its .d.ts) — the installed types are the ground truth for THIS version, more authoritative than any doc.exports/.d.ts in node_modules is the ground truth for this version — more authoritative than any doc page.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 21,991 | 32,816 | +49% | 1 | 1 | 0% | 3,672 | 4,460 | +21% | 0 | 0 | — |
case-02 | fail→fail | 10,177 | 18,494 | +82% | 1 | 1 | 0% | 1,447 | 3,861 | +167% | 0 | 0 | — |
case-03 | fail→fail | 6,082 | 17,788 | +192% | 1 | 1 | 0% | 377 | 3,555 | +843% | 0 | 0 | — |
case-04 | fail→pass | 6,887 | 2,884 | -58% | 1 | 1 | 0% | 1,253 | 1,216 | -3% | 0 | 0 | — |
case-05 | pass→pass | 10,525 | 3,124 | -70% | 1 | 1 | 0% | 1,377 | 1,196 | -13% | 0 | 0 | — |
case-06 | pass→pass | 9,447 | 6,593 | -30% | 1 | 1 | 0% | 1,715 | 1,620 | -6% | 0 | 0 | — |
case-07 | pass→pass | 4,535 | 4,068 | -10% | 1 | 1 | 0% | 814 | 1,380 | +70% | 0 | 0 | — |
case-08 | pass→pass | 14,935 | 10,785 | -28% | 1 | 1 | 0% | 2,002 | 2,305 | +15% | 0 | 0 | — |
case-09 | fail→fail | 5,618 | 4,266 | -24% | 1 | 1 | 0% | 678 | 1,269 | +87% | 0 | 0 | — |
case-10 | fail→pass | 10,679 | 5,963 | -44% | 1 | 1 | 0% | 1,975 | 1,909 | -3% | 0 | 0 | — |
case-11 | pass→pass | 7,219 | 2,905 | -60% | 1 | 1 | 0% | 1,023 | 1,198 | +17% | 0 | 0 | — |
case-12 | pass→pass | 10,974 | 2,527 | -77% | 1 | 1 | 0% | 1,479 | 1,043 | -29% | 0 | 0 | — |
case-13 | pass→pass | 8,704 | 4,526 | -48% | 1 | 1 | 0% | 1,130 | 1,335 | +18% | 0 | 0 | — |
case-14 | fail→fail | 15,629 | 10,481 | -33% | 1 | 1 | 0% | 2,107 | 2,326 | +10% | 0 | 0 | — |
case-15 | pass→pass | 8,994 | 6,129 | -32% | 1 | 1 | 0% | 1,591 | 1,608 | +1% | 0 | 0 | — |
case-20 | pass→pass | 6,459 | 3,751 | -42% | 1 | 1 | 0% | 1,058 | 1,154 | +9% | 0 | 0 | — |
case-16 | fail→pass | 11,709 | 5,225 | -55% | 1 | 1 | 0% | 1,590 | 1,446 | -9% | 0 | 0 | — |
case-17 | pass→pass | 5,055 | 3,375 | -33% | 1 | 1 | 0% | 622 | 1,139 | +83% | 0 | 0 | — |
case-18 | pass→pass | 5,693 | 4,087 | -28% | 1 | 1 | 0% | 883 | 1,314 | +49% | 0 | 0 | — |
case-19 | fail→fail | 5,896 | 6,991 | +19% | 1 | 1 | 0% | 962 | 1,722 | +79% | 0 | 0 | — |
case-21 | pass→pass | 10,065 | 5,920 | -41% | 1 | 1 | 0% | 1,685 | 1,801 | +7% | 0 | 0 | — |
case-22 | pass→pass | 9,630 | 5,915 | -39% | 1 | 1 | 0% | 1,735 | 1,758 | +1% | 0 | 0 | — |
case-23 | pass→pass | 8,498 | 7,695 | -9% | 1 | 1 | 0% | 1,201 | 1,772 | +48% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 22 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +13 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.