Install in seconds
Install this skill
Copy the command and run it in your terminal. You can review the source before installing.
terminal
git clone https://github.com/crbnos/carbon

Works with Git. The repository opens in your current directory.

πŸ”
QualityTypeScript

Grill

by crbnos

Interviews the user relentlessly, one question at a time, to resolve every open decision in a plan, spec, or design idea. Cross-checks answers against the codebase and domain glossary, records resolutions immediately, and surfaces contradictions. Supervised use only.

2.3K stars318 forksAdded 2026/07/20
agentic-platformassemblylinebusinesserpleanmanagementmanufacturingmcp-servermespostgresqlqmsreact-routersupabasetypescript

Documentation

README

grill β€” stress-test a design by interviewing its author

Input: a plan, spec, or design idea (in a file or only in chat). Output: every open decision resolved with the human one branch at a time, each resolution written to its canonical home, and every contradiction between the user's answers and the codebase surfaced along the way.

Supervised only. This skill exists to interview a human; there is no autonomous variant. Inside an automated loop (conductor, headless/outer-loop runs) do NOT invoke it β€” spec-writing's autonomous mode (recommendation-based resolutions recorded as **Autonomous:**, Ask-First territory β†’ BLOCKED) is the substitute.

Announce at start: "Using the grill skill β€” stress-testing {target}."

Step 1: Identify the target and its write destination

Grilling Questions come from Resolutions written to
A spec (.ai/specs/…) its Open Questions section, plus anything fuzzy in Design Decisions inline in the spec: - [x] {Question} β€” **Answer:** {decision and rationale}, plus a changelog entry when done
A spec in design (spec-writing Step 5 β€” no file yet) the question list assembled in spec-writing Step 4 carried into the spec's Open Questions section (pre-checked, with answers) when the spec is written in Step 6
A plan (.ai/plans/…) ambiguous or risky tasks, missing acceptance criteria the affected task in the plan file
An idea in chat (no artifact) the whole decision tree of the idea .ai/runs/{YYYY-MM-DD}-grill-{slug}.md β€” create it when the first decision lands

If the target has no artifact and the grill reveals it is spec-worthy (new module, data-model change, or 3+ files β€” the /spec-writing table), say so and offer /spec-writing. Continue grilling artifact-less only if the user declines.

Step 2: Pick the depth from the blast radius

Target involves Depth
New module, data-model change, or cross-module behavior Full grill β€” strictly one question per message
Anything smaller Light grill β€” closely-related questions may be grouped, max 2–3 per message

Depth changes grouping only. Every rule in Step 3 applies at both depths, and never present the entire question list at once and wait for batch answers.

Step 3: Interview

Walk the decision tree branch by branch, resolving dependencies between decisions one by one. Wait for the user's answer before continuing. For every question:

  • Order by dependency: settle decisions that other questions hinge on first.
  • Attach your recommended answer with a one-line rationale.
  • If the question can be answered by exploring the codebase or an existing research file, answer it that way instead of asking.
  • Cross-check every answer against the code. Surface contradictions immediately, with file references: "you said X, but {file} does Y β€” which is right?"
  • Stress-test fuzzy answers with a concrete scenario before accepting them ("a PO has 3 lines and one is already received β€” what happens on cancel?").
  • Sharpen fuzzy terms. When the user uses a vague or overloaded word, propose the precise canonical term. Check packages/glossary (the terms object in @carbon/glossary) for an existing definition and challenge conflicts: "the glossary defines {term} as {definition}; you seem to mean {other} β€” which is it?"

Step 4: Write back as each decision lands

Do not batch write-backs to the end of the session β€” record each resolution in the Step 1 destination in the same turn it is decided. Two extra destinations apply regardless of target:

  • A decision that sets a durable convention beyond this feature β†’ update the matching .ai/rules/*.md file in the same turn.
  • A genuinely new canonical domain term β†’ offer a @carbon/glossary entry, only when all three hold: the term is user-facing (UI or docs), the grill revealed real ambiguity, and the user confirmed the definition. Follow packages/glossary/AGENTS.md (its "Ask First" rule is satisfied by the user's confirmation in the interview).

Done when

  • No unresolved branches: every question answered by the user, the codebase, or an explicit documented "out of scope" decision
  • Every resolution recorded in the Step 1 destination β€” none live only in chat
  • Durable conventions reflected in .ai/rules/; glossary offers made where the three-part test passed

Anti-patterns

  • Dumping the full question list in one message and accepting batch answers
  • Accepting an answer without checking it against the code
  • Resolving a question yourself to keep moving β€” only the user, the codebase, or a documented out-of-scope decision resolves a question
  • Recording decisions only in chat ("I'll write them up at the end")

Red flags β€” thinking any of these means the grill is being defeated; STOP:

  • "the user probably means X, I'll assume it" (that assumption IS the question)
  • "we can settle this during implementation"
  • "I'll batch the write-backs when the session ends"

More from crbnos

Other Claude Code skills by this author in the directory.

🌐
1w ago

Agent Browser

Browser automation CLI for AI agents. Use it to navigate pages, fill forms, click buttons, take screenshots, extract data, test web apps, or automate any browser task.
Automation
+0%2.3K325
πŸ”‘
1w ago

Carbon Dev Auth

Authenticates a local browser session against the Carbon ERP dev server using DEV_BYPASS_EMAIL, enabling automated testing and manual verification. Leaves session open for subsequent commands.
Automation
+0%2.3K325
πŸ“š
1w ago

Carbon Docs

Author, edit, or extend Carbon's documentation site β€” a Fumadocs + Next.js app. Use for reader-facing guides, reference pages, and documentation IA. Grounds every claim in source code and follows a warm-paper house style.
Writing
+0%2.3K325
βœ…
1w ago

Check and Commit

Runs a sequence of code quality gates (type generation, formatting, linting, typecheck, tests, build, i18n) on changed files, fixes simple issues, and commits only when all checks pass. Ideal after a code fix, task execution, or manual changes before committing.
Quality
+0%2.3K325
πŸ”„
1w ago

Conductor

Drive a single work item through a doer→gate→judge→keep-or-revert→ledger cycle to a gated PR, unattended. Use for tightly-scoped bugs, usability tweaks, or small features with explicit acceptance criteria.
Automation
+0%2.3K325
πŸ€–
1w ago

Create AGENTS.md

Generates or refreshes AGENTS.md files for Carbon packages and ERP modules by analyzing the actual source code. Ensures every documentation claim is verified against real functions, tables, and exports.
Writing
+0%2.3K325