Change Validation¶
Validate index changes against the execution promise that moved. The same neighbor list can conceal a different metric, artifact, backend, budget, approximation profile, or replay posture, so final identifiers alone are weak evidence.
flowchart TD
C[Changed index behavior] --> Q{Which guarantee moved?}
Q --> X[Exact semantics]
Q --> N[ANN bounds]
Q --> B[Backend capability]
Q --> R[Artifact or replay]
X --> G[Golden score and tie tests]
N --> W[Witness and loss tests]
B --> F[Discovery, refusal, and conformance]
R --> D[Identity, round-trip, and drift tests]
Risk-to-evidence matrix¶
| Risk | Required focused evidence |
|---|---|
| metric meaning changes | fixed-vector scores, ordering, edge cases, and explicit version impact |
| ties become unstable | permutation fixtures proving the declared secondary order |
| ANN exceeds its contract | seeded corpus, sampled exact witness, recall/error assertion, and refusal case |
| exact rescoring is skipped | candidate and final-score evidence showing which stage ranked each result |
| unsupported backend is selected | capability discovery and strict refusal tests |
| dimension or metric mismatch is coerced | adapter-level rejection with stable failure class |
| artifact identity drifts | canonical materialization and fingerprint canary |
| tenant or run state leaks | isolated ledgers, paths, caches, and list/query tests |
| replay accepts incompatible state | corpus, policy, backend, parameter, and randomness mismatch fixtures |
| plugin registration diverges | entry-point discovery, duplicate-name, contract-version, and conformance tests |
| API freeze drifts | generated-versus-checked-in schema comparison and request contract tests |
Select the narrowest useful command¶
packages/bijux-canon-index/.venv/bin/python -m pytest \
packages/bijux-canon-index/tests/<area>/<test-file>.py -q
make test PACKAGE=bijux-canon-index
Add only the affected boundary lanes:
make api PACKAGE=bijux-canon-index
make lint PACKAGE=bijux-canon-index
make quality PACKAGE=bijux-canon-index
make build PACKAGE=bijux-canon-index
make docs-check
For backend work, run the adapter's conformance evidence in an environment that actually supplies the capability. A skipped optional-backend test proves nothing about the adapter. Record unavailable infrastructure honestly instead of treating import success as conformance.
Compare complete executions¶
Retain request, plan, artifact, capability report, backend identity, result, cost, witness, and replay diff for a representative case. Compare exact and ANN paths only under a declared approximation contract. Unexpected equality is not proof that approximation disappeared; unexpected divergence is not acceptable without a bounded explanation.
Update capability, limitation, and release documentation whenever a supported backend, execution mode, artifact version, or replay condition changes.
Validation is sufficient when a reviewer can identify the moved retrieval guarantee, reproduce the nearest proof, and distinguish strict refusal from an empty or low-quality result.