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 | #diffs | class | bound | ref |
|---|---|---|---|---|
1879 | 17606 | A1 | up to 7.6kpt (whole-layout basin) | plans/decision-journal.md 2026-07-24 T5: sfdp chaos regime, same family as fdp 1879 |
2619_1 | 100 | A1 | 0.7-1.3pt on 6 nodes | plans/decision-journal.md 2026-07-24 T5: sfdp spring drift regime |
241_0 | 20 | A9 | flat-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 ULP | known-divergences.md#a9-sfdp-fp-ties |
42 | 200 | A9 | CDT 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 input | known-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.
- A1-drift: 228 members — full per-id evidence in
attribution-sfdp.json. Rationale: Known divergences.
Diverged (0)
(none)
Errors and timeouts (3)
| id | status | message |
|---|---|---|
2222 | oracle-error | spawnSync dot ETIMEDOUT |
2556 | port-error | armPow: argument outside the ported normal-finite fast path |
2108 | timeout |
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.