Best for
- Use when the user says "create a skill", "new skill", "update this skill", "improve a skill", "why isn't my skill triggering", or anything else involving authoring or editing SKILL.
adriannoes/awesome-agentic-ai/cursor-claude-codex/skills/david-ondrej/skill-authoring/effective-agent-skills/SKILL.md
How to write effective agent skills — what to do, what not to do, anatomy, progressive disclosure, design patterns, anti-patterns, testing, security. Read this whenever a skill (Claude Skill, Agent Skill, SKILL.md) is being created, edited, reviewed, or debugged. Use when the user says "create a skill", "new skill", "update this skill", "improve a skill", "why isn't my skill triggering", or anything else involving authoring or editing SKILL.md files.
Decision brief
A consolidated reference on what agent skills are, why they exist, how they work, and how to write effective ones.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/adriannoes/awesome-agentic-ai --skill "cursor-claude-codex/skills/david-ondrej/skill-authoring/effective-agent-skills"Inspect the Agent Skill "effective-agent-skills" from https://github.com/adriannoes/awesome-agentic-ai/blob/7f71af8164e8f5a775253417aa405b5d9d063faf/cursor-claude-codex/skills/david-ondrej/skill-authoring/effective-agent-skills/SKILL.md at commit 7f71af8164e8f5a775253417aa405b5d9d063faf. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
[Minimal working example]
[Step-by-step procedure with checklists]
The skill encodes a methodology the agent should follow. Pure prompt engineering — no scripts needed.
The description is the only thing the agent sees before deciding to load the skill. If your skill doesn't trigger, the description is wrong 95% of the time, not the body.
1. Identify the gap. Run your agent on real tasks. Where does it consistently fail or need re-prompting? That's a skill candidate. 2. Decide the pattern. Capability primitive (need new tools) or process primitive (need better methodology)? 3. Draft the description first. What +…
Permission review
The documentation includes network, browsing, or remote request actions.
**Adds**: new capabilities (search, email, browser, API access)The documentation asks the agent to read local files, directories, or repositories.
Tell the agent exactly when to read each referenced file:The documentation asks the agent to create, modify, or delete local files.
Skills can write to repo-level files (CONTEXT.md, ADRs, decision logs) that future agent sessions read. This is how you fight the "agents have no memory" problem at the architecture level.The documentation asks the agent to read local files, directories, or repositories.
Read every file in the folderEvidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 93/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 52 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
A consolidated reference on what agent skills are, why they exist, how they work, and how to write effective ones.
An Agent Skill is a folder containing a SKILL.md file (YAML frontmatter + markdown instructions), plus optional subfolders for scripts, references, and assets that the agent loads on demand.
my-skill/
├── SKILL.md # Required: metadata + instructions
├── scripts/ # Optional: executable code (CLIs, validators, helpers)
├── references/ # Optional: detailed docs loaded only when needed
└── assets/ # Optional: templates, fonts, static files
Skills are an open standard (agentskills.io), originally created by Anthropic and adopted by OpenAI Codex, Cursor, Gemini CLI, Microsoft Agent Framework, Google ADK, and 40+ other agent products. A skill written once works across all compatible agents.
Base LLMs are generalists. Real work requires procedural knowledge, organizational context, and repeatable workflows. Every prior alternative had a failure mode:
| Approach | Problem |
|---|---|
| Stuff it into the system prompt | Always loaded → context bloat at scale |
| Re-paste instructions each session | No version control, no consistency |
| Fine-tuning | Slow, expensive, opaque, vendor-locked |
| MCP servers alone | Give the agent tools but no workflows for using them |
Skills solve four problems at once:
Mental model: skills are to LLMs what man pages, runbooks, and team handbooks are to engineers — reference material loaded into working memory only when the task demands it.
The architectural core. Three-stage loading:
Level 1 — Discovery (~100 tokens per skill, always in context):
Only name + description from frontmatter are injected into the system prompt at startup. Agent knows the skill exists and when it applies. You can install dozens of skills with negligible overhead.
Level 2 — Activation (<5,000 tokens, loaded on match):
When the user's request matches a skill's description, the agent reads the full SKILL.md body into context.
Level 3 — Execution (unbounded, on demand):
The agent reads referenced files (references/foo.md) or runs scripts (scripts/validate.py) only as needed. Scripts can execute without their source being loaded into context at all.
This is why bundled content has no practical limit. Files don't consume tokens until accessed.
---
name: skill-name
description: What this skill does AND when to use it. Include trigger phrases the user will say.
---
# Skill Name
## Quick start
[Minimal working example]
## Workflow
[Step-by-step procedure with checklists]
## Output format
[What the user/agent should expect back]
## Advanced
[Link to references/ for rarely-needed detail]
Frontmatter constraints:
name is lowercase, hyphens only, 1–64 chars, exactly matches the parent folder name< and > in frontmatter (they can inject into the system prompt)Optional standard fields:
disable-model-invocation: true — stops the agent from auto-loading the skill based on the conversation; it can only be triggered manually (e.g. /skill-name). Now a standard Agent Skills spec field, so it works across spec-compliant clients (Claude Code, Copilot, etc.), not just Claude. Caveat: it prevents auto-invocation, but some clients (Claude Code, open bug) still inject the description into context, so it doesn't always save the discovery-level tokens. Use for manual-only utilities you don't want firing automatically.Skills tend to fall into one of two patterns. Both are valid; they solve different problems.
The skill is a thin wrapper over a deterministic CLI or script. Logic lives in code. SKILL.md teaches the agent how to invoke it.
The skill encodes a methodology the agent should follow. Pure prompt engineering — no scripts needed.
A mature setup uses both. Pattern A gives the agent better tools. Pattern B gives it better methods for using them.
The description is the only thing the agent sees before deciding to load the skill. If your skill doesn't trigger, the description is wrong 95% of the time, not the body.
Include three elements:
Pattern: "X via Y. Use for [situations]. [Differentiator: no Z required / faster than W / handles edge case V]."
Never summarize the full workflow in the description. If the description contains a step-by-step summary of how the skill works, the agent tends to follow that summary and skip loading the body. Describe what and when, never how. The description answers "should I open this skill now?" — not "what are the steps?"
Concrete command examples with inline comments beat prose explanations. The agent pattern-matches on syntax. Show, don't describe.
Anything fragile, repetitive, or where variation is a bug → script. Use markdown only for tasks requiring judgment.
Scale instruction rigidity to how costly a wrong move is:
The single biggest output quality improvement: state a verify → fix → re-verify loop explicitly.
Don't assume setup is done. Instruct the agent to verify state, then branch:
First check if X is configured: [command]
If not, walk the user through setup: [steps]
Tell the agent exactly when to read each referenced file:
For standard cases, follow the steps below.
For [specific edge case], read references/edge-cases.md first.
Link referenced files directly from SKILL.md. Never build chains (SKILL.md → advanced.md → details.md → actual.md) — the agent may preview nested files only partially and miss critical instructions. Add a table of contents to any reference file longer than 100 lines.
If your script returns structured data, show the agent what it looks like. Enables reliable downstream parsing.
List the 80% common operations in SKILL.md. Tell the agent to run tool --help for the rest. Keeps SKILL.md small without losing functionality.
One skill = one capability or one discipline. Resist bundling concerns into "the X workflow." Multiple small skills combine at runtime; one large skill is rigid.
If your skill encodes a known engineering methodology (TDD, DDD, red-green-refactor), name the source. Gives the agent a coherent model to align with and gives users a way to verify the design.
Skills can write to repo-level files (CONTEXT.md, ADRs, decision logs) that future agent sessions read. This is how you fight the "agents have no memory" problem at the architecture level.
Every line in SKILL.md should provide context the model doesn't already have. No Python syntax tutorials. No "what is git." Challenge every paragraph.
No README.md, no CHANGELOG.md, no INSTALLATION_GUIDE.md inside the skill folder. Skills are for agents.
If you need a parsing library, install via npm/pip. Don't paste source into the skill.
If one skill does design + planning + implementation + testing + deployment, you've built a framework, not a skill. Split it.
Be explicit about every step that matters.
npm run deploy:staging and wait for HTTP 200 from /healthz before reporting success."A skill that just changes tone or formatting belongs in user preferences or a system prompt, not a skill.
For every workflow step that can fail, document what failure looks like and what to do. Happy-path-only skills break in production.
"As of Q4 2024..." rots fast. Fetch live data via script or omit.
Always relative. Forward slashes regardless of OS. Use runtime placeholders for skill-directory references.
Skills can execute arbitrary code and steer agent behavior. A malicious skill is a data exfiltration vector. Audit scripts/ for unexpected network calls, file access outside expected scope, or hidden instructions in references. Watch for typosquatted skill names. Sandbox execution environments.
Skills compose at runtime — the agent loads multiple skills as needed for a single task. Design for this:
Before installing any third-party skill:
scripts/ for outbound network calls, file access outside expected scope, command executionlatestBefore publishing a skill:
name matches folder nameFrequently asked questions
A consolidated reference on what agent skills are, why they exist, how they work, and how to write effective ones.
The source record exposes this install command: npx skills add https://github.com/adriannoes/awesome-agentic-ai --skill "cursor-claude-codex/skills/david-ondrej/skill-authoring/effective-agent-skills". Inspect the command and pinned source before running it.
Static rules flagged network, read-files, write-files in the source; the page lists the matching lines and excerpts.
Alternatives
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
narrative-io/narrative-skills-marketplace
Translate a fuzzy analytical question into a rigorous investigation plan. Interrogates the ask, grounds the plan in the available data dictionary, applies analytical best practices, and produces a structured brief of query specifications for a downstream query-writing skill. Plans, does not write SQL. Use when: "why did X drop", "is there a relationship between A and B", "who are our highest-value customers", "what's driving the change in Y", "investigate this trend", "design an analysis for", "
vasilyu1983/AI-Agents-public
Guides iOS testing with XCTest, XCUITest, Swift Testing, simctl, and xcresult. Use when choosing destinations, controlling flakes, or parsing test artifacts for native apps.
vasilyu1983/AI-Agents-public
Consumer-neuroscience primitives for attention, arousal, bonding, narrative, memory, and reward. Use when shaping ethical UX, neuro study design, or DMCC/AI Act gates.