Files
claudetools/projects/dataforth-dos/8B5BSCM-RENDER-VERIFY-2026-06-18.md
Mike Swanson 9d2d233f1e dataforth/testdatadb: 8B/5B/SCM render verify results + convergence plan
Stage+verify (template-gated, no slotmaps/precision yet) vs Hoffman, content-only:
15 models content-perfect, 17 precision-distance, 70 NULL (need slotmaps), 8B38/7B
family-specific. Remaining work = AD2's existing DSCA machinery (slotmaps / Math.fround
QB rounding / frequency-AAC accuracy labels). Recommend converging with AD2's DSCA path.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 12:50:44 -07:00

2.8 KiB

8B/5B/SCM Render Fix — Diagnosis + Stage/Verify Results (2026-06-18)

Driving the ~5,148 unpublished 8B/5B/SCM PASS records (render-coverage gap, same class as DSCA).

Root cause (validated)

  1. parseRawData bug (general): a PASS/FAIL line is wrongly consumed as the step-response line for non-DSCA families that omit the "0","0",v line (8B45/8B49/5B39/SCM5B33...) -> drops the first Final-Test group -> measurement-count mismatch -> null. Fix: change the step-skip guard to if (!((family === 'DSCA' || skipStepIfStatus) && looksLikeStatus)) and pass skipStepIfStatus only for templated models (so non-templated models are byte-unchanged).
  2. No per-model Final-Test template: one hardcoded DATA_LINES['8B'] (RTD-shaped) -> wrong param names/specs for non-RTD models (8B45 is frequency-input == DSCA45). Needs per-model templates, same as DSCA. The "published" siblings render null too (legacy content on Hoffman; api_uploaded_at was back-populated from Hoffman inventory, NOT from our render).

Artifacts

  • 8b5bscm-templates.json — 136 models mined from Hoffman originals (accOut, accHeader, rows, _srcSerial).
  • Verify harness pattern: patch a TEMP copy of datasheet-exact.js (parse-fix + template-gated Final-Test, footer skip), render each model's published _srcSerial, content-normalized compare to its Hoffman original. (Never touches the live renderer.)

Verify results (template-gated Final-Test only; NO slotmaps/precision/accuracy-label work yet)

Content-only (cosmetic header/spacing deferred, per the DSCA byte-fidelity decision):

  • 15 models content-perfect (>=0.99) — publishable as-is.
  • 17 within precision-tuning distance (0.93-0.97) — single value-row rounding diffs.
  • 27 @ 0.85-0.93, 7 < 0.85.
  • 70 NULL — render-count mismatch -> need per-model slotmaps.
  • By family: 8B avg 0.97, SCM5B 0.93 (strong); 8B38 0.78; 7B ~0.88 (separate parse path).

Remaining work = the SAME machinery AD2 built for DSCA

  1. Per-model slotmaps for the 70 nulls (AD2 _derive_slotmaps.js) — derive by matching rendered measured values to the Hoffman original's displayed values.
  2. QB single-precision rounding (AD2 Math.fround) — closes the 0.93-0.97 precision diffs.
  3. Frequency/AAC accuracy-block labels + stimulus formatting — the still-open DSCA45/33 piece (8B45/8B49/5B45 are frequency-input; SCM5B33 is AAC). Solving once covers BOTH 8B/5B AND DSCA45/33.
  4. 8B38 (0.78) + 7B family (separate SCM7B path) — family-specific.

Recommendation

Converge with AD2's mature DSCA machinery rather than re-implement in parallel in the shared datasheet-exact.js: feed the mined 8b5bscm-templates.json into AD2's template/slotmap/rounding path and finish the frequency/AAC accuracy renderer once for DSCA + 8B/5B/SCM together. The 15 content-clean models can be published immediately if a partial win is wanted.