Skip to main content

/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

/logic-grill
warehouse can freeze a bin so pickers cannot allocate stock from it

The first message may name the wanted outcome. It does not name a job or a type.

Seen file

/logic-grill
@import-bill-of-materials.hook.ts

A seen file is a fact for files / ranges. The skill still asks every decision.

No situation

/logic-grill

An empty first message is success. Round 1 still asks outcome, phase → agent, and stopping point.

Skill path

@.agents/skills/logic-grill/SKILL.md
warehouse can freeze a bin so pickers cannot allocate stock from it

If the slash name does not start the skill, put the skill file on line 1.

Examples

/logic-grill
warehouse can freeze a bin so pickers cannot allocate stock from it
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

Q1: pickers cannot allocate stock from a frozen bin Q2: /logic-discovery Q3: inventory of documents and hooks. Open questions listed. No plan file.
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.

Q4: leave blank Q5: do not invent document or hook paths
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

Q6: allocate rejects a frozen bin Q7: /logic-plan Q8: 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 answerKindAction
YesfactLook it up. Never ask.
NodecisionAsk. 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.

slotkindhow it is filledround
outcomedecisionask1
phase → agentdecisionrecommend from the phase table, then confirm1
stopping pointdecisionask1
files / rangesfactlook up2
constraintfact if a source exists, else decisionlook up .agents/rules/domain/gaap.md, then confirm2
execution orderfactlook up3
variant countfactcount call sites and implementers. Reviewer calls only.3
invariant namedecisionrecommend, then confirm4
plan agentdecisionrecommend from the phase, then confirm4
plan ID / carry tokensfactassign4

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.

#turnyou supplyinherits
1Primethe skill, type, outcome, constraint, stopping point
2Groundfiles or line rangesthe outcome from 1
3Orderthose files in execution order, and how they connectthe files from 2
4Planthe named planning skillthe constraint from 1, restated
5Build/hook-code and the plan IDthe plan from 4
6Verifythe critic skill and the invariant namethe 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.

ProblemCauseAction
The skill asked a path or a countA fact was treated as a decisionLook it up with MCP. Do not answer for the repo.
The chain started in this chatGrill continued past emitStop. Send the Prime turn in a new message.
Stop is not observableThe outcome was reused as the stopName a check another person can see.
P5 with no variant countReviewer call skipped the countCount 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.