ai-agent-skills
AGENTS.md20 starsChanged 27 days agoMITView on GitHub
This is a curated collection of skills for AI Agents. Skills are packaged instructions and scripts that extend your coding agents capabilities. Run bash validate-skills.sh before every commit. It checks each skill against the spec and runs scripts/validate_repo.py (description rules, example and eval files, and that the files below stay in sync). When you add or rename a skill, keep these in sync: The README Skills table has a right-hand Registry column (generic label—not “ClawHub” in the header). Each cell…
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,700 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 repository17 other files it gives its agents.
- analytical-thinkingSkill
- creative-thinkingSkill
- critical-thinkingSkill
- design-thinkingSkill
- ethical-thinkingSkill
- fermi-estimationSkill
- first-principles-thinkingSkill
- five-whysSkill
- lateral-thinkingSkill
- pre-mortemSkill
- prioritizationSkill
- six-thinking-hatsSkill
- strategic-thinkingSkill
- swot-analysisSkill
- systems-thinkingSkill
- thinking-method-selectorSkill
- tradeoff-analysisSkill
The file
Show its rules and text
We split this AGENTS.md into the rules it gives an agent
36 rules. About 0 are common, 12 are distinctive, and 24 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈12
Distinctive · estimate
This author's own choices. Worth a look.
24
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 28
Run bash validate-skills.sh before every commit.
- Distinctive: line 30
When you add or rename a skill, keep these in sync:
- Very specific: line 59
Add a new row to clawhub_slug_map whenever you publish a skill to ClawHub, then add the matching Registry badge in the README table.
- Very specific: line 65
Check state with python3 scripts/publish_clawhub.py plan.
- Very specific: line 66
OpenClaw bundle on ClawHub: keep openclaw.plugin.json (id = bundle name, name = display name Thinking Methods) in sync via bump_version.py.
- Very specific: line 67
Do not rely on clawhub inspect <slug> to decide whether a slug exists.
- Very specific: line 73
Create skills/{skill-name}/SKILL.md with the required frontmatter (see below).
- Very specific: line 74
Add skills/{skill-name}/references/example.md (one realistic worked case, with invented inputs labeled as such).
- Very specific: line 75
Add evals/{skill-name}.json (see evals/README.md).
- Distinctive: line 77
Add a row to the Skills table with a Registry badge (see README registry badges (ClawHub)).
- Very specific: line 78
Add the skill to clawhub_slug_map in scripts/publish_clawhub.py if it is published on ClawHub.
- Distinctive: line 82
Follow the examples already in the README.
- Very specific: line 84
Add a matching entry to the plugins array (name, source, description, and skills).
- Very specific: line 85
Ensure name matches the skill directory and the name field in SKILL.md frontmatter so /plugin install resolves correctly.
- Very specific: line 86
Add the skill name to keywords in .claude-plugin/plugin.json.
- Very specific: line 87
If the skill is a new thinking method, add it to the thinking-method-selector table and fallback outlines.
- Very specific: line 115
When you ship meaningful updates to a skill, bump metadata.version to the release date as YYYY.M.D (for example 2026.10.5).
- Very specific: line 120
Must not start or end with -.
- Very specific: line 121
Must not contain consecutive hyphens (--).
- Distinctive: line 122
Must match the parent directory name.
- Very specific: line 128
Write the description so it works at a glance:
- Very specific: line 138
Put trigger guidance in frontmatter description, not only in the body—the body loads after the skill is already chosen.
- Very specific: line 142
Write concise, imperative instructions.
- Distinctive: line 146
When to use, with a Skip line.
- Distinctive: line 147
Before you start (state focus and pass, gather first, light path).
- Distinctive: line 160
Use minimal, consistent tagging.
- Distinctive: line 162
When a rule forbids something in a phase (e.g.
- Distinctive: line 166
Prefer one plain sentence on strength of case or uncertainty over ordinal scales (e.g.
- Distinctive: line 167
When a named workflow step could be mistaken for generic Setup, state explicitly whether Setup satisfies that step or a separate labeled …
- Very specific: line 168
Keep every skill self-contained.
- Very specific: line 176
If you add references/*.md, use a consistent, scannable format.
- Very specific: line 200
Check the CLI's own schema.
- Very specific: line 201
Run bash validate-skills.sh (offline manifest checks) and bash scripts/test_installs.sh <cli> (real install, needs the CLI on PATH).
- Distinctive: line 202
Never pipe a download into a shell in any file, including CI and docs.
- Distinctive: line 203
Update the CLI's guide in docs/ and the README row.
- Very specific: line 207
When you ship a repository semver release (distinct from per-skill metadata.version in SKILL.md, documented under Writing SKILL.md files …
≈ “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 file provides guidance to AI coding agents (Claude Code, Cursor, Copilot, Antigravity, etc.) when working with code in this repository.
Repository overview
This is a curated collection of skills for AI Agents. Skills are packaged instructions and scripts that extend your coding agents capabilities.
Repository structure
skills/
{skill-name}/
SKILL.md
references/
example.md # required; one worked example
evals/
{skill-name}.json # required; trigger eval queries (see evals/README.md)
scripts/ # publish_clawhub.py (ClawHub sync), validate_repo.py (repo checks), test_installs.sh (real install tests), bump_version.py
docs/ # one install guide per CLI
.claude-plugin/ # Claude Code plugin + marketplace metadata (also read by Copilot CLI, Qwen, Antigravity, Grok, Devin, Muse)
.agents/ .codex-plugin/ .cursor-plugin/ .kimi-plugin/ # Codex/Droid, Codex, Cursor, Kimi manifests
plugin.json gemini-extension.json package.json index.js # Agent Plugins 1.0, Gemini, OpenCode
.github/workflows/ # validation on PRs, install tests, release automation (GitHub Releases on version tags)Run bash validate-skills.sh before every commit. It checks each skill against the spec and runs scripts/validate_repo.py (description rules, example and eval files, and that the files below stay in sync).
When you add or rename a skill, keep these in sync:
- README.md — Skills table (including Registry badge column), Installation section, and footer ClawHub link when applicable.
- evals/ —
evals/{skill-name}.jsonwith 8 should-trigger and 8 near-miss should-not-trigger queries. - scripts/publish_clawhub.py —
clawhub_slug_mapentry (and publish when listing on ClawHub). - .claude-plugin/marketplace.json —
pluginscatalog for Claude Code. - Claude Code install line:
/plugin install {skill-name}@ai-agent-skills. Theai-agent-skillsbundle plugin picks up new skills fromskills/by itself, and the other CLI manifests point atskills/, so they need no per-skill edit. - skills.sh install line:
npx skills add ysskrishna/ai-agent-skills --skill {skill-name}. - GitHub CLI install line:
gh skill install ysskrishna/ai-agent-skills {skill-name}.
README registry badges (ClawHub)
The README Skills table has a right-hand Registry column (generic label—not “ClawHub” in the header). Each cell is a shields.io badge linking to that skill’s public listing on ClawHub.
Per-skill badge (copy pattern; substitute {clawhub-slug}):
[](https://clawhub.ai/ysskrishna/{clawhub-slug})Listing URL: https://clawhub.ai/ysskrishna/{clawhub-slug}
Slug source: clawhub_slug_map in scripts/publish_clawhub.py. Keys are skill directory names under skills/; values are the ClawHub slug. When they match, use the directory name as the slug. Remapped today:
| Directory | ClawHub slug |
six-thinking-hats | six-hats-thinking |
first-principles-thinking | first-principles-reasoning |
Add a new row to clawhub_slug_map whenever you publish a skill to ClawHub, then add the matching Registry badge in the README table.
ClawHub slugs are per owner
Several owners can publish the same slug, so a slug already in use does not block publishing under ysskrishna. The cost is ambiguity for users (clawhub inspect <slug> and likely install report AMBIGUOUS_SKILL_SLUG). Policy: use the natural skill name as the slug, accept collisions, and remap only when a name is unusable.
- Check state with
python3 scripts/publish_clawhub.py plan. It reads my version through the registry'sownerparameter and lists other owners of the same slug. - OpenClaw bundle on ClawHub: keep
openclaw.plugin.json(id= bundle name,name= display name Thinking Methods) in sync viabump_version.py. Publish withpython3 scripts/publish_clawhub.py package plan/package publish(clawhub package publish, package name@ysskrishna/ai-agent-skills). Respect.clawhubignorefor uploads. - Do not rely on
clawhub inspect <slug>to decide whether a slug exists. It fails on ambiguous slugs and can miss skills thatclawhub searchfinds. Use inspect and search together when scouting a new name.
Creating a new skill
Skills follow the Agent Skills Open Standard.
- Create
skills/{skill-name}/SKILL.mdwith the required frontmatter (see below). Keep it at or under 120 lines. - Add
skills/{skill-name}/references/example.md(one realistic worked case, with invented inputs labeled as such). Add other deep-dive files underreferences/and link them fromSKILL.mdinstead of inflating the main file. - Add
evals/{skill-name}.json(see evals/README.md). - Register the skill in README.md.
- Add a row to the Skills table with a Registry badge (see README registry badges (ClawHub)).
- Add the skill to
clawhub_slug_mapin scripts/publish_clawhub.py if it is published on ClawHub. - Extend Installation with a Claude Code line:
/plugin install {skill-name}@ai-agent-skills. - Extend Installation with a skills.sh line:
npx skills add ysskrishna/ai-agent-skills --skill {skill-name}. - Extend Installation with a GitHub CLI line:
gh skill install ysskrishna/ai-agent-skills {skill-name}. - Follow the examples already in the README.
- Register the skill in .claude-plugin/marketplace.json.
- Add a matching entry to the
pluginsarray (name,source,description, andskills). Thedescriptionmust equal theSKILL.mddescription exactly. - Ensure
namematches the skill directory and thenamefield inSKILL.mdfrontmatter so/plugin installresolves correctly.
- Add a matching entry to the
- Add the skill name to
keywordsin .claude-plugin/plugin.json. - If the skill is a new thinking method, add it to the
thinking-method-selectortable and fallback outlines. - Run
bash validate-skills.sh.
Writing SKILL.md files
SKILL.md is YAML frontmatter followed by Markdown instructions.
Frontmatter (required)
---
name: skill-name
description: >
Use for <method name>, or when the user <situation>: "<trigger phrase>",
"<trigger phrase>", "<trigger phrase>". <What it does in one clause>.
Skip for <task shapes>.
---| Field | Required | Constraints |
name | Yes | 1–64 chars. Lowercase alphanumeric and hyphens only. Must match the directory name. |
description | Yes | 1–1024 chars by the spec; this repo targets 200–350. Primary trigger signal: imperative when-to-use, user intent, concrete triggers (see Description field below). |
license | No | License name or reference to a bundled license file. |
metadata | No | Arbitrary key-value pairs (e.g. author, version). |
When you ship meaningful updates to a skill, bump metadata.version to the release date as YYYY.M.D (for example 2026.10.5). scripts/publish_clawhub.py compares it with the ClawHub version and publishes when they differ.
Name field rules
- Lowercase letters, numbers, and hyphens only (
a-z,0-9,-). - Must not start or end with
-. - Must not contain consecutive hyphens (
--). - Must match the parent directory name.
Description field (critical)
The description is how agents decide whether to activate the skill. See Optimizing skill descriptions for trigger testing and iteration.
Write the description so it works at a glance:
- Imperative open — start with “Use …” (validated: the description must start with
Use). The agent is choosing an action; tell it when to load this skill, not only what the skill contains. - Method name in sentence one — people who name the method (“critical thinking”, “six thinking hats”) must still match. Then the situation.
- User situation and quoted phrases — most users never name a method. List the situations and 3–4 realistic phrases ("what could go wrong?", "A or B?") that should load the skill.
- One clause on what it does, then a Skip clause (required, validated). State boundaries as task shape (execution-only, plain factual lookup, exact data available, etc.). Do not point at other skills in this repo by name or “use skill Y instead” routing; those lists go stale as the catalog grows. Cross-skill routing lives in the
thinking-method-selectorbody. - No meta text — never describe how the match works (“naming it or directing use with typos is decisive”). Validation rejects that boilerplate. It wastes the first characters, which listings truncate first.
- Length — 200–350 characters. Claude Code caps each listing entry at 1,536 characters and drops descriptions when the whole listing exceeds its budget (1% of the context window), so every extra character costs every skill.
- First 80 characters unique across skills (validated).
Put trigger guidance in frontmatter description, not only in the body—the body loads after the skill is already chosen. Test changes against the queries in evals/{skill-name}.json, adding queries that failed.
Body content
Write concise, imperative instructions. Prefer short examples and links to references/ for long material.
Suggested structure:
- When to use, with a Skip line.
- Before you start (state focus and pass, gather first, light path).
- The method steps.
- Pitfalls, then a checklist.
- A pointer to
references/example.mdand any deeper files.
Progressive disclosure
- Metadata — always available to the agent.
- Body — loaded when the skill triggers; keep it lean.
- References — load on demand via links from the body.
Skill authoring quality (recommended)
- Use minimal, consistent tagging; avoid parallel bracket vocabularies (e.g. Setup vs phases) without a one-line rule for where each applies. Prefer prose in Setup and a small tag set only where structure matters.
- Keep checklists aligned with body and execution rules—no bullets that contradict optional paths. Either specify branching fully or prefer a fixed canonical phase order unless the skill truly needs skips or reorders; if phases vary by run, Setup must state the exact sequence for that response.
- When a rule forbids something in a phase (e.g. no new factual assertions), say what to do instead (structural gap label, ask the user, etc.).
- Thread early distinctions through later phases and Conclusion (e.g. factual vs normative): if you introduce a split up front, say how later steps use it.
- Align falsifiers, uncertainty, and voice to the skill’s Focus (whose claim, which party, impersonal review)—avoid ambiguous first person.
- Frame short example lists (biases, fallacies, prompts) as examples, not exhaustive catalogs, unless you intend completeness.
- Prefer one plain sentence on strength of case or uncertainty over ordinal scales (e.g. High / Medium / Low) unless you commit to maintaining a rubric in the skill.
- When a named workflow step could be mistaken for generic Setup, state explicitly whether Setup satisfies that step or a separate labeled section is required.
- Keep every skill self-contained. Users install skills one at a time (
--skill,/plugin install,gh skill install), so a link to another skill's files or a sharedreferences/file will break. Repeat short shared rules (light path, gather first) in each skill. - Light path and gather-first: each skill states how to scale down for a small ask, and tells the agent to read files, search or run queries before marking evidence missing or asking questions.
- Fixed section order in the body: When to use (with Skip), Before you start, the method steps, Pitfalls, Checklist.
Optional reference files
If you add references/*.md, use a consistent, scannable format. Example pattern:
---
title: Short title
impact: HIGH
tags: keyword-one, keyword-two
---
## Title
Brief explanation.
**Avoid:** bad pattern or snippet.
**Prefer:** good pattern or snippet.Per-CLI manifests
One bundle plugin (ai-agent-skills, source ./) serves every CLI. Do not edit skill text per CLI and do not add session-start hooks or bootstrap prompts: every supported CLI already lists skill descriptions to the model. When you change a manifest:
- Check the CLI's own schema. Cursor rejects unknown keys and allows only
nameandemailinauthor. Agent Pluginsplugin.jsonis a closed schema. - Run
bash validate-skills.sh(offline manifest checks) andbash scripts/test_installs.sh <cli>(real install, needs the CLI onPATH). See docs/README.md. - Never pipe a download into a shell in any file, including CI and docs. Hermes scans the whole repo on plugin install and blocks it. Download to a file, then run the file.
- Update the CLI's guide in docs/ and the README row. State what was verified and what was not.
Repository release versioning
When you ship a repository semver release (distinct from per-skill metadata.version in SKILL.md, documented under Writing SKILL.md files above), run python3 scripts/bump_version.py X.Y.Z. It sets the version in every manifest below, and validate-skills.sh fails if any differ. Then update:
- CHANGELOG.md — add
## [X.Y.Z]with release notes and a footer reference link at the bottom (e.g.releases/tag/vX.Y.Z, orcompare/vA.B.C...vX.Y.Zper Keep a Changelog). - Versioned manifests (set by the script):
.claude-plugin/plugin.json,.claude-plugin/marketplace.json(metadata.versionand the bundle entry),plugin.json,.codex-plugin/plugin.json,.cursor-plugin/plugin.json,.kimi-plugin/plugin.json,gemini-extension.json,package.json.
Gemini CLI and Qwen Code install from the latest GitHub Release, so a release must exist for a new version to reach their users.
Then push an annotated Git tag vX.Y.Z; .github/workflows/release.yml creates the GitHub Release (notes prefer the tag message, else the matching changelog section). The same tag triggers .github/workflows/publish-npm.yml (npm trusted publishing, prod environment). When you change npm files, OpenCode/Pi install docs, or publish steps, keep package.json, scripts/validate_repo.py, README, and docs/opencode-setup.md / docs/pi-setup.md in sync.
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.

