create-skills
Skill3 starsChanged 43 days agoMITView on GitHub
Create or revise portable agent skills and validate their packaging. Use when adding a SKILL.md workflow for Claude Code, Codex, or ChatGPT, or when reviewing a skill for quality, safety, and distribution.
In this repository7 other files it gives its agents.
- best-promptingSkill
- krug-usability-testingSkill
- microcopySkill
- ousterhout-software-designSkill
- research-firstSkill
- simple-writingSkill
- test-auditSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
39 rules. About 0 are common, 34 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈34
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Create focused, portable agent skills that activate for the right requests, guide a repeatable workflow, and provide observable completion …
- Distinctive: line 12
Use this skill when:
- Distinctive: line 20
Do not create a skill for a one-off fact, temporary task state, project progress, or a workflow too small to justify reusable instructions.
- Distinctive: line 24
Before writing files, determine:
- Distinctive: line 30
Actions: read-only steps and possible side effects.
- Distinctive: line 35
If different use cases have different triggers, inputs, permissions, or success criteria, split them into separate skills.
- Very specific: line 39
Read repository-level instructions such as AGENTS.md, CLAUDE.md, CONTRIBUTING.md, and the README.
- Distinctive: line 40
Search existing skills for overlapping triggers, procedures, and names.
- Distinctive: line 41
Read two or three neighboring skills to match repository conventions.
- Distinctive: line 42
Check current official host documentation before changing plugin manifests or relying on host-specific frontmatter.
- Distinctive: line 49
Use one self-contained directory per skill:
- Very specific: line 59
Use lowercase kebab-case for the folder and skill name.
- Distinctive: line 61
Use supporting directories deliberately:
- Distinctive: line 67
Do not add empty directories or duplicate the skill tree for different hosts.
- Distinctive: line 85
Put detailed procedure, output formatting, and safety rules in the body, not the description.
- Distinctive: line 86
Keep the description precise enough to avoid broad accidental activation.
- Distinctive: line 87
Add host-specific fields only when the current official schema supports them and the skill needs them.
- Distinctive: line 93
Use only sections that change behavior.
- Distinctive: line 122
Use parallel execution only for independent work.
- Distinctive: line 130
Prefer direct instructions over background explanation.
- Distinctive: line 135
Use invented examples that teach the desired pattern without exposing real data.
- Very specific: line 139
Keep SKILL.md focused on routing, decisions, and the canonical procedure.
- Distinctive: line 163
use least-privilege tools and credentials.
- Distinctive: line 164
verify the resulting state through a direct read, ID, URL, or test.
- Distinctive: line 167
Never instruct an agent to bypass authorization, disable safeguards, expose secrets, or use destructive commands as a shortcut around an …
- Distinctive: line 171
Before publishing, inspect every file and the Git diff for:
- Distinctive: line 186
Create a small evaluation set before declaring the skill complete:
- Distinctive: line 199
Do not tune against one anecdote.
- Very specific: line 207
check folder-name equality, unique names, and kebab-case.
- Distinctive: line 210
run repository tests, linters, and secret scanning.
- Distinctive: line 211
run the current first-party host validator when available.
- Very specific: line 213
verify every expected SKILL.md exists in the installed cache.
- Distinctive: line 229
When adding a skill to a versioned marketplace:
- Distinctive: line 231
add it to the README catalog.
- Distinctive: line 234
keep duplicate compatibility manifests synchronized.
- Distinctive: line 235
avoid repeating the version in marketplace entries when the plugin manifest is authoritative.
- Distinctive: line 236
run validation again after metadata changes.
- Distinctive: line 238
Treat a new backward-compatible skill as a minor release.
- Distinctive: line 274
Check these sources again before relying on changing manifest or client behavior:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill 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
Create skills
Create focused, portable agent skills that activate for the right requests, guide a repeatable workflow, and provide observable completion criteria. Use the common subset supported by Claude Code, Codex, and ChatGPT unless the task explicitly targets one host.
When to use
Use this skill when:
- creating a new
SKILL.md; - restructuring or improving an existing skill;
- moving a skill into a plugin or marketplace;
- reviewing skill activation, instructions, support files, or safety;
- preparing a skill for public distribution.
Do not create a skill for a one-off fact, temporary task state, project progress, or a workflow too small to justify reusable instructions. Prefer improving an existing skill when the proposed one substantially overlaps it.
1. Establish the contract
Before writing files, determine:
- User goal: the recognizable outcome the skill supports.
- Triggers: requests that should cause the model to consider the skill.
- Counter-triggers: similar requests that belong elsewhere.
- Inputs: information, files, credentials, tools, or services required.
- Actions: read-only steps and possible side effects.
- Output: what the user receives and in which format.
- Success evidence: the command, artifact, ID, URL, test, or state that proves completion.
- Hosts: Claude Code, Codex, ChatGPT, or a host-specific subset.
If different use cases have different triggers, inputs, permissions, or success criteria, split them into separate skills. Do not create a router skill whose main purpose is only to point at sibling skills.
2. Inspect before authoring
- Read repository-level instructions such as
AGENTS.md,CLAUDE.md,CONTRIBUTING.md, and the README. - Search existing skills for overlapping triggers, procedures, and names.
- Read two or three neighboring skills to match repository conventions.
- Check current official host documentation before changing plugin manifests or relying on host-specific frontmatter.
- Inspect any source material directly. Do not write from remembered or inaccessible documents.
Completion criterion: the target location, ownership, supported hosts, overlap decision, and applicable repository rules are known.
3. Choose the directory layout
Use one self-contained directory per skill:
skills/<skill-name>/
├── SKILL.md
├── references/ # optional detailed material
├── scripts/ # optional deterministic automation
└── assets/ # optional static resourcesUse lowercase kebab-case for the folder and skill name. Keep all relative links within the plugin root. Do not depend on machine-local paths or symlinks that escape the repository.
Use supporting directories deliberately:
references/: detailed guidance, API notes, schemas, checklists, or source summaries loaded only when needed;scripts/: deterministic work that is difficult or error-prone to reproduce through ordinary tools;assets/: templates, images, fixtures, or other static inputs used in outputs.
Do not add empty directories or duplicate the skill tree for different hosts.
4. Write portable frontmatter
The portable minimum is:
---
name: example-skill
description: Perform a specific workflow. Use when the user asks for X or needs Y.
---Rules:
namematches the directory exactly.nameis stable, descriptive, and useskebab-case.descriptionstates both the capability and activation conditions.- Put detailed procedure, output formatting, and safety rules in the body, not the description.
- Keep the description precise enough to avoid broad accidental activation.
- Add host-specific fields only when the current official schema supports them and the skill needs them.
The description controls discovery. If the skill activates at the wrong time, fix the description before adding defensive prose to the body.
5. Write an actionable body
Use only sections that change behavior. A strong default structure is:
# Skill title
Short scope statement.
## When to use
- Positive triggers.
- Counter-triggers.
## Prerequisites
- Exact tools, access, files, and setup.
## Procedure
1. Action with a checkable completion criterion.
## Pitfalls
- Specific failure modes and recoveries.
## Verification
- Evidence that proves the workflow succeeded.Procedure rules
- Order dependent steps explicitly.
- End important steps with an observable completion criterion.
- Name the correct tool or integration when the choice matters.
- Use parallel execution only for independent work.
- State what to do when an input or tool is missing.
- Distinguish drafting an action from executing it in an external system.
- Require verification after writes instead of trusting a success message.
- Preserve explicit user instructions over defaults in the skill.
Writing rules
- Prefer direct instructions over background explanation.
- State a rule once and keep terminology consistent.
- Pair important prohibitions with the allowed replacement behavior.
- Explain the reason only when it helps generalize to edge cases.
- Reserve absolute language for requirements with no legitimate exception.
- Use invented examples that teach the desired pattern without exposing real data.
6. Use progressive disclosure
Keep SKILL.md focused on routing, decisions, and the canonical procedure. Move large or specialized material into supporting files and link each file from SKILL.md with a clear loading condition.
Good:
Read references/api.md only when the task calls the service API.
Run scripts/validate.py after modifying generated configuration.Avoid:
- an oversized
SKILL.mdcontaining material needed only in rare cases; - orphan support files that the main skill never references;
- copied documentation that should remain an external link;
- scripts for tasks existing tools already perform reliably.
7. Design safe side effects
For any workflow that can modify data or external systems:
- separate discovery from mutation;
- retrieve live state before deciding what to change;
- define the allowed scope precisely;
- require confirmation for destructive, costly, public, or difficult-to-reverse actions unless the user already authorized that exact action;
- use least-privilege tools and credentials;
- verify the resulting state through a direct read, ID, URL, or test;
- explain rollback or recovery when practical.
Never instruct an agent to bypass authorization, disable safeguards, expose secrets, or use destructive commands as a shortcut around an error.
8. Prepare for public distribution
Before publishing, inspect every file and the Git diff for:
- credentials, tokens, private keys, cookies, webhooks, and internal endpoints;
- customer names, personal data, government identifiers, private emails, and phone numbers;
- workspace, database, channel, page, ticket, or document IDs;
- recognizable stories derived from real conversations or incidents;
- proprietary code, internal architecture, or confidential operating procedures;
- third-party text, images, examples, or code without compatible permission and attribution.
Invent public examples from scratch. Merely replacing a person's name is not sufficient when the rest of the scenario remains identifiable.
For third-party material, record the source and license. Link to the original when a summary is enough. Do not publish a chapter-by-chapter substitute for a book, extensive quotations, or copied examples merely because they were transformed into Markdown.
9. Test activation and behavior
Create a small evaluation set before declaring the skill complete:
- positive cases: representative requests that should activate it;
- negative cases: similar requests that should not activate it;
- ambiguous cases: requests where the model should inspect context or ask a narrow question;
- failure cases: missing files, unavailable tools, denied permissions, empty results, and partial responses;
- side-effect cases: confirmation, scope enforcement, verification, and rollback behavior.
Evaluate two layers separately:
- Activation: did the model choose the right skill? If not, revise
description. - Execution: did it follow the correct workflow and produce consistent output? If not, revise the body or supporting resources.
Do not tune against one anecdote. Keep examples diverse enough that the model learns the decision rule rather than surface wording.
10. Validate the package
At minimum:
- parse all JSON manifests;
- validate YAML frontmatter and require non-empty
name,description, and body; - check folder-name equality, unique names, and
kebab-case; - resolve relative links and reject path traversal;
- inspect symlinks and executable files;
- run repository tests, linters, and secret scanning;
- run the current first-party host validator when available;
- install the plugin from an isolated local marketplace;
- verify every expected
SKILL.mdexists in the installed cache; - repeat from the Git-backed branch or tag before announcing distribution success.
A manifest that parses is not proof that clients discover or install the skill.
For this repository, run:
python3 scripts/validate.py
claude plugin validate .Then follow the isolated Claude and Codex installation commands in the repository README.
11. Update repository metadata
When adding a skill to a versioned marketplace:
- add it to the README catalog;
- update the changelog;
- bump the plugin version according to repository policy;
- keep duplicate compatibility manifests synchronized;
- avoid repeating the version in marketplace entries when the plugin manifest is authoritative;
- run validation again after metadata changes.
Treat a new backward-compatible skill as a minor release. Treat removals, renames, incompatible behavior, or new mandatory permissions as major changes.
Pitfalls
- Description as documentation: a long description harms routing; move procedure into the body.
- One giant skill: unrelated goals with different triggers become unpredictable.
- Router-only skill: indirection duplicates the catalog without adding workflow value.
- Manifest-only confidence: JSON validity does not prove installation or discovery.
- Duplicated trees: copies for different clients drift over time.
- Machine-local assumptions: absolute paths and personal configuration break portability.
- Unverified side effects: a tool's success message is not the resulting state.
- Private examples: sanitized names can still leave a recognizable incident.
- Unlicensed source material: summaries can still become substitutes when they preserve an entire work's sequence, examples, and detail.
- Premature scripting: code adds maintenance and security surface without necessarily improving reliability.
- Overfitting tests: activation that works only for the evaluation phrasing is not robust.
Verification checklist
- The skill supports one recognizable goal.
- Positive and negative triggers are explicit.
namematches thekebab-casefolder.descriptionstates capability and activation conditions.- Prerequisites, failures, side effects, and output are clear.
- Important steps end with observable completion criteria.
- Supporting files are necessary, linked, and loaded conditionally.
- Paths remain inside the plugin root.
- Public files contain no private or proprietary data.
- Third-party material has compatible provenance and attribution.
- Positive, negative, ambiguous, failure, and side-effect cases were tested.
- Repository validators and client installation tests passed.
- Installed caches contain the expected skill files.
- README, changelog, and synchronized versions were updated.
- Git-backed installation was verified before release.
Official references
Check these sources again before relying on changing manifest or client behavior:
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.

