---
title: Bi-temporal Investment Gate — PAUSE Ruling (GOV-01)
type: reference
tags: [vault, bi-temporal, governance, investment-gate, GOV-01, VREAD-01, VHARD-05, v1.7.1]
status: locked
locked_at: 2026-06-02
edges:
  derived-from:
    - "[[v1.6-graph-primitives]]"
    - "[[vault-curator-split.md]]"
  refines:
    - "[[vault-atoms]]"
---

# Bi-temporal Investment Gate — PAUSE Ruling (GOV-01)

**Status:** LOCKED (v1.7.1 Phase 88, GOV-01) · **Decision class:** evidence-gated
governance ruling · **Principle:** D-V171-03 (evidence-before-investment).

This is a recorded decision: it records *why* no further bi-temporal investment
proceeds, grounded in the one number we actually have rather than in faith.

---

## Ruling

**PAUSE further bi-temporal investment.** No additional engineering spend on the
bi-temporal data plane proceeds until a **bi-temporal-SPECIFIC** consumer benefit
is demonstrated. Until then, the axis is paused — by decision, on the evidence
below, per D-V171-03 (evidence-before-investment).

Two carve-outs bound this pause so it does not over-reach (§Scope below):
the existing code **stays**, and the **VHARD-05** `recorded_at:` backfill is
**outside** the pause.

---

## Evidence cited

The only retrieval-lift number we have is **VREAD-01**, from
`tests/audit-retrieval-lift.sh` run over a frozen 11-note dogfood corpus
(v1.7 Phase 78.1):

> **OFF recall@5 = 0.545 (6/11) → ON recall@5 = 1.000 (11/11).**

That is a real, positive lift. But it is **not** evidence for the bi-temporal axis,
for three reasons that this ruling refuses to elide:

1. **The lift is atom-INCLUSION-driven, not bi-temporal.** VREAD-01 measures
   `--include-atoms` alone; `--expand-edges` was forward-declared and the
   instrument carries **no bi-temporal query path at all**. ON wins exactly the 5
   enrichment queries that atom inclusion serves and ties the 6 neutral/off-winnable
   ones. The number says *atoms help retrieval when present* — it says **nothing**
   about whether stamping `valid_from`/`recorded_at`/`invalidated_at` helps any
   consumer.

2. **There is zero live bi-temporal data to benefit from.** `Knowledge/**` carries
   **zero** stamped `valid_from`/`recorded_at`/`invalidated_at`. There is no
   bi-temporal corpus, so there is no possible *measured* bi-temporal consumer
   benefit to point at — the lift we observed cannot be a bi-temporal lift.

3. **The fixture says nothing about extraction quality.** VREAD-01's fixture atoms
   were human-curated and byte-pinned, so even the atom-inclusion win is silent on
   machine atom-EXTRACTION quality (that is GOV-02's separate precondition-2 gate;
   noted here only so the 0.545 number is not over-read).

**Conclusion of the evidence:** atom-INCLUSION benefit ≠ bi-temporal benefit. The
one number we have is positive for atoms and **silent** for bi-temporality. Under
D-V171-03 we do not spend on faith — so the bi-temporal axis is **paused** until a
bi-temporal-specific signal exists.

---

## Scope of the pause

### Carve-out 1 — Pause ≠ removal. The code STAYS.

The pause is a freeze on **further investment**, not a teardown. The shipped
bi-temporal implementation (~600 LOC across the query/ingest path + its 3 flags —
`--as-of`, `--recorded-as-of`, the `invalidated_at` gate) is **correct and tested**
and **remains in the tree**. Removing working, tested code would itself be an
investment (re-verification, regression risk) with no evidence behind it.

Concretely: **GOV-03's axis-semantics correctness fix (Plan 88-02) still applies.**
That fix is *correctness* — making the `invalidated_at` valid-time gate independent
of the transaction-time flag — not *investment*. The pause does not touch it. Keep
correct code correct; just do not build more on the axis until it earns its keep.

### Carve-out 2 — VHARD-05 (`recorded_at:` backfill) is OUTSIDE the pause.

This is the load-bearing carve-out; it breaks the pause's circularity.

The pause says "no further bi-temporal investment until a bi-temporal benefit is
**shown**." But §Evidence point 2 records that **zero live bi-temporal data exists**.
You cannot measure a bi-temporal consumer benefit until there is live bi-temporal
data to query — and the **v1.7 VHARD-05** `recorded_at:` backfill is the **only**
path to that data. If VHARD-05 were inside the pause, the gate would be circular:
the pause would forbid the one step that could ever produce the evidence required
to lift the pause, stranding the axis permanently.

Therefore **VHARD-05 is explicitly carved OUT of this pause.** The `recorded_at:`
backfill may proceed; it is the route to live bi-temporal data and hence the route
to a future bi-temporal-specific lift measurement. (Backfill ordering caveat: run
the mtime-backfill before any sync/promote/edge-write touches the targets, or scope
the first-write stamper to genuine `_inbox→Knowledge` promotions — first-toucher
wins. See STATE.md carried-forward findings.) **This plan does not perform the
backfill** — it only records that VHARD-05 is not blocked by the pause.

---

## How the pause lifts

The pause lifts when a **bi-temporal-SPECIFIC** consumer benefit is demonstrated —
i.e. a retrieval/consumer measurement that exercises a bi-temporal query path over
**live** stamped data (post-VHARD-05) and shows a lift attributable to the
bi-temporal axis itself, not to atom inclusion. Building that bi-temporal-specific
lift instrument requires live bi-temporal data first, which is exactly why VHARD-05
sits outside the pause.

Until that signal exists: **no further bi-temporal investment** (the existing code
and GOV-03's correctness fix excepted; VHARD-05 excepted).

---

## Evidence anchor

- Instrument: `tests/audit-retrieval-lift.sh` (VREAD-01), v1.7 Phase 78.1,
  frozen 11-note dogfood corpus. Number consulted: **0.545 → 1.000**.
- Caveat carried with the number: atom-inclusion-only (`--include-atoms`);
  no bi-temporal query path; human-curated byte-pinned fixture atoms.
- Cross-milestone contract: VREAD-01 is **consumed, not re-built** here
  (v1.7 → v1.7.1).

*Recorded decision — GOV-01, v1.7.1 Phase 88. Locked 2026-06-02.*
