skills
CLAUDE.md28 starsChanged 6 months agoApache-2.0View on GitHub
A plugin marketplace of agent skills for AdaCore tools. The whole toolchain ships as a single adacore plugin that bundles five skills (alire, gnatdoc, gnatfuzz, gnatprove, gnattest). Users install once and get the full set of Ada/SPARK skills. The three marketplaces and three per-plugin manifests exist because each agent looks for its config at a different path. The SKILL.md content itself follows the Agent Skills open standard and is shared across all agents — only the surrounding manifest files are…
In this repositoryOne other file it gives its agents.
- AGENTS.mdAGENTS.md
The file
We split this CLAUDE.md into the rules it gives an agent
8 rules. About 0 are common, 2 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 48
Keep the three plugin.json files under plugins/adacore/ in sync — they are content-identical mirrors.
- Very specific: line 59
When asked to work on a given skill, read the skill's README.md (e.g.
- Very specific: line 64
Add the skill at plugins/adacore/skills/<tool-name>/SKILL.md with YAML frontmatter (name, description, license, version).
- Very specific: line 72
If needed, add focused reference files under plugins/adacore/skills/<tool-name>/references/ — one file per topic area.
- Very specific: line 77
Update the description in all three plugins/adacore/.*/plugin.json files to mention the new tool.
- Very specific: line 79
Update the description and tags in the three marketplace catalogs (.claude-plugin/marketplace.json, .agents/plugins/marketplace.json, …
- Distinctive: line 111
Always name a release; never write "newer versions" or "older versions".
- Distinctive: line 120
Verifying a release: check the tool's release branches for the earliest one that documents the feature (UG/LRM) and, for console output, …
≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.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.
Files
CLAUDE.md
What This Repository Is
A plugin marketplace of agent skills for AdaCore tools. The whole
toolchain ships as a single adacore plugin that bundles five skills
(alire, gnatdoc, gnatfuzz, gnatprove, gnattest). Users install once and get
the full set of Ada/SPARK skills.
Repository Structure
skills/
├── .claude-plugin/
│ └── marketplace.json # Claude Code marketplace catalog
├── .agents/plugins/
│ └── marketplace.json # OpenAI Codex marketplace catalog
├── .cursor-plugin/
│ └── marketplace.json # Cursor marketplace catalog
├── plugins/
│ └── adacore/
│ ├── .claude-plugin/
│ │ └── plugin.json # Per-plugin manifest (Claude Code)
│ ├── .codex-plugin/
│ │ └── plugin.json # Per-plugin manifest (Codex; mirror of above)
│ ├── .cursor-plugin/
│ │ └── plugin.json # Per-plugin manifest (Cursor; mirror of above)
│ └── skills/
│ └── <skill-name>/
│ ├── SKILL.md # Mandatory entry point for the skill
│ ├── README.md # User-facing overview (optional)
│ └── references/ # Topic-focused reference guides
├── CLAUDE.md
└── README.mdThe three marketplaces and three per-plugin manifests exist because each
agent looks for its config at a different path. The SKILL.md content
itself follows the Agent Skills open standard and
is shared across all agents — only the surrounding manifest files are
duplicated.
Source path conventions differ slightly between marketplace formats:
- Claude Code:
"source": "./plugins/adacore" - Codex:
"source": "./plugins/adacore" - Cursor:
"source": "plugins/adacore"(no leading./)
Keep the three plugin.json files under plugins/adacore/ in sync — they
are content-identical mirrors. The marketplace entries differ structurally:
Codex requires policy.installation, policy.authentication, and
category per entry; Cursor and Claude Code use description, category,
and tags.
GitHub Copilot is not listed above because it natively reads
.claude-plugin/plugin.json and .claude-plugin/marketplace.json — no
Copilot-specific files are needed. Users add the marketplace with
copilot plugin marketplace add <owner>/<repo>.
When asked to work on a given skill, read the skill's README.md
(e.g. plugins/adacore/skills/gnatprove/README.md) for more information.
Adding a New Skill
- Add the skill at
plugins/adacore/skills/<tool-name>/SKILL.mdwith YAML frontmatter (name, description, license, version). Keep it to what a frontier agent would get wrong or not know to look for (features newer than its training data, results that look like success but are not, unsound defaults), and link the tool's manuals for everything else.plugins/adacore/skills/gnatprove/SKILL.mdis the model. Thedescriptionsays when to load the skill; write it for the task the agent is starting (e.g. writing SPARK), not only for running the tool. - If needed, add focused reference files under
plugins/adacore/skills/<tool-name>/references/— one file per topic area. - Optionally add
plugins/adacore/skills/<tool-name>/README.mdwith a user-facing description and any guidance for agents modifying the skill. - Update the
descriptionin all threeplugins/adacore/.*/plugin.jsonfiles to mention the new tool. - Update the
descriptionandtagsin the three marketplace catalogs (.claude-plugin/marketplace.json,.agents/plugins/marketplace.json,.cursor-plugin/marketplace.json) to mention the new tool. - Bump the plugin
versionin all threeplugin.jsonfiles in lockstep so existing users receive the update.
Versioning
The adacore plugin has a single version field that applies to the whole
bundle, declared in all three plugin.json files (kept in sync). Bump it
on every release; Claude Code, Codex, and Cursor only deliver updates to
users when the version string changes.
Individual SKILL.md files may also carry a metadata.version in their
frontmatter; these are advisory and document the maturity of an individual
skill's content. Plugin update detection is driven by the plugin-level
version only.
Version-Specific Content
A skill covers a range of tool releases. Write it for the current release and mark only what needs a newer release than the oldest one covered.
- State the covered range and the marker rules once per skill, in the
reference file that explains how to read the tool's version (for
gnatprove,
references/versions.md), and link to it fromSKILL.md. Include any mapping between release lines (SPARK FSF N has all of Pro N+10.0 and part of Pro N+11, so a marker's FSF release is the first that certainly has the feature; a wavefront27.0wcounts as Pro 27). - Marker format, inline next to the material:
**Requires:** SPARK Pro 26 / FSF 16 or later.For a changed behavior,**Before SPARK Pro 26:** .... Always give a fallback for older releases. Always name a release; never write "newer versions" or "older versions". - A large feature that needs a newer release gets its own reference
file. Put the marker at the top of the file and on its row in the
SKILL.mdroadmap, so agents on older releases never load it. - Command-line flags: the tool's
--helpis authoritative; do not mark each flag. - Support window: for gnatprove, SPARK Pro 25+ / FSF 15+. When a
window moves, find markers with
grep -rn 'Requires:\|Before SPARK', delete those now below the floor, and make their text unconditional. - Verifying a release: check the tool's release branches for the earliest one that documents the feature (UG/LRM) and, for console output, the earliest whose source prints the string. Record findings on the issue.
- The plugin
versionis independent of tool versions (see Versioning).
Validating Changes
From the repo root, validate the Claude Code marketplace:
claude plugin validate .To validate the plugin's manifest and skill frontmatter:
claude plugin validate ./plugins/adacoreDoes 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.

