docs-freshness
Skill0 starsChanged 50 days agoUnlicenseView on GitHub
Stop writing code against APIs that no longer exist. Fetch version-specific library documentation before using an unfamiliar or fast-moving dependency, prefer `--help` and allowlisted doc URLs over guessing from memory, and never install a package name the model produced from memory without checking it exists. Use when writing code against a third-party library, when an API call fails unexpectedly, or when about to add a dependency.
In this repository10 other files it gives its agents.
- skill-starter-kitSkill
- browser-verifySkill
- cloud-clisSkill
- consistencySkill
- github-mcpSkill
- guardrailsSkill
- lsp-pluginsSkill
- security-gateSkill
- taste-codeSkill
- verify-gateSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 3 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Every other component in the kit reasons about *your* material — Supermemory your history, Graphify your code, LSP your types, the review …
- Very specific: line 48
Does
taste-coderule 5 allow it?: Prefer the standard library over a package for something stdlib does in a line. - Distinctive: line 50
Does the package exist, and is it the one you meant?: If *the agent proposed the name* rather than the user naming it, verify before …
- Distinctive: line 68
Use the lowest rung on the ladder that answers it.
- Very specific: line 70
Write the code. Cite the source in a comment only when the behavior is non-obvious (taste-code rule 9 — no comment fluff).
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Docs Freshness: the Model's Memory Is Older Than Your Lockfile
Every other component in the kit reasons about your material — Supermemory your history,
Graphify your code, LSP your types, the review layers your diff. None of them knows what
shipped in a third-party library last month. The model's weights are stale relative to your
package.json, and the failure modes are specific:
- Removed or renamed APIs — code that was correct two versions ago.
- Semantically wrong but valid usage — compiles, typechecks, behaves wrong. LSP cannot catch this; it only knows the signature exists.
- Invented packages — the model recommends a plausible name that never existed, and an attacker has pre-registered it (slopsquatting). This is the one where stale knowledge has a supply-chain payload.
Scope: external library knowledge. Not your codebase (LSP + grep), not general web research.
The Ladder — cheapest first
Reach for the lowest rung that answers the question. Each rung up costs more context.
--help/man/<cmd> help. The most context-efficient source that exists, always matches the installed version, and works for any CLI the model has never seen:Use 'foo --help' to learn the foo tool.- The installed source.
node_modules/<pkg>, the venv's package dir,go doc. This is definitionally the version you are running. - An allowlisted doc URL. Paste or fetch the specific page. Allowlist the domains you hit
often (
/permissions) so it stops prompting. llms.txt. Many projects now publish an agent-oriented digest at/llms.txt— try it before scraping a docs site.- Context7 MCP — version-specific docs and examples on demand:
/plugin install context7@claude-plugins-official. Enable per-project, for projects with fast-moving or unfamiliar dependencies. It is in Anthropic's official marketplace, but a standing MCP server is a standing context tax — tool definitions are paid every session whether or not you use them. - DeepWiki (
https://mcp.deepwiki.com/mcp, free, no auth) for architectural questions about a public repo — "how does library X actually implement Y" — where Context7 answers API-reference questions. Public indexed repos only.
Before Adding Any Dependency
Two questions, in order:
- Does
taste-coderule 5 allow it? Prefer the standard library over a package for something stdlib does in a line. Most "I need a library for this" is wrong. - Does the package exist, and is it the one you meant? If the agent proposed the name rather than the user naming it, verify before installing:
npm view <pkg> # real? how recently published? what repo?
pip index versions <pkg>Red flags: no repository link, published days ago, download counts near zero, a name one
character off a popular package. On any of those — stop and confirm with the user. The
deterministic form of this check (npm view <pkg> time.created repository.url, age > 7 days,
plus the package manager's own release-age cooldown) is security-gate layer 5; run
osv-scanner scan source -r . (layer 4) after the install lands.
Procedure
- About to use an unfamiliar or fast-moving API? Get the current signature before writing the call, not after the error.
- Use the lowest rung on the ladder that answers it.
- Anchor to the installed version — read it from the lockfile, not from assumption.
- Write the code. Cite the source in a comment only when the behavior is non-obvious
(
taste-coderule 9 — no comment fluff). - An API call fails unexpectedly → suspect stale knowledge before suspecting your own logic. Re-check the current signature first; it is a cheaper hypothesis than a debugging session.
Pitfalls
- Confident wrong recall. The model does not signal uncertainty about an API it "remembers". Version-sensitive code deserves a check even when nothing feels uncertain.
- Reading docs for the wrong version. Latest-on-the-website ≠ what your lockfile pins. Anchor to the installed version, every time.
- Enabling every docs MCP. One is enough. Context7 covers public library docs; adding a second overlapping server buys nothing and costs context in every session.
- Fetching a whole docs site. Pull the specific page or the
llms.txt, not the sitemap. - Trusting a search-result snippet over the installed source. Rung 2 beats rung 3 whenever it can answer.
Works with →
security-gate— this skill asks "is it real and the one I meant"; layer 5 asks "is it old enough and does it run scripts". Same moment, in that order, before every install.taste-coderule 5 comes first: most "I need a library" is wrong.lsp-pluginsverifies the signature compiles; this skill verifies it is the current API. Both are needed for fast-moving dependencies.graphify(--wiki/DeepWiki) answers architectural questions about a dependency; Context7 answers reference questions.
Verification
foo --helpoutput appears in the transcript before code usingfoois written.- For a pinned dependency, the version consulted matches the lockfile.
- A deliberately fabricated package name fails the
npm viewcheck instead of being installed. - Context7 (if enabled) returns docs for the pinned version, not just the latest.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

