Skip to main content
skill Claude Code

write-a-skill — Claude Code skill: what it does, how to install

This skill guides the creation of new agent skills with a clear structure and review steps. Use it when a skill needs instructions, examples, references, or bundled scripts.

Install into Claude Code · Plugin marketplace All methods and platforms ↓
/plugin marketplace add alirezarezvani/claude-skills
/plugin install write-a-skill@claude-code-skills
Open on GitHub

What write-a-skill does

write-a-skill takes a new skill from requirements to review. It asks about the task, use cases, executable scripts, and reference material, then helps assemble SKILL.md and supporting files. The suggested layout can include REFERENCE.md, EXAMPLES.md, and a scripts/ directory.

It also covers trigger-focused descriptions, progressive disclosure, and the point where content should move out of SKILL.md. The included scripts/skill_review_checklist_runner.py runs the 6 review checks. Companion tooling and related slash commands are linked from the skill’s reference material.

Install it when you author Claude Code skills often and want a repeatable review path. For a small one-off instruction, the workflow may be more than you need.

What it helps with

  • outline a new agent skill
  • write a description with clear triggers
  • decide whether scripts or references belong in the package
  • run the skill review checklist
  • prepare concrete skill examples

Example prompts for the agent

  • Create a skill for checking API contracts and take it through the write-a-skill workflow.
  • Review this skill structure and run `python scripts/skill_review_checklist_runner.py path/to/skill-folder`.
  • Tell me what should move from `SKILL.md` into `REFERENCE.md` and `EXAMPLES.md`.

How to install write-a-skill

1Plugin marketplace

/plugin marketplace add alirezarezvani/claude-skills
/plugin install write-a-skill@claude-code-skills

This installs the whole write-a-skill plugin with all its skills

2Skills CLI (Vercel)

npx skills add alirezarezvani/claude-skills --skill write-a-skill -a claude-code

3Manually: put the files in place

~/.claude/skills/write-a-skill/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/write-a-skill/

From the same set349

The whole set →
engineering-skills Alireza Rezvani An engineering skill index for Claude Code that helps you select one specialist SKILL.md for the task at hand. It covers architecture, testing, DevOps, and data work. Claude Code 2,387installs finance-skills Alireza Rezvani Routes ambiguous finance prompts to the right bundled skill: financial-analyst, saas-metrics-coach, or month-end-close. Claude Code 2,312installs marketing-skills Alireza Rezvani A directory and router for marketing skills in Claude Code. It picks the right specialist skill for SEO, content, CRO, channels, and related tasks. Claude Code 2,264installs business-growth-skills Alireza Rezvani Routes growth and revenue prompts to the right specialized skill across customer success, sales engineering, RevOps, and proposals in Claude Code. Claude Code 2,189installs engineering-advanced-skills Alireza Rezvani An index of 37 engineering skills for architecture, automation, reliability, and platform work. Use it when a project needs task-specific engineering workflows. Claude Code 2,019installs product-skills Alireza Rezvani Product work orchestrator for Claude Code. Routes queries across 16 domain lanes and validates discovery trees with deterministic scripts. Claude Code 1,994installs pm-skills Alireza Rezvani Routes project-delivery requests across 8 PM sub-skills for Jira, Confluence, sprints, reporting, and team communication. Useful for controlled delivery work. Claude Code 1,975installs senior-backend Alireza Rezvani Scaffolds backend APIs, detects database bottlenecks, and runs load tests. Useful when designing Express routes, optimizing PostgreSQL, or preparing for production. Claude Code 1,674installs

Similar

performance-review-writer official github Drafts self-assessments, peer reviews, and manager feedback using the STAR framework. Pulls work history via WorkIQ or manual notes. GitHub Copilot 121installs doc-and-modernize official github Analyzes a local codebase to generate a cited architecture document and creates a phased migration plan for legacy stacks. GitHub Copilot 108installs grill-with-docs Matt Pocock This skill interviews you about a plan or design and creates ADRs and a glossary along the way. Use it when decisions need sharper definition. Claude Code 1,219,756installs skill-creator official anthropics Creates and refines skills, then tests them with prompts, evaluations, and performance checks. Claude Code Claude.ai 414,180installs setup-matt-pocock-skills Matt Pocock This skill configures a repository for Matt Pocock's engineering skills by setting its issue tracker, triage labels, and domain docs layout. Run it before using the other skills. Claude Code 1,052,851installs handoff Matt Pocock Creates a handoff document from the current conversation so another agent can continue the work. Use it when a task moves to a new session or agent. Claude Code 1,038,491installs triage Matt Pocock This skill moves issues and external PRs through triage states, verification, and agent briefs. It fits maintainers managing an issue queue. Claude Code 990,453installs domain-modeling Matt Pocock This skill sharpens project terminology, maintains GLOSSARY.md, and records selected architecture decisions in ADRs. Use it while the domain model is changing. Claude Code 876,391installs

Questions about write-a-skill

How do I install write-a-skill in Claude Code?

In Claude Code, add the marketplace with /plugin marketplace add alirezarezvani/claude-skills, then install it with /plugin install write-a-skill@claude-code-skills.

What does write-a-skill do?

It guides the authoring of an agent skill: gather requirements, create SKILL.md, add supporting material, and review the result against a checklist.

When should a skill use scripts or separate files?

Use scripts for deterministic operations, repeated code, or explicit error handling. Split content out when SKILL.md exceeds 100 lines or contains advanced material that is rarely needed.

Source text

SKILL.md · MIT
---
name: write-a-skill
description: Create new agent skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, build, or author a new skill.
license: MIT
metadata:
  derived_from: "https://github.com/mattpocock/skills/tree/main/skills/productivity/write-a-skill"
  original_author: "Matt Pocock (@mattpocock)"
  original_license: MIT
  voice: "Matt Pocock — direct, concrete, imperative, example-driven"
  version: 1.0.0
---

# Writing Skills

> Derived from [Matt Pocock's write-a-skill](https://github.com/mattpocock/skills/tree/main/skills/productivity/write-a-skill) (MIT). Matt's voice and 3-phase workflow preserved verbatim. Additions: validation tools + references + cs-* wrapper (see *Tooling + Companions* below).

## Process

1. **Gather requirements** - ask user about:
   - What task/domain does the skill cover?
   - What specific use cases should it handle?
   - Does it need executable scripts or just instructions?
   - Any reference materials to include?

2. **Draft the skill** - create:
   - SKILL.md with concise instructions
   - Additional reference files if content exceeds 500 lines
   - Utility scripts if deterministic operations needed

3. **Review with user** - present draft and ask:
   - Does this cover your use cases?
   - Anything missing or unclear?
   - Should any section be more/less detailed?

## Skill Structure

```
skill-name/
├── SKILL.md           # Main instructions (required)
├── REFERENCE.md       # Detailed docs (if needed)
├── EXAMPLES.md        # Usage examples (if needed)
└── scripts/           # Utility scripts (if needed)
    └── helper.js
```

## SKILL.md Template

```md
---
name: skill-name
description: Brief description of capability. Use when [specific triggers].
---

# Skill Name

## Quick start

[Minimal working example]

## Workflows

[Step-by-step processes with checklists for complex tasks]

## Advanced features

[Link to separate files: See [REFERENCE.md](REFERENCE.md)]
```

## Description Requirements

The description is **the only thing your agent sees** when deciding which skill to load. It's surfaced in the system prompt alongside all other installed skills. Your agent reads these descriptions and picks the relevant skill based on the user's request.

**Goal**: Give your agent just enough info to know:

1. What capability this skill provides
2. When/why to trigger it (specific keywords, contexts, file types)

**Format**:

- Max 1024 chars
- Write in third person
- First sentence: what it does
- Second sentence: "Use when [specific triggers]"

**Good example**:

```
Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when user mentions PDFs, forms, or document extraction.
```

**Bad example**:

```
Helps with documents.
```

The bad example gives your agent no way to distinguish this from other document skills.

## When to Add Scripts

Add utility scripts when:

- Operation is deterministic (validation, formatting)
- Same code would be generated repeatedly
- Errors need explicit handling

Scripts save tokens and improve reliability vs generated code.

## When to Split Files

Split into separate files when:

- SKILL.md exceeds 100 lines
- Content has distinct domains (finance vs sales schemas)
- Advanced features are rarely needed

## Review Checklist

After drafting, verify:

- [ ] Description includes triggers ("Use when...")
- [ ] SKILL.md under 100 lines
- [ ] No time-sensitive info
- [ ] Consistent terminology
- [ ] Concrete examples included
- [ ] References one level deep

## Tooling + Companions

Validation tools + cs-* wrapper sit alongside this skill. Run all 6 review-checklist items programmatically:

```
python scripts/skill_review_checklist_runner.py path/to/skill-folder
```

See [references/companion_tooling.md](references/companion_tooling.md) for the tool catalogue, cs-skill-author persona agent, and `/cs-write-a-skill` slash command.

## When the knowledge is in a document, not your head

This skill authors from expertise you already have. When the source is a book, a docs folder,
a standard, or a pile of specs, use `engineering/book-to-skill` instead — it compiles the
document into a knowledge-base skill (core frameworks + on-demand chapters + glossary +
patterns + cheatsheet) and can package the result as a plugin.

```
/cs-book-to-skill <path|folder|glob> [skill-name]     # compile the source
/cs-book-to-plugin <compiled-skill-dir>               # wrap it as a plugin
```

Rule of thumb: **author first, compile second.** A hand-written skill states what you want the
agent to do; a compiled book skill is the reference it consults while doing it. If you have
both, they are two skills, not one.

---

**Version:** 1.0.0
**Derived:** Matt Pocock (MIT) + this repo's wrapper

© Alireza Rezvani · MIT · alirezarezvani/claude-skills

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor