skills
AGENTS.md2 starsChanged 44 days agoMITView on GitHub
This repository holds agent skills in the open Agent Skills format, grouped into categories that install as one unit. Read this file first. Open the linked files only when the task needs them. Skill format - Frontmatter has exactly name, description, license, each a single key: value line. No other fields, no block scalars, no lists. - name equals the directory name, kebab-case, unique across the repository. - description says what the skill does and when to use it, names…
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,774 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository27 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- decision-recordsSkill
- release-processSkill
- marginal-gainsSkill
- curating-product-requirementsSkill
- designing-system-architectureSkill
- planning-product-roadmapsSkill
- reconciling-product-contextSkill
- shaping-betsSkill
- structuring-product-contextSkill
- building-html-prototypesSkill
- curating-design-systemsSkill
- designing-ux-flowsSkill
- exploring-visual-directionsSkill
- guiding-product-discoverySkill
- preparing-implementation-handoffsSkill
- shaping-product-briefsSkill
- brainstorming-solutionsSkill
- defining-verificationSkill
- implementing-plansSkill
- planning-implementationSkill
- reviewing-code-changesSkill
- running-implementation-loopsSkill
- shipping-pull-requestsSkill
- specifying-work-itemsSkill
- verifying-implementationSkill
- improving-promptsSkill
The file
We split this AGENTS.md into the rules it gives an agent
4 rules. About 0 are common, 2 are distinctive, and 2 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.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 32
Every category has a plugin entry in marketplace.json with the same name, listing all of its skills as ./skills/<category>/<skill> paths.
- Distinctive: line 39
Never commit, push, tag, open a pull request, or publish without explicit confirmation in the current conversation.
- Distinctive: line 40
Never rewrite a released changelog section or an accepted decision record.
- Very specific: line 51
Every version equals the newest release in its changelog: 0.0.0 until the first release, which is 0.1.0.
≈ “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.
Files
AGENTS.md
This repository holds agent skills in the open Agent Skills format, grouped into categories that install as one unit. Read this file first. Open the linked files only when the task needs them.
Map
| Path | What it is |
skills/<category>/<skill>/ | One skill: SKILL.md, optional references/ and templates/ |
skills/<category>/CHANGELOG.md | The plugin's changelog, Keep a Changelog 2.0.0. Every user-visible change to the category gets an entry under [Unreleased] |
skills/<category>/README.md | Optional: the plugin's landing page, which GitHub shows at the category's directory |
visuals/<category>/ | A category README's images: one HTML source per visual and its rendered -dark.png and -light.png. Regenerate with uv run scripts/render_visuals.py <category>, as visuals/README.md explains |
.claude-plugin/marketplace.json | One plugin per category, read by Claude Code and Copilot CLI. Carries each plugin's version and the marketplace version |
decisions/README.md | Index of decision records. Read it before changing structure or conventions |
CHANGELOG.md | The marketplace and repository changelog: plugins added, renamed or removed, install routes, release assets, tooling, and a line for each plugin release |
scripts/validate.py | Enforces the mechanical rules below; it cannot judge commit messages, changelog wording, or whether an entry was added. Run it before you finish |
.github/workflows/ | validate.yml on push and pull request, release.yml on vX.Y.Z and <plugin>--vX.Y.Z tags or run by hand with a tag |
Rules
Skill format
- Frontmatter has exactly
name,description,license, each a singlekey: valueline. No other fields, no block scalars, no lists. nameequals the directory name, kebab-case, unique across the repository.descriptionsays what the skill does and when to use it, names concrete artifacts rather than bare verbs, fits on one line under 1024 characters.- A skill is self-contained: links stay inside its directory, and nothing in it assumes a particular harness, install path, or environment variable.
- A template that two skills need unchanged is copied byte for byte into each skill and listed in
MIRRORSinscripts/validate.py, which fails when a copy differs from its source (0019). Change the source and every copy in the same commit, together with each skill's text that describes the template's inputs, results and limits, which the comment on itsMIRRORSentry names. SKILL.mdstays under 500 lines. Depth goes inreferences/, copyable files intemplates/.
Layout
SKILL.mdlives only atskills/<category>/<skill>/SKILL.md. One skill belongs to one category.- A category directory holds its skill directories, one
CHANGELOG.md, and optionally oneREADME.md, nothing else. The README's images live invisuals/<category>/, never in the category. - Every category has a plugin entry in
marketplace.jsonwith the same name, listing all of its skills as./skills/<category>/<skill>paths.
Commits and changelogs
- Conventional Commits, description in the imperative mood, lowercase, no trailing period. Scope is the category or the skill:
feat(foundations): add …,fix(release-process): correct …. A breaking change carries!and aBREAKING CHANGE:footer. Renaming or removing a skill, or moving it out of its category, is breaking for its plugin; renaming or removing a category is breaking for the marketplace:feat(foundations)!: …. - Add the changelog entry under
[Unreleased]in the same change, written for users, not from the commit subject. Anything inside a category, and that plugin's own entry inmarketplace.json, goes inskills/<category>/CHANGELOG.md. The plugin catalog (plugins added, renamed, removed), install routes, release assets and repository tooling (validator, CI, decisions, evaluations) go in the rootCHANGELOG.md. A change that spans both gets an entry in each. The root changelog's lines for plugin releases are written in the release commit, see Release.
Conduct
- Never commit, push, tag, open a pull request, or publish without explicit confirmation in the current conversation.
- Never rewrite a released changelog section or an accepted decision record. Add an entry, or supersede the record.
Release
Plugins and the marketplace are versioned independently, and every plugin release is also a marketplace release (0011). Cut a release with the release-process skill in skills/foundations/release-process/, in its independent-versions mode. The components are the plugins, with changelogs at skills/{component}/CHANGELOG.md, and the root is the marketplace.
| Stream | Changelog | Version file | Tag |
| A plugin | skills/<category>/CHANGELOG.md | its entry's version in .claude-plugin/marketplace.json | <category>--vX.Y.Z |
| The marketplace | CHANGELOG.md | metadata.version in .claude-plugin/marketplace.json | vX.Y.Z |
- Every version equals the newest release in its changelog:
0.0.0until the first release, which is0.1.0. Before 1.0.0 a breaking change bumps the minor version. - Plugin bumps: patch for fixes and wording in its skills, minor for a new skill, reference or template, major for renaming, removing or moving out a skill.
- Marketplace bumps: patch for catalog fixes and for every plugin release, minor for a plugin added or a new install route or asset type, major for a plugin renamed or removed or a changed marketplace name or install path.
- Every plugin release is also a marketplace release, in the same release commit. Releasing several plugins at once still makes one marketplace release. Its bump is the highest one its changes call for: patch for the plugin releases, raised to minor or major by unreleased marketplace entries that call for it, which ship with it.
- The marketplace section lists the plugins under
### Changed, as- Plugins released with this version:with one nested bullet each:`<category>` [X.Y.Z](https://github.com/theultimate-dev/skills/releases/tag/<category>--vX.Y.Z):and one line for users on what the release gives them. A plugin release cut without a marketplace release is listed under[Unreleased]and ships with the next one. The validator and the release workflow enforce this. - A release commit,
chore(release): …, touches only the released changelogs and the matching versions, with one annotated tag per released stream.maintakes changes only through pull requests: merge the release commit's pull request with a merge commit, then push the plugin tags, then the marketplace tag, on that commit, by name and at most three per push; GitHub runs no workflow for larger tag pushes.
How to
Add a skill: check the name is free outside this repository too, on skills.sh and in widely installed packs, because flat installers put skills side by side by name. Then create skills/<category>/<name>/SKILL.md, add its path to the category's skills[] in marketplace.json, add it to the README categories table, add an entry to skills/<category>/CHANGELOG.md, run python3 scripts/validate.py.
Add a category: new directory under skills/ with a CHANGELOG.md whose [Unreleased] links https://github.com/theultimate-dev/skills/commits/main/skills/<category>, new plugin entry in marketplace.json with the same name and "version": "0.0.0", README row, an entry in both the new and the root changelog, and a decision record when the split changes how users install.
Rename, move or remove a skill: breaking for its plugin, and a move is minor for the plugin it joins. Update marketplace.json, the README table, and the changelog of each affected plugin.
Rename or remove a category: breaking for the marketplace. Add a renames entry to marketplace.json that maps the old name to the new one, or to null. A renamed category starts a new CHANGELOG.md whose first entry links the old changelog at its last tag. Log it in the root changelog.
Record a decision: use the decision-records skill in skills/foundations/decision-records/. Cut a release: see Release.
Dogfood: Claude Code reads this checkout as the theultimate-dev marketplace, the README's Route A pointed at the working tree. Set it up once from the repository root with claude plugin marketplace add "$PWD" and claude plugin install <plugin>@theultimate-dev for each plugin. Edits then apply at the next session or /reload-plugins, and every Claude Code session on the machine follows the branch checked out here. To go back to the releases, remove theultimate-dev from extraKnownMarketplaces in ~/.claude/settings.json, then run claude plugin marketplace add theultimate-dev/skills. Other agents get a copy through Route B: npx skills add . -g -a codex pi -y copies the skills into ~/.agents/skills, which Codex and Pi read. Re-run it after each edit. Name only the agents you use, never claude-code, or Claude Code lists every skill twice.
See also: README.md · CONTRIBUTING.md · SECURITY.md
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.

