* ci(sona): cross-implementation drift gate — parity harness, RVF fingerprints, stub tripwire
Issues #519/#553 were the same learn-from-feedback stub shipped in two of
the three parallel SONA implementations (crates/sona, ruvllm TS
SonaCoordinator, ruvector CLI intelligence engine) — nothing enforced
behavioral parity, so a fix in one layer did not protect the others.
Three guards, wired into .github/workflows/sona-drift.yml (path-filtered,
fail-fast order, cached, guard-the-guard step so deleting the harness
fails CI):
1. scripts/sona-drift/stub-tripwire.mjs — static no-op detector on the
seam functions; fails on effectively-empty bodies (comments/logging
only), anchored to definitions, not call sites.
2. scripts/sona-drift/harness.mjs — runs one deterministic feedback
scenario through all three implementations and enforces the contract
matrix: fresh==0, single positive feedback adapts (the #519/#553
regression), negative feedback adapts, neutral no-op where defined,
inference output changes. Scenarios run twice and any bit-level
fingerprint difference errors, so jitter cannot enter fingerprints.
3. scripts/sona-drift/rvf-fingerprint.mjs — behavioral fingerprints stored
as vectors in a committed RVF store (reference.rvf, @ruvector/rvf
NodeBackend); validates current behavior by L2 distance with a
1e-3-relative tolerance (>100x FP-reassociation headroom, ~500x below
a real stub regression). --update regenerates on intentional change.
All guards verified to fire: a reverted #553 stub fails C2/C3/C5 and the
tripwire; a perturbed fingerprint fails RVF validation. Skipped
implementations (unbuilt dist) degrade visibly, not silently.
Co-Authored-By: claude-flow <ruv@ruv.net>
* ci(sona-drift): install @ruvector/rvf-node before the fingerprint gate
First CI run: tripwire + harness passed on Linux, but the RVF validation
threw BackendNotFound — nothing installed the rvf native backend on the
runner. Infra failure, not drift.
Co-Authored-By: claude-flow <ruv@ruv.net>
---------
Co-authored-by: ruv <ruvnet@users.noreply.github.com>