Contextfulv0.23.0

Docs / Specification

A-assurance — Assurance decisions

Status: accepted

consumer-compatibility-binds — Consumer compatibility binds execution evidence to artifact bytes

Cited byassurance.consumer.suiteassurance.consumer.requirementsassurance.consumer.d1-profileassurance.consumer.d1-release

A manifest parse establishes neither replay behavior nor receiver durability, and a release version does not establish source correspondence. A consumer reproduces the verdict outside the checkout with no inherited provider account.

OptionLost onCost
Distributable public-surface scenarios (chosen)—Native execution requires a matching host and synthetic fixture capabilities.
Source-only integration testsConsumer reproducibilityConsumers need the checkout and build toolchain.
Manifest and version checksBehavioral evidenceParsing hides replay and acknowledgement defects.

assurance-claims-carry — Assurance claims carry their qualifiers, and the proof gate audits assumptions

Cited byassurance.prove.commutation-claimassurance.prove.sampled-inclusionassurance.prove.unbound-targetassurance.prove.no-negative-spaceassurance.audit-assumptions.assumption-outside-allowlistassurance.audit-assumptions.hole-assumptionassurance.audit-assumptions.native-evaluation-assumptionassurance.audit-assumptions.missing-constantassurance.audit-assumptions.statement-driftassurance.audit-assumptions.allowlist-admissionassurance.recheck.credential-freeassurance.scope-claim.beyond-named-decisionsassurance.scope-claim.unnamed-dependency

A hand-maintained inventory checks each constant’s transitive assumption footprint against a two-entry allowlist. The package holds no dependency, so two machines reach one verdict offline.

OptionLost onCost
Inventory plus transitive assumption audit, qualified claims, zero-dependency package (chosen)—Every lemma is hand-rolled; the inventory is maintained by hand.
A source pattern over package filesCatching a proof of FalseA parenthesized hole or a respelled tactic passes.
Build and read the exit statusCatching a proof of FalseA hole elaborates as a warning and exits zero.

Revisit: a mathematics library elaborates inside the per-change budget.

evaluation-data-follows — Evaluation data follows store policy

Cited byassurance.evaluate.policy-labelsassurance.evaluate.unlabeled-corpusassurance.baseline.golden-custodyassurance.baseline.answer-key-in-the-storeassurance.baseline.generated-redactionassurance.baseline.trace-export

An evaluation that bypasses enforcement never shows an over-restrictive policy as a recall regression. A zero in a report is then a retrieval fact.

OptionLost onCost
Labeled corpora, two-guard golden isolation, store redaction, in-perimeter traces (chosen)—Labeling precedes the first number; a collector runs per environment.
Bypass enforcement for evaluation runsCoverageAn over-restrictive policy never surfaces as a recall regression.
Hosted trace collection for every runContentPrimary data leaves the perimeter, beyond the store’s deletion.

model-specifies-profile — The model specifies the profile-to-effective-authority mapping, each target bound to one query path

Cited byassurance.model.declared-dependencyassurance.model.unmodelled-constructor

Proving a self-owned wire protocol re-opens every proof on each protocol correction. The delegation library, its cryptography and its parser are trusted dependencies the claim names.

OptionLost onCost
The profile-to-authority mapping, symbolic, path-bound (chosen)—A defect in credential parsing or signature checks lies outside every theorem.
A self-owned wire protocol’s attenuation rulesStability of the proof objectEvery protocol correction re-opens the proofs.
The whole enforcement engineScopeThe models define no SQL semantics, credential bytes or run-path effects.

Revisit: the profile’s maintainer changes the mapping’s domain; a defect surfaces in the trusted remainder.

mediation-ranges-over — Mediation ranges over statement execution, and restriction preservation is a proof target

Cited byassurance.prove.restriction-preservationassurance.prove.mediation-relation

A run step reaches stored rows only through a read-path statement, so statement execution is the object the induction ranges over. Run-step effects answer to the protocol model’s fences.

OptionLost onCost
Statement execution, plus restriction preservation over attenuation chains (chosen)—The relation abstracts SQL to a fold per row; the planner, joins and aggregates stay outside.
Engine run stepsObjectA run step releases no stored row except through a statement.
Run steps and statement execution togetherBudgetA joint relation needs the run journal and SQL in one model.

Revisit: the read path releases a row outside a statement; the model gains SQL semantics.

differentially-tested-reference — A differentially tested reference model is the standing link between proofs and binary

Cited byassurance.differential-test.discarded-counterexample

A refinement proof through a broken translator passes about the wrong object and leaves nothing to inspect. A differential leaves a minimized case.

OptionLost onCost
Differential reference model, refinement scoped to pure functions (chosen)—Evidence, not equivalence; a case outside the generator’s classes goes uncovered.
Refinement proof aloneSurvivability of evidenceA broken translator passes about the wrong object.
Reporting disagreements without retaining themRegression retentionA fixed divergence returns under another seed.

Revisit: a pinned, reproducible translation toolchain exists; a production divergence falls outside the malformed, boundary and well-formed classes.

executed-reference-proved — The executed reference model is the proved definitions

Cited byassurance.differential-test.reference-model

A disagreement implicates the proved definitions directly, and every theorem over Authority.Grant speaks about the function the harness executes.

OptionLost onCost
One set of definitions, proved and executed (chosen)—A definition that misreads a clause passes its proofs and its differential alike.
A second Lean rendering written from the specification textProof reachNo theorem links the executed types to the proved ones.
A refinement proof between the two renderingsMaintenance costEvery grant dimension needs a simulation lemma across two type families.

Revisit: a misreading of a clause reaches a release through a definition both proofs and differential accepted.

store-protocol-modelled — The store protocol is modelled in Lean 4

Cited byassurance.model.packageassurance.model.toolchain-driftassurance.model.protocol-packageassurance.model.protocol-modelassurance.model.protocol-safetyassurance.differential-test.protocol-harnessassurance.differential-test.protocol-drift

A commit between a successor’s grant and raise lands below the highest grant and loses nothing. A theorem proves each invariant for every lease generation, where a model checker bounds it.

OptionLost onCost
Lean 4 executable model, conformance through the differential harness (chosen)—Invariant proofs are hand-written; generated interleavings are samples.
Quint with quint-connectOne formal languageA second specification language, and a v0.1 bridge crate from one vendor.
TLA+ with a harness over ITF tracesMaintained Rust bridgeAction dispatch, state projection and comparison are built and kept in a second language.

Revisit: the bounded check exceeds the formal stage’s wall clock; a maintained Rust bridge to a model checker reaches the protocol’s step vocabulary.

columnar-read-statement — The columnar-read and statement-serialization functions link into every engine-linked build

Cited byassurance.build.linked-query-functionsassurance.build.runtime-extension-load

An autoloaded extension brings a second copy of the engine’s type information. A cast between copies aborts, and on Apple platforms corrupts reads.

OptionLost onCost
Link both function sets into every engine-linked build (chosen)—55 MiB on every engine-linked binary, the read replica included.
Autoload on first useCorrectnessTwo type tables abort one platform and corrupt another.
Reimplement both capabilitiesCorrectnessThe guard passes statements the engine parses differently.

Revisit: the engine resolves extensions against the host binary’s type tables; a profile’s footprint budget cannot absorb 55 MiB.

source-change-carries — A source change carries a test that fails first, and a milestone carries its acceptance test before it progresses

Cited bycorpus.state.theorem-beside-testcorpus.state.acceptancecorpus.state.acceptance-firstassurance.test.test-firstassurance.test.acceptance-surface

A test written after its code is textually identical to one written first, so only a run against the base commit tells them apart.

OptionLost onCost
Red-before-green over the diff, acceptance test before the first pin (chosen)—Every source change pays a second build at the base commit; a refactor declares itself by trailer.
A line-coverage thresholdOrderA test written after its code satisfies it.
Per-change mutation testingWall clockMinutes per mutated function across an engine-sized crate graph.

Revisit: the base-commit build exceeds the stage wall clock; the refactor trailer appears on changes that alter a public surface.

tracked-targets-gate — Tracked targets gate on counts and record per commit in notes

Cited byassurance.measure.trend-directionassurance.measure.trend-baselineassurance.measure.history

Status: proposed

Wall-clock and resident-memory figures move on shared containers, so they annotate and gate nothing. Gate-tier targets measure counts, within-run ratios or locked-resolve sizes.

OptionLost onCost
Count-first gate, trend tier, notes history (chosen)—A timing regression surfaces as an annotation; a missing baseline scans first-parent history.
Gate on wall-clock p95 against a committed baselineDeterminismShared containers move p95 past any useful band.
History as a committed JSONL fileBranch policyA bot commit per run conflicts with every open change.

Revisit: a dedicated runner class holds p95 within 5 percent across runs.

version-tag-names — A version tag names a gated revision and counts closed milestones

Cited byassurance.release.annotatedassurance.release.off-branchassurance.release.workspace-versionassurance.release.gate-failed

A consumer pinning a bare commit reads no promise. Derivability from computed state decided the scheme, so no mislabelled tag can be cut. Below v1 no surface promises compatibility.

OptionLost onCost
Computed version, maintainer-invoked subcommand (chosen)—Tagging is a human step; a version bump commit precedes each tag.
A tag cut by handDerivabilityA version claims milestones its revision does not pass.
Minor equal to the highest milestone numberMonotonic meaningMilestone 11 closing before 8 claims milestones never reached.

Revisit: an external consumer needs a compatibility promise on a public surface, which opens v1.

store-format-major — A store format major moves the release minor

Cited byassurance.release.versionassurance.release.store-formatassurance.release.manifest-formatassurance.release.version-regressedassurance.release.format-break-patch

A consumer pinning ~0.16 takes every v0.16.* tag as a patch, yet a build reading format 1.x refuses a table format 2.0 writes. The commit counter marker declares the same format_version, so it counts with the manifest major. The bucket manifest’s MANIFEST_FORMAT counts the same way, since a build parsing manifest format 1 refuses format 2.

OptionLost onCost
Minor adds the format major (chosen)—The minor no longer equals the closed-milestone count; the tag reads one Rust constant by its text.
Refuse a format break under an unchanged minorDerivabilityA maintainer closes a milestone, or waits, to release a format break.
A separate format field in the tag nameSemver toolingCargo and npm ranges ignore a build-metadata suffix.

Consequences: 16 closed milestones under format 2.0 compute v0.17.0; the tag message names the reader-first upgrade order. Revisit: the store format promises compatibility across majors, or v1 opens.

workspace-fits-stage — The workspace fits the stage wall clock through parts

Cited byassurance.gate.workspace-partsassurance.gate.cli-shard-map

The feature-unified workspace suite exceeds the 1800 s sandbox cap on a cold build. Tests sharing one costly nested build stay on one shard.

OptionLost onCost
Duration-balanced shards (chosen)—Each shard compiles the CLI suite cold, about 650 s; a new test runs unbalanced until the map regenerates.
Four name-hashed shardsStage wall clockEach shard rebuilt both nested examples; three exceeded 2700 s.
One CLI test build handed to every shardOperabilityA part in a fresh checkout receives no executable another part built.

feature-runs-formal — Feature runs, formal checks and profile budgets run in a nightly tier

Cited byassurance.gate.nightly-tier

The features, formal and budget parts each need a cold build of their own feature set or profile. P7 keeps a nightly cadence for a check too costly per change, naming the change range.

OptionLost onCost
A nightly tier for features, formal and budget (chosen)—A regression reds the next run of its part, attributed to a change range rather than one change.
Every part per changeGate wall clockThirteen extra cold builds on every pull request.
Per-change parts selected by changed paths aloneDetectabilityA spec or dependency change reaches proofs and footprints no path filter names.

Revisit: pull-request parts share builds, so the nightly parts fit a 30 min verdict.

decision-module-compiles — One decision module compiles native and to WebAssembly

Cited byassurance.differential-test.harnessassurance.differential-test.buildsassurance.differential-test.disagreementassurance.structure-tree.decision-module

One verdict computed from two sources drifts. The gateway needs verification, admission and placement, never SQL, under a host with no JavaScript. The module imports only the credential library’s evaluator clock.

OptionLost onCost
The policy package, the credential library’s clock as the one import (chosen)—A 2.7 MB module; a credential-library release may rename the imports the host links.
The domain crate alone, verification outside the moduleGateway needThe gateway verifies signatures from a second source.
The credential library’s JavaScript bindingsHostThe differential host and a native embedder run no JavaScript.

profile-graphs-answer — Profile graphs answer to cargo-deny bans, one run per profile feature

Cited byassurance.gate.dependency-denyassurance.gate.deny-profile-graph

One walk over workspace-unified metadata cannot tell which profile pulled a crate. A red check follows a change, not the calendar, so advisories stay out.

OptionLost onCost
bans per profile feature, pinned binary (chosen)—Three resolutions per run; an advisory against a locked crate is never reported.
One run over default featuresProfile attributionThe CRDT library in full hides behind control’s admission.
bans, advisories and licenses togetherChange-driven verdictsAn advisory published overnight reds an untouched pull request.

edge-profile-ships — The edge profile ships no WASI release, and a scheduled probe measures it

Cited byassurance.build.wasi-probeassurance.build.release-artifact

The SQL engine relies on threads, file locks and a statically linked extension set that wasm32-wasip2 does not provide. A target’s viability is a measured figure.

OptionLost onCost
No WASI release, a scheduled probe (chosen)—A WASI host stays unserved until the probe records a figure inside the budget.
Ship wasm32-wasip2 for edgeBuildabilityEvery release blocks on a port of threads and file locks.
Drop the target with no probeMeasured viabilityNobody learns when WASI support reaches the budget.

gate-repair-evidence — Gate repair evidence binds one checkout and one comparison

Cited byassurance.test.base-evidenceassurance.build.checkout-artifactsassurance.build.runtime-checkout

Workspace artifacts retain checkout paths, and a timeout without phase evidence hides whether compilation or tests exhausted the budget. Each verdict identifies its source, comparison and failure class.

OptionLost onCost
Checkout isolation, one comparison, measured parts (chosen)—Workspace artifacts repeat across checkouts; reports require phase boundaries.
Shared workspace artifacts with compile-time checkout pathsSource identityA cached helper selects another checkout’s source or binary.
Retry full gates or increase their timeoutDiagnosisRepeated cold builds provide no phase evidence.

Revisit: representative timings show checkout isolation or partitioning exceeds the declared resource budget.

windows-release-support — Windows release support is deferred independently of Linux and macOS delivery

Cited byassurance.build.targetsassurance.build.windows-target

Native Windows execution adds MSVC toolchains, executor registration and descendant-lifetime verification to the release boundary.

OptionLost onCost
Defer Windows releases and required native checks together (chosen)—Windows consumers receive no supported artifact.
Require Windows execution before every mergePlatform scopeLinux and macOS delivery depends on Windows executor availability.
Exclude Windows artifacts but require Windows checksIndependent deliveryThe same executor dependency remains.

Revisit: a Windows support decision carries passing MSVC lifetime, filesystem and read-engine evidence for each admitted architecture within the gate budget.

stage-subset-runs — A stage subset runs in sequence order and refuses a missing predecessor

Cited byassurance.gate.stage-sequenceassurance.gate.stage-subset

A part in a fresh checkout holds no earlier stage’s output, and a gate fails rather than skips (P7). A predecessor’s output already on disk satisfies its reader.

OptionLost onCost
Sequence order, refuse an absent predecessor output (chosen)—A fresh-checkout formal run reruns pins and toolchain.
Run the named stages alone, whatever is absentFail rather than skipThe formal stage reports a verdict on an unpinned Lean toolchain.
Always add every predecessorRerun reuseA local rerun repeats the pin fetch and provisioning.

generated-artifacts-prove — Generated artifacts prove currency by regeneration and diff

Cited bycorpus.render.generatedassurance.structure-tree.derivation-check

A generated file can keep a plausible header after its source changes. Neither a hand-maintained hash nor a generator’s exit status shows a stale committed byte.

OptionLost onCost
Regenerate and diff (chosen)—The schema stage pays for the generators; nondeterministic output reds it.
Compare a recorded source hashCoverageA new generator input can be omitted from the hash.
Trust a build-time exportCommitted artifact currencyThe build succeeds while the committed output is stale.

duplicated-capabilities-match — Duplicated capabilities match registered symbols and home constants by folded name

Cited byassurance.structure-tree.capability-registryassurance.structure-tree.cross-language

A second implementation can sit in a TypeScript gateway or a Python script, where no compiler sees both. Folding singleStatement to single_statement needs no parser beyond Rust.

OptionLost onCost
Registered symbols and home constants, folded names (chosen)—The registry is maintained by hand; a renamed copy passes.
Every public engine namePrecisionGeneric names such as resolve collide across unrelated modules.
Structural similarity over syntax treesExplainabilityA per-language parser and a threshold that flags refactors.

Revisit: a copy under another name escapes to production.

backtests-estimate-leakage — Backtests estimate leakage against a reference, and their tracks never pool

Cited byassurance.backtest.cutoff-sliceassurance.backtest.fill-instantassurance.backtest.execution-componentassurance.forecast.tracks-separate

Recency alone lifts accuracy near a cutoff, so a reported leak survives a model that cannot have seen the outcome. Consumer-selected profiles own return scoring, price fills and decoding corrections.

OptionLost onCost
Reference-based estimate, separate tracks, declared execution metadata (chosen)—Every report declares a reference and an execution component; small tracks report wide intervals.
Bare pre/post-cutoff gapSurvives a clean modelRecency reads as leakage near every cutoff.
One pooled score across tracksOne figure, one questionA tool-using backtest lifts a prospective forecaster’s rank.

case-s-judge — The case’s judge scores leakage against a pre-horizon reference

Cited byassurance.backtest.cutoff-sliceassurance.backtest.leak-score

The score feeds the Brier-per-tier report and the zero threshold a late snapshot capture answers under.

OptionLost onCost
The case’s judge against a pre-horizon reference (chosen)—One judge call per retrieved document.
Consumer-written scoresComparabilityTwo runs of one case score leakage by different rules.
A fixed classifierDomainA generic classifier misses domain-specific outcomes.

pull-request-runs — A pull request runs the parts its diff reaches

Cited byassurance.gate.affected-partsassurance.gate.affected-everyassurance.gate.affected-specassurance.gate.affected-surfacesassurance.gate.affected-formal

Running every part makes a prose change wait hours behind binary feature suites. No change skips a part its diff can reach.

OptionLost onCost
A path map with a dependency closure through pins, every unknown reaching every part (chosen)—A part the map omits wrongly stays green until a change under crates/ or tools/ runs it.
A cargo dependency graph per changed packageLocalityA lock change still reaches everything.
Every part on every changeGate wall clockA spec-only change waits on hours of builds.

protocol-package-holds — The protocol package holds the journal, merge and fold machines

Cited byassurance.model.journal-modelassurance.model.merge-modelassurance.model.fold-modelassurance.differential-test.journal-harnessassurance.differential-test.journal-driftassurance.differential-test.merge-driftassurance.differential-test.fold-harness

run.journal and store.merge carry the engine’s concurrency risk. One toolchain and one audit cover them, beside five policy modules.

OptionLost onCost
Both machines in formal/protocol (chosen)—The bounded checks share the formal stage’s wall clock.
One Lean package per machineOne auditThree inventories, toolchain pins and executables.
Machines in formal/ContextfulScopeThe policy package gains IO-shaped state.

Consequences: no_dangling_blob holds under the grace hypothesis; --no-grace reproduces BlobMissing on every adapter.