Compare commits

6 Commits

View File

@@ -3,16 +3,20 @@ name: grill
description: Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases. description: Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
--- ---
Interview the user relentlessly until you reach a shared understanding. Map this as a **design tree**: every decision branches into the decisions that hang off it. Interview the user relentlessly until you reach a shared understanding. Map this as a **design tree**: each decision branches into the decisions it unblocks.
Maintain the design tree in a new Markdown file. Use the file as the source of truth. Maintain the design tree in a new Markdown file. Use the file as the source of truth.
Work the tree one question at a time. The **frontier** is every decision whose prerequisites are already settled: the questions you can ask now without guessing at answers you have not heard yet. Record the next frontier question in the file, then ask it and wait for the user's answer. Build the complete **frontier** before the first question.
After each answer, recompute and display every frontier decision.
Ask one frontier decision per turn.
A clarification leaves that decision open.
Format a question like so: Format a question like so:
``` ```
❓ **Q1** - **<question title>**: <question body, might be multiple paragraphs, including multiple choices> ❓ **D1 — <decision title>**: <question body, might be multiple paragraphs, including multiple choices>
**Options** **Options**
@@ -22,7 +26,7 @@ Format a question like so:
--- ---
❓ **Q2** - **<question title>**: <question body, might be multiple paragraphs, including multiple choices> ❓ **D2 — <decision title>**: <question body, might be multiple paragraphs, including multiple choices>
**Options** **Options**
@@ -34,7 +38,10 @@ Format a question like so:
List every viable answer in an ordered list and mark your recommended answer. List every viable answer in an ordered list and mark your recommended answer.
Word each question so "yes" accepts your recommended answer. Word each question so "yes" accepts your recommended answer.
Each user answer reshapes the tree: settled decisions push the frontier outward and unblock questions that depended on them. Recompute the frontier in the file and ask the next question. A question whose answer depends on another open question belongs later, not next. Before asking the next question, account for every decision that the response settles.
Record preferences as constraints.
Settle an implementation decision only after facts establish that it is viable.
A decision with unresolved prerequisites belongs outside the frontier.
Finding _facts_ is your job, never the user's. When a frontier question needs a fact from the environment (filesystem, tools, etc.), find it with available tools; don't ask the user for anything you could look up yourself. The _decisions_ are the user's: put each to them and wait. Finding _facts_ is your job, never the user's. When a frontier question needs a fact from the environment (filesystem, tools, etc.), find it with available tools; don't ask the user for anything you could look up yourself. The _decisions_ are the user's: put each to them and wait.