Source: qa/presentation-review-request.md
# Independent QA request — database presentation PoC Lead: please dispatch independent QA after this presentation commit lands and v2 is published. Author engineering/browser checks are not QA sign-off. Compare the same-law views: - https://v2.neochart.com/explore/law/42usc1983/ - https://v2.neochart.com/explore/law/42usc1983/matrix/ - https://v2.neochart.com/explore/law/18usc1962/ - https://v2.neochart.com/explore/law/18usc1962/matrix/ Start from https://v2.neochart.com/explore/ for the other laws. Follow an element to its variants and court-decisions table; follow a case to its full instance and evidence table. Presentation tradeoffs are in site/PRESENTATION-NOTES.md, published as /PRESENTATION-NOTES.md.html. ## Requested checks 1. Recompute row and distinct-case counts from the selected DB snapshot. Count only is_instance=1, not quote joins or every displayed annotation. Check a zero-count declared variant and a not-declared matrix cell separately. 2. Verify exact DOM quotation text against full-source SHA256 and Unicode offsets; source text must not be paraphrased, normalized or silently substituted. 3. Confirm procedural, comparator, not-reached and other excluded contexts are visible but not counted; inspect polarity, absence and quoted-rule flags. 4. Check outline hierarchy/claim structure versus matrix coverage. Neither shading nor counts should imply confidence, population frequency or liability. 5. Inspect mobile widths 390px and desktop 1365px. Tables may scroll within their containers; case evidence stacks on mobile. Native details and links must work without JavaScript. Verify A/B, element, case and source navigation. 6. Review-status metadata is not currently mapped by this DB schema; the banner must state unavailable rather than infer PASS from a global report. Inspect interpretation-only case pages so they are not mistaken for authored CASEs. 7. Confirm the publisher uses only the v2 target; no main-site links except plain external source-case URLs. Missing/corrupt evidence or count metadata must stop publication while preserving the existing generated presentation. ## Author validation record The initial DB snapshot has 15 laws, 319 elements, 164 annotated opinion IDs, 165 case-law contexts,832 annotation blocks,348 qualifying instances and 620 variant records. An additional 51 interpretation-only IDs yield 215 case pages; with 30 law A/B pages, 319 element pages and four navigation indexes, the renderer emits 568 pages. Each page displays the logical SQLite-dump snapshot digest, not a raw DB-file hash. Rebuild the DB before comparing later snapshots; concurrent DB evolution can change counts and digests legitimately. Thirty Python tests and offline deployment guard tests pass. Tests include all required model tables, missing/dangling evidence, forged instance flags, source-hash/offset/text corruption, CRLF fidelity, URL traversal, exact snippets, readonly inputs, and preservation of old pages on failure. Ruff/Pyright pass. Twelve browser views at 390/1365px have no document-level horizontal overflow; all their quote DOM nodes match the checked DB values, and a separate actual browser test preserves CRLF/bare-CR quotation characters. Matrices intentionally remain wide; this is an operator comparison PoC, not an approved final design. Initial logical snapshot SHA256: `b8882353247abdd6e20d4e22922c166d68ccb8e2da50e13e0162a35c316318f8`. Compact browser measurements: presentation-browser-check.json. No browser harness scripts or JavaScript are shipped in the presentation. The initial model was built with tools/load.py from source revision c853444. The ignored local snapshot for QA is /home/mma/worktrees/neov2-r8/neov2/db/neov2.sqlite; it is not published or committed. Both A/B views use that same snapshot. ## Review received and bounded follow-up Independent Fable review is committed at 71b069e; it reports fidelity PASS on the three tested laws but identifies usability and status/provenance gaps. The author follow-up keeps the reviewed DB snapshot and A/B comparison, makes frozen-versus- current-tree counts visible, splits holding directions and excluded-context uses, and displays available court/year metadata on examples. It does not invent case captions, legal review statuses or migrate the matrix to a new taxonomy without operator choice. See PRESENTATION-NOTES.md and the original independent report.