grill-with-docs sharpens an idea by interviewing you, and writes down what gets settled as it goes. It's two Skills in one: grilling, the interview, and domain-modeling, which keeps the project's words and decisions on disk.
grill-with-docswrites down what gets settled as it goes
A shared understandingof the idea, in the conversation
domain-modelingkeeps the project's words and decisions on disk
Glossary entriesin GLOSSARY.md, written the moment a term is settled
ADRsoffered sparingly
It's two Skills in one
The interview works in rounds. Each round, the agent asks every question it can ask right now, numbered, each with its recommended answer, worded so "yes" accepts it. Your answers open up the next round. Looking up facts in the code is the agent's job; the decisions are yours. It's done when nothing is left unasked or silently assumed, and the agent doesn't act until you agree you've reached a shared understanding.
When to use it
It's the first step of the Main flow: you have an idea, and you're working in a repo. Say you want waitlists in your FastAPI booking backend, or a new tool for your AI agent.
It runs the same interview as grill-me, and also leaves a paper trail in the repo. That makes it the better of the two whenever a repo is there.
When not to use it
No repo, just a plan or a piece of writing: use grill-me. Same interview, nothing saved.
An effort too big and foggy for one session, like a whole new product: use wayfinder. grill-with-docs is for an idea you can hold in one session.
A question talk can't settle, like whether a state model holds up or what a page should look like: detour through prototype, then come back.
What it needs to start
An idea, however rough, and a working directory. setup-matt-pocock-skills should already have run, since it comes before your first engineering Flow. The Glossary and ADR files don't need to exist yet.
What it creates
A shared understanding of the idea, in the conversation. Keep working in that same session through the Spec and Tickets, so they build on the same thinking.
Glossary entries in GLOSSARY.md, written the moment a term is settled. When you use one word two ways, say "account" for both the customer and the login, the agent asks which you mean. The Glossary holds words only, never implementation details.
ADRs, offered sparingly. An ADR (architecture decision record) is a short file recording one decision, and it's offered only when the decision is hard to reverse, surprising without context, and the result of a real trade-off.
Files are created only when there's something to write.
Going deeper
6 min read · Going deeper not read
Why it exists
Matt explained it in a video on 2026-05-14. He had been using grill-me for coding, and kept noticing that "the agent was being really, really verbose". Sometimes the two of them would "land on some really good shared language", and then "that wasn't documented anywhere". So he had to "re-explain all of the non-obvious things about the code base and about the domain" before any real work. He asked himself "what is the thinnest layer of documentation I could use to just give the AI a bit more of a leg up."
His first answer was a separate Skill, the ubiquitous language skill. He ran grill-me and the ubiquitous language skill side by side, then asked: "Wouldn't it be great if I just combine the two into a new skill?" He merged them into one Skill: grill-with-docs, announced on 2026-04-30. That changelog says the old Skill "has been deprecated and merged". The v1.3 notes (updated 2026-10-05) record that its file was renamed: CONTEXT.md became GLOSSARY.md.
grill-me and the ubiquitous language skill side by side
one Skill: grill-with-docsannounced on 2026-04-30
CONTEXT.md became GLOSSARY.mdThe v1.3 notes (updated 2026-10-05)
His rule in the video: "when you have a code base, use Grill with Docs."
The 2026-04-30 changelog video in which the ubiquitous language skill was merged into grill-with-docs. From aihero.dev, 30 October 2026.
How it works underneath
The idea is older than AI agents. Ubiquitous Language is Eric Evans's term from Domain-Driven Design. Martin Fowler's 2006 summary calls it "a common, rigorous language between developers and users", rigorous "since software doesn't cope well with ambiguity". Matt applies it to agents: one document of "the language that's used by the code base, that's used by developers", and by the people who know the problem.
Matt names three payoffs in the video. The agent gives "concise replies". It can "use fewer tokens thinking". And "you end up with easier to navigate code". He also warns that the words reach the code: "this is going to affect every part of the code that's generated." ADRs do the same job for decisions: a shared record "prevents the AI from suggesting the same bad idea repeatedly."
Two details in the files matter:
You start it, not the agent. Its SKILL.md says disable-model-invocation: true, and Matt's page says "the agent won't reach for it on its own."
The file's name matters. Matt renamed it because "CONTEXT.md was too vague. It did not make the agent pull the file in at the right moments".
Not everyone agrees the glossary helps the model. Matt's page records "The strongest objection": a term and its plain-English expansion may get the same result. "On that view the glossary is still valuable, but the value goes to the humans."
A real example
In the 2026-05-14 video, Matt adds "pitches" to his course app, which already "deals in courses, deals in lessons, deals in videos". A pitch "is really just the packaging for the video, the title, the description". Before going further, the agent read the existing glossary, where "Standalone video is already defined", and raised the clash first.
Then came the rounds. Matt agreed to "one to many relationship" between a pitch and its standalone videos. A pitch can be "idle or scheduled or shipped". Asked "Can a pitch exist with zero videos?", he said yes, and chose "on delete restrict" for deletes. Then he said: "Could you save what we have into context.md so far?" The file gained "pitch, the actual entity itself" and "pitch status". One new term was "a little bit awkward", but he stopped anyway: "I'm going to say that's good enough." That file is called GLOSSARY.md today.
Where it goes wrong
The glossary turns into a plan. Issue #130 was opened on 2026-05-04. With Codex and GPT 5.5, the agent "updated the CONTEXT.md file" after each question, writing answers in the shape of terms. Another user, unsure it was the same problem, said their file was "going over 500 lines". Matt replied on 2026-05-12 that a fix is to say /grill-with-docs make my CONTEXT.md more concise and remove any implementation details from it. Today that file is GLOSSARY.md. As of 2026-10-30 the issue is still open.
The two Skills don't load. Matt's page says that every question at once, with no recommendations, "is the skill failing to load its two dependencies". The v1.3 notes (updated 2026-10-05) give the cause: "A skill that names another skill in prose does not reliably load it." So the current SKILL.md says "Call the Skill tool twice". The notes call the new wording "harness-neutral", but it needs a Skill tool. Issue #1123, opened 2026-09-24 and as of 2026-10-30 still open, reports that "Codex reports it has no Skill tool" (2026-09-26). A 2026-10-05 comment says the same of pi. On 2026-10-07, after the notes, Matt marked #1123 ready-for-human. Its workaround: tell the agent to read both SKILL.md files and follow them. When in doubt, "ask the agent directly which skills it loaded".
Everything else stays in the chat. Matt's page (updated 2026-08-24) calls this "the most serious open complaint about the skill". Hand the session to to-spec, then "re-read the spec against your own answers".
Inside someone else's pipeline. Matt's page (updated 2026-08-24) says that when it runs as a step in another orchestration layer, "users report that the file-writing half silently does not happen". It adds: "The bug is filed and unfixed."
A team renames in two steps. v1.3 warns that if one person updates first, "their agent starts a new, empty GLOSSARY.md beside the old one." Rename the file in one commit everyone pulls.
Try it
In your practice project (set it up first with keeping-track's Try it step if you haven't), type /grill-with-docs yourself. Give it one feature for the booking API: a waitlist for full yoga classes.
After each round, run git status --short and cat GLOSSARY.md in a second terminal. Terms should appear as each one is settled, each with a definition of one or two sentences and no implementation detail.
If the questions come with no recommended answers and no GLOSSARY.md appears, ask the agent which Skills it loaded.
When the interview ends, stay in the same session and run to-spec. Then check the Spec against the answers you gave.
Going deeper's Check questions are asked in Next up.
“The decisions are the user's: put each to them and wait.”
From snapshot/skills/grilling/SKILL.md, line 30: “The session is done when the frontier is empty: every branch of the design tree visited, nothing left silently assumed. Do not act on it until the user confirms you have reached a shared understanding.”
From snapshot/skills/ask-matt/SKILL.md, line 19: “Start here whenever you are working in a working directory: it's stateful, retaining what it learns in GLOSSARY.md and ADRs.”
From snapshot/skills/ask-matt/SKILL.md, line 19: “grill-with-docs is the one that leaves a paper trail, which makes it the better of the two whenever a repo is there to leave it in.”
From snapshot/web/youtube.com/watch-v-6bb6exr8zd8.md, line 69: “So, I had grill me and I had ubiquitous language, and I was using them both at the same time, and I realized, "Wouldn't it be great if I just combine the two into a new skill?"”
From snapshot/web/github.com/mattpocock-skills-issues-130.md, line 47: “I had Codex with GPT 5.5 misuse the Context.md file as plan document. After each question it updated the CONTEXT.md file and used the format of term definitions to describe the decisions and answers that I provided.”
From snapshot/web/github.com/mattpocock-skills-issues-1123.md, line 55: “Some harnesses use a different activation mechanism or load skills by reading their files directly. In those environments, these instructions cannot be followed literally, even when the referenced skills are available.”
From snapshot/web/aihero.dev/skills-grill-with-docs.md, line 138: “When the skill runs inside another orchestration layer (a spec-driven-development wrapper, a multi-agent framework, a rule that invokes it as a step in someone else's pipeline), users report that the file-writing half silently does not happen, while the interview still runs. The bug is filed and unfixed.”