skills/matt-pocock-coding-workflow/SKILL.md
--- name: matt-pocock-coding-workflow description: End-to-end Matt Pocock coding workflow as a single orchestrated skill. Chains grill-me, write-a-prd, slice-into-issues, ralph, and close-the-loop in order. Asks once at the start whether to run in-the-loop (human reviews per issue) or AFK (full night-shift Ralph). Use when starting a new feature, project, or substantial change and you want the disciplined grill, slice, loop, verify shape instead of jumping straight to code. Triggers on: "build t
npx skillsauth add RonanCodes/ronan-skills skills/matt-pocock-coding-workflowInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The full Matt Pocock workflow as one skill. Grill the brief, write the PRD, slice into vertical issues, run the Ralph loop, close the loop.
The point is the discipline, not the tools. Each phase is a contract with the next. A loose PRD is fatal for AFK runs. Horizontal slices leave the agent coding blind. Pocock Flow refuses to skip steps.
This is the orchestration spine of the local factory — the family of agent-loop skills that run autonomously on Ronan's machine. Siblings: /ro:ralph, /ro:planner-worker (alias /ro:swarm), /ro:night-shift, /ro:day-shift. They share artefact shape, gitignore rules, and PR conventions. See /ro:ralph § "Run artefacts (the canonical shape)" for the canonical reference.
The companion is the remote factory — the Factory app (tracked separately) that runs the equivalent flow as a cloud service.
Skip for: bug fixes, lookups, single-file edits, anything where the spec is already clear.
0. Day-shift → day-shift (agent + human grill; only if backlog has open issues)
1. Grill → grill-me (human in chat)
2. Plan → write-a-prd (human + agent)
3. Slice → slice-into-issues (agent, human reviews)
4. Choose mode → in-loop or AFK? (one question)
5. Loop → ralph (sequential or kanban) (agent, mode-dependent oversight)
6. Close → close-the-loop (agent + human spot-check)
Each step's output is the next step's input. No step is skippable.
Phase 0 (day-shift) is new as of 2026-05-19. It runs ONLY when the repo has open GitHub issues that may need grilling, promoting, or escalating before the rest of the chain fires. On a greenfield repo with no backlog, skip Phase 0 and start at Phase 1 (grill).
prd:draft is NEVER picked upThis skill orchestrates Ralph at step 5. prd:draft issues are NEVER picked up by the underlying Ralph (or planner-worker) loop. Drafts are ideas captured in the agent-native repo's inbox — freeform body, NOT Pocock's 7-section template, NOT yet grilled.
To promote a draft into ready work, the user runs /grill on the issue (which is what step 1 of this skill does anyway when given a draft issue number). The grill-with-docs flow rewrites the body into the 7-section template, then the user swaps the label from prd:draft to the gate label (ready-for-agent by default, or the project synonym configured in docs/agents/triage-labels.md).
Tip: if you're starting this workflow and not sure whether to grill an existing idea or write a fresh PRD, run /ro:list-draft-prds first to see the drafts inbox for the current repo. Then step 1 of this skill grills the picked draft instead of starting from a blank prompt.
The downstream Ralph step honours this exclusion via gh query filters; see /ro:ralph § "Filter / scope: prd:draft is NEVER picked up" for the query-level guards.
Probe whether there's an existing backlog to shape:
open_count=$(gh issue list --state open --json number --jq 'length' 2>/dev/null || echo 0)
If open_count > 0, invoke /ro:day-shift BEFORE the grill phase. The day-shift skill:
prd:draft / ready-for-human / blocked-on-human / swarm / needs-triage.swarm-labelled issue has the close-the-loop AC block; flips missing ones to needs-info.prd:draft and needs-triage issues (max 3 rounds via AskUserQuestion) and either promotes them to swarm or escalates them to blocked-on-human with a named human action.blocked-on-human issues.Why this is Phase 0 and not optional: the night-shift / Ralph chain only ships what the AC list says. If yesterday's ready-for-human issue is still parked, the loop ignores it. If a prd:draft looks superficially ready, the loop dispatches against an ungrilled spec. Day-shift surfaces those before the chain commits to building anything.
If open_count == 0 (greenfield repo, no backlog): skip Phase 0 entirely, start at Phase 1 (grill).
See [[night-shift-retro-and-day-shift]] for the full async chain this slots into. The skill defers to /ro:repo-mode, so work-mode repos read .ralph/issues/*.md instead of gh issue list.
Invoke /grill-me. The grilling step decides what the PRD is allowed to contain. Stop conditions:
Do not proceed to step 2 until the user explicitly accepts the resolved decisions.
Invoke /write-a-prd --quick (or --plan if the brief needs more structure). The PRD must contain:
Pause for the human to confirm the PRD before slicing.
Invoke /slice-into-issues. The slicing skill takes the PRD and:
.ralph/issues/ (or the project's configured issue directory).Pause for the human to review the module map and the issue files before looping.
Research spikes: if the PRD needs investigation before (or alongside) implementation — pedagogy research, competitor teardown, an architecture spike — emit those as kind:research issues. They route to the research-worker flow in Step 5 (deep research → cited doc in docs/research/ + LLM wiki, no tests) per [[canon:research-tasks]], and their docs feed the downstream implementation slices.
Use AskUserQuestion to ask the user:
"Run the loop in-the-loop (human reviews per issue) or AFK (full night-shift Ralph)?"
Three answers:
The chosen mode determines step 5's flags.
If the user passed --afk or --in-loop on the command line, skip this question.
Invoke /ralph with the chosen mode:
/ralph --mode single (one issue, then stop)./ralph --mode fresh --kanban --reviewer opus (Kanban backlog, fresh context per issue, Opus reviewer gate).--mode single x3, then --mode fresh --kanban for the rest.While Ralph runs:
Invoke /close-the-loop. Verifies:
If close-the-loop finds failures, surface them clearly. Don't auto-fix in this skill; the user decides whether to loop back or accept.
--mode fresh and verify each iteration spawns a NEW Agent tool call. See /ro:ralph § Lessons (2026-05-12) for the full pattern.git push origin main directly to "unblock". Don't. The audit trail becomes unreadable and CI gating breaks. Every change goes through PR + CI green + squash-merge, including chores.on: push: branches: [main] AND on: pull_request: triggers. If only push, the first story is to add the pull_request trigger; otherwise CI cannot gate merges and the whole flow degrades to "merge and pray".llm-wiki-ai-research:human-in-the-loop-vs-afk-codingllm-wiki-ai-research:push-vs-pull-coding-standardsllm-wiki-ai-research:vertical-slices-tracer-bulletsllm-wiki-ai-research:phase-n-ralph-loopllm-wiki-ai-research:smart-zone-dumb-zonellm-wiki-ai-research:deep-modules-for-aiWorkshop source-note: llm-wiki-ai-research:matt-pocock-ai-coding-workflow
testing
--- name: linear-pipeline description: The Fable orchestrator for a single dispatched Linear ticket. Holds almost no context itself; it receives `--issue <ID> --detached`, decides the stage sequence, and fans out a sub-agent per stage, passing forward only each stage's artifact (never re-derived, never inlined into its own context). Step zero, before any planning or stage routing, is a boundary triage against `canon/security-boundary.md` (#199): a match tags Ronan Connolly and stops the run, no
development
--- name: in-your-face description: Capture a chat-only answer into a durable artifact (markdown + HTML, PDF when cheap) and launch it automatically so the user cannot miss it. Use when user says "in your face", "don't let me lose this", "save that answer", "make that durable", or right after answering a substantive side question (a recipe, comparison, how-to, or generated prompt) that would otherwise die with the context. category: workflow argument-hint: [--no-open] [--vault <short>] [hint of
tools
One-shot headless OpenAI Codex CLI calls for background/admin AI tasks — summaries, classification, extraction, admin glue. The default engine for anything that runs AI constantly in the background (daemon-driven, per-event), because it bills the flat ChatGPT subscription instead of Claude usage or per-token API spend, and it keeps working while Claude is rate-limited. NEVER for coding — coding stays Claude. Use when a skill or daemon needs a cheap always-on AI call, when the user says "use codex", "ask codex", "codex as backup", or when building a background summarizer/classifier into a listener or loop. Reads auth from ~/.codex/auth.json (ChatGPT account, no API key).
research
Turn a warranty rejection, repair quote, or RMA email into a cited decision brief — legal read (NL/EU consumer law), is the part user-serviceable, live part and new-unit prices, repair-vs-DIY-vs-new economics, before-you-send-it checklist, deadlines. Use when the user pastes or screenshots a repair quote, warranty rejection, "not covered" email, onderzoekskosten fee, or asks "should I repair or replace this".