grill

A command that reviews a proposed plan against the project's context notes, glossary, and records of earlier decisions. It checks each decision step for conflicts and unclear wording.

In plain words
What is it for?
Use it to examine a plan from the current conversation or a file, follow its decision branches, and identify where the proposal disagrees with documented project knowledge.
Why use it?
It helps catch contradictions and vague assumptions before they turn into implementation work. It also makes the project's existing decisions easier to apply consistently.

Command

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/rajconnects/founder-stack/grill
Clone the repo
git clone --depth 1 https://github.com/rajconnects/founder-stack
Per session 54 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,187 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00054 $0.01187
Opus 5 $0.00027 $0.00593
Sonnet 5 $0.00011 $0.00237
Haiku 4.5 $0.00005 $0.00119

Measured yesterday against content hash 5c3a0b63f7b5, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

grill scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

workflow/commands/grill.md · 60 lines

How it starts

The opening of the file, as written. The whole thing — 60 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You are running a grilling session: stress-testing a plan against the project's documented thinking before it advances to implementation.

Arguments: $ARGUMENTS

Steps

  1. Resolve the plan to grill.

    • If $ARGUMENTS is a file path, read it.
    • If $ARGUMENTS is current or empty, use the active plan-mode plan from this conversation.
    • If neither, ask the user: "Which plan should I grill? Paste it, give me a path, or say current to use the in-conversation plan."
  2. Resolve project context. Read .claude/project.json. Extract:

    • context_doc — the project's primary thesis/context document (e.g. CLAUDE.md, CONTEXT.md).
    • glossary_doc + glossary_anchor — where the project's domain vocabulary lives.
    • decision_records.path and decision_records.format — where prior resolved decisions are stored.
    • architecture_notes — where long-form architecture memos live (optional).
  3. Load the project's thinking. Read in this order:

    • The context_doc in full.
    • The glossary section (anchor) inside glossary_doc.
    • Index decision records:
      • If format is json-traces: glob <path>/*.json, read each, build a list of (topic, status, resolution_summary, revisit_trigger) tuples. Filter to status: resolved for the challenge phase.
      • If format is markdown-adr: glob <path>/*.md, parse the title and "Decision" / "Consequences" sections.
      • If format is mixed: do both.
    • Skim architecture_notes filenames for any obviously relevant memos. Read full content only if a name matches the plan's scope.
  4. Run the grilling loop. Walk down each branch of the plan's decision tree, one question at a time. For each question, also propose your recommended answer based on what you've read. Wait for the user's response before continuing to the next question. Stop only when every branch is resolved or explicitly deferred.

    Cover at minimum:

    • Glossary conflicts. Does the plan use a term that conflicts with the glossary's definition? Surface it: "The glossary says X means A, but you seem to mean B — which is it?"
    • Fuzzy terms. Does the plan use vague or overloaded words? Propose a precise canonical term from the glossary.
    • Prior decision conflicts. Does the plan contradict any resolved decision record? Surface the trace ID and the original resolution. Ask: "This conflicts with [trace topic, resolved on date]. The original resolution was: [summary]. Reopen, or revise the plan?"
    • Concrete scenarios. When the plan asserts how something works, invent a concrete edge-case scenario and ask the user to confirm. ("If a user does X mid-flow, what does the plan say happens?")
    • Untested assumptions. When the plan asserts a fact, ask: "How do we know this? Is there a measurement, a prior decision, or is this assumption?" Tag assumptions for later validation.
    • Code agreement. When the plan describes how the system behaves, spot-check the code if a path is implied. Surface any divergence between plan and code.
  5. Update the project's thinking inline. As terms are resolved or decisions crystallize, do not batch them.

    • Glossary update needed. If the user clarifies or introduces a term that should live in the glossary, propose the exact diff and ask permission before writing.
    • Decision needs capturing. If the grilling produces a new decision (or revises a prior one), say: "This is decision-worthy — want me to capture it via the existing decision-trace flow?" Hand off to whatever the project's decision-capture skill is (do not fabricate one). If the project ships with a decision-trace-capture skill, that's typically what /handoff invokes.
  6. Print a session summary. When the user signals "done":

    • Number of branches grilled.
    • Number of glossary updates proposed (and accepted).
    • Number of decision-record conflicts surfaced.
    • Number of new decisions worth capturing.
    • Plan status: ready to advance to plan-mode approval / needs revision / blocked.

Read the full file on GitHub · 60 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 60 lines · 54 tokens per session scan A 5c3a0b63f7b5

Subscribe to this mod's changes

grill is a command published in the GitHub repository rajconnects/founder-stack (2 stars, last pushed 1mo ago), licensed MIT. It adds 54 tokens to every session and 1,187 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.