agentleFS
anandartinanandartin/celestial-skills/skills/source-grounded-development-engineering/AGENTS.md

celestial-skills / source-grounded-development-engineering

AGENTS.md1 starsChanged 18 days agoApache-2.0View on GitHub

Check every framework and library decision against the official documentation for the exact version installed, so code uses APIs that actually exist and behave as written. _Generated from the Celestial engineering practice “Sour

The file

We split this AGENTS.md into the rules it gives an agent

5 rules. About 0 are common, 5 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Check every framework and library decision against the official documentation for the exact version installed, so code uses APIs that …

    line 3
  2. Distinctive:

    Never write an option, flag, hook or method name you have not seen in the docs or type definitions for the installed version.

    line 24
  3. Distinctive:

    Treat the lockfile as the source of truth for versions, not the manifest, memory or the latest release.

    line 25
  4. Distinctive:

    Prefer the pattern the codebase already uses for an API over a newer one you know, unless the docs mark the existing one deprecated.

    line 26
  5. Distinctive:

    When docs and observed behaviour disagree, write a failing test that shows the difference and note it in the pull request.

    line 28

≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
AGENTS.md

AGENTS.md — Source-grounded development

Check every framework and library decision against the official documentation for the exact version installed, so code uses APIs that actually exist and behave as written.

How to do it

  1. Read the installed version — Open the lockfile (package-lock.json, pnpm-lock.yaml, poetry.lock, Cargo.lock, go.sum, Gemfile.lock) and note the exact resolved version of each library you will touch. The manifest range is not enough; the lockfile is what runs.
  2. Find the matching docs — Open the official documentation for that major and minor version. Use the version switcher, a versioned URL or the docs bundled in the installed package. Avoid tutorials, forum answers and generated summaries as the primary source.
  3. Look for existing usage — Search the repository for how the project already calls this API. If a pattern exists and is still supported by the docs, follow it rather than introducing a second way.
  4. Check for version changes — Read the changelog or migration guide entries between the version you remember and the version installed. Note renamed options, removed functions, new defaults and deprecations that affect your change.
  5. Verify each option and flag — For every function argument, config key, CLI flag and environment variable you write, confirm it appears in the docs or type definitions for this version. If you cannot find it, do not use it.
  6. Cite non-obvious decisions — Where the behaviour is surprising or the choice is not the first one a reader would expect, add a short code comment or pull request note with the doc page title and version.
  7. Flag what stays unverified — If the docs are silent or ambiguous, say so explicitly in the pull request and add a test that pins the behaviour you rely on, instead of presenting a guess as fact.
  8. Prove it runs — Run the type checker, the tests and the code path itself against the installed version. A compiling call with a wrong option can still fail at runtime or be silently ignored.

Checklist (before a pull request)

  • The exact installed version of each touched library was read from the lockfile
  • Every option, flag and config key used appears in the docs or types for that version
  • Changes between remembered and installed versions were checked in the changelog
  • New code follows the project's existing pattern for the same API, or the pull request says why not
  • Non-obvious choices carry a citation to the doc page and version
  • Anything unverified is listed in the pull request and covered by a test

Rules

  • Never write an option, flag, hook or method name you have not seen in the docs or type definitions for the installed version. (Invented options are often ignored silently, so the bug shows up later and far from its cause.)
  • Treat the lockfile as the source of truth for versions, not the manifest, memory or the latest release. (A caret range can resolve to a different minor version than the one you assume.)
  • Prefer the pattern the codebase already uses for an API over a newer one you know, unless the docs mark the existing one deprecated. (Two ways of doing the same thing doubles the review and migration cost.)
  • Confirm security-relevant defaults (escaping, cookie flags, CORS, TLS verification) in the docs for this version before relying on them. (Defaults change between major versions and a wrong assumption opens a hole quietly.)
  • When docs and observed behaviour disagree, write a failing test that shows the difference and note it in the pull request. (It turns a hunch into evidence and protects the next upgrade.)

Checks

GateToolThresholdWhen
Unverified APIs declaredPull request template checkPull requests that add or change third-party API calls include a 'Docs checked' section listing library, version and page, or 'none unverified'Every pull request

Generated from the Celestial engineering practice “Source-grounded development”.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.