Skip to content

Change Validation

Validate runtime changes against authority, durability, and replay—not merely terminal execution. A run can complete while violating mode policy, losing an external effect, misclassifying verification, persisting partial state, or accepting incompatible replay.

flowchart TD
    C[Changed runtime behavior] --> Q{Which guarantee moved?}
    Q --> A[Admission or mode]
    Q --> E[Effect or recovery]
    Q --> P[Persistence or migration]
    Q --> R[Arbitration or replay]
    A --> F[Accept, refuse, and per-mode tests]
    E --> I[Idempotency, crash, and unknown-state tests]
    P --> S[Lock, migration, isolation, and reconstruction tests]
    R --> D[Decision, mismatch, bounded-diff, and drift tests]

Risk-to-evidence matrix

Risk Required focused evidence
valid shape bypasses semantic admission structurally valid but semantically refused manifest fixture
non-live mode causes effects plan, dry-run, and observe effect-denial tests
unsafe run appears certifiable warning event, stored mode, arbitration, and result classification tests
lower-package failure is reinterpreted producer artifact and typed-failure preservation tests
external effect is duplicated after interruption idempotency key, receipt, checkpoint, crash, and retry tests
unknown effect is presented as absent partial-failure fixture with explicit uncertainty
concurrent writers corrupt state lock acquisition, contention, release, and recovery tests
migration changes identity or order historical database fixture and typed reconstruction assertions
finalized trace mutates post-finalization write rejection and stable fingerprint tests
arbitration rewrites verification immutable result plus policy-derived decision assertions
replay accepts changed data or policy dataset, plan, policy, environment, and envelope mismatch fixtures
HTTP schema overstates implementation health/readiness success and run/replay 501 contract tests

Select the narrowest useful command

packages/bijux-canon-runtime/.venv/bin/python -m pytest \
  packages/bijux-canon-runtime/tests/<area>/<test-file>.py -q

make test PACKAGE=bijux-canon-runtime

Add only affected boundary lanes:

make api PACKAGE=bijux-canon-runtime
make lint PACKAGE=bijux-canon-runtime
make quality PACKAGE=bijux-canon-runtime
make build PACKAGE=bijux-canon-runtime
make docs-check

Use focused regression cases for replay, dataset evolution, temporal drift, crash recovery, stateful executors, partial live failure, and cross-process state. Do not replace them with a broad green suite that lacks the relevant failure condition.

Inspect durable state and external custody

Query the resulting run through the public inspection path and validate the database schema. Confirm tenant, run, plan, dataset, policy, event, decision, checkpoint, and replay identities. Then inspect referenced payload custody; the execution database may retain hashes and lineage without embedding every byte required for replay.

Update mode, persistence, recovery, API, limitation, and release documentation whenever an operator's interpretation changes.

Validation is sufficient when accepted, rejected, and non-certifiable paths are reproducible; crash uncertainty remains visible; and replay refuses every undeclared identity or policy difference.