implementlisted
Install: claude install-skill natb1/commons.systems
# Implement
The `implement` phase of the issue workflow, dispatched by `/dispatch-propagate`.
Reads the plan persisted to the issue's `<!-- dispatch:plan -->` comment by the
`plan` phase, builds each unit, and opens a draft PR. One draft PR with a
`Closes #N` line is the implement→fix-checks transition marker.
**The main thread never edits files.** It delegates: every code change happens in
a subagent. Each unit is built by `/implement-unit`, which launches an
implementation subagent and forks `/commit-merge-push`.
This skill runs in the **caller's thread** — it has no `context:` key — so it can
fork `/commit-merge-push` and run subagents inline.
## Sandbox
Every `gh`/network call in this skill carries `dangerouslyDisableSandbox: true` —
`gh` needs network and the sandbox blocks it. See `.claude/rules/sandbox.md`.
## Parameters
On the graph-native node lane the front door (below) derives these structured
inputs from the node-id argument this skill is invoked with
(`/implement <node-id>`):
| Parameter | Meaning |
|---|---|
| `node_id` | The intention node id this session implements — the `/implement <node-id>` argument, which also names the current worktree branch. |
| `pr_num` | The open draft PR's number, or **empty**. Unlike the other graph-native phase skills, `implement` tolerates an empty `pr_num`: a missing PR here is the legitimate "first run" case (no PR opened yet), not an error. |
## Idempotency preamble
This skill's terminal artifact is the **draft PR** —