agentleFS
jellydnjellydn/my-ai-tools/skills/implement-spec/SKILL.md

implement-spec

Skill127 starsChanged 26 days agoMITView on GitHub

Implement a complete spec from its ticket graph, using isolated workers and one integration branch.

107 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use implement-spec-with-codex, close-spec and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • dzhngSkill

    implement-spec-with-codex

    Run [implement-spec](../implement-spec/SKILL.md) with Codex doing the implementation passes while you orchestrate, integrate, and review. Use when the user asks to implement a spec with Codex, or to run implement-spec with Codex as the implementer.

    Also in 4 projects that use this

  • dzhngSkill

    close-spec

    When a spec under specs/<feature>/ is done shipping (a write-spec build, or any planned task that produced a spec), archive it to specs/done/ and rewrite it from a build-plan into a durable rationale — the why, the principles, the invariants — pointing back to the real code for the how. Use when implementation has landed and the plan no longer matches what shipped, or the user says a feature/spec is finished. Pairs with [write-spec](../write-spec/SKILL.md) (the plan this closes) and [review](../review/SKILL.md) (run before closing).

    Also in 4 projects that use this

  • wolverin0Skill

    audit-decisions

    Standardize remediation decisions, baseline-policy entries, and legal-review banners for accepted, deferred, or policy-blocked audit findings.

    Also in 4 projects that use this

  • saffron-healthSkill

    get-pr-reviews

    Get nicely formatted output of the last review comments on a PR. Used internally by other skills.

    Also in 3 projects that use this

  • saffron-healthSkill

    push-everything

    Stage ALL changes in the repository (not just session changes), commit, and push. Use when you need to commit all pending changes.

    Also in 3 projects that use this

  • transitive-bullshitSkill

    compare-screenshots

    Compare screenshots against the intended design, distinguishing approved references from historical baselines. Use for iterative implementation matching, before/after visual review, objective image telemetry, or checking a lone capture for flat, empty, or badly framed content.

    Also in 4 projects that use this

  • +5 more from dzhng

The file

Show its rules and text

We split this skill into the rules it gives an agent

19 rules. 0 are common, 19 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 100 edited versions we read keep these.

  • 19

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  • could be automatic: a setting could enforce it
  1. Distinctive:

    Do not use when the spec is still ambiguous, tickets are missing dependencies, or the user only wants one isolated ticket.

    line 29
  2. Distinctive:

    Before changing code, identify:

    line 33
  3. Distinctive:

    If any of these cannot be found, stop and report the missing input instead of inventing a task graph.

    line 41
  4. Distinctive:

    Read the full spec and all tickets.

    line 47
  5. Distinctive:

    Use one exploration pass, or a dedicated exploration worker, to locate existing patterns, ownership boundaries, relevant tests, and …

    line 59
  6. Distinctive:

    Start from the latest remote base and create one integration branch.

    line 63
  7. Distinctive:

    Run focused tests, then the relevant broader checks.

    line 82
  8. Distinctive:

    Commit with a conventional message.

    line 83
  9. Distinctive:

    Use a merger worker or the controller to merge one verified ticket at a time into the integration branch.

    line 90
  10. Distinctive:

    Run focused checks for the merged ticket.

    line 92
  11. Distinctive:

    Update the graph status.

    line 93
  12. Distinctive:

    Start newly unblocked tickets.

    line 95
  13. Distinctive:

    Do not merge two workers that modify the same contract without reviewing their combined diff first.

    line 97
  14. Distinctive:

    Update the skill with a bounded decision rule rather than a slogan.

    line 107
  15. Distinctive:

    Add a deterministic check when the lesson is mechanical.

    line 109
  16. Distinctive:

    Run the repository's complete validation suite.

    line 113
  17. Distinctive:

    Every ticket has a commit and a resolved status.

    line 115
  18. Distinctive:

    No worker worktrees remain.

    line 117
  19. Distinctive:

    Keep worker prompts sparse.

    line 123

“Common” is measured: kept by at least 6 in 10 of the 100 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Implement Spec

Build a complete specification from its dependency-aware ticket graph. The goal is a verified integration branch, not a collection of disconnected worker branches.

When to Use

Use when:

  • A reviewed spec exists.
  • Tickets describe acceptance criteria and blocking relationships.
  • The user wants the whole spec implemented rather than one ticket.

Do not use when the spec is still ambiguous, tickets are missing dependencies, or the user only wants one isolated ticket. Resolve those inputs first with the relevant planning skills.

Contract

Before changing code, identify:

  • The spec path or authoritative issue/plan.
  • The ticket source and ticket status format.
  • The dependency field used to define blocking relationships.
  • The repository's test, lint, typecheck, and build commands.
  • The base branch and the requested integration branch name.

If any of these cannot be found, stop and report the missing input instead of inventing a task graph.

Workflow

1. Read the graph once

Read the full spec and all tickets. Extract a compact work map:

Ticket       Blocks on       Files/area       Acceptance check       Status
TICKET-1     none            parser           unit test                ready
TICKET-2     TICKET-1        API              integration test          blocked

A ticket is on the frontier when every blocker is complete. Tickets are not a serial to-do list: independent frontier tickets may run concurrently.

2. Explore before parallel work

Use one exploration pass, or a dedicated exploration worker, to locate existing patterns, ownership boundaries, relevant tests, and external documentation. Save substantial findings in a temporary notes directory accessible to later workers. Do not make every implementer rediscover the repository.

3. Create the integration branch

Start from the latest remote base and create one integration branch. Keep it separate from the default branch. Do not open a PR unless the user asks, the issue tracker requires it to close tickets, or the workflow explicitly says to do so.

Check before proceeding:

git fetch origin <base>
git status --short --branch
git switch -c <integration-branch> origin/<base>

Preserve unrelated dirty work. Never reset or stash unfamiliar user changes implicitly.

4. Implement frontier tickets in isolated worktrees

For each ready ticket, dispatch one implementer in its own worktree and branch. Give it the complete ticket text, acceptance criteria, relevant context pointers, and exact verification commands. It must:

  1. Confirm its worktree is based on the current integration branch.
  2. Load and follow tdd for behavior changes.
  3. Make the smallest change that satisfies the ticket.
  4. Run focused tests, then the relevant broader checks.
  5. Commit with a conventional message.
  6. Return the commit SHA, files changed, and real command output.

A timeout, partial result, or claim without a commit SHA is not completion. Inspect the worktree and either recover it deliberately or discard it.

5. Merge completed work deliberately

Use a merger worker or the controller to merge one verified ticket at a time into the integration branch. Resolve conflicts using the spec and domain terminology, not by choosing whichever side is shorter. After every merge:

  • Run focused checks for the merged ticket.
  • Update the graph status.
  • Recompute the frontier.
  • Start newly unblocked tickets.

Do not merge two workers that modify the same contract without reviewing their combined diff first.

6. Full integration review

When every ticket is complete, load code-review and review the full integration branch against the original spec, not only the individual ticket descriptions. Fix findings in a focused worker, rerun the affected checks, and repeat the review until there are no unresolved critical or important findings.

For changes to agent skills or workflow instructions, include a learning check before declaring the ticket complete:

  1. Preserve a representative input and the old output.
  2. Record any human correction and the decision behind it.
  3. Update the skill with a bounded decision rule rather than a slogan.
  4. Rerun the same input and compare the new output with the correction.
  5. Add a deterministic check when the lesson is mechanical.

7. Finish cleanly

Run the repository's complete validation suite. Confirm:

  • Every ticket has a commit and a resolved status.
  • The integration branch contains only intended changes.
  • No worker worktrees remain.
  • Generated files and temporary notes are not accidentally committed.
  • The final branch and commit SHA are reported.

Communication Rules

Keep worker prompts sparse. Prefer pointers to the spec, ticket, notes, and previous commits over copying large context into every prompt. The controller owns the graph and merge order; workers own their ticket implementation.

Common Pitfalls

  1. Treating tickets as a simple list and missing blockers.
  2. Letting two workers silently redefine the same field, API, or file contract.
  3. Reporting a timed-out worker as done.
  4. Opening a PR before the integration branch has passed full review.
  5. Running only unit tests and missing integration, type, or build failures.
  6. Resetting a dirty worktree and destroying unrelated user work.
  7. Asking workers to explore the whole repository instead of giving them focused pointers.

Verification Checklist

  • Spec and ticket graph were read and mapped.
  • Base branch was refreshed and unrelated changes preserved.
  • Each ticket ran in an isolated worktree.
  • Each completed ticket has a verified commit SHA.
  • Merges were checked as an integrated change.
  • code-review passed on the complete branch.
  • Skill/workflow changes were rerun against a stable input, when applicable.
  • Mechanical lessons became deterministic checks where practical.
  • Full repository validation passed, or blockers are reported exactly.
  • Worker worktrees and temporary artifacts were cleaned up.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.