中文

← Plugins

Engineering · Skill

规格实现:按任务图提交代码

严格按已批准的规格实现,超出范围的部分单独提出来。

Trigger name implement-spec

mattpocock/skills ★ 304,452 MIT 59db609eb1

What it produces

在集成分支上按已批准规格与任务单完成代码实现。

Install

d=$(mktemp -d);
git -C "$d" init -q;
git -C "$d" fetch -q --depth 1 --filter=blob:none https://github.com/mattpocock/skills.git 59db609eb1e18aaf59b63284d0e52255aff0c63c;
git -C "$d" sparse-checkout set --no-cone skills/engineering/implement-spec;
git -C "$d" checkout -q FETCH_HEAD;
mkdir -p ~/.claude/skills/implement-spec;
cp -R "$d/skills/engineering/implement-spec/." ~/.claude/skills/implement-spec/;
rm -rf "$d"

Installs to ~/.claude/skills/implement-spec; to switch to Codex or Hermes, change only this path.

---
name: implement-spec
description: "Implement the result of /to-spec and /to-tickets in code."
disable-model-invocation: true
---

You have been provided a spec. This spec should have tickets associated with it, describing how to implement the spec.

The issue tracker should have been provided to you. If not, tell the user to run `/setup-matt-pocock-skills`.

The goal is the entire spec implemented on a single **integration branch**, with every ticket resolved the way the issue tracker closes work.

The tickets are not a list of steps. They are a **task graph** with blocking relationships between them. This means there is always a **frontier** of tickets which are ready to be grabbed.

Communication to and from subagents should be sparse. Communicate primarily through **context pointers**: to the spec, tickets, research notes, and previous commits. Don't duplicate information already available via pointers.

**Implementer subagents** should be run in the background where possible for maximum concurrency.

## Steps

1. Read the spec and tickets to understand the task graph.

2. (optional) Use an **exploration subagent** to conduct any exploration required by the tickets - relevant codebase files or external documentation. Ensure the exploration subagent can save files - it should save its markdown notes in a directory outside the repo, accessible by all future subagents. This lets **implementer subagents** focus on implementation rather than exploration.

3. Create the integration branch. If the issue tracker closes work through PRs, or the user asks for one, open a draft PR after the first merge in step 5 (a branch with no commits ahead of main can't open one), marked as closing the spec and tickets.

4. Use **implementer subagents** to implement each ticket, each in its own worktree on its own branch. Each implementer subagent:
   - confirms its worktree is based on the integration branch before starting, and resets onto it if not;
   - calls the Skill tool with `tdd` to build the ticket;
   - merges the integration branch tip into its own branch before reporting done

5. Once an **implementer subagent** completes, merge its work to the integration branch with a **merger subagent**.

6. If this changes the **frontier** of available tickets, kick off more **implementer subagents** to work on the new tickets. This allows for maximum concurrency.

7. Once all tickets are complete, call the Skill tool with `code-review` on the integration branch. Fix all issues raised by the code review in a single **implementer subagent**.

8. If a draft PR exists, mark it ready for review. Otherwise, resolve each ticket the way the issue tracker closes work, and report the integration branch.

9. Clean up all **implementer subagent** worktrees.
Upstream source ↗

↑ Back to plugins