/logic-grill
binds Intent slots, then emits a V3 prompt chain
It does not run the chain. It does not become /logic-plan, /logic-discovery, or /hook-code.
Situation
The first message may name the wanted outcome. It does not name a job or a type.
Seen file
A seen file is a fact for files / ranges. The skill still asks every decision.
No situation
An empty first message is success. Round 1 still asks outcome, phase → agent, and stopping point.
Skill path
If the slash name does not start the skill, put the skill file on line 1.
Examples
Thought1s
Intent interview is scope=IN. Classify each slot: fact or decision.
Round 1 frontier: outcome, phase → agent, stopping point. Ask all three. Do not look up files yet.
Worked for 8s
❓ Q1 - outcome: ➡️ freeze blocks allocate
❓ Q2 - phase → agent: ➡️ pipeline starts at discovery
❓ Q3 - stopping point: ➡️ documents and hooks listed
Thought4s
Round 2. files / ranges is a fact. Dispatch MCP. Do not block the rest of the frontier.
constraint: look up .agents/rules/domain/gaap.md. Warehouse freeze has no GAAP source. Ask.
Do not guess a document path.
Worked for 42s
❓ Q4 - files / ranges: ➡️ blank — flow_documents did not name a freeze document
❓ Q5 - constraint: ➡️ MCP spelling. Do not invent.
Thought2s
execution order waits on files. Files are blank. Leave execution order blank.
Phase is not P5. Skip variant count.
Round 4: invariant name, plan agent, plan ID / carry tokens. Then emit. Do not run the chain.
Worked for 18s
❓ Q6 - invariant: ➡️ allocate rejects a frozen bin
❓ Q7 - plan agent: ➡️ /logic-plan after discovery
❓ Q8 - plan ID: ➡️ bin-freeze-plan
Worked for 6s
Every slot is filled. Blank: files / ranges, execution order. Run this?
V3 chain
Emit from `/logic-grill`. The skill stops. You send the Prime turn.
1. Prime /logic-discovery
type: feature
Outcome: pickers cannot allocate stock from a frozen bin.
Constraint: MCP spelling. Do not invent paths.
Stop: inventory of documents and hooks. Open questions listed. No plan file.
2. Ground (blank)
Acknowledge and wait. Do not propose yet.
3. Order (blank)
Acknowledge and wait.
4. Plan /logic-plan
Restating: MCP spelling. Do not invent paths.
Carry: bin-freeze-plan
5. Build /hook-code
Carry: bin-freeze-plan
6. Verify /hook-critic
invariant: allocate rejects a frozen bin
Answer a round
Before each question the skill classifies the slot.
Two competent engineers with the same repo access:
| Same answer | Kind | Action |
|---|---|---|
| Yes | fact | Look it up. Never ask. |
| No | decision | Ask. Never guess. |
Facts include paths, signatures, call sites, execution order, an existing guard, and implementer count.
The skill asks the whole frontier in one round. A question that depends on an open answer in this round waits for the next round.
❓ Q1 - <topic>: ➡️ <recommendation>
A recommendation names its basis in six words or fewer. With no basis the skill writes ➡️ no basis — your call.
| slot | kind | how it is filled | round |
|---|---|---|---|
outcome | decision | ask | 1 |
phase → agent | decision | recommend from the phase table, then confirm | 1 |
stopping point | decision | ask | 1 |
files / ranges | fact | look up | 2 |
constraint | fact if a source exists, else decision | look up .agents/rules/domain/gaap.md, then confirm | 2 |
execution order | fact | look up | 3 |
variant count | fact | count call sites and implementers. Reviewer calls only. | 3 |
invariant name | decision | recommend, then confirm | 4 |
plan agent | decision | recommend from the phase, then confirm | 4 |
plan ID / carry tokens | fact | assign | 4 |
execution order cannot be looked up before files / ranges is known. invariant name cannot be named before constraint is settled.
A lookup uses the tools in mcp.md. A running lookup is an unsettled prerequisite. The skill asks the rest of the frontier now.
If a lookup fails, the slot stays blank and named as blank. The skill states the tool it tried, then asks you.
A stopping point must be observable by someone other than the model. An outcome with no stop is not done.
If the phase is P5, variant count is mandatory. Count it. Do not ask. Rule 1 in thinking.md cannot evaluate its brake without that count.
Read the chain
When every slot is filled or explicitly blank, the skill emits Prime, Ground, Order, Plan, Build, Verify.
| # | turn | you supply | inherits |
|---|---|---|---|
| 1 | Prime | the skill, type, outcome, constraint, stopping point | — |
| 2 | Ground | files or line ranges | the outcome from 1 |
| 3 | Order | those files in execution order, and how they connect | the files from 2 |
| 4 | Plan | the named planning skill | the constraint from 1, restated |
| 5 | Build | /hook-code and the plan ID | the plan from 4 |
| 6 | Verify | the critic skill and the invariant name | the contract from 4 |
Turns 2 and 3 end with Acknowledge and wait. Do not propose yet.
Turn 4 restates the constraint.
Turns 5 and 6 name carry tokens: the plan ID and the invariant.
The skill then asks Run this? and stops. You send the Prime turn.
| Problem | Cause | Action |
|---|---|---|
| The skill asked a path or a count | A fact was treated as a decision | Look it up with MCP. Do not answer for the repo. |
| The chain started in this chat | Grill continued past emit | Stop. Send the Prime turn in a new message. |
| Stop is not observable | The outcome was reused as the stop | Name a check another person can see. |
| P5 with no variant count | Reviewer call skipped the count | Count call sites and implementers. Then emit. |
Next steps
When the chain is emitted, send the Prime turn. Start with /logic-discovery when that is the named phase.