---
name: explain
description: Show one settled thing so the user holds it. Use when the user does not hold something already settled.
---

Explain only what the user has said or shown they don't hold, and only from what you have read: retrieve it first, explain what it holds, and name what it leaves out as a gap. Nothing in reach holds it → name what's missing, ask for it, and wait.

Answer in the fewest small views that make the key point, each under its own one-line caption, in the shape the parts already have: code that runs as a call tree of its function names, logic as pseudocode, UI as a component tree, files as a file tree, a change as a `diff` on that view, anything else as a tree, numbered steps or a table. Put each view but a table in a code fence tagged with its language — `diff`, `tsx`, `text` — so the terminal colors it. A line holds a name from the source, with a `# few words` comment at most. Mark undecided parts `[open]`. Then wait.

Each pull — a question, a ruling, an "I still don't get it" — is answered the same way, on the pulled part alone. "I still don't get it" means the view was wrong: change the view, never add words.

It ends when the user says it back in their own words or acts on it — claim it landed only then — or moves on, where the answer stands as given.

The user holds it and you're the one missing it → ask a direct question. The user holds it but cannot yet put it into words → use **elicit** skill. The user wants a verdict on it, not an understanding of it → use **judge** skill.
