skills
AGENTS.md2 starsChanged 5 months agoMITView on GitHub
Instructions for AI agents working in this repo. ~/.cursor/skills is a symlink to skills/. ~/.claude/skills is a real directory whose entries are per-skill symlinks back into skills/ -- Claude Code does not load skills from a symlinked top-level directory, so the per-skill symlinks are how it picks them up while live edits in this repo still take effect. Any skill directory (or symlink) inside skills/ with a SKILL.md is automatically available to agents in both Cursor and Claude Code. Re-create…
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 repository34 other files it gives its agents.
- agent-guide-bootstrapSkill
- benchmarkSkill
- blazing-fast-webSkill
- create-skillSkill
- gh-issue-creatorSkill
- gh-issue-triageSkill
- gh-pr-comment-assistantSkill
- gh-pr-description-updaterSkill
- gh-pr-listSkill
- git-worktreesSkill
- governance-messageSkill
- grid-reviewSkill
- grill-meSkill
- improve-promptSkill
- investigateSkill
- loop-cve-auditSkill
- loop-react-doctorSkill
- meta-ads-bulk-creatorSkill
- miguel-reviewSkill
- office-hoursSkill
- pr-dashboardSkill
- qa-manualSkill
- review-prSkill
- save-and-archiveSkill
- seo-geo-auditSkill
- share-readySkill
- teachSkill
- ui-reviewSkill
- update-branchSkill
- verification-before-completionSkill
- verify-prSkill
- whats-missingSkill
- writing-google-styleSkill
- writing-voiceSkill
The file
Show its rules and text
We split this AGENTS.md into the rules it gives an agent
14 rules. About 0 are common, 1 is distinctive, and 13 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
13
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 33
Create the directory and SKILL.md:
- Very specific: line 64
MANDATORY: Add the skill to
README.md: Every skill registered in install.sh must appear in the README's skill catalog under an … - Very specific: line 71
Run ./install.sh --check and fix anything it reports.
- Very specific: line 73
Commit the new directory, the updated install.sh, README.md, and index.html together in a single commit.
- Distinctive: line 81
No narration comments: don't add comments that just repeat what the code does
- Very specific: line 93
Add an entry to the VENDOR_SKILLS array in install.sh:
- Very specific: line 108
Create symlinks from skills/ to each skill in the vendor repo:
- Very specific: line 122
Run ./install.sh --check and fix anything it reports.
- Very specific: line 124
Commit .gitmodules, the vendor/<name> submodule, the new symlinks, the updated install.sh, README.md, and index.html together.
- Very specific: line 134
When the vendor repo *is* one skill (its SKILL.md sits at the repo root), use .
- Very specific: line 140
Name conflicts: if an own skill and a vendor skill share the same name, the own skill wins.
- Very specific: line 141
Updating vendors: run ./install.sh --update-vendor to pull latest from all vendor submodules and re-link.
- Very specific: line 154
Check whether upstream renamed or split a skill directory (ls -l skills/ shows dangling symlinks).
- Very specific: line 158
Run ./install.sh --check, then commit:
≈ “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
Instructions for AI agents working in this repo.
Repo structure
skills/
├── skills/ # All discoverable skills (own + vendor symlinks)
│ ├── miguel-review/ # Own skill (regular directory)
│ ├── impeccable -> ../vendor/impeccable/.claude/skills/impeccable # Vendor symlink
│ └── ...
├── vendor/ # Third-party skill repos (git submodules)
│ └── impeccable/ # pbakaus/impeccable
├── install.sh # Install script with vendor support + `--check` validator
├── README.md # Public catalog: every skill, badge count, vendor version table
├── index.html # GitHub Pages landing page: mirrors the README catalog
└── AGENTS.md # This file~/.cursor/skills is a symlink to skills/. ~/.claude/skills is a real directory whose entries are per-skill symlinks back into skills/ -- Claude Code does not load skills from a symlinked top-level directory, so the per-skill symlinks are how it picks them up while live edits in this repo still take effect. Any skill directory (or symlink) inside skills/ with a SKILL.md is automatically available to agents in both Cursor and Claude Code.
Re-create the per-skill symlinks if anything drifts:
./install.sh --symlink --all --force --target ~/.claude/skillsAdding a new own skill
Own skills are skills you write and maintain yourself. They live as regular directories under skills/.
- Create the directory and SKILL.md:
skills/<skill-name>/
├── SKILL.md # Required
├── references/ # Optional -- detailed docs the agent reads on demand
│ └── some-reference.md
└── examples.md # Optional- SKILL.md must have YAML frontmatter with
nameanddescription:
---
name: my-skill-name
description: >-
What this skill does and when to use it. Include trigger phrases
so the agent knows when to activate it. Use when the user mentions
X, Y, or Z.
---- Register the skill in
install.shby adding an entry to theSKILLSarray:
SKILLS=(
...existing entries...
"my-skill-name:Short description for the install picker"
)- MANDATORY: Add the skill to
README.md. Every skill registered ininstall.shmust appear in the README's skill catalog under an appropriate###section. If no existing section fits, create a new one. Do not skip this step. The README is the public catalog -- a skill missing from it is effectively undiscoverable. If the skill is adapted from a vendor (e.g. gstack), credit the source in the description with a link. - MANDATORY: Update the two skill counts and
index.html. See Keeping the catalogs in sync. - Run
./install.sh --checkand fix anything it reports. CI runs the same check and fails on any drift. - Commit the new directory, the updated
install.sh,README.md, andindex.htmltogether in a single commit.
Own skill conventions
- Name: lowercase, hyphens, max 64 chars (e.g.
miguel-review,gh-issue-creator) - Description: third person, includes both WHAT it does and WHEN to use it
- SKILL.md body: under 500 lines; use reference files for detailed content
- Reference files: one level deep only (link from SKILL.md, never chain references)
- No narration comments: don't add comments that just repeat what the code does
Adding a new vendor skill set
Vendor skills come from external repos maintained by other people. They live as git submodules under vendor/ with symlinks in skills/.
- Add the submodule:
git submodule add https://github.com/<owner>/<repo> vendor/<name>- Add an entry to the
VENDOR_SKILLSarray ininstall.sh:
VENDOR_SKILLS=(
...existing entries...
"<name>:<owner>/<repo>:<path-to-skills-dir-inside-repo>"
)The format is name:github-repo:skills-path. For example, Impeccable stores its skills in .claude/skills, so its entry is:
"impeccable:pbakaus/impeccable:.claude/skills"- Create symlinks from
skills/to each skill in the vendor repo:
for skill_dir in vendor/<name>/<skills-path>/*/; do
ln -sf "../vendor/<name>/<skills-path>/$(basename "$skill_dir")" "skills/$(basename "$skill_dir")"
done- MANDATORY: Add the vendor skill set to
README.md. Same rule as own skills -- every vendor skill exposed viaskills/must appear in the README catalog, with a link to the upstream repo, and add a row to the "Vendor skills" table (source, version or date, which skills are linked). Do not skip this step. - MANDATORY: Update the two skill counts and
index.html. See Keeping the catalogs in sync. - Run
./install.sh --checkand fix anything it reports. - Commit
.gitmodules, thevendor/<name>submodule, the new symlinks, the updatedinstall.sh,README.md, andindex.htmltogether.
Pinning a subset of a vendor's skills
The VENDOR_SKILLS entry takes an optional 4th field listing which skills to link. Without it, install.sh links
every directory under the vendor's skills path, so when upstream adds skills they silently appear in skills/
(and then fail --check because they are not in the catalogs). Pin the subset explicitly whenever you do not want
all of them, e.g. "emil:emilkowalski/skill:skills:review-animations,emil-design-eng".
When the vendor repo is one skill (its SKILL.md sits at the repo root), use . as the skills path. It is
linked under the vendor name, e.g. "anatomy:wheresryan22/anatomy:." → skills/anatomy -> ../vendor/anatomy.
Vendor skill rules
- Never edit files inside
vendor/. Those are managed by the upstream repo. To make changes, contribute upstream or override with an own skill of the same name (own skills take priority over vendor symlinks). - Name conflicts: if an own skill and a vendor skill share the same name, the own skill wins. The
link_vendor_skillsfunction ininstall.shskips symlink creation when a non-symlink directory already exists. - Updating vendors: run
./install.sh --update-vendorto pull latest from all vendor submodules and re-link.
Updating vendor skills
./install.sh --update-vendorThis runs git submodule update --remote --merge and re-creates the symlinks. After updating:
- Stage the submodule pointers immediately (
git add vendor/*). Every otherinstall.shinvocation runsgit submodule update --init, which resets each submodule to the pointer in the index -- an unstaged bump is silently undone the next time you run the script. - Check whether upstream renamed or split a skill directory (
ls -l skills/shows dangling symlinks). Re-point the symlink and update theVENDOR_SKILLSfilter, the README row, and theindex.htmlcard to the new name. - Refresh the "Vendor skills" table in
README.md(version from the vendor'splugin.jsonorSKILL.mdfrontmatter, ormain (<date>)when there is none) and any version mentioned in that vendor's catalog rows. - Run
./install.sh --check, then commit:
git add vendor/<name> README.md index.html
git commit -m "update <name> to v<new-version>"Keeping the catalogs in sync
Three places must agree with the contents of skills/ (own directories and vendor symlinks). ./install.sh --check
verifies all of them and CI fails on any mismatch, so run it before every commit that touches skills/:
| Place | What to update |
README.md catalog | One row per skill linking skills/<name>/SKILL.md (🟦 own, 🟧 vendor), under a ### section |
README.md badge | badge/skills-<N>-... where N = number of entries in skills/ |
index.html | One <div class="skill"> card per skill (same sections and order as the README) and the <p class="tagline">N agent skills ... count |
The check reports, per skill, which file is missing it, and flags catalog entries whose directory no longer exists.
Key files
| File | Purpose |
install.sh | Installs skills to ~/.cursor/skills or ~/.claude/skills. Contains the SKILLS and VENDOR_SKILLS registries. Pass --symlink to link skills instead of copying them, which is how ~/.claude/skills is wired. --check validates frontmatter, the SKILLS array, and both catalogs. |
README.md | Public catalog, skills badge, and vendor version table. Must list every skill in skills/. |
index.html | GitHub Pages landing page. Must list every skill in skills/, with the same count in its tagline. |
.gitmodules | Git submodule definitions for vendor skills |
skills/ | The single directory both platforms read from |
vendor/ | Git submodules for third-party skill repos |
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.

