CI enforcement
Continuous Integration (CI) is not optional in Strata. It is the mechanism that enforces truth.
Every commit, in every language, is validated against the same immutable rules.
If CI fails, the change does not exist.
Why CI is mandatory
Strata makes strong guarantees:
Canonical encoding
Stable hashing
Cross-language determinism
Explicit failure semantics
These guarantees are meaningless without automated enforcement.
CI is the system that ensures no regression ever ships.
What CI enforces
CI enforces all of the following, on every pull request and push:
Golden vector correctness
Semantic correctness
Negative failure behavior
Cross-language parity
Northstar guarantees
No human review can override this.
Golden vector enforcement
CI runs tests that:
Encode Strata Text vectors
Compare produced
.scbbytes exactlyCompare produced hashes exactly
Reject any deviation
Vectors are loaded directly from the /vectors directory.
If an implementation disagrees with vectors, the implementation is wrong.
Positive vector enforcement
CI verifies that:
Valid inputs parse successfully
Valid values encode canonically
Valid hashes match expected outputs
Roundtrips preserve structure
These tests ensure normal behavior is correct.
Negative vector enforcement
CI verifies failure behavior.
For malformed inputs, tests assert:
The exact error kind
The exact byte offset
The exact failure mode
Silently accepting invalid data is forbidden.
Semantic vector enforcement
CI enforces semantic correctness by asserting that:
Equivalent syntax produces identical values
Ordering differences normalize correctly
Shorthand syntax resolves deterministically
Duplicate keys follow defined overwrite rules
Parsing behavior is locked down permanently.
Northstar enforcement
CI runs Northstar tests as independent pipelines.
Each Northstar tier validates a stronger guarantee:
T1: Canonical bytes survive structured wire transfer
T2: Raw bytes survive unstructured transport
T3: Framed streaming does not mutate payloads
If any Northstar test fails, the build fails.
Cross-language CI matrix
CI runs independently for:
Rust implementation
JavaScript implementation
Northstar wire tests (Rust ↔ JS)
All implementations must pass against the same vectors.
There is no “reference implementation” exemption.
No conditional skips
CI does not allow:
Ignoring failing tests
Skipping vector checks
Allowing warnings for determinism failures
Any failure is a hard stop.
Versioned enforcement
CI is version-aware.
Existing vectors must always pass
New vectors may only be added with a new Northstar
Old vectors are never removed or altered
Breaking changes require explicit version bumps and documentation.
Human role in CI
Humans may:
Propose changes
Add new vectors
Define new Northstars
Humans may not:
Override CI failures
Redefine existing vector meaning
Merge failing code
CI is final.
Summary
CI is the guardian of Strata’s guarantees.
Code can lie
Documentation can drift
Humans can make mistakes
CI does not.
If CI passes, the change is valid. If CI fails, the change does not exist.
Last updated
Was this helpful?