Sometimes the agent's last message doesn't land. It's full of words you don't know, or it jumps to a place you can't follow. wait-what tells the agent: stop, that didn't land, say it again. Its whole body is one short message, as if you'd typed it yourself: "Wait, I don't understand where you've got to here."
The agent then re-pitches what it just said, with three changes:
a little of the context you were missing;
plain English, in the form the Skill names: ASD-STE100 Simplified Technical English, a controlled language with fixed writing rules and a dictionary of approved words;
the project's own words from GLOSSARY.md, the file where its agreed terms live. If the repo has more than one glossary, GLOSSARY-MAP.md points to the right one.
When to use it
Use it mid-conversation, inside any other Skill, the moment a message loses you. For example: partway through a Ticket on your FastAPI backend, the agent reports that it "lifted the session factory behind a seam and inverted the dependency". You can't tell where the work has got to. That's the moment.
You start it yourself, by name. The agent never starts it on its own.
When not to use it
wait-what works after the fact, on one message. grill-with-docs is the upfront cure: a shared language agreed early, and written into GLOSSARY.md, is what stops the jargon arriving at all. If you keep reaching for wait-what on a project, the project is missing that shared language.
And if you want to really learn a new topic over several sessions, that's teach. wait-what only fixes the last message.
What it needs to start
A message that didn't land, in the current conversation. It works best in a repo with a GLOSSARY.md, since that's where the agent finds the project's words.
What it creates
Nothing on disk: no file, no Issue, no branch. Only a clearer version of the agent's last message, and you back on track.
Going deeper
6 min read · Going deeper not read
Why it exists
Matt announced wait-what in his v1.2 video on 2026-08-05. His reason: "Opus, especially Opus 5, is talking garbage at the moment." He called its messages "incredibly verbose", full of "really weird LLM phrases". He had already tried "output styles or adding things to my agent.md". What he wanted instead was "just a skill to say wait what did you just say?"
The pull request that added it was merged the same day. Its title calls it "the verbosity fire extinguisher". The plan was to start it in Matt's in-progress bucket, but "Matt called it to graduate straight out instead". It went into his productivity bucket, because "it fires in any conversation with an agent, code or not".
How it works underneath
The name does the work. Matt's page explains the leading word. A fix like "be concise" names the output, and the model clips words. "Wait" names your state, and the agent backs up and explains. In his words: "An agent that hears 'be brief' writes clipped fragments. An agent that hears 'wait, you lost me' backs up and explains." Fixes named after the output, like /tldr or /no-fluff, give text that is "shorter and no clearer".
"be concise"
"Wait"
names
the output
your state
the model clips words
the agent backs up and explains
"Wait" names your state
It's short on purpose. The page says long Skills against verbosity fail, "because the model copies the length of the skill, not its request." The pull request gives the evidence: one user "installed a 400-line viral concision skill and the model still wasn't concise". The body also says re-pitch "that", not "that last message". So the agent decides how far back to go.
Citations (65)
From snapshot/skills/wait-what/SKILL.md, line 7: “Wait, I don't understand where you've got to here. Re-pitch that: give me a little bit of context, talk in ASD-STE100 Simplified Technical English, and use the ubiquitous language from GLOSSARY.md (follow GLOSSARY-MAP.md to the right one if the repo has more than one).”
From snapshot/skills/ask-matt/SKILL.md, line 91: “/wait-what is the corrective for a message that didn't land. Use it mid-conversation, inside any other skill, and the agent re-pitches what it just said with the context you were missing, in plain English, using the GLOSSARY.md vocabulary. It works after the fact; /grill-with-docs is the upfront cure, because a shared language agreed early is what stops the jargon arriving at all.”
It reuses words the agent already has. The body borrows the leading words from a global CLAUDE.md and your GLOSSARY.md. The first pull request (2026-08-05) says those words were "already live in Matt's global CLAUDE.md". Matt's page, updated 2026-08-24 and so newer, says "your global CLAUDE.md". The page puts it this way: "ASD-STE100 Simplified Technical English sets the register. The ubiquitous language supplies the nouns." So typing it "is not a new instruction". It's a reminder.
With no glossary, "the skill still works. You lose only the domain-vocabulary half."
What ASD-STE100 really is. It isn't a loose name for plain English. It's a controlled natural language, made in the late 1970s so that people could understand aircraft maintenance manuals. It has two parts: 53 writing rules, and a controlled dictionary of about 900 approved words. "In general, each word has only one meaning and is approved with only one part of speech." Its own FAQ says it's "a precise and structured writing standard, not a simplified or childish version of English".
STE also lets writers add their own field's words, as "technical nouns" and "technical verbs". These can come from "company glossaries". That's the slot your GLOSSARY.md fills: STE gives the plain general words, and your glossary gives the project's nouns.
In the video, Matt calls the standard "essentially just a leading word" that tells the agent to use very simple language. The part he cares about more is your own words: "The real cure for verbosity is not to tell it to use simple language". It's to use "your language, the stuff that you have come up with in Grill with Docs."
A real example
In the video, right after saying Opus goes over his head, Matt reads out the kind of message he means: "The honest options are to accept it and reword the AC or to persist the digest along the export. So a resumed unchanged publish can skip the read to flagging rather than picking." (as the video's auto-captions give it) Then he asks: "What does that mean?" That message is the kind wait-what is for.
The body itself has changed since then. The first version, in that first pull request, ended with "use the ubiquitous language from CONTEXT.md." Today's SKILL.md, which is newer and decides what the Skill does, says GLOSSARY.md instead. It also says to "follow GLOSSARY-MAP.md to the right one if the repo has more than one".
Where it goes wrong
Repos with more than one glossary. On 2026-08-19, a pull request found that in a repo with a map file and no single root glossary (then called CONTEXT-MAP.md and CONTEXT.md), "the skill fell silent on vocabulary instead of following the map." The fix added the map clause you see in today's body.
For about three hours, npx skills couldn't install it. On 2026-08-19, a repo-wide em-dash-to-colon sweep (#905) left an unquoted colon in six Skills' description lines, wait-what's included. That made their YAML invalid. A user reported that skills.sh skipped them during discovery (#907). PR #911 quoted the lines, since until then "they couldn't be listed or installed via npx skills". It merged about three hours after #905. Today's description is in quotes.
Shorter, but blunter. Matt's page lists how to tell it's working. The re-pitch should be "shorter and clearer, not shorter and blunter". It should add "the premise you were missing". And "You can use it twice in a row, and it does not degrade into terseness."
Try it
In your practice project (set it up first with keeping-track's Try it step if you haven't):
Install it with npx skills@latest add mattpocock/skills --skill=wait-what.
Make sure the repo has a GLOSSARY.md with a few of your words, like Booking, Class and Slot. If it has none, add three lines by hand.
Ask the agent: "How does a booking request travel from web/ to the Postgres table in api/?" Read the answer until you notice you're skimming.
Type /wait-what. Check the re-pitch against Matt's list: shorter and clearer, the missing premise added, and your glossary words back in place of invented ones.
Type /wait-what a second time. The answer shouldn't turn into clipped fragments.
From snapshot/web/aihero.dev/skills-wait-what.md, line 40: “"Be concise" is an instruction about the agent's output, and the model obeys it by clipping words and losing you further. Wait is about your state. It says you stopped understanding here. An agent that hears "be brief" writes clipped fragments. An agent that hears "wait, you lost me" backs up and explains.”
From snapshot/web/aihero.dev/skills-wait-what.md, line 42: “Every popular fix for verbosity names the output: /tldr, /no-fluff, /talk-normal. The model over-corrects into clipped fragments that are shorter and no clearer.”
From snapshot/web/aihero.dev/skills-wait-what.md, line 30: “Skills against verbosity usually fail because they grow too long. A four-hundred-line concision skill still leaves the model verbose, because the model copies the length of the skill, not its request.”
From snapshot/web/aihero.dev/skills-wait-what.md, line 44: “The skill says re-pitch that, not "that last message". What lost you is usually bigger than one paragraph, so the agent decides how far back to go.”
From snapshot/web/aihero.dev/skills-wait-what.md, line 48: “The body reuses the leading words already in your global CLAUDE.md and your project's GLOSSARY.md. ASD-STE100 Simplified Technical English sets the register. The ubiquitous language supplies the nouns.”
From snapshot/web/asd-ste100.org/about-ste-html.md, line 19: “ASD-STE100 Simplified Technical English (STE) is a controlled natural language developed in the late 1970s (originally as AECMA Simplified English) to help the users of English-language maintenance documentation understand what they read. It was initially applicable to commercial aviation”
From snapshot/web/asd-ste100.org/ste-faq-html.md, line 41: “Writers can also use noun terms and verb terms that are applicable to their companies, industries, or subject fields. STE identifies these terms as “technical nouns” and “technical verbs””
From snapshot/web/youtube.com/watch-v-gaddrddczo4.md, lines 59–60: “The real cure for verbosity is not to tell it to use simple language, although we are doing a bit of that. is to tell it to use your language, the stuff that you have come [03:51] up with in Grill with Docs.”
From snapshot/web/github.com/mattpocock-skills-pull-751.md, lines 19–21: “Wait — I don't understand where you've got to here. Re-pitch that: give me a little bit of context, talk in ASD-STE100 Simplified Technical English, and use the ubiquitous language from CONTEXT.md.”
From snapshot/skills/wait-what/SKILL.md, line 7: “use the ubiquitous language from GLOSSARY.md (follow GLOSSARY-MAP.md to the right one if the repo has more than one).”
From snapshot/web/github.com/mattpocock-skills-pull-904.md, line 16: “but had no notion of CONTEXT-MAP.md — the multi-context index some repos use instead of a single root CONTEXT.md. On a repo like that, the skill fell silent on vocabulary instead of following the map.”
From snapshot/web/github.com/mattpocock-skills-pull-911.md, line 15: “Quotes the description front-matter scalar in six SKILL.md files where an unquoted colon-space sequence made the YAML invalid, causing skills.sh to skip them during discovery (they couldn't be listed or installed via npx skills)”