grill-with-docs, by Matt Pocock, is a skill (executable instructions for a coding agent) that turns the design phase into a rigorous interview session. Its principle: when designing a feature, the plan rests on assumptions and design dependencies; rather than rushing into implementation, the skill "grills" the plan by confronting it, assumption by assumption, against the project's business vocabulary and decisions already made. As decisions crystallize, they are captured in two types of documents: CONTEXT.md, a domain glossary (the business vocabulary), and ADRs (Architecture Decision Records, in docs/adr/), for significant architecture decisions.
The mechanism rests on four principles. (1) Interview-based approach: questions are asked sequentially, one at a time, and the agent waits for the answer before moving forward; if a question can be resolved by exploring the code, it explores instead of asking. (2) Precision of language — the core of the skill: immediately flag terminology conflicts with the existing glossary, propose a canonical term when the user uses a vague word (e.g. "account"), and test business relationships with concrete edge-case scenarios. (3) Evidence-based: cross-check announced behavior against the actual code and surface contradictions. (4) Documentation discipline: CONTEXT.md is updated on the fly (not in batch at the end); an ADR is created only if the decision is hard to reverse, surprising without context, and stems from a genuine trade-off.
On the structural rules side: CONTEXT.md contains only the business glossary (no implementation details, specs, or drafts); a repo with multiple domains (bounded contexts in the DDD sense) uses a CONTEXT-MAP.md that points to each context's CONTEXT.md; files are created on demand (lazy creation).
In summary, it is an upfront-design skill, inspired by Domain-Driven Design, that forces a rigorous conversation before code to ① clean up the vocabulary, ② check consistency with what already exists, and ③ document decisions in the right place and at the right level of granularity — to avoid terminology drift and unverified assumptions that become costly later.