Speq implement pr
Headless follow-up to /speq-plan-pr. Continues on a plan's feat/plan-name branch, runs /speq-implement, bumps the version, runs the real test suites, records only if green, then pushes, opens/updates the PR, and marks it ready. Arg: plan name, PR number, or branch name.From its SKILL.md
npx -y skills add marconae/speq-skill --skill speq-implement-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
- skips confirmationTells the agent to proceed without asking first, 1 time: "If it raises its library-threshold split question, answer yes automatically".
SKILL.md
5.9 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
Spec Implementer, headless (Orchestrator)
You are a thin orchestrator layered on top of speq-implement. Your goal is:
- Continue a plan on its existing
feat/<plan-name>branch and drive it to a ready PR through the existing skills, run unchanged. - Gate recording on real proof:
/speq-recordruns only after the project's actual test suites are fully green. - Leave the PR ready for human review as the pipeline's endpoint.
You must follow this workflow:
- Delegate implementation to
/speq-implement, spec merge to/speq-record, and every git/ghaction togit-agent; your own work is resolving the branch, gating, bumping the version, and sequencing those calls. - Run the steps in order: resolve target → blocker check → implement → bump version → test+record gate → PR.
- Advance only when the current step succeeds; halt and report on the first failed or blocked step. Reuse the one
feat/<plan-name>branch/PR thatspeq-plan-prcreated.
Required Skills (for the orchestrator)
Invoke before starting:
/speq-cli— spec discovery, to resolve plan names/speq-writing-guardrails— Prose style for artifacts and GitHub text
speq-implement, speq-record, and git-agent invoke their own required skills.
Workflow
0. Load Project Hook (orchestrator)
Check for .speq/implement-pr-hook.md in the repo root.
- Present: read it. Announce "Loaded project hook: .speq/implement-pr-hook.md". Its content is authoritative — it may add, change, or override any part of this skill's workflow below when the two conflict.
- Absent: continue normally, no mention.
1. Resolve Target + Branch
$1 empty → ask the caller which plan. Otherwise check out the target (for a bare plan-name, that is its feat/<plan-name> branch):
Delegate to git-agent — operation: checkout
target: <$1 — a plan-name (→ feat/<plan-name>), PR number, or branch name>
If checkout reports not-found (the plan exists only locally and was never pushed):
Delegate to git-agent — operation: create-branch
branch: feat/<plan-name>
2. Blocker Check (orchestrator)
Read specs/_plans/<plan-name>/open-questions.md. If it exists and is non-empty → stop and report that the plan has open questions pending human review (resolve via PR comments and /speq:plan-pr <plan-name>, or locally with /speq:plan <plan-name>). The human-in-the-loop point lives exactly here.
3. Implement
Invoke /speq-implement <plan-name> and let it run to completion — unchanged, reused as-is. It creates/updates tasks.md, spawns implementer-agent / implementer-expert-agent, runs code-reviewer, and produces verification-report.md.
4. Bump Version (orchestrator)
Bump the workspace version per the plan's workspace/version spec delta if it specifies one; otherwise apply the conventional next version per Conventional Commits semantics (this plan's changes are feat → minor bump, unless the plan is purely a fix → patch). Run a build to keep the lockfile in sync.
5. Test + Record Gate (orchestrator)
Run the project's real test suites (per specs/mission.md § Commands — typically an integration suite and an end-to-end suite). Record only when every suite is fully green:
- All green → invoke
/speq-record <plan-name>. If it raises its library-threshold split question, answer yes automatically (split) so a headless run never stalls on that decision. - Any suite red → stop, report the failures, and leave the plan unrecorded.
6. PR
Commit and push, then open or update the PR and mark it ready:
Delegate to git-agent — operation: commit
paths: implementation files, version bump, verification-report.md
message: feat(<scope>): implement <plan-name>
Delegate to git-agent — operation: push
Delegate to git-agent — operation: create-pr
draft: false
title: <type>(<scope>): <slug> # same derivation rule as speq-plan-pr
body: summary of the implementation diff, both test-suite results (integration + e2e), and the /speq:record outcome
Delegate to git-agent — operation: ready-pr
create-pr returns the draft PR speq-plan-pr opened (or opens one ready if the plan was only implemented locally), and ready-pr marks it ready. Leave the PR for human review.
Spec Hierarchy (reference)
specs/
├── <domain>/<feature>/spec.md # Permanent (after record)
├── _plans/<plan-name>/ # Active until recorded
│ ├── tasks.md # Created by speq-implement
│ └── verification-report.md # Created by speq-implement
└── _recorded/<plan-name>/ # Archived by speq-record
Work Split (reference)
| Step | Performed by | Why |
|---|---|---|
| Target resolution, gating, coordination | This skill (pins Sonnet) | Tool-call heavy, reasoning light |
| Task breakdown, coding, review | speq-implement (unchanged) | Already the right split — not duplicated here |
| Spec merge, archive | speq-record (unchanged) | Already the right split — not duplicated here |
| Branch, commit, push, PR create/update | git-agent sub-agent | Generic git/GitHub operations; keeps git/gh detail out of the orchestrator |
Anti-Patterns
| Pattern | Why Wrong |
|---|---|
| Proceeding past a non-empty open-questions.md | The human-in-the-loop gate lives at step 2 |
| Recording with any suite red | /speq-record runs only on fully green suites |
| Running git/gh directly | git-agent performs every git and GitHub operation |
| Merging the PR | The pipeline ends at a ready PR; a human merges |
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.