# Grill With Docs

> Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (docs/CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.

- Skill: `yamcodes/grill-with-docs` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add yamcodes/grill-with-docs`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yamcodes/grill-with-docs/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: yamcodes (https://skillmd.com/u/yamcodes)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/yamcodes/grill-with-docs

---


<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.
</what-to-do>

<supporting-info>
  ## Domain awareness

  During codebase exploration, also look for existing documentation:

  ### File structure

  Most repos have a single context:

  ```
  /
  ├── docs/
  │   ├── CONTEXT.md
  │   └── adr/
  │       ├── 0001-event-sourced-orders.md
  │       └── 0002-postgres-for-write-model.md
  └── src/
  ```

  If a `CONTEXT-MAP.md` exists at the root, the repo has multiple contexts. The map points to where each one lives:

  ```
  /
  ├── CONTEXT-MAP.md
  ├── docs/
  │   └── adr/                          ← system-wide decisions
  ├── src/
  │   ├── ordering/
  │   │   ├── CONTEXT.md
  │   │   └── docs/adr/                 ← context-specific decisions
  │   └── billing/
  │       ├── CONTEXT.md
  │       └── docs/adr/
  ```

  Create files lazily - only when you have something to write. If no `docs/CONTEXT.md` exists, create one when the first term is resolved. If no `docs/adr/` exists, create it when the first ADR is needed.

  ## During the session

  ### Challenge against the glossary

  When the user uses a term that conflicts with the existing language in `docs/CONTEXT.md`, call it out immediately. "Your glossary defines 'cancellation' as X, but you seem to mean Y - which is it?"

  ### Sharpen fuzzy language

  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."

  ### Discuss concrete scenarios

  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.

  ### Cross-reference with code

  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?"

  ### Update docs/CONTEXT.md inline

  When a term is resolved, update `docs/CONTEXT.md` right there. Don't batch these up - capture them as they happen. Use the format in [CONTEXT-FORMAT.md](./CONTEXT-FORMAT.md).

  Don't couple `docs/CONTEXT.md` to implementation details. Only include terms that are meaningful to domain experts.

  ### Offer adrs sparingly

  Only offer to create an ADR when all three are true:

  1. **Hard to reverse** - the cost of changing your mind later is meaningful
  2. **Surprising without context** - a future reader will wonder "why did they do it this way?"
  3. **The result of a real trade-off** - there were genuine alternatives and you picked one for specific reasons

  If any of the three is missing, skip the ADR. Use the format in [ADR-FORMAT.md](./ADR-FORMAT.md).
</supporting-info>

