Agent skill

Write Skills

by dzhng in dzhng/skills

Create or revise agent skills. An agent skill from dzhng/skills.

MITAuto-check passed

Install Write Skills

skills CLI
$ npx skills add dzhng/skills --skill write-skills -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install dzhng/skills write-skills --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/dzhng/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/authoring/write-skills .claude/skills/write-skills && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
write-skills
GitHub stars
1k
Token cost
~2.7k tokens
SKILL.md length
1,576 words
Files
1
Skills in repo
27
Repo updated
First seen
Licence
MIT

At a glance

Create or revise agent skills. An agent skill from dzhng/skills.

  • Works in 6 steps: Trigger from the description. The… → Spend tokens like they are scarce.… → Write procedures, not essays. Prefer… → …
  • Adding a new skill file
  • SKILL.md covers First Principles, Leading Words, Invocation and Description, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Write Skills is an agent skill from dzhng/skills. Create or revise agent skills. Use when adding a new skill file, renaming a skill, simplifying an existing skill, improving trigger descriptions, or deciding what belongs in a skill versus references, scripts, assets, or ordinary docs.

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Reusable AI agent skills for software factories: explore ideas, write specs, implement, review, and run autonomous research. Works with Claude Code, Codex, and other… The licence is MIT.

When your agent uses it

  • Adding a new skill file
  • Renaming a skill
  • Simplifying an existing skill
  • Improving trigger descriptions

Example prompts

  • “/write-skills”

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Trigger from the description. The frontmatter description is the
  2. Spend tokens like they are scarce. Assume the agent is already good at
  3. Write procedures, not essays. Prefer imperative rules, decision
  4. Use progressive disclosure. Keep the main skill file short. Push long
  5. Validate by use. A skill is good when a fresh agent applies it
  6. Examples document the PROBLEM, not the solution. An example earns its

What it can do on your machine

Read from SKILL.md and the folder at commit d513228. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Write Skills loads about 2.7k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 1,576 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~62
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from dzhng/skills at commit d513228, republished under its MIT licence (© dzhng). 1,576 words, ~2,707 tokens.

Download SKILL.mdSave it as .claude/skills/write-skills/SKILL.md (or your agent's skills folder).
name
write-skills
description
Create or revise agent skills. Use when adding a new skill file, renaming a skill, simplifying an existing skill, improving trigger descriptions, or deciding what belongs in a skill versus references, scripts, assets, or ordinary docs.

Write Skills

A skill is not documentation. It is compressed operational memory for an agent that already knows how to code and reason. Its job is predictability — the agent taking the same process every run, not producing the same output. Put only the context that changes what the agent will do.

First Principles

  1. Trigger from the description. The frontmatter description is the only part read before the skill loads. Say what the skill does and the concrete situations that should trigger it. Do not hide trigger rules in the body.

  2. Spend tokens like they are scarce. Assume the agent is already good at general reasoning. State the direction and let smart models figure out implementation details. A wrapper skill can be two sentences: name the capability to use and the skill to follow. Add mechanics only when a demonstrated failure requires them.

  3. Write procedures, not essays. Prefer imperative rules, decision points, and small examples. A good skill changes behavior in the next turn; it does not merely explain the topic. And match the procedure to the deliverable's shape: a catalog of techniques with "pick what fits" produces tool-picking, not a flow — if the job is a shaped interaction (an interview, a staged walk), the workflow must be that shape, with the techniques demoted to steps inside it.

  4. Use progressive disclosure. Keep the main skill file short. Push long schemas, examples, provider docs, or variant-specific guidance out into linked references/ files, reached by a pointer that fires only when needed. Put repeatable fragile operations in scripts/. Put reusable output material in assets/.

  5. Validate by use. A skill is good when a fresh agent applies it correctly on a realistic task — run it blind, and on the weakest model that will run it; a skill that only drives correct behavior on the frontier model that authored it is too fragile to ship. After editing, read it as if you had no conversation history and remove anything that would not affect action.

  6. Examples document the PROBLEM, not the solution. An example earns its tokens by teaching the agent to recognise a recurring problem — the smell, the symptom, how you knew it was wrong. That is durable. The fix you happened to apply is not: code changes, and a baked-in solution goes stale, or worse prescribes a move that won't fit next time. Write the failure mode and its tell; let the agent derive the fix fresh against the current code. "A directional question gated on a centroid distance read wrong from every bearing" teaches; "so we keyed it on FRONT_ARC" rots. When in doubt, state what was broken and how you spotted it, and stop there.

Leading Words

A leading word is a compact concept already in the model's pretraining that the agent thinks with while running the skill (e.g. fog of war, tracer bullets, red, tight). One word recruits priors the model already holds and anchors a whole region of behavior in the fewest tokens.

  • It anchors execution in the body (same word → same behavior every time) and invocation in the description (when that word also lives in the user's prompts, docs, and code, the skill fires more reliably).
  • Hunt for restatements that a leading word retires. "fast, deterministic, low-overhead" → a tight loop. "a loop you believe in" → the loop goes red. You win twice: fewer tokens and a sharper hook.
  • A weak leading word is a no-op (be thorough when the agent already is). The fix is a stronger word (relentless), not more sentences.

Invocation

Choose how the skill is reached; each choice spends a different cost.

  • Model-invoked (default): keep a description so the agent can fire it on its own and other skills can reach it. Costs context load — the description sits in the window every turn. Write rich trigger phrasing.
  • User-invoked: set disable-model-invocation: true. Only the user typing its name can invoke it; zero context load, but the user must remember it exists. The description becomes a human-facing one-liner.

Pick model-invocation only when the agent or another skill must reach it unprompted. When user-invoked skills pile up past memory, add a router skill that names the others and when to reach for each.

Description

The description does two jobs: state what the skill is, and list the distinct situations (branches) that trigger it.

  • Front-load the leading word — invocation work happens here.
  • One trigger per branch. Synonyms that rename one branch are duplication; collapse them and keep only genuinely distinct branches.
  • Cut identity already in the body. Keep triggers plus any "when another skill needs…" reach clause.

Information Hierarchy

A skill is steps and reference, mixed freely. Rank each piece by how immediately the agent needs it:

  1. In-skill step — an ordered action in SKILL.md. Each ends on a completion criterion: make it checkable (can the agent tell done from not-done?) and, where it matters, exhaustive ("every modified model accounted for", not "produce a change list"). A vague criterion invites premature completion.
  2. In-skill reference — a definition or rule consulted on demand. A flat peer-set of rules is fine, not a smell.
  3. External reference — pushed out of SKILL.md into a linked file, loaded only when its pointer fires.

Keep a concept's definition, rules, and caveats under one heading (co-location) so reading one part brings its neighbors. Push too little down and the top bloats; push too much down and you hide what the agent needs.

Show full SKILL.md (674 more words)Show less

When to Split

Each cut spends a cost, so split only when it earns it:

  • By invocation — split off a model-invoked skill when a distinct leading word should trigger it alone, or another skill must reach it. You pay context load for the new always-loaded description.
  • By sequence — split a run of steps when the steps still ahead tempt the agent to rush the one in front of it. Hiding later steps forces more work on the current one. The tell is stage compression: several steps' work lands in one message, or the agent narrates a later step as complete without ever having opened it. A "when you enter a step, read its file" pointer in the main skill fires reliably, even on weaker models.

Failure Modes

Diagnose a misbehaving skill against these:

  • Premature completion — ending a step before it's done. Fix the completion criterion first (cheap); only split to hide later steps if the criterion is irreducibly fuzzy and you see the rush. When the skill's job ends in a handover artifact, name it as the only skill-level done-condition — otherwise runs end at whichever intermediate artifact feels finished.
  • Embargo — an ordered workflow over-obeyed: the agent withholds a finding made early to honor a later step's choreography, so the user decides something while the agent sits on information that bears on it. Any skill that sequences steps needs the escape valve stated: order governs presentation, never disclosure.
  • Lucky pass — a validation run that succeeds only because the user or world volunteered a critical input unprompted. The outcome was right but the process didn't produce it; encode the eliciting probe as an explicit step instead of banking on the luck recurring.
  • Duplication — the same meaning in two places. Keep a single source of truth.
  • Sediment — stale layers that accumulate because adding feels safe. Prune deliberately.
  • War story — a lesson written as the play-by-play of the change that taught it: function names, tuned values, one bug's trajectory. Those specifics date fast and bury the transferable rule. State the principle and the smell to watch for; let the codebase hold the mechanics. One concrete touchstone grounds it; a paragraph of them drowns it.
  • Implementation index — a skill that points at today's source files, line numbers, current literals, or exact internal functions when its job is really to teach judgment. Those locators rot and make agents chase old mechanics. Keep durable principles, symptoms, acceptance criteria, and reference assets in the skill; put task-specific implementation notes in the active spec. If code location matters, tell the agent to find the current owner in the codebase.
  • Sprawl — too long even when every line is live. Cure with the ladder: disclose reference behind pointers, split by branch or sequence.
  • No-op — a line the model already obeys by default. Test each sentence in isolation; when it fails, delete the whole sentence, don't trim words.

Shape

Use this structure unless there is a strong reason not to:

markdown
---
name: short-verb-phrase
description: What this does. Use when ...
---

# Skill Title

One short paragraph defining the job.

## Workflow

1. Do the first load-bearing thing.
2. Make the key decision.
3. Produce or verify the artifact.

## Rules

- Keep the constraints that prevent common mistakes.
- Link only the references that should be loaded conditionally.

Edit Pass

When creating or revising a skill:

  • Prefer action + plural noun in lowercase hyphen-case: audit-tests, write-skills, compare-screenshots. Keep the folder and frontmatter name identical. Use a natural exception when pluralizing would distort the meaning; this is the default for new names, not a mandate to rename existing skills.
  • Make the description specific enough to trigger without the body.
  • Remove any "when to use" section from the body.
  • Remove stale history, attribution, placeholders, and setup notes.
  • Remove file paths, line numbers, current constants, and implementation knobs unless the skill is explicitly a code-navigation runbook. Prefer durable principles plus a directive to inspect the current code.
  • Prefer one strong rule over several overlapping bullets.
  • Refactor restatements into a leading word where one fits.
  • Keep examples tiny and realistic.
  • Add no README, changelog, or auxiliary docs unless they are actual references the skill tells the agent when to read.
  • Run the skill validator when available.

Done

The skill is done when its metadata triggers correctly, its body is short enough to read in one pass, and a fresh agent can follow it without asking why the skill exists.

© dzhng, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/authoring/write-skills of dzhng/skills.

Open the folder on GitHubat commit d513228

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders. This page covers the copy in dzhng/skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Write Skills next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Write Skills compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Write Skills this skilldzhng/skills1k—~2.7kAutomated safety check: PassMIT
Revisebrycewang-stanford/Auto-Empirical-Research-Skills4.5k—~635Automated safety check: PassCustom licence
Reviseaiskillstore/marketplace430—~936Automated safety check: PassNone
ReviseAperivue/medsci-skills331—~6.7kAutomated safety check: PassMIT
ReviseCkokoski/AuthorAgent123—~473Automated safety check: PassMIT
Earnings Revisions and GuidanceHKUDS/Vibe-Trading35k—~2.5kAutomated safety check: PassMIT

Similar skills

  • Revise

    brycewang-stanford/Auto-Empirical-Research-Skills

    R&R cycle — classify referee comments and route to appropriate agents.

    4.5k GitHub stars~635 tokensUpdated 3 days ago
    Auto-check passed
  • Revise

    aiskillstore/marketplace

    Revise the most recent or provided p11 shareable document based on comments/replies and publish a new version.

    430 GitHub stars~936 tokensUpdated today
    Auto-check passed
  • Revise

    Aperivue/medsci-skills

    A skill your agent uses when a manuscript comes back with reviewer or editor comments.

    331 GitHub stars~6.7k tokensUpdated 3 days ago
    Business, Finance & HRAuto-check passed
  • Revise

    Ckokoski/AuthorAgent

    Multi-pass revision - developmental editing, line editing, copy editing

    123 GitHub stars~473 tokensUpdated 2 mo ago
    Writing & ContentAuto-check passed
  • Tracks analyst estimate revisions, earnings surprises, management guidance and post-earnings drift for US and Hong Kong stocks, and turns them into long and short signals.

    35k GitHub stars~2.5k tokensUpdated today
    Business, Finance & HRAuto-check passed
  • Revision

    hashgraph-online/awesome-codex-plugins

    Trace bugs and manual fixes back to kits and prompts, then fix at the source so the iteration loop can reproduce the fix autonomously.

    1.3k GitHub stars~4.9k tokensUpdated today
    Testing & QAAuto-check passed

More from dzhng/skills

All 27 skills in this repo
  • Compare screenshots against the intended design, distinguishing approved references from historical baselines.

    1k GitHub stars~2.6k tokensUpdated 3 days ago
    Auto-check passed
  • Claude

    dzhng/skills

    Use Claude Code as an independent claude -p subagent when the user explicitly asks for Claude, wants a second-agent opinion from Claude, or asks to delegate a well-scoped task to Claude.

    1k GitHub stars~1.3k tokensUpdated 3 days ago
    Auto-check passed
  • Refactor Clean

    dzhng/skills

    Refactor cleanly instead of layering sediment. An agent skill from dzhng/skills.

    1k GitHub stars~3.1k tokensUpdated 3 days ago
    Auto-check passed
  • Codex

    dzhng/skills

    Use the local Codex CLI as an independent second agent. An agent skill from dzhng/skills.

    1k GitHub stars~2.4k tokensUpdated 3 days ago
    Auto-check: warnings
  • Audit Agents

    dzhng/skills

    Audit or rewrite AGENTS.md so it holds only lasting principles.

    1k GitHub stars~847 tokensUpdated 3 days ago
    Auto-check passed
  • Audit Choices

    dzhng/skills

    Audit the choices an implementing agent made, not its diff — a pure decision audit that traces the session's history into a choices ledger, changes no code, and never blocks an unsupervised run.

    1k GitHub stars~2.5k tokensUpdated 3 days ago
    Auto-check passed

Questions about Write Skills

What does Write Skills do?

Create or revise agent skills. An agent skill from dzhng/skills. Write Skills is an agent skill from dzhng/skills. Create or revise agent skills.

When should I use Write Skills?

Write Skills fits situations like: adding a new skill file; renaming a skill; simplifying an existing skill; improving trigger descriptions.

How do I install Write Skills in Claude Code?

Run `npx skills add dzhng/skills --skill write-skills -a claude-code`. Or copy the skill folder (skills/authoring/write-skills in dzhng/skills) into .claude/skills/write-skills in your project. Claude Code loads it when a task matches its description.

How do I install Write Skills in Codex?

Run `npx skills add dzhng/skills --skill write-skills -a codex`. Or copy the skill folder (skills/authoring/write-skills in dzhng/skills) into .agents/skills/write-skills in your project. Codex loads it when a task matches its description.

Can I use Write Skills in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dzhng/skills --skill write-skills -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/write-skills, .gemini/skills/write-skills, .github/skills/write-skills and .opencode/skills/write-skills in your project.

What does Write Skills need to run?

SKILL.md names no scripts, command-line tools or credentials: Write Skills is instructions for the agent only.

Does Write Skills access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Write Skills safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Write Skills use?

Write Skills is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Write Skills use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Write Skills?

Skills that share tags, products or a category with Write Skills: Revise (brycewang-stanford/Auto-Empirical-Research-Skills, 4.5k stars), Revise (aiskillstore/marketplace, 430 stars), Revise (Aperivue/medsci-skills, 331 stars) and Revise (Ckokoski/AuthorAgent, 123 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Write Skills?

dzhng (a GitHub user) maintains it in dzhng/skills, which has 1,020 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 5, 2026.

Source: dzhng/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.