Deliver pr
Deliver one change end to end as a single pull request — clarify → plan → implement → simplify → review → validate → open-pr — resuming from wherever it left off. Use to take a task from intent to an open, mergeable PR with each phase run as a focused sub-agent. This is the default workflow the binary launches when you create a new project (`relay "<task>"`).From its SKILL.md
npx -y skills add ronaknnathani/relay --skill deliver-prAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
6.1 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
Deliver PR
Drive one change from a task to an open PR by orchestrating the foundation skills, one phase at a time, with durable resumable state. You are a router, not a worker: you read state, dispatch the next phase as a sub-agent, record the result, and move on. You do not do the phase work yourself, and you stay context-light — you read digests and state, never file dumps.
Resume-first — always start here
<slug> is the argument this skill was invoked with — bind it to $SLUG before anything else. Every
invocation (first run or resume) then begins by asking the binary where this run is. State is owned by
relay state; never hand-edit it.
PHASE=$(relay state next "$SLUG" 2>/dev/null)
if [ $? -ne 0 ]; then # no state yet → first run: initialize, then ask again
relay state init "$SLUG" --workflow deliver-pr \
--phases "clarify,plan,implement,simplify,review,validate,open-pr"
PHASE=$(relay state next "$SLUG")
fi
Never assume a fresh start: an interrupted run returns its in-progress phase and continues it. When
relay state next prints empty, every phase is done — go to Done.
The phase pipeline
Each phase is a foundation skill. Run the one relay state next reports, in this order:
| Phase | Skill | Consumes | Produces |
|---|---|---|---|
| clarify | clarify | the task | requirements + acceptance criteria |
| plan | plan | requirements | a blueprint + phased build sequence |
| implement | implement | the plan | code + tests, green (commits as it goes) |
| simplify | simplify | the diff | a cleaner diff, behavior unchanged |
| review | review (report mode) | the diff + criteria | a severity-ranked findings report |
| validate | validate | the diff + criteria | a pass verdict on the repo's gates |
| open-pr | open-pr | the committed branch | an open PR |
Per-phase loop (the router contract)
For the phase relay state next reported:
relay state set "$SLUG" "$PHASE" in-progress- Dispatch a sub-agent (when available; otherwise run inline) to run the
$PHASEskill on this project. Hand it the task and the upstream artifact only — not your own conclusions. It does the work and returns a structured digest: what it produced, the artifact path, test/gate results, and any blocking question — never a file dump. - On a blocking author-decision (the sub-agent surfaces a real design/scope choice it shouldn't
guess): surface it to the author (use an interactive prompt when available; otherwise write it to
questions.mdin the project dir, alongsidetask.md/notes.md, and stop). Do not advance. Resume when the author answers. - On success:
relay state log "$SLUG" "$PHASE done: <one-line digest>", thenPHASE=$(relay state advance "$SLUG")— this marks the current phase done and prints the next one. IfPHASEis empty, go to Done; otherwise loop back to step 1 with the newPHASE.
Phase gates (where judgment applies)
- After
plan: if the design left genuine ambiguity, get author sign-off on the plan beforeimplement; otherwise proceed with the smallest-change default and log the call. - review → address: run
reviewin report mode. By the timereviewruns,implementandsimplifyare already marked done, so addressing findings means reopening the owning phase — the CLI allows a backward move. Whilereviewreturns Critical or Important findings:relay state set "$SLUG" implement in-progress(orsimplify), dispatch a sub-agent scoped to those findings,relay state set "$SLUG" implement done, then re-dispatchreview. Thereviewphase stays in-progress throughout — use explicitset, notadvance, for the reopened phase. Suggestions are non-blocking. Onlyadvanceout ofreviewonce it is clean of Critical/Important. - No merge gate here.
deliver-prends at an open PR. Watching CI, handling review comments, and merging belong topr-monitor/stack-ship— not this skill.
Delegation contract
Every sub-agent prompt: name the worktree/branch, give it the task + the one upstream artifact, demand
a structured digest back (not prose, not file contents), and tell it to surface a blocking question
rather than guess. Keep yourself blind to file dumps — you route on digests and relay state.
Done
When relay state next "$SLUG" is empty, run a final check that the PR is open and its acceptance
criteria are met, then stop. Report the PR URL (recorded via relay state pr). Newly discovered
out-of-scope work goes to follow-ups, not into this run — do not expand scope or start the next change.
Red flags
- Doing a phase's work yourself instead of dispatching it (you are a router).
- Reading file contents into your own context instead of routing on digests.
- Hand-editing
state.json/progress.mdinstead of usingrelay state. - Advancing past
reviewwith Critical/Important findings unaddressed. - Guessing an author decision instead of surfacing it and pausing.
- Assuming a fresh start instead of resuming from
relay state next. - Merging, or watching CI — that is
pr-monitor/stack-ship, notdeliver-pr.
Verification checklist
- Started from
relay state next(initialized state only if absent) — never assumed a fresh run. - Each phase ran as a delegated sub-agent that returned a digest; state advanced via
relay state. -
plangot author sign-off when the design was ambiguous. -
reviewran and every Critical/Important finding was addressed beforevalidate. -
validatepassed on the repo's own gates beforeopen-pr. - Ended at an open PR with its URL recorded; stopped without expanding scope or merging.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.