From compound-engineering
Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, brainstorm docs, plan docs, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/compound-engineering:grill-meThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<what-to-do>
Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
Ask the questions one at a time, waiting for feedback on each question before continuing.
If a question can be answered by exploring the codebase, explore the codebase instead.
During codebase exploration, also look for existing documentation, especially the active feature artifact for the current discussion.
Most repos have a repo-wide constitution, a glossary-oriented CONTEXT.md, and feature documents under docs/:
/
├── CONSTITUTION.md
├── CONTEXT.md
├── docs/
│ ├── brainstorms/
│ │ └── 2026-04-30-checkout-race-brainstorm.md
│ ├── plans/
│ │ └── 2026-05-01-fix-checkout-race-plan.md
│ └── architecture/
│ ├── 2026-04-30-nucleus-stage-1-architecture.md
└── src/
Create files lazily -- only when you have something to write. If no CONTEXT.md exists, create one when the first term is resolved. If no CONSTITUTION.md exists, advise the user to create one using the workflows-constitution command using the context from this session.
Before grilling, decide where concrete decisions belong:
CONTEXT.md is only for canonical domain language. ADRs remain for cross-feature decisions that deserve a durable architectural record.When the user uses a term that conflicts with the existing language in CONTEXT.md, call it out immediately. "Your glossary defines 'cancellation' as X, but you seem to mean Y — which is it?"
When the user uses vague or overloaded terms, propose a precise canonical term. "You're saying 'account' — do you mean the Customer or the User? Those are different things."
When domain relationships are being discussed, stress-test them with specific scenarios. Invent scenarios that probe edge cases and force the user to be precise about the boundaries between concepts.
When the user states how something works, check whether the code agrees. If you find a contradiction, surface it: "Your code cancels entire Orders, but you just said partial cancellation is possible — which is right?"
When a term is resolved, update CONTEXT.md right there. Don't batch these up — capture them as they happen. Use the format in CONTEXT-FORMAT.md.
After each question is answered with concrete implementation, architecture, data-shape, API, dependency, boundary, rollout, or operational detail, immediately write it into the active feature doc. Do not wait until the end of the session, and do not leave the decision only in chat history.
Prefer updating the most specific existing section over inventing a catch-all notes bucket:
CONTEXT.md should be totally devoid of implementation details. Do not treat CONTEXT.md as a spec, a scratch pad, or a repository for implementation decisions. It is a glossary and nothing else.
grill-with-docs is the canonical brainstorm mutator (.md vs .html)Detect the active feature doc's format by extension before writing -- a brainstorm or plan may now be a legacy .md file or the composer's .html output (island-contract.md).
.md brainstorm or plan -- edit the file directly as today: the section updates above (Chosen Approach, Key Decisions, Architectural Context, Resolved Questions, etc.) are literal Markdown edits (legacy path, unchanged)..html brainstorm -- grill-with-docs is the canonical brainstorm mutator: it is the skill that first proves in-place mutation on this artifact kind. A content decision (a rewritten Key Decision, an updated Chosen Approach, a question moved from Open to Resolved) never edits the rendered markup directly -- it routes through skills/html-artifact-mutator/SKILL.md (the shared T01 update capability; do not reimplement or re-derive its read/parse/mutate/re-serialize/re-project pipeline here):
commands/workflows/references/html-artifacts/island-contract.md ("Mutation contract" section, including the brainstorm-kind Tier-2 core) and the mutator's own SKILL.md.mutation: { class: "content", patch: {...} } against the brainstorm's .html path, supplying the complete new value for each changed top-level field -- e.g. the full key_decisions[] array with one entry rewritten, or the full resolved_questions[] and open_questions[] arrays together when a question moves from one to the other (supply both fields' complete new values in the same patch).render_meta) from this path.skills/html-artifact-composer/SKILL.md in re-projection mode (point at the file; do not paste the skill body into the prompt), the brainstorm's target_path, and the recorded render_meta read back from the just-mutated island. The subagent re-renders only the affected section(s), reusing the exact archetypes/design_seed already recorded -- never reclassifying, never inventing a fact the island doesn't carry. The update is not complete, and must not be reported complete to the user, until this subagent returns the rewritten artifact path..html plan -- when the active sink is the plan instead of the brainstorm, the same routing already exists via /deepen-plan's .html-plan content-enrichment step; grill-with-docs only needs to pick the active sink per "Choose the right documentation sink" above and hand the same content decision to that existing path.After the grilling session has resolved the current decision branch, updated CONTEXT.md for canonical domain language, and updated the active brainstorm or plan with concrete decisions, load the workflow-next-step skill.
Run it in advisory mode only:
grill-with-docsCONTEXT.mdThis must be the last phase of the session. If grilling stopped before decisions were resolved, still run the advisor with the current state so it can mark blockers and recommend the recovery step.
npx claudepluginhub the-rabak/compound-engineering-plugin --plugin compound-engineeringCreates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.