Agent skill

Write Spec

by dzhng in dzhng/skills

Break large features into independently verifiable, human-reviewable slices under a feature directory in specs/.

MITAuto-check passedDevelopment

Install Write Spec

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

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

GitHub CLI
$ gh skill install dzhng/skills write-spec --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/engineering/write-spec .claude/skills/write-spec && 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-spec
GitHub stars
1k
Token cost
~4.7k tokens
SKILL.md length
2,559 words
Files
1
Skills in repo
27
Repo updated
First seen
Licence
MIT

At a glance

Break large features into independently verifiable, human-reviewable slices under a feature directory in specs/.

  • Works in 10 steps: Grill before planning. Ask one question… → Slice at API seams. Each slice should… → Research the fog. When the feature… → …
  • Multi-step feature work that needs upfront questioning
  • SKILL.md covers First Principles, Workflow, From research to implementation and Plan Folder, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Write Spec is an agent skill from dzhng/skills. Break large features into independently verifiable, human-reviewable slices under a feature directory in specs/. Use for risky or multi-step feature work that needs upfront questioning, API seams, browser-playable checkpoints, HTML visualizations, screenshot gates, staged implementation plans, recursive fog-of-war reslicing, or proactive research into reference implementations/best practices before slicing. Pairs with your project's verification harness and screenshot gates (the browser checkpoints)…

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

It sits in Development, covering Planning and Refactoring. 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

  • Multi-step feature work that needs upfront questioning
  • Browser-playable checkpoints
  • HTML visualizations
  • Screenshot gates

Example prompts

  • “/write-spec”

Workflow steps

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

  1. Grill before planning. Ask one question at a time until you know the
  2. Slice at API seams. Each slice should behave like a tiny library where
  3. Research the fog. When the feature depends on an unfamiliar domain,
  4. Make progress visible. For visual or interactive work, every slice
  5. Optimize feedback loops. Slice so the next useful question can be
  6. Use the repo's natural shape. If the repo is a monorepo, plan apps and
  7. Do not block on missing inputs. If art, data, credentials, or external
  8. Draft in parallel, then synthesize. For any multi-slice feature, don't
  9. Recursively uncover fog of war. The first slice graph is a scouting pass,
  10. One visual variable per slice. Visual slices fail when they ask one pass

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.

    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 Spec loads about 4.7k tokens when it runs. Until then it costs about 220 tokens; SKILL.md has 2,559 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~220
When it runs · the whole SKILL.md, loaded when a task matches
~4.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). 2,559 words, ~4,650 tokens.

Download SKILL.mdSave it as .claude/skills/write-spec/SKILL.md (or your agent's skills folder).
name
write-spec
description
Break large features into independently verifiable, human-reviewable slices under a feature directory in specs/. Use for risky or multi-step feature work that needs upfront questioning, API seams, browser-playable checkpoints, HTML visualizations, screenshot gates, staged implementation plans, recursive fog-of-war reslicing, or proactive research into reference implementations/best practices before slicing. Pairs with your project's verification harness and screenshot gates (the browser checkpoints), [refactor-clean](../refactor-clean/SKILL.md) (review the materialized spec so the plan describes one-owner architecture, not the feature bolted on), [screenshot-critique](../../visual/screenshot-critique/SKILL.md) and [compare-screenshots](../../visual/compare-screenshots/SKILL.md) (the visual gates), and a code-review pass (audit each slice before it lands).

Write Spec

Turn a large feature into a ladder of small contracts. Each rung should be understandable to the human, testable by an agent, and useful before the whole feature is done.

First Principles

  1. Grill before planning. Ask one question at a time until you know the desired outcome, non-goals, review surface, sacred contracts, missing assets, and first useful playable checkpoint. Give your recommended answer with each question so the user can accept, reject, or edit it. Inspect the repo instead of asking questions the code can answer. Close the interview by asking whether the plan must carry backward compatibility or data migrations — the default is neither: hard cutovers, no compat shims, no migration scaffolding, no deploy-order dances. Only the user opting in puts them in the plan.

  2. Slice at API seams. Each slice should behave like a tiny library where possible: named module boundary, typed inputs/outputs, deterministic fixtures, and tests at the seam. If a slice needs three unrelated systems booted before it can be checked, sharpen the seam.

  3. Research the fog. When the feature depends on an unfamiliar domain, high-fidelity visual target, named reference, benchmark, external repo, library, or "how do people usually do this?" question, do targeted online research before finalizing slices. Prefer primary sources: official docs, source repos, papers, case studies, talks, and shipped examples. If a reference implementation exists, add a replication spike before translation or approximation.

  4. Make progress visible. For visual or interactive work, every slice should produce something playable: a route, fixture page, harness, CLI probe, or HTML visualization the human can run, inspect, screenshot, and critique. Tests prove contracts; demos expose taste and intent.

  5. Optimize feedback loops. Slice so the next useful question can be answered quickly. Prefer tiny runnable surfaces, hot-reloadable harnesses, sample fixtures, and self-contained workbenches over plans that require the whole feature to exist before anyone can learn from it. For asset-heavy work, plan an asset app/workbench where humans and artists can add samples, upload replacements, preview them live, and see validation failures fast.

  6. Use the repo's natural shape. If the repo is a monorepo, plan apps and packages instead of forcing everything into the current app. Give each testable surface a first-class route or command; avoid piling new behavior behind opaque query flags when a small dedicated app would be clearer.

  7. Do not block on missing inputs. If art, data, credentials, or external assets are missing, plan generated placeholders plus a replacement contract. The feature should advance with placeholders, while a separate handoff path explains exactly what the human or external partner must provide later.

  8. Draft in parallel, then synthesize. For any multi-slice feature, don't trust one pass to find the right cut. Fan out a few independent drafts and merge the best into one plan (see the Workflow). Divergence is the point — so engineer it on two axes: give each draft a different bias (a lens it optimizes for) and, when more than one model family is available, a mix of models. Blind, differently-biased drafts surface slices, seams, and risks a lone plan misses — and where they independently agree, you know the cut is solid.

  9. Recursively uncover fog of war. The first slice graph is a scouting pass, not proof the field is known. After drafting, inspect each high-risk slice as if it were its own feature. If it hides multiple variables, unknown external practice, unproven architecture, or "we'll figure it out during implementation," reslice that subset and repeat until every next slice has one question, one seam, one review surface, and one verdict.

  10. One visual variable per slice. Visual slices fail when they ask one pass to match the final hero image. Split by the thing being judged: density, silhouette, colour, texture, lighting, fog, water placement, water material, label legibility, animation rhythm. Each slice gets a crop/mask and a verdict for that variable only. Whole-frame comparison belongs at compose/integration, after the variables have their own evidence.

Workflow

  1. Interview: keep asking until you can name the slices without hand-waving. Stop when remaining unknowns can safely be discovered by the first slice.

  2. Research: inspect the repo and research unfamiliar external practice before drafting when the feature names a reference, library, technique, standard, visual target, or performance pattern. Capture the discovered source/repo/article/paper links in the spec and turn any exemplar into a reproduction spike before a porting slice. If prior experiments already established an accepted approach, apply From research to implementation below before drafting alternatives.

  3. Draft in parallel: for a multi-slice feature, spawn at least three independent subagents to draft the whole plan — fresh context each, a git worktree apiece if they must run or build to validate, otherwise have them return the plan inline. Three is the floor, not the count: scale the pool with the feature's complexity, adding a drafter for each genuinely distinct approach or lens the problem supports. Give each the same brief from the interview and nothing else (never another draft) — but assign each a distinct bias so their divergence is structured, not accidental. The baseline trio:

    • A — fewest-slices bias: the smallest ladder that still ships; merge slices aggressively, question every rung.
    • B — risk-first bias: front-load the scariest unknowns; order slices so the plan dies fast if an assumption is wrong.
    • C — seam-quality bias: optimize API boundaries, ownership, and testability at each seam, even at the cost of more slices.

    Swap in or add lenses when the feature demands them (e.g. asset-pipeline bias, perf bias, migration-safety bias), but keep the biases orthogonal — grow the pool by adding a new lens, never by running the same lens twice. Also mix model families: if you're currently instructed to draft with codex, run at least one draft with claude — and vice versa — so the pool balances different models' blind spots, not just different prompts. Family means vendor (claude vs codex), not tier: every draft uses a state-of-the-art model; never diversify by dropping to a weaker tier of the same family. Each drafter: recon the real code and tests (measured facts, failed approaches, scope firewalls, greppable file/test names), then propose the slice graph, package/app boundaries, dependencies, API seams, playable deliverables, verification gates, and human review checkpoints. Skip the fan-out only for a genuinely single-slice problem.

  4. Synthesize: read every draft and build the canonical plan yourself — don't anoint one. Take the strongest slicing, union the seams, risks, and firewalls each caught alone, and where drafts disagree pick the better-justified call and record the genuine alternative for the human. Where the drafts independently agree you're on firm ground; where they split is where to think hardest. When the feature has any visual surface, make screenshot-critique a standing verification gate in the README so every visual slice inherits it: the spec must tell the implementing agent to run an unbiased screenshot-critique as the last check on any visual shot before accepting it. Whenever a slice has something to compare its shot against — a prior look it changes, or a reference/inspiration image added for the feature — the spec must also name compare-screenshots as the gate that judges candidate-against-target: the telemetry and less-wrong verdict that screenshot-critique's single-shot eyes do not give.

  5. Recursive fog audit: review the canonical graph slice by slice. For any slice with hidden variables, broad verbs ("make it realistic", "match the reference", "add the backend"), missing research, or more than one visual variable/API seam, run this same slicing logic on that slice as a sub-feature. Keep repeating until the next implementation slice can be accepted or rejected by one focused artifact. Record deferred variables as later slices, not prose inside the current slice. The exit test is the decision budget: a slice is fully specified when the implementing agent inherits decisions rather than making them — every freedom left open is either named as delegated in the slice file or the slice needs another pass.

  6. Materialize: create specs/<feature>/ when the feature has more than one slice or needs assets/visualizations.

  7. Refactor-clean the plan: run refactor-clean over the materialized spec — the plan is architecture too, and it must describe the shape the codebase would want if designed today, not the old shape with the feature bolted on. Name each concept that should have one owner (projection, environment, data contract, renderer phase, state machine, test oracle) and confirm no slice introduces a parallel abstraction, duplicated concept, or compatibility layer that a later slice must delete. Any transitional scaffolding a slice genuinely needs must be named as a short-lived seam with an explicit removal condition and the slice that removes it — collapsed the instant its consumers migrate, never carried to the end by default. Encode the resulting single-owner invariants and the end-state ("reads as designed today, not tacked on") in the README so every implementing pass inherits them.

  8. Scrollback audit: the conversation dies; the spec survives. Before calling the plan done, sweep the full conversation and every earlier planning artifact (maps, interview notes, drafts) for content that exists only there — decisions with their rationale, rejected alternatives with why they lost, mid-stream scope changes, user-supplied constraints and throwaway remarks that decided something. Each either lands in its owning spec file or is deliberately dropped; a scope change propagates to every spot that references it, not just where it landed. Then re-read each surviving pre-plan artifact the spec supersedes (a map's kickoff prompt, open-questions list, or proposed plan) and mark superseded sections with a pointer to the plan — stale instructions must not be able to misroute a fresh agent. Done when every conversation decision is findable in the spec and no surviving artifact contradicts the ladder.

  9. Build slice by slice: leave each slice with a runnable artifact and verification before depending on it. Keep each artifact small enough to iterate on quickly. Keep the README's "Next Agent Prompt" written as the handoff text a future agent should read and follow.

  10. Reslice when the work says so: if implementation hits a snag and the slice starts changing unrelated variables — or the choices ledger keeps filling from one slice — stop broadening the patch. Update the spec first: split the slice into smaller contracts, name the frozen inputs, move the extra visual variables to later slices, and rewrite the Next Agent Prompt to resume from the first new slice. Then continue. Reslicing is progress, not failure.

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

From research to implementation

Freeze the accepted spike's runnable code, dependencies, configuration, inputs, prompts/skills, and evidence by immutable identity. Inspect what it actually does; option names and summaries are not proof of behavior.

Map proven behavior → evidence → owning slice → parity gate in the spec. Give every drafter this contract and the limits of the findings. Separate user-required differences from untested proposals; cleanup must not silently redesign the winner.

Plan an early production-entry-point comparison against the frozen reference with matched inputs and controlled responses. Check computed requests, decisions, and complete outputs; name permitted differences. Every preservation row needs an owner and a check. Run parity before expensive confirmation and retain the original quality gates.

Plan Folder

Use specs/<feature>.md only for a small, single-slice problem. Large features live in:

  • specs/<feature>/README.md — goal, context, slice graph, review map, contracts, firewalls, known unknowns, and a "Next Agent Prompt" section with the current status, next pickup point, global TODO checklist, and handoff instructions for the next pass.
  • specs/<feature>/slices/<NN>-<name>.md — one independently verifiable slice per file.
  • specs/<feature>/visualizations/*.html — roadmap diagrams, prototypes, harness mockups, generated reports, contact sheets, or other human-reviewable artifacts.
  • specs/<feature>/assets/ — reference images, fixtures, captures, and other inputs needed to judge the work.

For visual work, keep feature-owned visual evidence in the spec folder: inspiration images, reference screenshots, archived baselines, comparison contact sheets, generated candidate captures, and critique artifacts. If those files start outside the spec folder, copy them into the spec folder when they become part of the feature's review context. Product snapshot folders may still hold the active regression baselines their harnesses own, but do not rely on those mutable outputs or external paths as the only record of what the feature was judged against.

Slice File Contract

Each slice file answers:

  • What contract does this unlock?
  • What is the API seam: module, functions/types, data shape, ownership?
  • What can the human run or see?
  • What tests, scenarios, screenshots, probes, or perf gates verify it?
  • If the slice produces any visual shot (screenshot, GIF, contact sheet, or on-screen render), the slice file must instruct the implementing agent to run screenshot-critique as the last check before the slice is accepted — an unprimed second opinion the regression gates and the implementer's own inspection cannot supply. Write this as an explicit verification step in the slice, not as a passing mention.
  • If the slice's shot has a target to compare against — a prior look it changes, or a reference/inspiration image added for the feature — the slice file must also instruct the agent to use compare-screenshots to judge candidate-against-target: telemetry plus a less-wrong verdict, not a check that the shot matches the reference. Write it as an explicit step too.
  • For visual slices with a reference image, state the slice variable and the crop/mask used to judge it. Also list visible wrongness that is explicitly out of scope. Example: a grass-density slice compares lower-third coverage and falloff only; cliff shape, cliff texture, water, sky, and fog are later slices. A cliff-silhouette slice compares the ridge outline and depth rows only; rock texture and haze are later slices.
  • What decisions are delegated to the implementer? Name the freedoms deliberately left open (internal structure, naming, reversible cosmetic calls). Everything else must be resolved by the slice: an unlisted decision the implementer has to invent is a spec gap that lands in the choices ledger (audit-choices), not implementer discretion.
  • What must stay green?
  • What feedback from the human would change this slice?
  • If the slice has a human review checkpoint, the slice file must frame it as non-blocking: tell the implementing agent to open the shots for the user with preview-shots, give a short window (~5 min) for a response, and — if the user stays silent — decide on the evidence, record the decision and rationale in the spec, close the opened shots (preview-shots cleans up Preview, so an overnight run never piles up windows), and proceed. Implementation never stalls waiting on sign-off; the checkpoint is a chance to course-correct a reversible call, not a gate that blocks the build.

README Handoff Prompt

Every multi-slice spec README needs a "Next Agent Prompt" near the top. Write it in second person, as the prompt a future agent should read when they resume the feature. The README should not merely describe that it is live handoff state; the section itself must directly tell the next agent what to do next. It should include:

  • Current status and last-updated date.
  • The exact next pickup point.
  • Active blockers or warnings.
  • A global TODO checklist, with each item pointing to the owning slice.
  • A direct instruction to the next agent to update this section before ending their pass.

The point is that a fresh agent can open the README and know what to do next without reading the chat.

Done

The feature plan is done when a fresh agent can start at slice 1 without the conversation, and the human can review the roadmap without reverse-engineering a wall of text.

Once the slices have all shipped, close-spec archives the plan to specs/done/ and rewrites it from a build ladder into a durable rationale record.

© 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/engineering/write-spec 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 Spec 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 Spec compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Write Spec this skilldzhng/skills1k—~4.7kAutomated safety check: PassMIT
Plan WritingxenitV1/Antigravity-Workflows1308 repos~994Automated safety check: PassMIT
Workflowbrianlovin/agent-config3761 repos~687Automated safety check: PassNone
Evanflow Improve Architectureevanklem/evanflow418—~950Automated safety check: PassCustom licence
Improvefossasia/eventyay-interpretation1.6k10 repos~3.7kAutomated safety check: WarnMIT
Claude Code Clawdbotwin4r/claude-code-clawdbot-skill123—~2.5kAutomated safety check: WarnNone

Similar skills

  • Plan Writing

    xenitV1/Antigravity-Workflows

    Structured task planning with clear breakdowns, dependencies, and verification criteria.

    130 GitHub starsUsed in 8 repos~994 tokens
    DevelopmentAuto-check passed
  • Workflow

    brianlovin/agent-config

    Workflow orchestration for complex coding tasks. An agent skill from brianlovin/agent-config.

    376 GitHub starsUsed in 1 repo~687 tokens
    DevelopmentAuto-check passed
  • Identify refactoring opportunities by surfacing architectural friction.

    418 GitHub stars~950 tokensUpdated 4 mo ago
    DevelopmentAuto-check passed
  • Improve

    fossasia/eventyay-interpretation

    Survey any codebase as a senior advisor and produce prioritized, self-contained implementation plans for OTHER models/agents to execute.

    1.6k GitHub starsUsed in 10 repos~3.7k tokens
    Agent WorkflowsAuto-check: warnings
  • Claude Code Clawdbot

    win4r/claude-code-clawdbot-skill

    Run Claude Code (Anthropic) from this host via the claude CLI (Agent SDK) in headless mode (-p) for codebase analysis, refactors, test fixing, and structured output.

    123 GitHub stars~2.5k tokensUpdated 8 mo ago
    AI & LLM EngineeringAuto-check: warnings
  • One Three One Rule

    Tommy-yw/RunbookHermes

    Structured decision-making framework for technical proposals and trade-off analysis.

    546 GitHub starsUsed in 3 repos~1.3k tokens
    Agent WorkflowsAuto-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 2 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 2 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 2 days ago
    Auto-check passed
  • Write Skills

    dzhng/skills

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

    1k GitHub stars~2.7k tokensUpdated 2 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 2 days ago
    Auto-check: warnings
  • Run [implement-spec](../implement-spec/SKILL.md) with Codex doing the implementation passes while you orchestrate, integrate, and review.

    1k GitHub starsUsed in 1 repo~543 tokens
    Auto-check passed

Questions about Write Spec

What does Write Spec do?

Break large features into independently verifiable, human-reviewable slices under a feature directory in specs/. Write Spec is an agent skill from dzhng/skills. Break large features into independently verifiable, human-reviewable slices under a feature directory in specs/.

When should I use Write Spec?

Write Spec fits situations like: multi-step feature work that needs upfront questioning; browser-playable checkpoints; HTML visualizations; screenshot gates.

How do I install Write Spec in Claude Code?

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

How do I install Write Spec in Codex?

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

Can I use Write Spec 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-spec -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-spec, .gemini/skills/write-spec, .github/skills/write-spec and .opencode/skills/write-spec in your project.

What does Write Spec need to run?

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

Does Write Spec 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 Spec 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 Spec use?

Write Spec 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 Spec use?

About 4.7k tokens (SKILL.md is roughly 19k 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 Spec?

Skills that share tags, products or a category with Write Spec: Plan Writing (xenitV1/Antigravity-Workflows, 130 stars), Workflow (brianlovin/agent-config, 376 stars), Evanflow Improve Architecture (evanklem/evanflow, 418 stars) and Improve (fossasia/eventyay-interpretation, 1.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Write Spec?

dzhng (a GitHub user) maintains it in dzhng/skills, which has 1,016 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.