ZB Field Notes

Explain like I'm five, on tap

Explain like I'm five, on tap

The "explain it simply" test, as a slash command

I'd just spent a session teaching myself Jinja2 from the engine up and writing it into a datasheet-style post. Good for an engineer audience. Useless for my non-technical friends who occasionally ask what I actually do all day. So I typed one thing into Claude Code — /eli5 for what we learned here — and got back a self-contained, illustrated web page that explains templating with almost no words. This is a note on that skill, because the interesting part isn't the picture; it's what producing the picture does to your own understanding.

What /eli5 actually is

/eli5 is a Claude Code skill: a packaged instruction set that fires on a slash command. Its brief is narrow and unusual — explain a topic "like I'm five", as an HTML artifact built around big pictures and few words. Not a wall of simplified prose; a designed page. You hand it a topic (/eli5 how DNS works) or, as I did, point it at the current session and let it infer what "we learned here" means.

A picture-book hero panel titled The Blank-Filling Machine, showing a form reading Hello, ___! plus a machine icon producing Hello, Zakaria!
The whole of templating in one frame: a form with a blank, some facts, a finished sentence. No {{ }} in sight yet.

The metaphor it reached for — a "blank-filling machine" fed a form and some facts — is exactly how I'd explain Jinja to someone at a dinner table. That's the tell that the simplification is honest rather than lossy: it maps to the real mechanism (template + context → string), just without the vocabulary.

Why an engineer should care about a kids' explainer

Writing the five-year-old version is a diagnostic. If I can't reduce a concept to one picture, I don't understand it as well as I think — the fuzzy spots are exactly the ones the metaphor refuses to cover cleanly. Producing this page surfaced two of mine. The autoescaping idea, for instance, only clicks once you frame it as a decision the engine makes on your behalf:

A panel titled Turning sneaky words into harmless ones, contrasting Helmet ON (safe, HTML shown as literal letters) with Helmet OFF (risky, a script tag actually runs).
Autoescaping as a safety helmet: on, and <script> becomes inert letters; off, and it runs. The real trap — that plain Jinja ships with it off — survives the simplification intact.

That's the same XSS point from the technical write-up, minus the jargon. Notice what the simplification keeps: the consequence and the gotcha. It drops the API name (select_autoescape()) from the picture but not the idea that a default is quietly dangerous. A good ELI5 cuts vocabulary, not truth.

The output is an artifact, not a chat reply

The reason this beats "just explain it simply in the chat" is the deliverable. It's a Claude Code artifact — one self-contained HTML file, no external assets, theme-aware, published to a private URL I can share with one click. It renders the same in someone's dark-mode browser as in mine. That makes it a thing I can actually send, not scrollback I'd have to copy-paste and reformat.

A panel titled One skeleton, many pages: a dashed skeleton box with shared top bar and footer and a highlighted hole, feeding a Home page and an About page that each fill the hole.
Template inheritance without the word "inheritance": one skeleton with holes, many pages that fill them. The concept lands before the terminology would have.

Where it fits in a workflow

For me it's the second half of a pattern: learn something properly, write the rigorous version for engineers, then run /eli5 over the same session for the version everyone else can read. Same material, two audiences, one extra command. It also works as a teaching aid — the picture-book page is a better opener for a brown-bag than a slide of bullet points, because it earns attention before it spends any.

The honest limits

Metaphors leak, and you should say so. A virtual environment is like a toy box per project, but it isn't one; the safety-helmet framing skips the detail that escaping is context-sensitive (on for HTML, off for a plain-text email). So /eli5 is a lens, not a reference — the thing you show someone to build intuition, before handing them the real docs. Used that way, it's genuinely useful: it forces me to find the one true picture, and it turns a private learning session into something I can hand to a person who'll never touch a terminal. Not bad for one slash command.