βοΈ Initial setup: /setup-matt-pocock-skills
Before running any other skill, the repository needs to be configured once. O /setup-matt-pocock-skills interviews you about three points and records the decisions in version-controlled filesβevery other skill reads this context to behave the right way.
π― What setup decides
-
β’
Issue tracker: GitHub Issues, Linear, or a local folder
issues/in markdown. It defines where/to-prde/to-issueswill write. -
β’
Label vocabulary: the roles of the
/triage(needs-triage,ready-for-afk,blocked, etc.) become real labels in the tracker. -
β’
Doc layout: where it lives
CONTEXT.md, where the ADRs go, and how the/grill-with-docsshould update them.
π» Typical skill prompts
$ /setup-matt-pocock-skills β Qual issue tracker este repo usa? [1] GitHub Issues [2] Linear [3] Local (issues/*.md) β Onde fica a documentaΓ§Γ£o viva? docs/CONTEXT.md (default) ou caminho customizado β Pasta de ADRs? docs/adr/ (default) β Gravado em .claude/skills-config.json β Stub de docs/CONTEXT.md criado β Labels recomendadas listadas (rode `gh label create ...`)
π‘ Practical tip
Run /setup-matt-pocock-skills once per repo, right after cloning. Commit the .claude/skills-config.json and of the CONTEXT.md β that way, everyone on the team inherits the same workflow.
π₯ Step 1 β Grilling (alignment)
Every new feature starts with the /grill-with-docs. It questions your idea against the existing domain: the vocabulary of CONTEXT.md, previous ADRs, known constraints. The output isnβt codeβitβs alignment.
π What comes out of grilling
- β’ CONTEXT.md updated: new domain terms, resolved ambiguities, refined scope.
-
β’
New ADRs: architectural decisions that came up during grilling become files in
docs/adr/. -
β’
Conversation saved: the transcript is available to the
/to-prduse as input.
π« DO NOT skip this step
Skipping grilling is the #1 mistake people make when starting with the skills. Without alignment, you generate PRDs based on wrong assumptions β and the cascade turns into rework. 15 minutes of grilling save 3 hours of refactoring.
π Step 2 β /to-prd (synthesize)
With the grilling conversation fresh, /to-prd synthesizes everything into a PRD and creates an issue in the tracker. Note: thereβs no new interview β the skill uses the current session context + CONTEXT.md.
π§ Why no new interview
Asking everything again would be a wasteβthe agent has already seen the discussion. The skill extracts, don't collection. This changes the kind of relationship you have with the agent: each skill is a node in a pipeline, not an isolated conversation.
- 67% fewer redundant questions compared with PRDs created from scratch
- Context preserved: terms, constraints, and ADRs are already in the narrative
π Generated PRD (example)
# PRD: ImportaΓ§Γ£o CSV de leads ## Problema Time comercial cola CSV no Slack; ninguΓ©m importa. ~40 leads/semana perdidos. ## SoluΓ§Γ£o proposta Endpoint POST /leads/import aceita CSV multipart. Valida colunas obrigatΓ³rias (email, nome, fonte). Deduplica por email. Retorna relatΓ³rio. ## Fora de escopo - UI de upload (vem em PRD futuro) - Enriquecimento de dados ## CritΓ©rios de aceite - [ ] CSV vΓ‘lido importa em <5s para 1000 linhas - [ ] Linhas invΓ‘lidas retornam no response, nΓ£o 500 - [ ] Idempotente: re-upload nΓ£o duplica ## DecisΓ΅es herdadas ADR-012: validaΓ§Γ£o via Zod (nΓ£o Yup). ADR-019: jobs >2s vΓ£o pra fila, nΓ£o inline.
πͺ Step 3 β /to-issues (slice)
A PRD isnβt executable. /to-issues breaks the PRD into vertical slices β each slice is an independent issue that delivers visible value on its own.
β Vertical slices (DO)
- β "Accept a CSV upload and return the row count" β testable end to end
- β "Validate required columns with a 400 error" β delivers visible behavior
- β "Deduplicate by email on insert" β can be merged on its own
- β Each one has an acceptance criterion in the PR
β Isolated technical tasks (AVOID)
- β "Create Zod schema" β delivers nothing on its own
- β "Add csv-parse dependency" β invisible
- β "Refactor leads service" β mergeable?? What for?
- β "Endpoint setup with no logic" β empty PR
π‘ Practical tip
Test each slice with the question: "If I merge just this one, will someone use it tomorrow?" If the answer is "no, the others need to come along," the slice is horizontal β break it down again.
π¦ Step 4 β /triage (prioritize)
Fresh issues arrive with the label needs-triage. O /triage moves them one at a time roles state machine β each state describes where the issue is in the pipeline and who can act.
needs-triage
Initial state β just came from /to-issues
No one has reviewed it yet. It may be poorly split, duplicated, or out of priority. Blocks execution.
needs-discussion
Thereβs ambiguity that /grill didnβt resolve
Requires synchronous conversation with a human. Return to grilling if needed.
ready-for-human
Ready, but needs a senior dev
Thereβs architectural nuanceβthe agent alone isnβt enough. A human takes over.
ready-for-afk
The agent runs on its own while you go to lunch
Crystal-clear acceptance criteria, short scope, low risk. /tdd works things out while you're away.
blocked
Depends on something external
Third-party API, product decision, another unmerged issue. Back to the queue when unblocked.
in-progress β done
Terminal states of the cycle
PR opened β in progress. PR merged β done. Issue closes automatically via βCloses #Nβ.
π§ͺ Step 5 β Implementation with /tdd
Pick an issue ready-for-afk, opens a branch, runs /tdd. The skill runs the classic loop red β green β refactor guided by the issueβs acceptance criteria.
π The loop by slice
- RED Write a failing test. Acceptance criterion #1 becomes the first test. Run it β red.
- GREEN Implement the minimum needed to pass. Nothing more. Run it β green.
- REFACTOR Clean up the code without changing behavior. Tests stay green. The next criterion becomes the next RED.
π‘ Practical tip
If the /tdd try to skip RED ("I'll just implement it and test afterward"), stop. RED first, always. Without the test failing first, you donβt know if itβs worth anything.
π Step 6 β Review and merge
Green branch, time for the PR. Use /verify (run the app for real and see it working) or code-review (static diff review). Addressed comments, merge.
β Checklist before merging
- βTests pass in CI
- βAll issue acceptance criteria passing
- β
/verifyshowed real behavior - β
code-reviewwith no high-severity findings - βPR description mentions βCloses #Nβ
β Don't merge if
- β"Local tests pass but CI is slow, ship it anyway"
- βAcceptance criterion #3 was left for another PR
- βDiff includes files unrelated to the issue
- βBehavior changed without being updated
CONTEXT.md - βPR without an issue link (βClosesβ)
π /verify vs code-review
- /verify: runs the app, performs the actual action, and proves it works end to end. Use when the slice changes visible behavior.
- code-review: static diff analysis, looks for subtle bugs and edge cases. Always use it β cheap and fast.
- Both: for critical features. Low cost, high signal.
πΊοΈ Overview β the complete cycle
Putting it all together: the cycle feeds itself β the next grilling already starts with a CONTEXT.md more mature, with new ADRs and vocabulary refined by the previous feature.
π Workflow diagram
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β /setup-matt-pocock-skills (uma vez por repo) β ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ βΌ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β /grill-with-docs CONTEXT.md + ADRs β ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ βΌ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β /to-prd issue com PRD β ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ βΌ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β /to-issues N vertical slices β ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ βΌ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β /triage role por issue β β needs-triage β ready-for-afk / ready-for-human β ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ βΌ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β /tdd red β green β refactor β β (uma branch por issue) β ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ βΌ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β /verify + code-review PR review β ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ βΌ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β merge issue β done β β CONTEXT.md atualizado pelo prΓ³ximo /grill β ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ β ββββββ volta pro /grill-with-docs ββββββ (prΓ³xima feature) β βΌ (ciclo se repete)
β»οΈ The cycle feeds itself
Each iteration leaves the CONTEXT.md denser, the ADRs more complete, and the domain vocabulary more precise. Grilling #10 is faster and deeper than grilling #1 β because the agent already understands your domain. This is the real combination of Matt Pocock's skills.
π Course conclusion
Youβve completed Track 1. Letβs review the 4 problems that opened the courseβand how each skill handles one piece.
CONTEXT.md + /grill-with-docs provide versioned, refinable memory.
/to-prd synthesizes with clear scope.
/to-issues in vertical slices makes each piece independently mergeable.
/tdd + /verify + code-review form the three pillars of trust: tests that prove, execution that demonstrates, and review that questions.
π Next steps
-
β
Practice on a real project. Choose one of your repos, run
/setup-matt-pocock-skills, and use the workflow on a small feature (1β2 slices). Donβt try to apply everything at once on a large project. - β Iterate on CONTEXT.md. Reread after each merged feature. Add what you learned. Itβs your greatest asset.
- β Share with the team. The workflow only works if more people use itβeveryone reading the same CONTEXT.md, everyone following the same roles in /triage.
π Useful links
- β’ Matt Pocock's newsletter about skills: aihero.dev/s/skills-newsletter β gets updates directly from the source.
- β’ Course repository: github.com/inematds/mp-skill β source code for the skills and the course.