Zephr

Intelligence / Pulse

The health of your evidence graph.

Pulse is observability for the evidence graph — system, indexes, trust, and coverage surfaces, each shown only when it is measured, and each explicitly marked when it is not. It never turns a missing reading into a zero or a synthesized score.

surface contracts shipped - producer coverage expanding

evidence graph

sy
in
tr
co
The metric lattice

Three states, never a fabricated score.

Every reading on Pulse is one of three states. A reading that has not been observed is named as not evaluated — never zeroed, never given a number it did not earn.

Measured

The reading is backed by an observed platform-ledger value — a producer ran, the dependency answered, and the number on the screen is the number the ledger recorded.

Not evaluated

The producer or the required observation has not run yet. The surface says so plainly, because a blank that hides behind a zero is a lie told in a different grammar.

Unavailable

The system attempted the measurement but the dependency or data source could not answer. The failure is named, not buried — the same way a refused capture is named in Guard.

No fabricated scores, no zero-dressed-as-data.

What an operator actually sees

  • recall-worker · running · last tick 4s ago
  • index-freshness · not evaluated · producer not run
  • trust-abstention · unavailable · ledger read failed

Illustrative example — not live data

Claim freshness as a position, not a badgeEach claim sits where its citations put it on the drift axis. The axis measures citation drift: how much the anchored ranges have changed since the claim was last revalidated. At the far end a claim is not deleted. It keeps its record, its author, and its date, and it recalls with a confidence low enough that you notice.freshagingstaletoken validation is at the edgeretries back off exponentia…the queue drains in ordercitations intactcitations moved
  • token validation is at the edge

    fresh

    Its anchor was re-checked on the last index and resolved unchanged.

  • retries back off exponentially

    aging

    The cited range moved within its file. The claim still holds; the line numbers do not.

  • the queue drains in order

    stale

    The file it cites was rewritten. The claim keeps its position and loses its confidence.

The axis measures citation drift: how much the anchored ranges have changed since the claim was last revalidated.

At the far end a claim is not deleted. It keeps its record, its author, and its date, and it recalls with a confidence low enough that you notice.

Illustrative drift axis — not a live Pulse reading.

Coverage

Every surface states what it could not observe.

Coverage is a first-class surface, not a footnote. A count you cannot interpret without knowing its coverage is not a measurement.

The surfaces

Four surfaces, one honesty contract.

Each surface renders real state when it is measured, an honest empty when nothing has reported, and an explicit mark when the observation has not run.

zephr status --pulse

The explicit Pulse mode reads the local component, trust, coverage, and producer snapshot from the same provider exposed to agents through the status tool.

system

System

Component and worker state — which pieces of the evidence graph are running, which are not, and which have not reported.

indexes

Indexes

Build and freshness state for the indexes that feed recall — without naming an engine, because the honest answer is the state, not the brand.

trust

Trust

Review, contradiction, and abstention signals — but only when measured. A trust axis that has not been observed reads as not evaluated, not as a clean bill of health.

coverage

Coverage

What was observed and what was not. Coverage is a first-class surface, not a footnote, because a count you cannot interpret without knowing its coverage is not a measurement.

What Pulse owns

Surface contracts shipped. Producer coverage expanding.

The four surface contracts and the honest metric lattice are shipped. System and coverage have ready producers; index, trust, and broader integration producer coverage is expanding, and every unmeasured input remains named rather than implied live.

  • System health surface

    Shipped

    The component-and-worker state view is shipped: it renders real state, and it renders an honest empty state when nothing has reported.

    Pulse surfaces - ADR-016

  • Index freshness surface

    In development

    The freshness view is shipped. The end-to-end path from a ref event to a freshness update is expanding — more producers are being wired, and the surface says so rather than implying the path is closed.

    freshness migration - ADR-029

  • Trust surface

    In development

    The trust view renders review-state distribution, open contradictions, and abstention rate — each shown only when measured, and each explicitly marked when the underlying observation has not run.

    trust axes - ADR-016

  • Coverage disclosure

    Shipped

    Every Pulse view states what it could not observe. A view with no coverage statement is a bug, not a clean dashboard — coverage is part of the surface, not an afterthought.

    honest-or-absent law - ADR-016

  • Platform-ledger expansion

    In development

    The ledger that feeds every surface above is the expanding substrate. More producers and observations are being added; the surfaces grow as the ledger does, and neither pretends to be finished.

    platform ledger - ADR-029

  • Broader producer and integration coverage

    In development

    More signal producers and more integrations are being wired into the ledger. They are listed as expanding, not implied to be live, because a coverage gap you can see is honest and one you cannot is not.

    signal producers - ADR-029

Measured data only. Coverage disclosed.

Pulse reads the same platform ledger Memory and Review write to. When the ledger grows, the surfaces grow with it — and neither pretends to be finished.