Some checks failed
smart-byte conformance gate / Validate conformance JSON files (pull_request) Successful in 4s
smart-byte conformance gate / Second implementation reproduces every vector (pull_request) Successful in 4s
smart-byte conformance gate / Spec changes require vector-pack updates (pull_request) Successful in 3s
smart-byte conformance gate / VERSIONS.md and README.md must exist (pull_request) Successful in 3s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m47s
standards workspaces build + test / aac-rs (pull_request) Has been cancelled
standards workspaces build + test / joule-code-rs (pull_request) Has been cancelled
standards workspaces build + test / joule-ui-rs (pull_request) Has been cancelled
standards workspaces build + test / joulecontract-rs (pull_request) Has been cancelled
standards workspaces build + test / jouledesk-rs (pull_request) Has been cancelled
standards workspaces build + test / joulehook-rs (pull_request) Has been cancelled
standards workspaces build + test / map-rs (pull_request) Has been cancelled
standards workspaces build + test / mesh-rs (pull_request) Has been cancelled
standards workspaces build + test / openpay (pull_request) Has been cancelled
standards workspaces build + test / proof-rs (pull_request) Has been cancelled
standards workspaces build + test / sandbox-rs (pull_request) Has been cancelled
standards workspaces build + test / sense-rs (pull_request) Has been cancelled
standards workspaces build + test / smart-byte-rs (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Has been cancelled
standards workspaces build + test / arl-rs (pull_request) Has been cancelled
standards workspaces build + test / jcp-rs (pull_request) Has been cancelled
standards workspaces build + test / jouleclaw-rs (pull_request) Has been cancelled
verify_v1.py now applies state vectors' frames as the cluster state spec describes. It is written from the spec text, standard library only, and reproduces all 106 vectors. Falsified: - 12 planted defects caught on their own vectors, with and without -O. - 18 state-machine rule mutations, each caught by a state vector. regeneration.md records the state machine; VERSIONS.md names its spec. Co-Authored-By: Claude Opus 5.5 <[email protected]>
50 lines
2.7 KiB
Markdown
50 lines
2.7 KiB
Markdown
# Smart Byte Conformance Vector Pack — Version Matrix
|
|
|
|
This document tracks the correspondence between vector-pack versions and
|
|
Smart Byte spec versions.
|
|
|
|
## Matrix
|
|
|
|
| Vector pack | Spec version | Spec source | Status | Notes |
|
|
| ----------- | ------------ | ------------------------------------------------------------- | -------- | --------------------------------------------------------------------- |
|
|
| `v1/` | v1.0-draft | `../spec/treatise_v1_parts_I_II_III_combined.md` (Parts I-III), `../spec/identity_and_key_rotation.md`, `../spec/envelope_wire_format.md`, `../spec/cluster_state.md` | DRAFT | Generated by the reference implementation (`smart-byte-conformance`) and reproduced by `crosscheck/verify_v1.py`. Regenerated in place while DRAFT (rule 4); every change is in `v1/regeneration.md`. |
|
|
|
|
Future entries are appended below this table when a new spec version is
|
|
introduced. Older entries are never removed; an implementation that pins to
|
|
a historical spec version must be able to look up that version's vector pack
|
|
indefinitely.
|
|
|
|
## Version compatibility rules
|
|
|
|
1. **Per-spec-version vector packs.** Each major spec version has exactly one
|
|
vector pack directory (`v1/`, `v2/`, ...). The pack is the canonical
|
|
conformance suite for that spec version.
|
|
|
|
2. **No backporting of incompatible vectors.** A vector that depends on
|
|
wire-format behaviour introduced in spec v2 is never added to `v1/`.
|
|
|
|
3. **Append-only inside a frozen version.** Once a spec version is frozen,
|
|
its vector pack is append-only: new vectors may be added that exercise
|
|
*additional* corners of the *same* canonical wire format, but no
|
|
existing vector's `expected_*` outputs may be changed.
|
|
|
|
4. **Bug fixes via supersession, once frozen.** In a frozen version, a
|
|
vector with an `expected_*` field that disagrees with the spec is fixed by
|
|
adding a new vector (with a distinguishing `name` suffix) and adding a
|
|
`"superseded_by": "<new-name>"` field to the original. Implementations pin
|
|
to vector names, not array positions, so supersession is non-breaking. A
|
|
DRAFT pack is regenerated in place, with every change recorded in its
|
|
`regeneration.md`.
|
|
|
|
5. **Spec-version detection at the wire.** The wire format itself carries
|
|
version information (see spec §8.3, §8.4 — the one-byte algorithm
|
|
identifier is the substrate's wire-version-equivalent for the
|
|
cryptographic primitives). Implementations select the conformance pack
|
|
that matches the wire version they are emitting.
|
|
|
|
## Cross-references
|
|
|
|
- Spec text: `../spec/`
|
|
- Pack contents: `./v1/`
|
|
- Regeneration procedure: `./v1/regeneration.md`
|
|
- CI gate: `../../.github/workflows/conformance.yml`
|