SkillAgentSearch skills...

implement-spec

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.

Install / Use

npx skills add dzhng/skills --skill implement-spec

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

84/100

Supported Platforms

Universal

Our assessment of implement-spec

implement-spec scores 84/100 on our quality scale, 2963rd of 4,592 Development & Engineering skills we index.

Its SKILL.md is 15 KB long, split into 5 sections and no code examples: a thorough specification that gives an agent plenty to work with.

With 1,349 GitHub stars, it is one of the more widely adopted skills in the catalogue.

Substance
30/30
Structure
11/20
Description
15/15
Adoption
13/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated 9 days ago, so implement-spec is actively maintained.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

implement-spec compared with similar skills

All 4 of these similar skills score higher than implement-spec; compare them before choosing.

SkillScoreStarsUpdatedFormat
implement-spec (this skill)by dzhng841.3k9d agoSKILL.md
taste-skillby Leonxlnx100102.3ktodayCLAUDE.md
ai-job-searchby ai-job-search-dev10065.4k4d agoCLAUDE.md
claude-howtoby luongnv8910044.9k5d agoCLAUDE.md
algorithmic-artby anthropics100177.9k33d agoSKILL.md

Frequently asked questions

How do I install implement-spec?
Run npx skills add dzhng/skills --skill implement-spec. The install tabs above show the steps for each supported agent.
Which AI agents does implement-spec work with?
It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
Is implement-spec safe to use?
It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is implement-spec still maintained?
The repository was last updated 9 days ago, so implement-spec is actively maintained.

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

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 to

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars1.3k
CategoryDevelopment
Updated9d ago
Forks86

Languages

HTML

Trust signals

100/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

No cautions