explain-for — write it for one named audience
One explanation cannot serve everyone. This skill makes you name the audience
first, verify the facts second, and only then write.
Step 0 — check that this is actually an audience request
Trigger matching here is word-overlap against the phrases above, so it is
probabilistic and it will sometimes fire on a request that merely contains the
word "explain". Before entering the skill, confirm the user wants an explanation
pitched at somebody. If they just want to know why CI failed, answer that
question normally and ignore everything below.
Step 1 — resolve the audience
Pick exactly one audience.
Check memory before guessing. Crew carries a persistent user profile, and a
request like "explain this to my daughter" or "break this down for Priya" often
resolves against something already recorded — an age, a role, an interest.
Search memory and lessons for that person and use what is there; guessing an age
the profile already contradicts is the most visible way this skill fails.
If nothing resolves and no audience is named, do not silently invent one:
- Explicit smallest-audience phrasing ("dumb it down", "explain like I am")
means Age 5. That is the request.
- Anything else with no audience — ask which audience in one line, or state the
row you assumed in one clause so the user can correct it.
If the request names someone you cannot classify (a specific colleague, a title
absent from the tables), map them onto the nearest row and say which row.
Ages
| Audience |
Calibration |
| Age 5 |
Smallest words. Analogies from toys, animals, candy, playground. One idea per sentence. |
| Age 10 |
Elementary. Cause-and-effect is fine. Analogies from school, sports, video games. |
| Age 15 |
Some abstraction is fine. Analogies from phones, games, social apps. Casual, never try-hard. |
| Age 20-30 |
Direct and clear. Analogies from work, money, daily logistics. |
| Age 40+ |
Respectful, unhurried. Analogies from home ownership, career, running a household. |
Education level
| Audience |
Calibration |
| 5th grade |
Concrete examples, zero jargon. |
| Middle school |
Introduce a term only with its definition attached. Step-by-step logic. |
| Senior high |
Moderate complexity. Proper terms, each explained once. |
| College |
Academic framing. Technical terms with brief context. Theory plus one application. |
| Graduate |
Assume the foundation. Spend the words on nuance, trade-offs, edge cases. Be precise. |
Job role
| Audience |
They care about |
Frame it as |
| Manager |
Impact, timeline, risk, cost |
The business outcome and the decision that is now open |
| Engineer |
Mechanism, architecture, trade-offs |
Implementation, performance, maintainability |
| Designer |
The user's experience |
Interaction, flow, accessibility, what the user perceives |
| Director |
Strategy, ROI |
Market position, resource allocation, the big picture |
| Product manager |
User value, scope |
Feature impact, what to build and what to cut |
| Colleague |
Their own work |
What changes for them and what they must know to collaborate |
| Support |
Symptoms and remedies |
How it fails, how to detect it, what to do about it |
Relationships
| Audience |
Tone |
Analogy source |
| Partner |
Warm, patient, conversational |
Shared routines, household tasks |
| Parents |
Respectful, never condescending |
Technology they already use, home analogies |
| Kids |
Playful, encouraging, short |
Games, cartoons, animals, school |
| Friend |
Casual, some humour |
Pop culture, shared interests |
Step 2 — establish the ground truth before simplifying
A simplified wrong answer is worse than no answer, and simplification is exactly
where wrong answers hide. This is the step that gets skipped.
- Code — read the actual files with your file and code-search tools. Do not
explain from the identifier names. Trace what calls it and what it returns.
- An error — find the root cause, not the surface string. The frame that
reports the failure is often not the one that caused it.
- A concept — state it once, precisely, for yourself before you soften it. If
you cannot, you do not understand it yet.
- An internal design or decision — the claim and what it depends on. Search
the knowledge library when the answer plausibly lives in a stored doc.
When the source material is large — a whole subsystem, a long log, a wide search
— delegate the reading to a sub-agent and have it return the distilled mechanism.
The explanation is short; the reading behind it does not need to sit in your
context.
If the ground truth is genuinely unknown, say so plainly at the audience's level
rather than inventing a clean story.
Step 3 — write it
- What it is — one sentence, no analogy yet.
- One analogy — anchored in something this audience touches daily.
- The detail that matters — only the layers this audience can use.
- So what — why it matters to them, in their terms.
Language rules that flip with the audience:
- Non-technical (young, family, business): no jargon at all; define a term on
the spot if it is unavoidable. Concrete beats abstract. Use "you".
- Technical (engineer, graduate): use the real terminology — omitting it
reads as condescension. Spend the words on trade-offs and edge cases. Be brief;
they already hold the context.
- Business (manager, director): lead with impact, quantify where you honestly
can, skip mechanism unless asked, and end on the decision.
Length follows the audience: short for a child, dense for a specialist.
Draw it when the thing has a shape
One picture really does beat a page of prose — but only when what you are
explaining is a shape. Ask that first, because the answer is not always yes:
| The thing you are explaining |
Draw it? |
| A sequence, a flow, a lifecycle |
Yes — order is what a diagram shows best |
| A hierarchy, a containment, a topology |
Yes — nesting is hard to hold in sentences |
| A state change, or a before/after |
Yes — put both states side by side |
| A number that moved, a share, a trend |
Yes — one chart, not a paragraph of figures |
| A definition, a single fact, a judgement call |
No — a box with words in it is not a diagram |
| A trade-off between two options |
Usually no — the reasoning is the content, not the layout |
Scale it to the audience the same way you scale the words. For a child the
picture often is the explanation and the text is a caption. For a manager, one
before/after or one impact chart, never an architecture diagram. For an engineer
or a graduate, the real mechanism, drawn precisely. For a parent, draw the
analogy, not the system.
What is available, in ascending cost:
| Tool |
Reach for it when |
What it buys |
```mermaid fence |
a sequence, flow, state machine, hierarchy or ER |
cheapest by far; renders inline, click to enlarge |
```excalidraw fence |
the drawing should look hand-made rather than official |
informal register, full colour control from the scene |
<mcwidget> |
quantities, a colour-coded comparison, a real chart, a before/after panel, a small interactive probe |
sandboxed iframe with Tailwind preloaded, the dashboard theme palette as CSS variables, and Chart.js / D3 from the allowed CDNs |
an image file via image-authoring |
the result must outlive the chat or be pasted elsewhere |
a real file you can attach or save as an artifact |
Two rules that matter more than the picture:
- A wrong diagram is worse than wrong prose. It reads as authoritative and it
gets screenshotted into other people's documents. Step 2 applies with more
force here, not less: do not draw a mechanism you have not actually traced.
- A diagram that restates the text adds nothing. If the caption already says
everything the boxes say, delete one of them. The picture should carry the part
the sentences were bad at.
Colour it, and make every colour mean something
The default is deliberately flat, so a plain diagram will look plain. In chat,
mermaid is initialised with one accent seed plus greys — contrast-safe on any
theme pack, but it gives every node the same fill. Colour has to come from the
source: classDef for a role you reuse, style for a one-off.
flowchart LR
classDef happy fill:#dcfce7,stroke:#16a34a,color:#14532d
classDef bad fill:#fee2e2,stroke:#dc2626,color:#7f1d1d
classDef focus fill:#fef3c7,stroke:#d97706,color:#78350f
A[request] --> B{cache hit?}
B -->|yes| C[serve instantly]:::happy
B -->|no| D[fetch from origin]:::focus
D -->|origin down| E[error]:::bad
Two rules keep that from turning into decoration:
- A colour is a claim. Green means this path is fine, red means it fails,
amber means this is the part under discussion. Colour used only to look lively
sends the reader hunting for a meaning that is not there, which is worse than
one flat palette. If you cannot say what a colour means, leave the node
default.
- Pick values that read on light AND dark. The same source renders under both
themes, and the host pins mermaid's theme precisely because a theme pack can
set an accent that disappears into the background. Mid-tone fills with a darker
stroke and an explicit
color: survive both; near-white and near-black fills do
not.
Scale it like everything else: for a child colour is doing real work, separating
the parts before the labels can be read. For an engineer, colour only the two or
three nodes that carry the point. For a manager, colour the outcome, not the
machinery.
Reach for a widget when the content is quantities or comparison
<mcwidget> is not only the interaction escape hatch, and it is under-used for
explanations. It is the right call whenever the honest answer is a chart, a
colour-coded table, or two states side by side — things markdown cannot
express. Inside one you get Tailwind with no setup, Chart.js or D3 from the
allowed CDNs, and the dashboard's own palette as CSS variables (var(--accent),
var(--ok), var(--warn), var(--danger), var(--card), plus the -subtle
tints).
Use those variables instead of hardcoded colours so the widget matches whatever
theme the reader is on — that is why they are injected. Load the widgets skill
before emitting one; it carries the format rules and the full variable list. Keep
the body to a few KB and write a file instead once it grows past that.
Still prefer markdown when markdown suffices: a widget wrapping three bullet
points is overhead, not richness.
Delivery in Crew
- An explanation request lifts the ban on explaining, not the length bound.
Never flatten an Age-5 or Age-10 explanation into one clipped jargon line
because a verbosity block says to — the register is what this skill is for, and
every level keeps it. Length is the other axis and it stays with the active
level:
answer_only holds its three checks unless the user asked for depth
(a doc, a walkthrough, in detail) — draw the shape, twelve words a sentence in
words a child knows, cut the rest. Its word check is the Age 5 row above, and
its own "asked why" branch is this skill's Step 3 in miniature; an explanation
under it follows that branch as the block spells it, and borrows the
calibration here, never a length licence beyond it.
ultra and concise: keep the register the audience row calls for and spend
the words there; the level bounds length, not vocabulary.
- Persist what gets forwarded. An explanation written for a manager, a
director or a customer usually gets pasted somewhere else. Save it as an
artifact so it outlives the chat scrollback and can be revised, instead of
regenerating it next week from a different mood.
Rules
- Never talk down. An Age-5 explanation should feel delightful, not diminishing;
a manager explanation should leave them able to decide, not sidelined.
- For code, explain the purpose before the mechanism. Nobody needs the
syntax before they know why the code exists.
- Ruthless simplification is allowed and often correct: the core idea at 80%
accuracy beats a 100% accurate explanation the audience abandons. What is not
allowed is a simplification that inverts the meaning or invents a mechanism
that does not exist.
- Do not stack two audiences into one answer. If the user needs both, write two
clearly labelled explanations.
- Keep the user's language, analogies included. A translated American analogy
lands as noise — pick one from the audience's own daily life.
Worked shapes
"Dumb it down: what is a race condition" — Age 5. Two children reach for the same
crayon at the same moment. Who ends up holding it depends on whose hand was
faster that second, so the picture comes out different every time you try. Nothing
is broken; the order just is not decided.
"Explain this to my mother: why her login keeps signing her out" — Parents.
Check memory first for what she already uses. Then: the app keeps a pass that is
deliberately short-lived, like a parking receipt that runs out, and it asks for the
password again rather than trusting an old one. Respectful, no "token", no
"session".
"Explain to a graduate student why we picked at-least-once delivery" — Graduate.
Use the real terms; skipping them here reads as condescension. Spend the words
where the actual content is: the duplicate-delivery obligation this pushes onto
every consumer, and why idempotency became the caller's problem rather than the
broker's.
Note the second one: the audience is a person, so the audience is looked up before
it is guessed, and the analogy is drawn from her life rather than translated from
somebody else's.
1---2name: explain-for3description: Explain a topic, a piece of code, an error, or a design decision calibrated to one named audience — a 5-year-old, a 5th grader, a manager, a designer, a graduate student, a parent. Resolves who the explanation is for (from the request, or from what memory already records about that person), establishes the ground truth before simplifying, then tunes vocabulary, analogy source, tone, depth and framing to that audience instead of producing one generic explanation.4---56# explain-for — write it for one named audience78One explanation cannot serve everyone. This skill makes you name the audience9first, verify the facts second, and only then write.1011## Step 0 — check that this is actually an audience request1213Trigger matching here is word-overlap against the phrases above, so it is14probabilistic and it will sometimes fire on a request that merely contains the15word "explain". Before entering the skill, confirm the user wants an explanation16**pitched at somebody**. If they just want to know why CI failed, answer that17question normally and ignore everything below.1819## Step 1 — resolve the audience2021Pick exactly one audience.2223**Check memory before guessing.** Crew carries a persistent user profile, and a24request like "explain this to my daughter" or "break this down for Priya" often25resolves against something already recorded — an age, a role, an interest.26Search memory and lessons for that person and use what is there; guessing an age27the profile already contradicts is the most visible way this skill fails.2829If nothing resolves and no audience is named, do not silently invent one:3031- Explicit smallest-audience phrasing ("dumb it down", "explain like I am")32 means **Age 5**. That is the request.33- Anything else with no audience — ask which audience in one line, or state the34 row you assumed in one clause so the user can correct it.3536If the request names someone you cannot classify (a specific colleague, a title37absent from the tables), map them onto the nearest row and say which row.3839### Ages4041| Audience | Calibration |42|---|---|43| Age 5 | Smallest words. Analogies from toys, animals, candy, playground. One idea per sentence. |44| Age 10 | Elementary. Cause-and-effect is fine. Analogies from school, sports, video games. |45| Age 15 | Some abstraction is fine. Analogies from phones, games, social apps. Casual, never try-hard. |46| Age 20-30 | Direct and clear. Analogies from work, money, daily logistics. |47| Age 40+ | Respectful, unhurried. Analogies from home ownership, career, running a household. |4849### Education level5051| Audience | Calibration |52|---|---|53| 5th grade | Concrete examples, zero jargon. |54| Middle school | Introduce a term only with its definition attached. Step-by-step logic. |55| Senior high | Moderate complexity. Proper terms, each explained once. |56| College | Academic framing. Technical terms with brief context. Theory plus one application. |57| Graduate | Assume the foundation. Spend the words on nuance, trade-offs, edge cases. Be precise. |5859### Job role6061| Audience | They care about | Frame it as |62|---|---|---|63| Manager | Impact, timeline, risk, cost | The business outcome and the decision that is now open |64| Engineer | Mechanism, architecture, trade-offs | Implementation, performance, maintainability |65| Designer | The user's experience | Interaction, flow, accessibility, what the user perceives |66| Director | Strategy, ROI | Market position, resource allocation, the big picture |67| Product manager | User value, scope | Feature impact, what to build and what to cut |68| Colleague | Their own work | What changes for them and what they must know to collaborate |69| Support | Symptoms and remedies | How it fails, how to detect it, what to do about it |7071### Relationships7273| Audience | Tone | Analogy source |74|---|---|---|75| Partner | Warm, patient, conversational | Shared routines, household tasks |76| Parents | Respectful, never condescending | Technology they already use, home analogies |77| Kids | Playful, encouraging, short | Games, cartoons, animals, school |78| Friend | Casual, some humour | Pop culture, shared interests |7980## Step 2 — establish the ground truth before simplifying8182A simplified wrong answer is worse than no answer, and simplification is exactly83where wrong answers hide. This is the step that gets skipped.8485- **Code** — read the actual files with your file and code-search tools. Do not86 explain from the identifier names. Trace what calls it and what it returns.87- **An error** — find the root cause, not the surface string. The frame that88 reports the failure is often not the one that caused it.89- **A concept** — state it once, precisely, for yourself before you soften it. If90 you cannot, you do not understand it yet.91- **An internal design or decision** — the claim and what it depends on. Search92 the knowledge library when the answer plausibly lives in a stored doc.9394When the source material is large — a whole subsystem, a long log, a wide search95— delegate the reading to a sub-agent and have it return the distilled mechanism.96The explanation is short; the reading behind it does not need to sit in your97context.9899If the ground truth is genuinely unknown, say so plainly at the audience's level100rather than inventing a clean story.101102## Step 3 — write it1031041. **What it is** — one sentence, no analogy yet.1052. **One analogy** — anchored in something this audience touches daily.1063. **The detail that matters** — only the layers this audience can use.1074. **So what** — why it matters to *them*, in their terms.108109Language rules that flip with the audience:110111- **Non-technical** (young, family, business): no jargon at all; define a term on112 the spot if it is unavoidable. Concrete beats abstract. Use "you".113- **Technical** (engineer, graduate): use the real terminology — omitting it114 reads as condescension. Spend the words on trade-offs and edge cases. Be brief;115 they already hold the context.116- **Business** (manager, director): lead with impact, quantify where you honestly117 can, skip mechanism unless asked, and end on the decision.118119Length follows the audience: short for a child, dense for a specialist.120121## Draw it when the thing has a shape122123One picture really does beat a page of prose — but only when what you are124explaining *is* a shape. Ask that first, because the answer is not always yes:125126| The thing you are explaining | Draw it? |127|---|---|128| A sequence, a flow, a lifecycle | **Yes** — order is what a diagram shows best |129| A hierarchy, a containment, a topology | **Yes** — nesting is hard to hold in sentences |130| A state change, or a before/after | **Yes** — put both states side by side |131| A number that moved, a share, a trend | **Yes** — one chart, not a paragraph of figures |132| A definition, a single fact, a judgement call | **No** — a box with words in it is not a diagram |133| A trade-off between two options | Usually no — the reasoning is the content, not the layout |134135Scale it to the audience the same way you scale the words. For a child the136picture often *is* the explanation and the text is a caption. For a manager, one137before/after or one impact chart, never an architecture diagram. For an engineer138or a graduate, the real mechanism, drawn precisely. For a parent, draw the139analogy, not the system.140141What is available, in ascending cost:142143| Tool | Reach for it when | What it buys |144|---|---|---|145| ` ```mermaid ` fence | a sequence, flow, state machine, hierarchy or ER | cheapest by far; renders inline, click to enlarge |146| ` ```excalidraw ` fence | the drawing should look hand-made rather than official | informal register, full colour control from the scene |147| `<mcwidget>` | quantities, a colour-coded comparison, a real chart, a before/after panel, a small interactive probe | sandboxed iframe with **Tailwind preloaded**, the dashboard theme palette as CSS variables, and Chart.js / D3 from the allowed CDNs |148| an image file via `image-authoring` | the result must outlive the chat or be pasted elsewhere | a real file you can attach or save as an artifact |149150Two rules that matter more than the picture:151152- **A wrong diagram is worse than wrong prose.** It reads as authoritative and it153 gets screenshotted into other people's documents. Step 2 applies with more154 force here, not less: do not draw a mechanism you have not actually traced.155- **A diagram that restates the text adds nothing.** If the caption already says156 everything the boxes say, delete one of them. The picture should carry the part157 the sentences were bad at.158159### Colour it, and make every colour mean something160161**The default is deliberately flat, so a plain diagram will look plain.** In chat,162mermaid is initialised with one accent seed plus greys — contrast-safe on any163theme pack, but it gives every node the same fill. Colour has to come from the164source: `classDef` for a role you reuse, `style` for a one-off.165166```167flowchart LR168 classDef happy fill:#dcfce7,stroke:#16a34a,color:#14532d169 classDef bad fill:#fee2e2,stroke:#dc2626,color:#7f1d1d170 classDef focus fill:#fef3c7,stroke:#d97706,color:#78350f171172 A[request] --> B{cache hit?}173 B -->|yes| C[serve instantly]:::happy174 B -->|no| D[fetch from origin]:::focus175 D -->|origin down| E[error]:::bad176```177178Two rules keep that from turning into decoration:179180- **A colour is a claim.** Green means this path is fine, red means it fails,181 amber means this is the part under discussion. Colour used only to look lively182 sends the reader hunting for a meaning that is not there, which is worse than183 one flat palette. If you cannot say what a colour *means*, leave the node184 default.185- **Pick values that read on light AND dark.** The same source renders under both186 themes, and the host pins mermaid's theme precisely because a theme pack can187 set an accent that disappears into the background. Mid-tone fills with a darker188 stroke and an explicit `color:` survive both; near-white and near-black fills do189 not.190191Scale it like everything else: for a child colour is doing real work, separating192the parts before the labels can be read. For an engineer, colour only the two or193three nodes that carry the point. For a manager, colour the outcome, not the194machinery.195196### Reach for a widget when the content is quantities or comparison197198`<mcwidget>` is not only the interaction escape hatch, and it is under-used for199explanations. It is the right call whenever the honest answer is a **chart, a200colour-coded table, or two states side by side** — things markdown cannot201express. Inside one you get Tailwind with no setup, Chart.js or D3 from the202allowed CDNs, and the dashboard's own palette as CSS variables (`var(--accent)`,203`var(--ok)`, `var(--warn)`, `var(--danger)`, `var(--card)`, plus the `-subtle`204tints).205206Use those variables instead of hardcoded colours so the widget matches whatever207theme the reader is on — that is why they are injected. Load the `widgets` skill208before emitting one; it carries the format rules and the full variable list. Keep209the body to a few KB and write a file instead once it grows past that.210211Still prefer markdown when markdown suffices: a widget wrapping three bullet212points is overhead, not richness.213214## Delivery in Crew215216- **An explanation request lifts the ban on explaining, not the length bound.**217 Never flatten an Age-5 or Age-10 explanation into one clipped jargon line218 because a verbosity block says to — the register is what this skill is for, and219 every level keeps it. Length is the other axis and it stays with the active220 level: `answer_only` holds its three checks unless the user asked for depth221 (a doc, a walkthrough, in detail) — draw the shape, twelve words a sentence in222 words a child knows, cut the rest. Its word check is the Age 5 row above, and223 its own "asked why" branch is this skill's Step 3 in miniature; an explanation224 under it follows that branch as the block spells it, and borrows the225 calibration here, never a length licence beyond it.226 `ultra` and `concise`: keep the register the audience row calls for and spend227 the words there; the level bounds length, not vocabulary.228- **Persist what gets forwarded.** An explanation written for a manager, a229 director or a customer usually gets pasted somewhere else. Save it as an230 artifact so it outlives the chat scrollback and can be revised, instead of231 regenerating it next week from a different mood.232233## Rules234235- Never talk down. An Age-5 explanation should feel delightful, not diminishing;236 a manager explanation should leave them able to decide, not sidelined.237- For code, explain the **purpose** before the **mechanism**. Nobody needs the238 syntax before they know why the code exists.239- Ruthless simplification is allowed and often correct: the core idea at 80%240 accuracy beats a 100% accurate explanation the audience abandons. What is not241 allowed is a simplification that inverts the meaning or invents a mechanism242 that does not exist.243- Do not stack two audiences into one answer. If the user needs both, write two244 clearly labelled explanations.245- Keep the user's language, analogies included. A translated American analogy246 lands as noise — pick one from the audience's own daily life.247248## Worked shapes249250**"Dumb it down: what is a race condition"** — Age 5. Two children reach for the same251crayon at the same moment. Who ends up holding it depends on whose hand was252faster that second, so the picture comes out different every time you try. Nothing253is broken; the order just is not decided.254255**"Explain this to my mother: why her login keeps signing her out"** — Parents.256Check memory first for what she already uses. Then: the app keeps a pass that is257deliberately short-lived, like a parking receipt that runs out, and it asks for the258password again rather than trusting an old one. Respectful, no "token", no259"session".260261**"Explain to a graduate student why we picked at-least-once delivery"** — Graduate.262Use the real terms; skipping them here reads as condescension. Spend the words263where the actual content is: the duplicate-delivery obligation this pushes onto264every consumer, and why idempotency became the caller's problem rather than the265broker's.266267Note the second one: the audience is a person, so the audience is looked up before268it is guessed, and the analogy is drawn from her life rather than translated from269somebody else's.