Walkthrough transcript · VS Code / Copilot app | mattpocock/skills

Grill the plan before any code.

Illustrative walkthrough: Grill the plan before any code. Let the agent interview you until every decision is explicit, so it cannot fill the gaps with guesses.
Illustrative GIF · Before · After · Transcript

Illustrative reenactment - not a recorded Copilot session. Test results are real fixture runs.

Client: VS Code / Copilot app | mattpocock/skills. Track: skills.

Commands: /grill-me.

The dialogue and artifact snapshots below are authored examples. Test summaries are verbatim excerpts from real fixture runs; stack traces and machine-local paths are omitted.

Step 1: Invoke /grill-me

Participant:

/grill-me I want to fix the cart in this workspace. Read BRIEF.md and src/cart.mjs yourself for facts. Grill me on scope, the money representation, invalid-input behavior and which files may change. Do not edit anything until I confirm we share an understanding.

Illustrative checkpoint:

grill-me is a thin entry point. Tool activity should show .github/skills/grilling/SKILL.md being read. If it does not, send the same prompt with /grilling.

Source or artifact snapshot:

.github/skills/grill-me/SKILL.md

name: grill-me
disable-model-invocation: true

Call the Skill tool with "grilling".

Slash command only. The interview
rules live in grilling/SKILL.md.

Observed test summary:

ok 1 - existing cart behavior is preserved
not ok 2 - quantities are applied
not ok 3 - invalid cart lines are rejected
not ok 4 - safe integer cents are enforced
ok 5 - inputs are left untouched
ok 6 - public API and scope are preserved
not ok 7 - learner regressions catch the original bug
# tests 7
# suites 0
# pass 3
# fail 4
# cancelled 0
# skipped 0
# todo 0

Step 2: Answer one round of numbered questions

Participant:

Q1 yes. Q2 yes, integer cents only. Q3 no: zero quantity is invalid, throw RangeError. Q4 yes, only src/cart.mjs and src/cart.test.mjs.

Illustrative checkpoint:

Each question arrives with a recommended answer, so "yes" accepts it. Facts such as the current reducer are looked up in BRIEF.md and the code, not asked of you.

Source or artifact snapshot:

Round 1 (illustrative)

Q1 Fix subtotal only?           yes
Q2 Integer cents, no floats?     yes
Q3 Treat qty 0 as an empty line? no
Q4 Touch only cart + its tests?  yes

Next frontier: unsafe totals.

Observed test summary:

ok 1 - existing cart behavior is preserved
not ok 2 - quantities are applied
not ok 3 - invalid cart lines are rejected
not ok 4 - safe integer cents are enforced
ok 5 - inputs are left untouched
ok 6 - public API and scope are preserved
not ok 7 - learner regressions catch the original bug
# tests 7
# suites 0
# pass 3
# fail 4
# cancelled 0
# skipped 0
# todo 0

Step 3: Settle the last branch

Participant:

Q5 yes: throw RangeError when a line product or the running total is no longer a safe integer.

Illustrative checkpoint:

The session ends when every branch of the design tree has an answer. Nothing has been edited; the agent waits for you to confirm the shared understanding.

Source or artifact snapshot:

Design tree (settled)

scope     subtotal(lines) only
money     integer cents
qty       positive safe integer
invalid   TypeError or RangeError
overflow  RangeError
files     cart.mjs, cart.test.mjs

Observed test summary:

ok 1 - existing cart behavior is preserved
not ok 2 - quantities are applied
not ok 3 - invalid cart lines are rejected
not ok 4 - safe integer cents are enforced
ok 5 - inputs are left untouched
ok 6 - public API and scope are preserved
not ok 7 - learner regressions catch the original bug
# tests 7
# suites 0
# pass 3
# fail 4
# cancelled 0
# skipped 0
# todo 0

Step 4: Confirm, then hand over

Participant:

Confirmed. Summarize the agreed decisions as acceptance criteria, then use /systematic-debugging to reproduce the defect. Do not edit yet.

Illustrative checkpoint:

The decisions now match BRIEF.md, so later steps work from explicit criteria instead of guesses. Baseline is still 3/7: grilling changes the plan, not the code.

Source or artifact snapshot:

Evidence to keep

Loaded path: .github/skills/grilling
Questions asked and your answers
Agreed decisions as criteria
No files edited

Still 3/7. Next: debug.

Observed test summary:

ok 1 - existing cart behavior is preserved
not ok 2 - quantities are applied
not ok 3 - invalid cart lines are rejected
not ok 4 - safe integer cents are enforced
ok 5 - inputs are left untouched
ok 6 - public API and scope are preserved
not ok 7 - learner regressions catch the original bug
# tests 7
# suites 0
# pass 3
# fail 4
# cancelled 0
# skipped 0
# todo 0

Takeaway: Let the agent interview you until every decision is explicit, so it cannot fill the gaps with guesses.

Try it yourself: Lab 2: anti-slop skills. Set up first with the lab environment guide.