skillscript-runtime v0.31.0
Upgrade impact: none (additive). Dashboard + one additive skill_preflight field; no breaking change.
A pass on the review view to let someone who can't read skillscript understand a skill's blast radius and approve with confidence — "approve on the declared effects, without being the one who could have written the code."
- Dark mode. The whole dashboard is now a CSS-variable palette with a header toggle (☾/☀); the theme is set before first paint (no flash), follows the OS setting by default, and persists. Light mode is unchanged.
- Collapsible review sections. The approval-decision surface (Status/actions, What this skill touches, Security signals, Source, and the new diagram) always stays open; telemetry/reference (Metrics, Recent fires, Version history, Triggers) collapses by default via native
<details>; Composes shows only when the skill composes a child. - "What it does, step by step" diagram. A dependency-ordered SVG flowchart of the skill's actual steps, in the decision surface under "What this skill touches." Targets are boxes joined by branch/merge arrows; ops are plain-language rows ("Read from the data store", "Ask the local model", "Run a bash command") with their key argument; loops and branches nest; each step shows the variable it produces (
→ VAR) so data flow is traceable; steps that change data / run commands are marked; composed skills link through to their own review view; the entry/default target is flagged (resultwhen it runs last,defaultwhen single-target). Drawn client-side — no diagram dependency added. The CLI'sskillfile diagramstill emits Mermaid text. - New
skill_preflightfield:contract.flow— the structured control-flow (targets, plain-language steps, dependencies) the diagram is drawn from. Single-skill only (not added toskill_list, to keep the catalog lean). - Fix: the dashboard no longer resets scroll position (or flashes "Loading…") on its 30-second poll when re-rendering the same view.