compare-states · git:20261007.87f312a · 2026-10-07 · sha256 86b296e6ffb856b6
compare-states git:20261007.87f312aA
Immutable. This exact content never changes and is served at /api/v1/blob/86b296e6ffb856b6.
--- name: compare-states argument-hint: "[the mechanism, and the states to compare]" description: Build one self-contained HTML page that sets two or more states of the same mechanism side by side at full identifier-level detail. --- Produce ONE self-contained HTML file (Mermaid via CDN) and deliver it rendered in the side panel (`SendUserFile` with `display: render`; where that tool is absent, name the path). Put it beside the session's other docs written for the user. Three regions, left to right: 1. **Shared** — spans every row, split into two panels of its own. Left: the problem in three sentences, then a table of every object the diagrams name. Right: a glossary of every label, grouped tables · functions · columns · arguments, one plain sentence each. 2. **Diagrams** — one Mermaid diagram per state, stacked. The same boxes and the same layer count in every one, so they overlay. 3. **Reading** — one panel per diagram, in the same grid row so the tops align: the state's name, a numbered list that walks the arrows, and one coloured verdict box. Rules: - Read the code that produces each box before drawing it. A doc's description is not a source. Every line number comes from a file opened this session. - Real identifiers inside a diagram — table, id argument, columns. Plain words live in the glossary and the reading. Never paraphrase inside a box. - `useMaxWidth: false`, so every diagram renders at one scale. When one overflows, widen the page. Never drop a box to make it fit. - A numbered arrow is one statement the code runs, in order. An unnumbered arrow is a pointer that exists once the statements have run. Colour only the row under discussion. - The chat reply is a four-line reading order plus the next action. No ASCII diagram in chat, no `.md` fallback.