Agent skill

Implement Spec

by dzhng in dzhng/skills

Implement an existing spec through committed passes. An agent skill from dzhng/skills.

MITAuto-check passedDevelopment

Install Implement Spec

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

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

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

At a glance

Implement an existing spec through committed passes. An agent skill from dzhng/skills.

  • Works in 11 steps: Read the repo README, the spec README,… → Reconcile the plan with the current… → Implement one coherent pass: usually one… → …
  • Multi-pass specs that need maintenance checkpoints to periodically clean code
  • SKILL.md covers Workflow, Preserve the winner, Rules and Done
  • Calls git

What it does

Implement Spec is an agent skill from dzhng/skills. Implement an existing spec through committed passes. Use for long or multi-pass specs that need maintenance checkpoints to periodically clean code, handoffs, priorities, and plan bloat before drift accumulates.

Its SKILL.md is about 3.9k 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 Code quality. 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-pass specs that need maintenance checkpoints to periodically clean code
  • Plan bloat before drift accumulates

Example prompts

  • “/implement-spec”

Workflow steps

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

  1. Read the repo README, the spec README, and the next slice before editing.
  2. Reconcile the plan with the current code. If the slice would preserve a
  3. Implement one coherent pass: usually one slice, one vertical checkpoint, or
  4. Verify the actual contract. For behavior changes, run the focused unit tests
  5. Review the change list and clean up after every pass, before committing.
  6. Run review at the end of every pass, before committing.
  7. Update the spec README's "Next Agent Prompt": status, completed work, next
  8. Run a maintenance checkpoint as part of the loop, not as endgame cleanup.
  9. Continue. If any slice or global TODO is still open, go straight back to
  10. Run review once more over the whole spec. The
  11. Consolidate the choices ledger, then close. When the last slice lands, the

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

    Shell commands in SKILL.md call:

    • git

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

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    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

Implement Spec loads about 3.9k tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 2,326 words of instructions outside code blocks.

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

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,326 words, ~3,943 tokens.

Download SKILL.mdSave it as .claude/skills/implement-spec/SKILL.md (or your agent's skills folder).
name
implement-spec
description
Implement an existing spec through committed passes. Use for long or multi-pass specs that need maintenance checkpoints to periodically clean code, handoffs, priorities, and plan bloat before drift accumulates.

Implement Spec

Build the active spec to completion, one reviewable pass at a time. The spec is the implementation plan; user constraints and accepted experimental evidence remain binding when the architecture changes.

A pass (usually one slice) is a commit checkpoint, not a stopping point. The job is the whole spec — every slice, every global TODO — not the first green commit. Finishing a pass means starting the next one, not handing back to the user. Only stop when the spec is fully implemented (or a genuine blocker needs a decision only the user can make).

Work in parallel wherever the graph allows. Do not walk the ladder one slice at a time when slices are independent. Read the spec's dependency graph as a wavefront and delegate independent passes to subagents that run concurrently (see Rules) — you orchestrate and integrate; only serialize what genuinely depends on prior work.

Workflow

  1. Read the repo README, the spec README, and the next slice before editing. Load any skills named by the spec. Identify the current pickup point, global TODOs, required gates, and what must stay green. If a multi-slice spec lacks a live handoff prompt, add one before the first pass ends. For a validated spike, apply Preserve the winner below before editing.

  2. Reconcile the plan with the current code. If the slice would preserve a development-only shim, duplicated type, weak wrapper, or obsolete path, replace it with the simpler architecture and update the spec handoff.

  3. Implement one coherent pass: usually one slice, one vertical checkpoint, or one architecture correction. Keep the review surface small enough to audit.

  4. Verify the actual contract. For behavior changes, run the focused unit tests first; for browser-visible work, use the real browser/harness and inspect screenshots so the subject is framed and readable, not merely nonblank. A visual CHANGE carries two extra proofs before you claim it: a byte/pixel diff against the pre-change baseline on the production route (static checks and re-anchored assertions all pass on a no-op — a palette pass once shipped "verified" while the production frame was byte-identical), and an unprimed screenshot-critique — at the user's reported framing when the pass answers their visual bug report — before declaring it fixed; the implementer's eyes are primed by the fix and repeatedly pass what fresh eyes catch. Never weaken an existing default gate or repin a failing contract without proving the old contract is wrong.

  5. Review the change list and clean up after every pass, before committing. Read git status/git diff --stat line by line and account for every path: one-off probes, shot scripts, scratch files, nohup.out, ad-hoc screenshot dirs, and disposable SPIKE/debug notes never enter a commit — scratch stays out of the tree. Preserve frozen references, fixtures, and research evidence in the project's reference or spec assets area. A file without a durable purpose does not ship. Delegated agents leak these; the integrating reviewer re-checks the merged tree with the same eye.

    Sizing the pass — measuring what it cost and reworking it when the line count is out of proportion to the behaviour it delivers — belongs to the shape pass in step 6, under refactor-clean.

  6. Run review at the end of every pass, before committing. It sequences the three closeout lenses — refactor-clean on the shape, code-review on the settled diff, write-docs on what the change touched — and you apply the fixes from all three. Long specs are where sediment compounds, so hold the shape pass to this pass's own output: dev-only shims, duplicated concepts, parallel abstractions, and compatibility wrappers it introduced collapse into the clean contract with one owner, so the code reads as designed today, not tacked on. Last, run audit-choices on the cleaned pass — a pure audit that appends every decision made where the spec was silent (your own, and each delegated subagent's when integrating) to the spec's choices ledger (specs/<feature>/choices.md) with verdicts, changing no code itself. You act on its findings: redo unsound choices from their corrected decisions, adopt the recorded provisional call on any user-only entry — the audit never blocks the run. Rerun the affected checks, then commit only the focused changes from this pass.

  7. Update the spec README's "Next Agent Prompt": status, completed work, next pickup point, blockers, changed gates, and any architecture decision that changed the plan.

  8. Run a maintenance checkpoint as part of the loop, not as endgame cleanup. Trigger it after a red pass, after every two or three slice commits, after a rebase/resume/compaction, before changing feature areas, when evidence invalidates the plan, when the handoff contradicts the TODO/graph, when the choices ledger's entries cluster around one slice, or when the active prompt grows hard to scan. Long specs bloat repeatedly; cleanup is a normal pass, not a cosmetic chore.

    A checkpoint cleans both plan and code before more feature work:

    • Shorten the README handoff to one current pickup, one priority order, and one compact evidence ledger; move play-by-play into slice files or assets.
    • Correct completed/rejected/next markers; delete stale TODOs, stale acceptance claims, duplicated status sections, and obsolete prompts.
    • Re-rank remaining work so the next red/high-risk contract is explicit, and demote branches that are not on that path.
    • Reslice any still-red, overloaded, or foggy slice into smaller independently verifiable passes before implementing past it.
    • Delete or collapse scaffolding from earlier passes when it no longer owns a real contract.
    • If the work feels off-track, ask a fresh review/subagent to audit spec shape and priority order, then apply the fixes.

    Commit the checkpoint as its own focused pass when cleanup changes the spec, code shape, or handoff enough that future agents would otherwise inherit stale context. It is done only when a fresh agent can read the README handoff, TODO, and slice graph and choose the same next action without conversation history.

  9. Continue. If any slice or global TODO is still open, go straight back to step 1 for the next one — same session, no pause for acknowledgement. Keep looping until every TODO is closed.

  10. Run review once more over the whole spec. The per-pass reviews each judged one slice against the code as it stood then; this one judges the finished feature. Scope it to the spec's full diff, not the last pass — that is the only scope where duplication spread across slices, a shape that only reads wrong once every slice has landed, and docs that describe increments instead of the feature are visible at all. Apply the fixes, rerun the gates, commit.

  11. Consolidate the choices ledger, then close. When the last slice lands, the choices.md you've been appending to per pass is build-order sediment: entries banked early carry "provisional — revisit in slice N" verdicts that a later pass silently resolved, entries a later pass reverted still sit there, and the same choice may appear twice. The per-pass rule "banked is settled, never re-listed" is what let that drift accumulate — so the final consolidation is its deliberate exception. Before archiving, rewrite choices.md from scratch as the final ledger: re-audit every banked choice against the final shipped code (not the pass it landed in), collapse each provisional/needs-later entry to its actual end state, drop anything a later pass superseded or reverted, and merge duplicates. Keep it choices only — no gate results, e2e evidence, or review-finding narration; those are reported elsewhere and are not decisions the user now owns. Present it per audit-choices: grouped by verdict, ranked least-confident-first, every entry ELI5 and standalone. Then close the spec with close-spec.

Preserve the winner

  • Read the frozen winning code, configuration, prompts/skills, and evidence. Preserve actual behavior, including quirks whose contribution is unknown. A rewritten spec or cleaner design does not supersede measured results.
  • Port first; experiment separately. Give delegates the same reference and constraints. Record user-required differences; validate other behavioral changes against the winner before adopting them.
  • Prove parity through the production entry point with matched inputs and controlled external responses. Compare computed requests, decisions, complete outputs, and relevant recovery paths—not just templates or component tests. Normalize only documented intentional differences. Run these cheap checks before costly confirmation, retaining the original quality gates.
  • Missing parity evidence means unfinished. Preserve the reference and continue independent work rather than declaring equivalence.
Show full SKILL.md (970 more words)Show less

Rules

  • Delegate independent work to subagents so passes run in parallel. The spec's dependency graph is the map: whenever two or more slices, branches (e.g. frontend vs backend), sub-slices, replication spikes, or recon tasks have no unmet dependency on each other, hand them to subagents that run concurrently (spawn them in one message) instead of doing them yourself in sequence. Give each subagent its own git worktree when they touch files in parallel so their diffs don't collide, and keep work that shares the same files or API seam on a single agent to avoid merge chaos. Each delegated unit still owns its full pass — implement, verify, review, focused commit — and you integrate the results, resolve conflicts, rerun the affected gates on the merged tree, and keep the Next Agent Prompt coherent. Only serialize what the graph says must be serial; never idle a lane waiting on an unrelated one.
  • Treat backward compatibility as non-goal for unshipped/dev scaffolding. Delete old paths, wrappers, aliases, fallback modes, and stale tests when the new architecture replaces them.
  • Do not let tests get easier by accident. A split harness or new runner must preserve the old default coverage unless the spec explicitly changes it.
  • Commit every clean pass, then immediately begin the next one. A green commit is a checkpoint, not permission to stop. If a pass is not green, do not commit it as finished; report the failing contract and exact evidence.
  • Do not stop while work remains. "Slice N is done and committed" is not a finished task while later slices or TODOs are open — a single completed slice is a reason to continue, never to hand back. The only legitimate early stops are: a hard blocker that needs a user-only decision, a gate that cannot be made green with an honest fix, or the user interrupting. Running low on context is not a stop — update the handoff and keep going. When you must stop, say exactly which slice is next and why you paused.
  • Keep visual evidence honest: contact sheets, GIFs, screenshots, and baselines must show the thing being judged at the intended camera/framing.
  • Sweep every user-visible surface implied by the slice. A model, state, or data change is not done if the main view, cards, menus, reports, and verification fixtures now tell different stories.
  • When the implementation touches shared behavior, leave docs or spec rationale using write-docs principles: durable invariants and pointers, not copied inventories.
  • For long specs, keep the spec itself reviewable as an invariant. Do not let the README become a transcript of every attempt; keep one current handoff, one TODO/graph, and one compact evidence ledger, with details in slice files or assets.
  • Human checkpoints never block. At a slice's review or sign-off gate, open the relevant shots with preview-shots, state the decision and the options, and give the user ~5 minutes to weigh in — keep building other non-blocked work meanwhile, never idle. If they don't answer, make the call yourself on the evidence, record the decision and its rationale in the spec (the checkpoint's resolution), and keep going — and close the shots you opened (preview-shots cleans up Preview) so a long unattended run never piles up windows. A goal or implementation NEVER stops to wait on the user; it documents the assumption, keeps it reversible, and lets the user course-correct later.

Done

A pass is done when code, spec handoff, verification evidence, review cleanup, and a focused commit all agree on the same current truth — then you start the next pass.

The spec is done — and only then is this skill done — when every slice and global TODO is closed, all gates are green, the whole-spec review has run and its fixes have landed, the handoff shows nothing left to pick up, and the spec has been archived with close-spec. Anything short of that is mid-implementation: keep going.

The final handback presents the choices ledger, not the diff, per audit-choices — a days-long unsupervised run earns its merge through this ledger; it is the user's review surface for everything decided without them. Hand over the consolidated ledger from step 11 (final state, verified against shipped code, choices only), never the raw per-pass append — a ledger still carrying "will be done in a later slice" verdicts tells the user you never went back to confirm it was.

Close the handback with the size of what you added — always last, after the ledger. The ledger says what was decided; this says what it cost. A short table over the whole run:

addeddeletednet
Production code (excl. comments)
Comments
Tests / harness
Specs & docs

Then one paragraph naming the structural surfaces the run added — a new cron, table column, index, endpoint, config flag, dependency — because those are what the user now owns and maintains, and a line count alone hides them. Exclude formatter churn from files the run did not otherwise touch, and say so if you excluded any.

State the count plainly whatever it is. A large net addition for a small behavioural change is a finding to report, not a number to bury — and if you notice it here rather than at the pass that caused it, say which pass it was.

Slices are not the only unit of scope. A spec also records decisions — ledger rows, decision-table entries, invariants — and a decision can be agreed in planning but never turned into a slice, especially when it's orthogonal to the slices' theme. "All slices closed" then reads as done while that decision is silently unbuilt. Before declaring the spec done, reconcile every recorded decision against the shipped code, not just the slice list: each one is either implemented, or explicitly marked "no code needed." A decision with no owning slice is the classic silent miss — the close-spec audit is the backstop for it, not the first line of defense.

© 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/implement-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

Implement 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.

Implement Spec compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Implement Spec this skilldzhng/skills1k—~3.9kAutomated safety check: PassMIT
Install Anti-Slop Oxlint Rulesdmmulroy/anti-slop5.3k1 repos~2.2kAutomated safety check: PassMIT
WooCommerce Code Reviewwoocommerce/woocommerce11k3 repos~1.1kAutomated safety check: PassCustom licence
Systematic Code Refactoringluongnv89/claude-howto42k—~3kAutomated safety check: PassMIT
Constraint-Driven Developmentaddyosmani/agent-skills103k2 repos~5.2kAutomated safety check: PassMIT
Skill Doli Code ReviewDolibarr/dolibarr7.7k1 repos~1.1kAutomated safety check: PassMIT

Similar skills

  • Installs, updates or migrates the vendored anti-slop Oxlint plugin in a repository, keeping local rule changes and the plugin's license and provenance files.

    5.3k GitHub starsUsed in 1 repo~2.2k tokens
    DevelopmentAuto-check passed
  • WooCommerce Code Review

    woocommerce/woocommerce

    Reviews WooCommerce code changes against the project's standards, flagging backend PHP architecture, naming, documentation, data integrity and testing violations.

    11k GitHub starsUsed in 3 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Systematic Code Refactoring

    luongnv89/claude-howto

    Guides refactoring in phases based on Martin Fowler's method: research, test coverage check, planning and small tested steps, with your approval at each phase.

    42k GitHub stars~3k tokensUpdated 7 days ago
    DevelopmentAuto-check passed
  • Constraint-Driven Development

    addyosmani/agent-skills

    Records a project's quality bar in CONSTRAINTS.md and watches diffs for signs an agent quietly weakened it, such as suppressions, skipped tests or lowered thresholds.

    103k GitHub starsUsed in 2 repos~5.2k tokens
    DevelopmentAuto-check passed
  • Skill Doli Code Review

    Dolibarr/dolibarr

    Reviews Dolibarr PHP code for compliance with coding standards and security best practices, and fixes identified issues.

    7.7k GitHub starsUsed in 1 repo~1.1k tokens
    DevelopmentAuto-check passed
  • Ponytail Lazy Developer Mode

    DietrichGebert/ponytail

    Makes the agent pick the laziest solution that works: skip unneeded work, reuse what exists, prefer the standard library and platform features, and keep diffs small.

    158k GitHub stars~871 tokensUpdated today
    DevelopmentAuto-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

Categories

Questions about Implement Spec

What does Implement Spec do?

Implement an existing spec through committed passes. An agent skill from dzhng/skills. Implement Spec is an agent skill from dzhng/skills. Implement an existing spec through committed passes.

When should I use Implement Spec?

Implement Spec fits situations like: multi-pass specs that need maintenance checkpoints to periodically clean code; plan bloat before drift accumulates.

How do I install Implement Spec in Claude Code?

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

How do I install Implement Spec in Codex?

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

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

What does Implement Spec need to run?

Going by SKILL.md and its folder, Implement Spec needs the command-line tools its instructions call (git).

Does Implement Spec access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Implement 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 Implement Spec use?

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

About 3.9k tokens (SKILL.md is roughly 16k 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 Implement Spec?

Skills that share tags, products or a category with Implement Spec: Install Anti-Slop Oxlint Rules (dmmulroy/anti-slop, 5.3k stars), WooCommerce Code Review (woocommerce/woocommerce, 11k stars), Systematic Code Refactoring (luongnv89/claude-howto, 42k stars) and Constraint-Driven Development (addyosmani/agent-skills, 103k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Implement 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.