Best for
- You catch yourself writing the same prompt or instructions repeatedly.
- You want to package a workflow or framework for reuse.
- An existing skill of yours is not triggering when it should.
rampstackco/claude-skills/skills/skill-creation-walkthrough/SKILL.md
Step-by-step guide for creating your own Claude Skills, from deciding whether a skill is the right tool to writing the SKILL.md file, structuring reference material, and making it trigger reliably. Use when you want to package a workflow, framework, or repeated task into a reusable Skill, when an existing skill is not triggering or not loading the right context, when you are auditing a skill that is underperforming, or when you want to publish a skill for others. Also triggers when someone asks
Decision brief
Step-by-step guide for creating your own Claude Skills, from deciding whether a skill is the right tool to writing the SKILL. md file, structuring reference material, and making it trigger reliably.
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/rampstackco/claude-skills --skill "skills/skill-creation-walkthrough"Inspect the Agent Skill "skill-creation-walkthrough" from https://github.com/rampstackco/claude-skills/blob/a67dd34c609f034c0cfd736a348659bbdf1605bf/skills/skill-creation-walkthrough/SKILL.md at commit a67dd34c609f034c0cfd736a348659bbdf1605bf. 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
Not everything should be a skill. Run this test:
Not everything should be a skill. Run this test:
Before writing anything, ask: when should this skill load?
This is the most important sentence (or two) in your skill. The description is what Claude sees in the system prompt to decide whether to load the skill.
A consistent structure makes skills readable, maintainable, and AI-friendly. The pattern below works for most skills:
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 93/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 779 | 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 walkthrough for designing, writing, and maintaining your own Claude Skills. Covers when a skill is the right shape for your problem, how to write a description that actually triggers, how to structure SKILL.md and references, and how to test and iterate.
A Skill is a folder with a SKILL.md file. The SKILL.md has YAML frontmatter (name and description) and a body with instructions. It can also include reference files, scripts, or templates that get loaded when needed.
The key property: progressive disclosure. Claude does not read every skill on every turn. The skill description lives in the system prompt. The SKILL.md body and references load only when the skill is triggered. This is what lets a user have hundreds of skills without polluting context.
What this means for you:
Not everything should be a skill. Run this test:
| Sign it should be a skill | Sign it should not be |
|---|---|
| You repeat the same workflow 5+ times. | You used it once. |
| The output benefits from a consistent structure. | Each output is bespoke. |
| The task has a clear trigger (a question shape, a file type, a domain). | The task is part of every conversation already. |
| The instructions exceed 200 words. | A one-line system instruction would do. |
| Templates or reference material would help. | Pure prose is enough. |
| Other people might benefit from the same workflow. | Only relevant to your single project. |
If most of your answers are in the left column, build a skill. Otherwise, use a saved prompt or a system instruction.
Before writing anything, ask: when should this skill load?
Be concrete. Write down the exact phrases or situations that should trigger it. Examples:
The trigger is your description's job. If you cannot articulate the trigger crisply, the skill will not load reliably.
This is the most important sentence (or two) in your skill. The description is what Claude sees in the system prompt to decide whether to load the skill.
Good descriptions have 4 parts:
Bad description:
"Helps with SEO."
Why it fails: vague, no trigger phrases, will not fire when the user actually needs it.
Good description:
"Audit on-page SEO of a single URL or a small set of pages. Use when the user asks for a page audit, wants to optimize titles and meta descriptions, asks 'why is this page not ranking', or shares a URL and asks what is wrong with it. Also triggers when the user mentions Core Web Vitals, internal linking, or schema markup. Useful for both individual page reviews and small-batch audits."
Why it works: specific actions, multiple trigger phrases, edge cases, audience clarity.
A consistent structure makes skills readable, maintainable, and AI-friendly. The pattern below works for most skills:
---
name: [your-skill-name]
description: [your description]
---
[One-sentence purpose statement]
## When to use
[Bulleted list of trigger situations]
## When NOT to use
[Bulleted list, ideally redirecting to sibling skills]
## Required inputs
[What Claude needs from the user to run this skill]
## The framework
[The durable IP: the model, the steps, the dimensions, the layers]
## Workflow
[Numbered steps Claude follows]
## Failure patterns
[Common mistakes to avoid or push back on]
## Output format
[What the deliverable looks like]
## Reference files
[List of files in the references/ folder with descriptions]
Not every skill needs every section. Some skills are pure how-to and skip "framework". Some skills are heavy on examples and add an "Examples" section. Use the structure as a starting point, adapt as needed.
References are the second tier of progressive disclosure. They load when Claude reads them, not by default.
Use references for:
Each reference should be standalone. A reader (or Claude) should be able to use it without reading the SKILL.md first, given the context the skill provides.
Naming patterns that work:
references/[noun]-template.md for templates.references/[noun]-checklist.md for checklists.references/[noun]-playbook.md for end-to-end runbooks.references/example-[scenario].md for worked examples.Reference your reference files from the SKILL.md "Reference files" section with a one-line description of each.
Skills do not work the first time. Plan to iterate.
Testing checklist:
After testing, common fixes:
The description is hard to get right. Here is the formula in detail.
Lead with the verb. Be specific.
State the primary triggers. Use phrases users would actually say.
Catch the secondary triggers and edge cases.
Explain audience or scope to help with disambiguation.
If your skill description is one sentence, it is probably not specific enough.
Imagine you keep writing technical post-mortem documents and want to skill-ify it.
Step 1: Decide it's a skill. You write 5+ post-mortems a year, output benefits from consistency, others on the team would use it. Yes, build a skill.
Step 2: Trigger. "When the user wants to write a post-mortem, retrospective, or after-action report. When an incident has happened and we are reviewing what went wrong."
Step 3: Description.
"Write a structured post-mortem after an incident, outage, or significant project failure. Use when the user mentions post-mortem, retrospective, after-action report, RCA, or asks 'why did this go wrong' after an incident. Also triggers when the user wants to capture lessons learned from a launch, project miss, or incident debrief. Useful for technical incidents, project retros, and team learning reviews."
Step 4: SKILL.md body. Use the standard structure. Required inputs (timeline, impact, contributors). The framework (Five Whys, contributing factors, action items). Workflow (gather facts, draft, review, distribute). Failure patterns (blame, vague action items, no follow-up).
Step 5: References. A post-mortem-template.md with the document structure and a facilitator-checklist.md for running the post-mortem meeting.
Step 6: Test. Trigger on "we had an outage yesterday, can you help me write the post-mortem?" Should fire. Trigger on "what is a post-mortem?" Should probably also fire. Trigger on "let's review the quarter". Should not fire (this is a different kind of retro).
You iterate until the triggers fire correctly, then ship.
references/methodology-vs-implementation.md for the full discipline and the user-outcome reasons it matters.When using this skill to create another skill, deliver:
references/skill-template.md: A blank SKILL.md template with annotated section guidance, ready to copy and fill in.references/description-cookbook.md: A library of description patterns with worked examples for common skill types (audits, templates, frameworks, walkthroughs).references/methodology-vs-implementation.md: What belongs in a public skill, what stays internal, and the user-outcome reasons the discipline matters. The audit pattern and the authoring checklist for keeping skills methodology-pure.Frequently asked questions
Step-by-step guide for creating your own Claude Skills, from deciding whether a skill is the right tool to writing the SKILL. md file, structuring reference material, and making it trigger reliably.
The source record exposes this install command: npx skills add https://github.com/rampstackco/claude-skills --skill "skills/skill-creation-walkthrough". Inspect the command and pinned source before running it.
Alternatives
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.
steipete/agent-scripts
REQUIRED before ANY `op` command or whenever a task needs an API key, token, password, credential, or secret (OPENAI_API_KEY, ANTHROPIC_API_KEY, deploy tokens, live-test keys). Prompt-free 1Password service-account reads; wrong invocations spam macOS dialogs.
microsoft/Sico
Execute Android UI workflows on a sandbox device, review results, and produce a structured execution report.
mission69b/t2000
Publishing, upgrading, and deploying Sui Move packages. Use this skill when the user needs to publish a package, upgrade a published package, deploy to multiple networks, serialize transactions for multisig signing, run a local Sui network (localnet), prepare for Mainnet launch, monitor production deployments, or debug dry run failures. Also use when the user asks about sui client publish, sui client upgrade, UpgradeCap, upgrade policies, Published.toml, --serialize-output, localnet, mainnet lau