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

Lifecycle approvedImplementation completeVerification unknownQualification unknown

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

  1. 052: Bitemporal claim history and projection
  2. 1. Purpose
  3. 2. Territory
  4. 3. Behavior
  5. 3.1 Three times
  6. 3.2 Append-only history
  7. 3.3 Projection
  8. 3.4 Erasure and the store
  9. 4. Functional requirements
  10. 5. Acceptance criteria
  11. 6. Out of scope
  12. 7. Resolved decisions
  13. 8. Open questions
  14. 9. Obligations
  15. Verification

Frozen anchors

No frozen anchors declared.