052-bitemporal-claim-history-and-projection
Bitemporal claim history: valid time apart from record time, supersession per slot, and a current view that is a pure function
A claim has three times: when it holds in the world (valid time, with precision, zone, open ends, and uncertainty), when the source said so (source-declared time), and when this store learned it (transaction time). History is append-only on the transaction axis; retraction, correction, and supersession are appended records, and only erasure removes content, leaving a tombstone. Supersession is scoped to one subject, predicate, and slot, so a schedule change to one segment supersedes that attribute alone. The current view is a deterministic projection of history under an explicit as-of on both axes and a policy version, ordered by the source's own time and the claim's authority, never by arrival, so reordered email delivery yields the same answer.
Read the full pinned specification ↗Relationships
depended on by
Claimed units
- establishes
{ "kind": "file", "path": "crates/aicortex-claims/src/history.rs" } - establishes
{ "kind": "file", "path": "crates/aicortex-claims/src/asof.rs" } - establishes
{ "kind": "file", "path": "crates/aicortex-claims/src/policy.rs" } - establishes
{ "kind": "file", "path": "crates/aicortex-claims/src/projection.rs" } - establishes
{ "kind": "file", "path": "crates/aicortex-claims/tests/projection.rs" } - establishes
{ "kind": "file", "path": "crates/aicortex-claims/tests/reorder.rs" } - establishes
{ "kind": "file", "path": "crates/aicortex-claims/testdata/travel/" } - establishes
{ "kind": "file", "path": "crates/aicortex-store/src/claim_repo.rs" } - establishes
{ "kind": "file", "path": "crates/aicortex-store/tests/claim_history.rs" } - establishes
{ "kind": "file", "path": "crates/aicortex-store/tests/claim_erasure.rs" } - extends
{ "nature": "additive", "spec": "050-typed-claims-and-predicate-registry", "unit": { "kind": "file", "path": "crates/aicortex-claims/src/lib.rs" } } - extends
{ "nature": "additive", "spec": "050-typed-claims-and-predicate-registry", "unit": { "kind": "file", "path": "crates/aicortex-claims/Cargo.toml" } } - extends
{ "nature": "additive", "spec": "050-typed-claims-and-predicate-registry", "unit": { "kind": "file", "path": "crates/aicortex-types/src/claim_time.rs" } } - extends
{ "nature": "additive", "spec": "012-store-schema-and-repositories", "unit": { "kind": "file", "path": "crates/aicortex-store/src/lib.rs" } } - extends
{ "nature": "additive", "spec": "012-store-schema-and-repositories", "unit": { "kind": "file", "path": "crates/aicortex-store/src/migrations.rs" } } - extends
{ "nature": "additive", "spec": "012-store-schema-and-repositories", "unit": { "kind": "file", "path": "crates/aicortex-store/tests/schema.rs" } } - extends
{ "nature": "additive", "spec": "014-memory-lifecycle-and-erasure", "unit": { "kind": "file", "path": "crates/aicortex-store/src/erasure.rs" } } - extends
{ "nature": "additive", "spec": "014-memory-lifecycle-and-erasure", "unit": { "kind": "file", "path": "crates/aicortex-store/tests/lifecycle.rs" } } - extends
{ "nature": "additive", "spec": "010-chassis-adoption-and-workspace", "unit": { "anchor": "workspace.dependencies", "file": "Cargo.toml", "kind": "section" } } - constrains
{ "flavor": "invariant-freeze", "note": "claim history is append-only: no statement updates or deletes a claim or relation row except erasure's tombstone", "unit": { "kind": "file", "path": "crates/aicortex-store/src/claim_repo.rs" } } - constrains
{ "flavor": "invariant-freeze", "note": "the current view is a pure function of claim history, an explicit as-of on both axes, and a policy version", "unit": { "kind": "file", "path": "crates/aicortex-claims/src/projection.rs" } }
Source headings
- 052: Bitemporal claim history and projection
- 1. Purpose
- 2. Territory
- 3. Behavior
- 3.1 Three times
- 3.2 Append-only history
- 3.3 Projection
- 3.4 Erasure and the store
- 4. Functional requirements
- 5. Acceptance criteria
- 6. Out of scope
- 7. Resolved decisions
- 8. Open questions
- 9. Obligations
- Verification
Frozen anchors
No frozen anchors declared.