pk-express
Skill6 starsChanged 2 months agoMITView on GitHub
Idea→Draft-PR autopilot for simple (Quick/Standard) issues — chains /brainstorm → /light-spec → pk branch → /work, stopping only at attention gates. /pk-express "<idea>" or resume with <ISSUE-ID>.
In this repository32 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- brainstorm-reviewSkill
- brainstormSkill
- conceptSkill
- defineSkill
- financial-reviewSkill
- light-spec-reviseSkill
- light-specSkill
- linear-hygieneSkill
- linearSkill
- phase-planSkill
- pipekit-helpSkill
- pipekit-updateSkill
- pk-bugSkill
- pk-exitSkill
- pr-fixSkill
- prod-readySkill
- pr-security-reviewSkill
- release-changelogSkill
- repo-security-reviewSkill
- review-planSkill
- roadmap-createSkill
- roadmap-reviewSkill
- security-gateSkill
- spec-preflightSkill
- startupSkill
- strategy-createSkill
- strategy-syncSkill
- sync-linearSkill
- tpmSkill
- verifySkill
- workSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 5 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 31
Do NOT use for:
- Very specific: line 47
Read method.config.md for: Linear team/IDs, Backend (passed through to /work), Spec ready/approved state names, integration branch.
- Distinctive: line 84
Read the issue's current Linear state and jump in:
- Very specific: line 108
Read the resulting state from brainstorm's output (or pk Linear lookup).
- Very specific: line 126
Run pk branch <ID> (bash).
- Very specific: line 135
Do not invoke pk ready, pk done, or pk promote — ever.
- Distinctive: line 148
No heavy-tier work (gate 2 refuses it).
- Distinctive: line 150
No local state — resume reads Linear.
- Distinctive: line 151
No silent retries on hard errors — surface and stop.
- Very specific: line 152
No new pacing logic in the sub-skills — it reuses /brainstorm, /light-spec, /work, /verify, pk as-is, only overriding the two interactive …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/pk-express Skill
You run the express lane: a single hands-off pass that takes one simple idea from a raw sentence to an open Draft PR, driving the existing skills end-to-end and pausing only at points that genuinely need a human.
It is the connective glue over four stages that already self-drive:
/brainstorm "<idea>" → /light-spec <ID> → pk branch <ID> → /work <ID>
(file the issue) (auto-cycle to (worktree) (execute → auto /verify
Approved) --auto-ship → Draft PR)/light-spec already loops pk spec-cycle ⇄ /light-spec-revise to Approved; /work already auto-rolls into /verify --auto-ship. This skill removes the between-stage typing and the two interactive triage/confirm prompts, so a simple issue runs start to finish untouched.
North star
Safe and frictionless — but express, not reckless. The deliberate gates that protect real risk stay intact: the /verify gate, the tier guard, and the human PR/UAT/merge gates. What this skill collapses is only the low-judgment friction (re-typing the next command, confirming an obvious "Now", waving through spec passes 2–3).
When to use
Invoke when all of these hold:
- The idea is genuinely small (you'd tag it Trivial/Low/Medium).
- You want it built without babysitting each stage.
- You're fine being pulled back in only if something surprises the pipeline.
Do NOT use for:
- Anything you suspect is
tier:heavy— this skill refuses it (see Tier guard). Use/brainstorm→/light-spec→/workmanually so the heavy gates apply. - Bugs — use
/pk-bug(regression-test-first discipline). - Work that already has an Approved spec — just
pk branch <ID>+/work <ID>.
Invocation forms
/pk-express "<one-line idea>" # full lane: brainstorm → spec → branch → work
/pk-express <ISSUE-ID> # resume: reads Linear state, joins the lane at the right stageSource of truth
Linear is authoritative. This skill stores no local state. On resume, read the issue's Linear state and route to the correct stage (see Resume routing). New-session safe.
Read method.config.md for: Linear team/IDs, Backend (passed through to /work), Spec ready/approved state names, integration branch.
The express contract — auto-advance vs. stop
Auto-advance (no prompt) on these success signals:
/brainstormreturns a Now disposition → continue with the issue ID it reports./light-specreaches the Spec approved state (its internal cycle returnedVERDICT: Pass) and the derived tier isquickorstandard→ continue.pk branch <ID>succeeds → continue./work→/verify --auto-shipreturns Pass + 0 flags → Draft PR is open → terminal success.
Stop and tag the user (print the ⏸ block below; the session's Stop/Notification hooks fire the cmux notify) at exactly these points — nowhere else:
| # | Stop trigger | Why it needs you |
| 1 | /brainstorm verdict is Later / Kill, or the idea is too ambiguous to scope | The premise itself is a judgment call — don't auto-spec something that shouldn't be built. |
| 2 | Derived tier is tier:heavy | Express lane is for simple work; heavy work needs the full planning + antagonistic gates. Spec is preserved. |
| 3 | Spec stalemate (/light-spec hit 3 cycles without a Pass) | The review agent and the spec disagree — you decide override vs. rework. |
| 4 | /verify raises any flag or a non-Pass verdict | A migration, QA sub-finding, antagonistic finding, or gate failure — your RECONCILE call. (This is /verify's own pause; surface it verbatim.) |
| 5 | Draft PR opened (terminal success) | The downstream gates are deliberately yours: pk ready → reviewer + UAT → pk done → pk promote. |
| — | Any hard error (brainstorm can't file, pk branch fails, push rejected) | Surface verbatim, stop. Never auto-retry. |
Standardized pause block:
⏸ pk-express paused — needs you
Issue: <ID or "(not yet filed)">
Stage: <brainstorm | spec | tier-guard | work/verify | done>
Reason: <one line>
Next: <the single command or decision to unblock>Pipeline
Stage 0 — Resolve entry
/pk-express <ISSUE-ID> (take an existing issue through to completion) is the primary form — you've already brainstormed/captured the idea; this drives it from wherever it is to a Draft PR. /pk-express "<idea>" is the convenience form that prepends the brainstorm step.
Read the issue's current Linear state and jump in:
| Current state | Enter at | Notes |
Triage / Ideas / untriaged | Stage 1 (brainstorm disposition only, no re-file) | then follow Stage 1's state-branch (Approved → Stage 3, Spec-ready-state → Stage 2) |
Needs Spec (the Spec ready state) | Stage 2 | needs a spec |
Specced (mid-cycle) | Stage 2's cycle loop | resume reviewing |
Approved (the Spec approved state) | Stage 3 | spec done/skipped → branch + work. The clean issue path. |
In Progress (worktree exists) | Stage 4 | resume work |
UAT or later | — | already past the lane; report and stop (gate 5) |
For /pk-express "<idea>" (no ID), start at Stage 1.
Stage 1 — Brainstorm (Express: auto-accept a clear "Now")
Invoke the /brainstorm skill (Skill tool, skill="brainstorm") with the idea. Run its feasibility analysis and filing. Override its interactive HOLD prompt: if the disposition is a clear Now, proceed automatically — do not prompt. If the disposition is Later/Kill or genuinely ambiguous, stop (gate 1).
Capture the issue identifier brainstorm reports; it is the <ID> for every downstream stage.
Branch on where brainstorm routed the issue — a "Now" item lands in one of two states, and they take different paths:
- Approved — brainstorm classified it Quick/Low ("no spec needed") and sent it straight to the spec-approved state. Skip Stage 2 entirely → go to Stage 3. (Quick is by definition not heavy, so the tier guard is satisfied; there is no spec to cycle.)
- Spec ready state (the configured
Spec ready state, e.g.Needs Spec) — brainstorm classified it Standard/Heavy → it needs a spec → go to Stage 2.
Read the resulting state from brainstorm's output (or pk Linear lookup). Don't force a state — honor whichever brainstorm set.
Stage 2 — Spec to Approved (Express: no pass-2/3 prompts; skipped for Quick items)
Only runs when Stage 1 left the issue in the
Spec ready state. Quick items routed to Approved skip straight to Stage 3.
Invoke /light-spec <ID> (Skill tool, skill="light-spec"). It drafts the spec, derives the tier (Phase 3.6, prints Derived tier: tier:<x>), publishes the spec, and auto-enters the spec-review cycle.
Config note:
/light-specpublishes to the configuredSpec ready stateandpk spec-cyclerequires that same state on entry, so the interlock holds on any board — the only requirement is thatSpec ready statenames a state your Linear workflow actually has. If the publish fails because the configured state doesn't exist, surface it and stop (gate-style); it's amethod.config.md↔ workflow mismatch, not a pk-express fault.
Express overrides for this invocation:
- Tier guard (gate 2): as soon as the derived tier is known and it is
tier:heavy, stop — the spec is published and useful, but do not auto-cycle/branch/work it. (Fortier:quick/tier:standard, continue.) - Suppress the pass-2/3 confirmation prompts — let the cycle run all three passes unattended.
- On Approved (
VERDICT: Pass) → continue to Stage 3. - On stalemate (3 passes, no Pass) → stop (gate 3).
Stage 3 — Branch
Run pk branch <ID> (bash). It creates the worktree + branch and moves Linear → In Progress. On failure → stop (hard error). On success → continue.
Stage 4 — Work → verify → ship
Invoke /work <ID> (Skill tool, skill="work") — run it as if from inside the worktree. /work's mandatory Step 7 rollover auto-runs /verify --auto-ship, which on Pass + 0 flags auto-runs pk ship (Draft PR, Linear → UAT).
- Pass + 0 flags → Draft PR is open → terminal success (gate 5).
- Any flag / non-Pass →
/verifyalready paused → surface its verdict verbatim and stop (gate 4).
Do not invoke pk ready, pk done, or pk promote — ever. Those are the deliberate human gates the express lane hands back at gate 5 (the pk done auto-run prohibition is a consumer-project canary, 2026-05).
Terminal hand-off (success)
✅ pk-express complete — <ID>
Draft PR: <url> Linear: UAT
Your gates from here: pk ready <ID> → reviewers + UAT → pk done <ID> [--merge] → pk promote
Run /pk-exit at end of session.What this skill does NOT do
- No heavy-tier work (gate 2 refuses it).
- No
pk ready/pk done/pk promote(human gates). - No local state — resume reads Linear.
- No silent retries on hard errors — surface and stop.
- No new pacing logic in the sub-skills — it reuses
/brainstorm,/light-spec,/work,/verify,pkas-is, only overriding the two interactive prompts named above.
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
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.

