viz redesign: readable dashboard (cap points, guidance.json, scope block) + honest copy - #107
Merged
Conversation
…e, JSON feed, scope block) Persona reviews of the deployed dashboard converged on: self-analysis.html is 18.8 MB (unopenable); Guidance drowns ~14 real items in ~6k identical rows; no machine-consumable output; no scope block. Structural, additive fixes: - Cap Program points at POINTS_PER_FN_CAP (20) per function; render a per-function summary (#points, up-to #locals) + a "showing N of M; full data in the JSON feed" note. Whole page now well under 1 MB. - Collapse Guidance boilerplate: keep the tally, render every DefiniteFault in full, cap each other class at ADVISORY_PER_CLASS_CAP (10) with a "… and N more <class> (see the JSON feed)" line. - Add pub fn render_guidance_json: hand-rolled JSON (no serde dep) with proper string escaping (json_esc), emitting the FULL advisories + trap verdicts. CLI writes <stem>.guidance.json alongside the HTML; release.yml emits and sanity-checks dist/self-analysis.guidance.json. - Add render_scope() emitting <section id="scope"> with a SCOPE_COPY_PLACEHOLDER comment (maintainer writes the soundness copy). - Retitle to neutral HERO_TITLE placeholder (SCOPE_TAGLINE_PLACEHOLDER) on the page and landing lead. Tests added: points cap + <1 MB page-size sanity, guidance.json well-formedness + expected advisory, JSON escaping, Guidance collapse keeps faults, existing-panels regression. cargo test/clippy/fmt clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Fills the two placeholders the redesign left for me, with precise, Watt-defensible copy: - Hero/title: "scry — a sound static analyzer for WebAssembly" (retitled away from bare "verification dashboard"); landing lead states what it catches + "⊤ means unknown, never safe". - Scope & limitations block: the mechanized-vs-γ-swept evidence-kind distinction (Rocq admit-free lattices/WrapAdd.v vs γ-swept FM/float/known-bits-w32/64, issue #105), and what scry does NOT prove (no WasmCert-Coq import yet; official-semantics proof covers i32.add only; memory content singleton-i32-only; not a qualified tool — no TQL/TCL claim). Guard test updated to assert the finalized copy (no placeholders, retitled, evidence-kinds + soundness caveat legible). Addresses the skeptic + assessor persona findings. 24 viz tests pass; clippy + fmt clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Acts on the unanimous persona review of the deployed dashboard (a DO-178C assessor, an AI-agent consumer, a skeptical Wasm academic, and a busy first-time engineer). The problem wasn't verbosity — it was an inverted pyramid with a broken page.
Structural fixes (from the redesign subagent)
render_guidance_json— a structured, machine-consumable feed ({advisories[], trap_checks[]}, full/un-capped), written alongside the HTML and emitted+checked inrelease.yml. Matches scry's structured-primary ethos (the AI-agent persona's top ask).Honest copy (finalized by me — honesty-sensitive)
i32.addonly; memory content singleton-i32 only; not a qualified tool — no TQL/TCL claim). Directly answers the skeptic + assessor.Verification
24 viz tests (5 new: points-cap + <1 MB page-size, guidance.json well-formedness + escaping, guidance-collapse-keeps-faults, panels regression); clippy
-D warnings+ fmt clean. Additive —scry-analyze-coreuntouched.Ships as the next dashboard release (v3.2.2). 🤖 Generated with Claude Code