# Grill Me

> Grilling session that challenges a plan against the existing domain model (or helps to create one), sharpens terminology, and updates documentation (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: `kimgoetzke/grill-me` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add kimgoetzke/grill-me`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kimgoetzke/grill-me/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: kimgoetzke (https://skillmd.com/u/kimgoetzke)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/kimgoetzke/grill-me

---


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.

## Domain awareness

During codebase exploration, also look for existing documentation:

### File structure

Most repos have a single context:

```
/
├── context.md
├── .ai/
│   └── docs/
│       └── 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
├── .ai/
│   └── docs/
│       └── adr/
│           └── 0001-event-sourced-orders.md
├── src/
│   ├── ordering/
│   │   └── context.md
│   └── billing/
│       └── context.md
```

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 `.ai/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 `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 context.md inline

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](./context-format.md).

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

### Offer ADRs sparingly

Only offer to create an architecture decision record (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).

