Guides creation of best-practice agent skills following the open format specification. Covers frontmatter, directory structure, progressive disclosure, reference files, rules folders, and validation. Use when creating a new skill, authoring SKILL.md, setting up a rules-based audit skill, structuring a skill bundle, or asking "how to write a skill."
Create and improve skills in the Agent Skills open format: full lifecycle from pattern selection through validation and README update.
agents-md) or general documentation quality (use docs-writing).references/improving-existing-skills.md, which scores eleven audit dimensions, runs an ordered rewrite, then reuses Steps 5-8 for validation and shipping.references/capability-delta.md for retention decisions and the collection ledger.references/evaluation-and-iteration.md, then the description. Body edits do not fix routing.| File | Read When |
|------|-----------|
| references/capability-delta.md | Removing generic coaching, evaluating model upgrades, or auditing a whole collection |
| references/authoring-tips.md | Default when writing or cutting body content: judgement over rules, constraint calibration, permission and completion scope, degrees of freedom, content patterns, descriptions |
| references/skill-patterns.md | Choosing a structural pattern |
| references/format-specification.md | Directory layout, spec versus Claude Code-only frontmatter, body substitutions, loading semantics, which host reads the skill from where and what each can do, naming |
| references/rules-folder-structure.md | Building a rules-based audit/lint skill |
| references/improving-existing-skills.md | Auditing, scoring, simplifying, or rewriting an existing skill |
| references/executable-code.md | Skill includes scripts, injects live context with !, depends on packages, or invokes MCP tools |
| references/evaluation-and-iteration.md | Writing evals/evals.json, routing tests, ablating constraints, testing across models |
| references/adopt-adapt-author.md | A public skill already covers this ground, or deciding whether to vendor, adapt, or replace a third-party skill |
The validator is the single local statement of mechanical gates. From the repository root:
skills/agent-skills-creator/scripts/validate.sh skills/<name> # one skill
skills/agent-skills-creator/scripts/validate.sh --all # every skill in the repo
Copy this checklist to track progress:
Skill creation progress:
- [ ] Step 1: Choose a pattern
- [ ] Step 2: Create directory and frontmatter
- [ ] Step 3: Write SKILL.md body
- [ ] Step 4: Add reference or rule files
- [ ] Step 5: Validate
- [ ] Step 6: Update README.md (and docs/skills.mdx where the repo has one)
- [ ] Step 7: Smoke-test installation
- [ ] Step 8: Evaluate and iterate
Simple/hub, workflow, rules-based, or mixed. references/skill-patterns.md has the shapes, the in-repo example for each, and the problem-to-pattern affinity table.
Create skills/<name>/SKILL.md with name and description, the --- on line 1. Write the description as a model trigger, not a human summary: what it does, what it covers, then "Use when..." with the phrases users actually say, and the key use case first because the listing trims descriptions from the tail when it runs over budget. validate.sh enforces the limits, so write for routing and let the script police the constraints.
Decide where the skill will run before adding any other field. Use portable fields for this collection; put genuine runtime prerequisites in compatibility. Host-specific fields require current host documentation and a deliberately host-specific package. State authorization boundaries in the body when a workflow deploys, sends, or spends, and grant the safe loops just as explicitly; the body carries both sides of that envelope. The format reference distinguishes these contracts.
references/authoring-tips.md carries the judgement. Apply:
references/ folder, each file linked from SKILL.md with a "Read when" conditionrules/ folder; references/rules-folder-structure.md covers _sections.md, _template.md, and file namingPrefer a reference that is code. An existing implementation or a test suite pins a contract better than prose describing it ("Reference-as-Spec"). Split by loading condition, not line count: two topics read at different moments are two files.
Advanced, all covered in references/executable-code.md and references/format-specification.md: scripts/ for executables the agent composes, resolved relative to the installed SKILL.md; Claude Code can substitute ${CLAUDE_SKILL_DIR}; !`command` injection for data the skill always needs at invocation (a diff, PR comments); hooks frontmatter for a PreToolUse gate that should exist only while the skill is active; config.json for setup context that would otherwise be re-asked every session.
skills/agent-skills-creator/scripts/validate.sh skills/<name>
Output separates format requirements from house conventions, including recommendations adopted as local gates. Fix every FAIL. Run skills-ref validate <dir> for an independent metadata and naming check. Neither check establishes behavioral quality or compatibility with every host.
Add a bullet under the matching category heading, and bump the skill count near the top of the README:
- **[<skill-name>](./skills/<skill-name>/SKILL.md)**: <one-line description>
Categories: Architecture, Design, Writing, Quality, Shipping, Authoring. validate.sh verifies the bullet and the count. A repo that also ships docs/skills.mdx needs the same bullet there; the check is conditional on that file existing, so it stays silent in a repo without one.
When installation behavior changed, install the edited local source into a disposable target using the installer's documented local-source options. Verify the loaded SKILL.md and a bundled reference or script against the working copy. Do not overwrite a global installation to smoke-test an edit, and do not install the remote default branch as evidence for unpushed changes.
references/evaluation-and-iteration.md. Write 2-3 scenarios in evals/evals.json, add assertions after the first run, and measure with-skill against without-skill in fresh sessions. Test routing separately with should-trigger and near-miss prompts. Test on each target model, and ablate any rule you suspect is dead weight: delete it, rerun the scenarios, keep it only if one regresses.
~/.agents/skills/<name>/ is a copy, not a link to your repo. Editing the repo changes nothing in a running session, and the stale copy loads silently, so a skill can be several commits behind while appearing correct. Verify that an evaluation loads the edited local source.toc-over-100-lines wants ## Contents inside the first 20 lines of any reference over 100 lines. A TOC further down does not count, and the file fails while looking fine.readme-skill-count compares the README's stated count against find skills -maxdepth 2 -name SKILL.md. Adding a reference file to an existing skill does not change it; only adding or removing a skill does.--agent on skills add is variadic and space-separated (--agent codex cursor); it consumes arguments until the next one starting with -. A comma-separated list is validated element-wise and rejected whole as one invalid name. Do not conclude from an empty ~/.codex/skills that the install failed: any agent whose skillsDir is .agents/skills is treated as universal and installed to ~/.agents/skills/, which those agents read directly.description-triggers outright, but a description that has the phrase and the wrong trigger words fails nothing and simply never routes. The validator cannot see this; only a routing eval can.--help, a tool description, or a rule filecontext: fork skill whose body is guidelines rather than a task; the subagent gets conventions and no prompt, and returns nothinghelper, utils, tools, documents, data) that give the model nothing to route onagents-md for auditing AGENTS.md/CLAUDE.md instruction filesdocs-writing for documentation quality rulesMaintenance only: evals/evals.json holds the behavioural scenarios and routing prompts for anyone changing this skill. It never loads during a user task, which is the baseline Phase A of references/improving-existing-skills.md asks for.
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer