The medical signal operating system around the frozen sonic_ct acoustic
engine. No real patient data, no diagnosis, no claims — this proves the
pipeline can ingest typed artifacts, canonicalise them, build priors, fuse them,
and score whether multimodal context improves reconstruction, with full
provenance and a verifiable audit trail.
typed artifacts (CSV/DICOM-sidecar/JSON)
└─ ingest adapters ─▶ canonical MedicalObservation (provenance + uncertainty + consent)
└─ patient state graph + rule-based contradiction detection
└─ prior builder ─▶ reconstruction priors (never force a conclusion)
└─ Darwin fusion harness (mapLimit + paretoFront) selects a fusion policy
└─ evidence layer (ruvn): A/B-or-blocked claim gate, off the hot path
└─ reconstruction run ledger (stable hashes) ─▶ safe UI packet
The Rust acoustic engine is frozen; only the harness around it evolves. External medical data changes priors, confidence, routing, and uncertainty — it cannot force a diagnosis. Pathology/biopsy/Pap/HPV/cytology always force human review. Claims ship only on ruvn evidence grade A or B with citations.
npm install
npm test # 14 tests (ingest, graph, contradictions, fusion, ledger, evidence gate)
npm run benchmark # acoustic-only vs evolved multimodal fusion + ledger verificationRepresentative benchmark: +10% reconstruction stability, ~37% uncertainty drop, acoustic residual unchanged, ledger verified, pathology → clinical-review mode.
src/ingest/— canonicalMedicalObservation+ lab / imaging / pathology adapterssrc/graph/— patient state graph + contradiction detectionsrc/fusion/— prior builder, scoring, contradiction penalty, Darwin harnesssrc/evidence/— ruvn evidence provider interface, grading gate, cached + CLI providerssrc/ledger/+src/output/— verifiable run ledger + safe UI packet
See docs/sonic-ct/adr/ ADR-0014..0023 for the decisions behind each layer.
Evidence layer is optional and never a hard dependency on @ruvnet/ruvn.
