{"id":"07083c28-6477-4adb-8f32-d657ca567bae","shortId":"Rc8tDT","kind":"skill","title":"apilookup","tagline":"Use when any task depends on external API/framework behavior, SDK references, library versions, breaking changes, migration guides, changelogs, or release notes. Auto-activate for uncertainty about third-party docs, version compatibility, deprecations, or current syntax before im","description":"# API Lookup Skill\n\nLook up API documentation, SDK references, library versions, and migration guides using a three-tier resolution strategy that starts with local Flow skill references and escalates to targeted web searches only when needed.\n\n## Overview\n\nThree tiers of resolution, applied in order:\n\n1. **Local skill references** — if a matching Flow skill exists and the registry entry is fresh (< 30 days), load the skill's curated `references/` docs directly. No network needed.\n2. **Targeted web lookup** — if local refs are stale (> 30 days) or the query needs more, use the registry's known URLs for targeted searches (max 2-4).\n3. **Arbitrary lookup** — for technologies without a matching skill, broad web search with a version-first strategy (max 2-4 searches).\n\n## Usage Patterns\n\nExample queries this skill handles:\n\n- \"What's the latest Litestar version and what changed?\"\n- \"How do I use React Server Components?\"\n- \"Show me the SQLAlchemy 2.0 migration guide\"\n- \"What breaking changes are in Angular 19?\"\n- \"What's the current Go module proxy API?\" (arbitrary — no local skill)\n- \"Check if there's a newer version of Tailwind CSS\"\n\n<workflow>\n\n## How It Works\n\n### Version Registry\n\n`references/registry.json` maps every Flow skill to:\n\n- Current known version and last-checked date\n- Package registry (PyPI, npm, crates.io, etc.)\n- Official docs URL, changelog URL, and GitHub repo\n- Search hint keywords for targeted queries\n\n### Staleness Thresholds\n\n| Age of registry entry | Action |\n|-----------------------|--------|\n| < 30 days | Trust local skill references, answer directly |\n| 30-90 days | Use local refs as baseline, verify version via web |\n| > 90 days | Treat as potentially outdated, do full version check |\n\n### Search Budget\n\nAll web lookups are capped at **2-4 searches max**. Prefer `WebFetch` on known URLs over `WebSearch` when registry URLs are available — it is faster and more precise.\n\n</workflow>\n\n<guardrails>\n\n## Lookup Rules\n\nSee `references/lookup-strategy.md` for the full decision tree. Key principles:\n\n1. **Always start local** — check the registry and load matching skill refs if fresh\n2. **Be targeted** — use registry URLs and package names for precise queries\n3. **Respect the budget** — 2-4 searches max, stop once you have an authoritative answer\n4. **Cite sources** — always include links to official docs or changelogs\n5. **Note version gaps** — if local refs cover version X but the current release is Y, tell the user explicitly\n\n</guardrails>\n\n## References Index\n\n- **[Lookup Strategy](references/lookup-strategy.md)** — Detailed three-tier resolution instructions\n- **[Version Registry](references/registry.json)** — Package metadata and staleness tracking for all skills\n- **[Registry Schema](references/registry-schema.md)** — Documents the registry JSON format and fields\n\n<validation>\n\n## Validation Checkpoint\n\nBefore delivering an answer based on an API lookup, verify:\n\n- [ ] **Staleness check** was performed against `registry.json` for known skills\n- [ ] **Tier 1 (Local)** was tried first for fresh entries (< 30 days)\n- [ ] **Tier 2 (Targeted)** was used for stale entries, capping at 2-4 searches\n- [ ] **Tier 3 (Arbitrary)** used for unknown tech, anchoring on today's date\n- [ ] **Citations** are included with direct links to official docs or changelogs\n- [ ] **Version gaps** between local refs and current docs are explicitly noted\n\n</validation>\n\n<example>\n\n## Example: Looking up React Server Components\n\n**Query:** \"How do I use React Server Components in Next.js?\"\n\n1. **Identify Tech:** React, Next.js.\n2. **Check Registry:** Matches `react` skill. `last_checked` is 45 days ago (Tier 2).\n3. **Execute Tier 2:**\n   - **Step 1 (Version):** WebFetch `https://github.com/facebook/react/releases` -> React 19 is latest.\n   - **Step 2 (Specific):** WebSearch `site:nextjs.org react server components pattern 2026`.\n4. **Synthesize:**\n   - \"Based on Next.js 15+ documentation (compatible with React 19):\"\n   - Explain `use client` vs default server components.\n   - Provide code example of a Server Component fetching data.\n   - **Citations:** [Next.js RSC Docs](https://nextjs.org/docs/app/building-your-application/rendering/server-components), [React 19 Upgrade Guide](https://react.dev/blog/2024/12/05/react-19).\n\n</example>","tags":["apilookup","flow","cofin","agent-skills","ai-agents","beads","claude-code","codex","cursor","developer-tools","gemini-cli","opencode"],"capabilities":["skill","source-cofin","skill-apilookup","topic-agent-skills","topic-ai-agents","topic-beads","topic-claude-code","topic-codex","topic-cursor","topic-developer-tools","topic-gemini-cli","topic-opencode","topic-plugin","topic-slash-commands","topic-spec-driven-development"],"categories":["flow"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/cofin/flow/apilookup","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add cofin/flow","source_repo":"https://github.com/cofin/flow","install_from":"skills.sh"}},"qualityScore":"0.455","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 11 github stars · SKILL.md body (4,308 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T01:03:24.971Z","embedding":null,"createdAt":"2026-04-23T13:03:57.578Z","updatedAt":"2026-04-24T01:03:24.971Z","lastSeenAt":"2026-04-24T01:03:24.971Z","tsv":"'-4':142,163,309,372,488 '-90':279 '/blog/2024/12/05/react-19).':625 '/docs/app/building-your-application/rendering/server-components),':618 '/facebook/react/releases':569 '1':86,341,467,540,564 '15':590 '19':201,571,595,620 '2':115,141,162,308,355,371,478,487,545,558,562,575 '2.0':192 '2026':584 '3':143,367,491,559 '30':102,124,270,278,475 '4':382,585 '45':554 '5':393 '90':290 'action':269 'activ':25 'age':265 'ago':556 'alway':342,385 'anchor':497 'angular':200 'answer':276,381,450 'api':41,46,209,454 'api/framework':9 'apilookup':1 'appli':83 'arbitrari':144,210,492 'authorit':380 'auto':24 'auto-activ':23 'avail':323 'base':451,587 'baselin':285 'behavior':10 'break':15,196 'broad':152 'budget':301,370 'cap':306,485 'chang':16,180,197 'changelog':19,252,392,512 'check':214,241,299,345,458,546,552 'checkpoint':446 'citat':502,612 'cite':383 'client':598 'code':604 'compat':34,592 'compon':187,529,537,582,602,609 'cover':400 'crates.io':247 'css':223 'curat':108 'current':37,205,235,405,519 'data':611 'date':242,501 'day':103,125,271,280,291,476,555 'decis':337 'default':600 'deliv':448 'depend':6 'deprec':35 'detail':418 'direct':111,277,506 'doc':32,110,250,390,510,520,615 'document':47,438,591 'entri':99,268,474,484 'escal':70 'etc':248 'everi':231 'exampl':167,524,605 'execut':560 'exist':95 'explain':596 'explicit':412,522 'extern':8 'faster':326 'fetch':610 'field':444 'first':159,471 'flow':66,93,232 'format':442 'fresh':101,354,473 'full':297,336 'gap':396,514 'github':255 'github.com':568 'github.com/facebook/react/releases':567 'go':206 'guid':18,54,194,622 'handl':171 'hint':258 'identifi':541 'im':40 'includ':386,504 'index':414 'instruct':423 'json':441 'key':339 'keyword':259 'known':135,236,315,464 'last':240,551 'last-check':239 'latest':175,573 'librari':13,50 'link':387,507 'litestar':176 'load':104,349 'local':65,87,120,212,273,282,344,398,468,516 'look':44,525 'lookup':42,118,145,304,330,415,455 'map':230 'match':92,150,350,548 'max':140,161,311,374 'metadata':428 'migrat':17,53,193 'modul':207 'name':363 'need':77,114,129 'network':113 'newer':219 'next.js':539,544,589,613 'nextjs.org':579,617 'nextjs.org/docs/app/building-your-application/rendering/server-components),':616 'note':22,394,523 'npm':246 'offici':249,389,509 'order':85 'outdat':295 'overview':78 'packag':243,362,427 'parti':31 'pattern':166,583 'perform':460 'potenti':294 'precis':329,365 'prefer':312 'principl':340 'provid':603 'proxi':208 'pypi':245 'queri':128,168,262,366,530 'react':185,527,535,543,549,570,580,594,619 'react.dev':624 'react.dev/blog/2024/12/05/react-19).':623 'ref':121,283,352,399,517 'refer':12,49,68,89,109,275,413 'references/lookup-strategy.md':333,417 'references/registry-schema.md':437 'references/registry.json':229,426 'registri':98,133,228,244,267,320,347,359,425,435,440,547 'registry.json':462 'releas':21,406 'repo':256 'resolut':60,82,422 'respect':368 'rsc':614 'rule':331 'schema':436 'sdk':11,48 'search':74,139,154,164,257,300,310,373,489 'see':332 'server':186,528,536,581,601,608 'show':188 'site':578 'skill':43,67,88,94,106,151,170,213,233,274,351,434,465,550 'skill-apilookup' 'sourc':384 'source-cofin' 'specif':576 'sqlalchemi':191 'stale':123,263,430,457,483 'start':63,343 'step':563,574 'stop':375 'strategi':61,160,416 'syntax':38 'synthes':586 'tailwind':222 'target':72,116,138,261,357,479 'task':5 'tech':496,542 'technolog':147 'tell':409 'third':30 'third-parti':29 'three':58,79,420 'three-tier':57,419 'threshold':264 'tier':59,80,421,466,477,490,557,561 'today':499 'topic-agent-skills' 'topic-ai-agents' 'topic-beads' 'topic-claude-code' 'topic-codex' 'topic-cursor' 'topic-developer-tools' 'topic-gemini-cli' 'topic-opencode' 'topic-plugin' 'topic-slash-commands' 'topic-spec-driven-development' 'track':431 'treat':292 'tree':338 'tri':470 'trust':272 'uncertainti':27 'unknown':495 'upgrad':621 'url':136,251,253,316,321,360 'usag':165 'use':2,55,131,184,281,358,481,493,534,597 'user':411 'valid':445 'verifi':286,456 'version':14,33,51,158,177,220,227,237,287,298,395,401,424,513,565 'version-first':157 'via':288 'vs':599 'web':73,117,153,289,303 'webfetch':313,566 'websearch':318,577 'without':148 'work':226 'x':402 'y':408","prices":[{"id":"cae11840-979e-4c74-b943-b8fba91a5c46","listingId":"07083c28-6477-4adb-8f32-d657ca567bae","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"cofin","category":"flow","install_from":"skills.sh"},"createdAt":"2026-04-23T13:03:57.578Z"}],"sources":[{"listingId":"07083c28-6477-4adb-8f32-d657ca567bae","source":"github","sourceId":"cofin/flow/apilookup","sourceUrl":"https://github.com/cofin/flow/tree/main/skills/apilookup","isPrimary":false,"firstSeenAt":"2026-04-23T13:03:57.578Z","lastSeenAt":"2026-04-24T01:03:24.971Z"}],"details":{"listingId":"07083c28-6477-4adb-8f32-d657ca567bae","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"cofin","slug":"apilookup","github":{"repo":"cofin/flow","stars":11,"topics":["agent-skills","ai-agents","beads","claude-code","codex","context-driven-development","cursor","developer-tools","gemini-cli","opencode","plugin","slash-commands","spec-driven-development","subagents","tdd","workflow"],"license":"apache-2.0","html_url":"https://github.com/cofin/flow","pushed_at":"2026-04-19T23:22:27Z","description":"Context-Driven Development toolkit for AI agents — spec-first planning, TDD workflow, and Beads integration.","skill_md_sha":"e9f6f4d2329ce1bc84841af390083e75e33a8778","skill_md_path":"skills/apilookup/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/cofin/flow/tree/main/skills/apilookup"},"layout":"multi","source":"github","category":"flow","frontmatter":{"name":"apilookup","description":"Use when any task depends on external API/framework behavior, SDK references, library versions, breaking changes, migration guides, changelogs, or release notes. Auto-activate for uncertainty about third-party docs, version compatibility, deprecations, or current syntax before implementation decisions. Produces version-verified documentation references with links to official sources, staleness warnings, and version gap notes."},"skills_sh_url":"https://skills.sh/cofin/flow/apilookup"},"updatedAt":"2026-04-24T01:03:24.971Z"}}