Skip to content

sfdp parity dashboard

Differential survey of @knowvah/dot-engine sfdp xdot output vs the native dot -K sfdp -Txdot oracle over the dot-track SVG-conformant corpus set (semantic draw-op comparison at ±0.01 — see test/golden/compare-xdot.ts; per docs/conformance.md, not byte equality). Regenerate: npx tsx test/corpus/engine-walk.ts sfdp && npx tsx test/corpus/parity-report.ts.

Summary

  • Surveyed: 762 (generated 2026-07-25T04:16:34.660Z)
  • pass: 527 (69.2%) · diverged (tracked): 0 · accepted (documented, won't-fix): 4 · accepted (A1-drift class): 228
  • oracle-error: 1 · port-error: 1 · timeout: 1

Accepted deltas (4) — documented, not chased

Deliberate, root-caused differences we have chosen not to make conformant. Source of truth: test/corpus/accepted-divergences-engines.json; rationale in Known divergences. Excluded from the diverged table below.

id#diffsclassboundref
187917606A1up to 7.6kpt (whole-layout basin)plans/decision-journal.md 2026-07-24 T5: sfdp chaos regime, same family as fdp 1879
2619_1100A10.7-1.3pt on 6 nodesplans/decision-journal.md 2026-07-24 T5: sfdp spring drift regime
241_020A9flat-edge ptCount 14 vs 8 (3->2); same CDT/hypot tie as twopi/circo 241_0 (corridor succeeds N-pt vs plain fallback); findMaxDev hypot ULPknown-divergences.md#a9-sfdp-fp-ties
42200A9CDT cocircular incircle tie: opCount 5 vs 9 (0->3), ptCount 32 vs 26 (3->7); multispline corridor flip. fma+robust-incircle applied; residual is V8-vs-Apple-libm sin/hypot 1-ULP in the predicate inputknown-divergences.md#a9-sfdp-fp-ties

Accepted class: A1-drift — computed, not enumerated

Membership is computed at report time from the injection-attribution harness output (D2) — every diverged id whose native pre-routing position exonerates it (verdict: drift-exonerated) is subtracted from the Diverged table below and counted in Summary; an id that starts passing outright leaves the class silently on the next report regen.

Diverged (0)

(none)

Errors and timeouts (3)

idstatusmessage
2222oracle-errorspawnSync dot ETIMEDOUT
2556port-errorarmPow: argument outside the ported normal-finite fast path
2108timeout

oracle errors: 7 native-crash (documented, excluded) / 0 timeout-flake (excluded this run, note to retry) Passing ids (527) are omitted for brevity — the full roster is in parity-sfdp.json.