Vulgarize — plain-language summary of what changed
Produce a simple message for a non-technical client summarising the code changes. It reads like
the developer texting the client directly, not like a release note.
Language: en by default. If $ARGUMENTS starts with fr, write it in French, casual and
informal (tutoiement, no polite formulas). Everything else below is identical.
Sibling skill: /explain-dev produces a structured WhatsApp update (bold numbered points + a
numbered "How to test" section). This one produces a flowing, casual text message. Pick by
how formal the recipient is.
Steps
- Read the changes: look at the git diff (staged + unstaged) and recent commits to understand
what actually changed.
- Find the "why": for each change, identify the concrete impact for the user or the business.
- Write the message following the rules below.
Writing rules
- First person, speaking directly to them: "I did…", "I added…" — as if you are the developer
talking TO the client. Never refer to the client in the third person ("the client asked…"). Say
"you mentioned that…" when referencing feedback you got.
- No technical jargon: no file names, function names, variable names, component names. Ever.
- Casual tone: like a WhatsApp/Slack message. No formal salutations, no sign-off boilerplate.
- Explain the WHY, not just the what: e.g. "that way the numbers are frozen at the moment the
order is accepted, so they can't drift afterwards".
- Group logically: merge related changes into one flowing explanation rather than listing them
file by file.
- If a technical concept is unavoidable, explain it in parentheses: "a snapshot (a frozen copy)".
- No bullet lists, no markdown: plain text, it's a message not a document.
- Short and direct: no "here's what I did" preamble. Get straight to it.
- NEVER use an em dash (—), en dash (–) or arrow (→) — they read as AI-written. Use a comma, a
period, parentheses, or the word "to" instead.
Output format
Two paragraphs:
- What changed and why (rules above).
- How to test: one or two plain sentences on how they can check it themselves, no jargon.
E.g. "to check it, log in and open any order, the total should stay the same after you refresh".
Output ONLY the message, ready to copy-paste and send. No commentary, no "here's the message:".
Example
Technical changes (input)
- Clear the tax-number field when the company country changes
- Store a snapshot of the buyer and seller details when the order is created
- Refresh those snapshots on payment retry
- Build the invoice from the stored snapshot instead of re-reading live data
Client message (expected output)
ok so here's what I did:
when the company country changes I now clear the tax number, since it doesn't apply anymore
I save a copy of the buyer and seller details the moment the order is created (a snapshot)
and the invoice is now built from that copy instead of re-reading everything later
that way the details are frozen at the moment the price is accepted and can't shift afterwards
if a payment is retried I refresh that copy once the payment goes through, because the amount is
recalculated at that point
to check it, create an order then change the company details afterwards, the invoice should still
show the details as they were when the order was placed
$ARGUMENTS
1---2name: vulgarize3description: Turn the technical changes in the working tree into a short, casual, jargon-free message you can send straight to the client (en/fr)4---56# Vulgarize — plain-language summary of what changed78Produce a simple message for a **non-technical client** summarising the code changes. It reads like9the developer texting the client directly, not like a release note.1011**Language:** `en` by default. If `$ARGUMENTS` starts with `fr`, write it in French, casual and12informal (tutoiement, no polite formulas). Everything else below is identical.1314> Sibling skill: `/explain-dev` produces a *structured* WhatsApp update (bold numbered points + a15> numbered "How to test" section). **This** one produces a flowing, casual text message. Pick by16> how formal the recipient is.1718## Steps19201. **Read the changes**: look at the git diff (staged + unstaged) and recent commits to understand21 what actually changed.222. **Find the "why"**: for each change, identify the concrete impact for the user or the business.233. **Write the message** following the rules below.2425## Writing rules2627- **First person, speaking directly to them**: "I did…", "I added…" — as if you are the developer28 talking TO the client. Never refer to the client in the third person ("the client asked…"). Say29 "you mentioned that…" when referencing feedback you got.30- **No technical jargon**: no file names, function names, variable names, component names. Ever.31- **Casual tone**: like a WhatsApp/Slack message. No formal salutations, no sign-off boilerplate.32- **Explain the WHY, not just the what**: e.g. "that way the numbers are frozen at the moment the33 order is accepted, so they can't drift afterwards".34- **Group logically**: merge related changes into one flowing explanation rather than listing them35 file by file.36- **If a technical concept is unavoidable**, explain it in parentheses: "a snapshot (a frozen copy)".37- **No bullet lists, no markdown**: plain text, it's a message not a document.38- **Short and direct**: no "here's what I did" preamble. Get straight to it.39- **NEVER use an em dash (—), en dash (–) or arrow (→)** — they read as AI-written. Use a comma, a40 period, parentheses, or the word "to" instead.4142## Output format4344Two paragraphs:45461. **What changed and why** (rules above).472. **How to test**: one or two plain sentences on how they can check it themselves, no jargon.48 E.g. "to check it, log in and open any order, the total should stay the same after you refresh".4950Output ONLY the message, ready to copy-paste and send. No commentary, no "here's the message:".5152## Example5354**Technical changes (input)**5556- Clear the tax-number field when the company country changes57- Store a snapshot of the buyer and seller details when the order is created58- Refresh those snapshots on payment retry59- Build the invoice from the stored snapshot instead of re-reading live data6061**Client message (expected output)**6263ok so here's what I did:64when the company country changes I now clear the tax number, since it doesn't apply anymore65I save a copy of the buyer and seller details the moment the order is created (a snapshot)66and the invoice is now built from that copy instead of re-reading everything later67that way the details are frozen at the moment the price is accepted and can't shift afterwards68if a payment is retried I refresh that copy once the payment goes through, because the amount is69recalculated at that point7071to check it, create an order then change the company details afterwards, the invoice should still72show the details as they were when the order was placed7374$ARGUMENTS