3.8 KiB
Versioned formats
Version 0.4 uses writer schema 5 and argand.site-rules/v4. Schema identifiers
are independent from the crate version. Unknown schemas and rules fail closed.
| Artifact | Current schema | Purpose |
|---|---|---|
| Source manifest | argand.site-source/v2 |
Exact source object plus typed coverage |
| Generation receipt | argand.site-registry/v2 |
Hash-bound immutable generation contract |
| Active/audit JSONL | argand.site-export/v2 |
Source-bearing assertions with selection state |
| Evidence bundle | argand.site-evidence-bundle/v1 |
Exact evidence signed by reviewer votes |
| Vote | argand.site-vote/v1 |
Authenticated approve/revoke decision |
| Review policy | argand.site-policy/v1 |
Threshold, groups, revocation, and separation rules |
| Observation batch | argand.site-observation-source/v1 |
Pinned JSONL object and rights |
| Observation | argand.site-observation/v1 |
Normalized subject-bound observation |
| Observer capture | argand.site-observer-capture/v1 |
Cache-only replay input |
| Emergency revocations | argand.site-revocations/v1 |
Cumulative publisher-signed offline block overlay |
| Active pointer | argand.site-current/v2 |
Signed generation pin plus revocation continuity |
| Diff | argand.site-diff/v4 |
Typed change stream across generations |
Source manifest v2 coverage is one of full, partition, or delta. A delta
names its exact base, positive consecutive sequence, and superseded source IDs.
A full source cannot compose with active partitions. Overlap, gaps, cycles,
missing bases, cross-provider supersession, and mixed legacy/typed frontiers fail
the build.
The normal export emits selected active facts only and excludes rejected facts.
Every assertion has selection_state: "active". Audit export includes active,
superseded, and rejected facts; rejected assertions include their reason. Both
modes redact Curlie descriptions by default and neither represents approved
navigation routes. Use resolve for admission.
Votes bind the subject kind and fingerprint, evidence-bundle digest, policy
digest, reviewer, decision, reason, asserted review time, optional expiry, exact
role/locale/country scope, and revocation supersession IDs. Exact JSON bytes are
signed with OpenSSH namespace argand-site-registry-vote. Writer accepted_at
is separate and cannot be supplied by the reviewer.
Policy fields define base thresholds for names, edges, and equivalences; maximum
approval and observation ages; reviewer groups; publisher separation; source and
drift holds; and optional stricter risk_thresholds for source_conflict and
dangerous_drift. Unknown fields and risk classes fail closed.
Emergency feeds retain every authenticated revocation ID across policy epochs,
active state, any explicit superseding quorum, and a refresh deadline no more
than seven days after the effective time. Exact JSON bytes use OpenSSH namespace
argand-site-registry-revocations. A feed can overlay a cached generation only
when rules, policy, and reviewer trust-root digests match. Feed continuity rejects
dropped subjects or vote IDs. A feed from another compatible generation may only
add blocks. Removing a block requires the exact full generation so the consumer
can recompute the signed superseding quorum; expired feeds fail closed.
Legacy source manifests remain readable as isolated (source, scope) streams.
Legacy 0.3 reviews remain available only through the explicit compatibility
policy. New strict builds use votes and a receipt-bound reviewer trust root.
The contract decisions are recorded in ADR 0001, ADR 0002, ADR 0003, ADR 0004, and ADR 0005.