{"slug":"fresh-library-docs","title":"fresh-library-docs","summary":"Use before writing code against a library, SDK, API, or framework whose current version you are not certain of — especially fast-moving ones. Trigger when an import fails, a method does not exist, a config key is rejected, a deprecation warning appears, or the user says the code ","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-20T07:59:44.798083Z","repo":{"url":"https://github.com/OneWave-AI/claude-skills","stars":309,"forks":53,"license":"MIT","updatedAt":"2026-09-23T02:11:41Z"},"bodyHtml":"<hr>\n<h2>name: fresh-library-docs\ndescription: Use before writing code against a library, SDK, API, or framework whose current version you are not certain of — especially fast-moving ones. Trigger when an import fails, a method does not exist, a config key is rejected, a deprecation warning appears, or the user says the code was written against an old version.\ntools: Read, Glob, Grep, Bash, WebFetch, WebSearch</h2>\n<h1>Fresh Library Docs</h1>\n<p>Training data has a cutoff; libraries do not. Most \"the AI hallucinated an API\" bugs are really the model writing correct code for a version that shipped two years ago. This skill checks reality first.</p>\n<h2>Core Behavior</h2>\n<p>Before writing non-trivial code against a dependency, establish two facts: which version this project actually has, and what that version's API looks like. In that order.</p>\n<h2>Step 1 — What Is Installed</h2>\n<p>The installed version beats the latest version and beats your memory. Read it from the project:</p>\n<pre><code>cat package.json | grep -A30 '\"dependencies\"'\nnpm ls &lt;pkg&gt; --depth=0 2&gt;/dev/null\npip show &lt;pkg&gt; 2&gt;/dev/null | head -3\ncat requirements.txt pyproject.toml 2&gt;/dev/null | grep -i &lt;pkg&gt;\n</code></pre>\n<h2>Step 2 — Read the Real Source</h2>\n<p>The most reliable documentation is the code on disk. It cannot be out of date, because it is what will run.</p>\n<pre><code>ls node_modules/&lt;pkg&gt;/dist/*.d.ts\ngrep -rn \"export function &lt;name&gt;\\|export declare\" node_modules/&lt;pkg&gt;/dist/index.d.ts | head -20\npython -c \"import &lt;pkg&gt;, inspect; print(inspect.signature(&lt;pkg&gt;.&lt;fn&gt;))\"\n</code></pre>\n<p>For a TypeScript project, the <code>.d.ts</code> file answers the question definitively. Read it before searching the web.</p>\n<h2>Step 3 — Then the Docs</h2>\n<p>When the source is unreadable or you need usage patterns rather than signatures:</p>\n<ul>\n<li>Official docs for that exact version, not the \"latest\" URL, which silently redirects.</li>\n<li>The repo's CHANGELOG or migration guide — the fastest way to learn what moved between your mental model and reality.</li>\n<li>GitHub issues for the specific error string, when behavior contradicts the docs.</li>\n</ul>\n<p>Blog posts and forum answers are the last resort and always carry a date. A 2023 tutorial for a library that had a major release last year is a trap.</p>\n<h2>Step 4 — Confirm Before Committing</h2>\n<p>For anything non-obvious, run the smallest possible check rather than trusting the read:</p>\n<pre><code>node -e \"const x=require('&lt;pkg&gt;'); console.log(Object.keys(x).slice(0,30))\"\nnpx tsc --noEmit 2&gt;&amp;1 | head -20\n</code></pre>\n<p>Type-check output is the cheapest proof that an API call exists.</p>\n<h2>Rules</h2>\n<ul>\n<li>Never call a method you have not seen defined somewhere real.</li>\n<li>Pin what you learn into the code as a comment only when the behavior is genuinely surprising — not as a version diary.</li>\n<li>When installed and latest differ significantly, say so in one line and let the user decide whether to upgrade. Do not upgrade a dependency to make your snippet work.</li>\n<li>If the answer is genuinely uncertain, say which part is uncertain instead of writing confident code around it.</li>\n</ul>\n<h2>Highest-Risk Dependencies</h2>\n<p>Verify these every time; they move fastest and break most: AI SDKs and model identifiers, auth libraries, ORMs and database clients, build tooling and bundler config, meta-framework routing and data-fetching conventions, payment SDKs. For model names, pricing, and parameters specifically, check the provider's current model list rather than recalling one.</p>\n","files":[{"path":"SKILL.md","sizeBytes":3369,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-20T08:01:55.516037Z","sha256":"C767EA2E0E225A010C54B7EEBDBF3908CDD9C56FD2561032FD43CEDF6ABC1473","sizeBytes":1862},"review":null,"source":{"repositoryUrl":"https://github.com/OneWave-AI/claude-skills","path":"fresh-library-docs","license":"MIT","commit":"f317e08649a6584ed4cd0b1ae353f123f4daf791","subtreeSha":"DDBD2C1358F27F19BDB99C5E4732DBBA85307C5A0A6B5D72E13C6F6DD81670E6","lastSyncedAt":"2026-09-27T20:55:05.158052Z"},"reviewedAt":"2026-09-20T08:07:10.265628Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/OneWave-AI/claude-skills/tree/main/fresh-library-docs"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install onewave-ai-claude-skills@llmmart"},{"target":"git","command":"git clone https://github.com/OneWave-AI/claude-skills.git"}]}