From e5932a7a47e5cae312c1b814ce6194b09aa27be1 Mon Sep 17 00:00:00 2001 From: Matt Pocock Date: Mon, 6 Jul 2026 13:48:56 +0100 Subject: [PATCH] wayfinder/grilling: stop the agent grilling itself Students reported /wayfinder picking a grilling ticket and grilling itself instead of turning to the human (confirmed by @_noshit / @maudova; Matt: "that sounds like a bug"). Root cause: a grilling line written for the live-human case ("explore the codebase instead") reads as license to answer questions autonomously once wayfinder runs it in a resolve-the-ticket frame. Fix with affirmative framing (no negative-space "don't"): - grilling: split facts (look up) from decisions (put to the human, wait) - wayfinder Grilling ticket type: a back-and-forth with the human, who answers each question - wayfinder Invocation: grilling always runs with the human in the loop Co-Authored-By: Claude Opus 4.8 (1M context) --- skills/in-progress/wayfinder/SKILL.md | 10 ++++++---- skills/productivity/grilling/SKILL.md | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/skills/in-progress/wayfinder/SKILL.md b/skills/in-progress/wayfinder/SKILL.md index d7854ef..6549dd3 100644 --- a/skills/in-progress/wayfinder/SKILL.md +++ b/skills/in-progress/wayfinder/SKILL.md @@ -71,10 +71,12 @@ The answer isn't part of the body — it's recorded on resolution (see [Work thr ## Ticket Types -- **Research**: Reading documentation, third-party APIs, or local resources like knowledge bases. Creates a markdown summary as a linked asset. Use when knowledge outside the current working directory is required. -- **Prototype**: Raise the fidelity of the discussion by making a cheap, rough, concrete artifact to react to — an outline, a rough take, a stub, or UI/logic code via the /prototype skill. Links the prototype as an asset. Use when "how should it look" or "how should it behave" is the key question. -- **Grilling**: Conversation with the agent. Uses the /grilling and /domain-modeling skills. Asks one question at a time. The default case. -- **Task**: Manual work that must happen before a *decision* can be made — nothing to decide, prototype, or research, but the discussion is blocked until it's done. Signing up for a service so its API can be judged, provisioning access, moving data so its shape can be seen. This is the one type that *does* rather than decides — and it earns its place by unblocking a decision, not by delivering the destination. The agent automates it where it can; otherwise it hands the human a precise checklist. Resolved when the work is done; the answer records what was done and any resulting facts (credentials location, new URLs, row counts) later tickets depend on. +Every ticket is either **HITL** — human in the loop, worked *with* a human who speaks for themselves — or **AFK**, driven by the agent alone. A HITL ticket only resolves through that live exchange; the agent never stands in for the human's side of it (a grilling agent that answers its own questions has broken this). + +- **Research** (AFK): Reading documentation, third-party APIs, or local resources like knowledge bases. Creates a markdown summary as a linked asset. Use when knowledge outside the current working directory is required. +- **Prototype** (HITL): Raise the fidelity of the discussion by making a cheap, rough, concrete artifact to react to — an outline, a rough take, a stub, or UI/logic code via the /prototype skill. Links the prototype as an asset. Use when "how should it look" or "how should it behave" is the key question. +- **Grilling** (HITL): Conversation via the /grilling and /domain-modeling skills, one question at a time. The default case. +- **Task** (HITL or AFK): Manual work that must happen before a *decision* can be made — nothing to decide, prototype, or research, but the discussion is blocked until it's done. Signing up for a service so its API can be judged, provisioning access, moving data so its shape can be seen. This is the one type that *does* rather than decides — and it earns its place by unblocking a decision, not by delivering the destination. The agent drives it alone where it can (AFK); otherwise it hands the human a precise checklist (HITL). Resolved when the work is done; the answer records what was done and any resulting facts (credentials location, new URLs, row counts) later tickets depend on. ## Fog of war diff --git a/skills/productivity/grilling/SKILL.md b/skills/productivity/grilling/SKILL.md index e220063..219930f 100644 --- a/skills/productivity/grilling/SKILL.md +++ b/skills/productivity/grilling/SKILL.md @@ -7,6 +7,6 @@ Interview me relentlessly about every aspect of this plan until we reach a share Ask the questions one at a time, waiting for feedback on each question before continuing. Asking multiple questions at once is bewildering. -If a question can be answered by exploring the codebase, explore the codebase instead. +If a *fact* can be found by exploring the codebase, look it up rather than asking me. The *decisions*, though, are mine — put each one to me and wait for my answer. Do not enact the plan until I confirm we have reached a shared understanding.