open-standards/sense
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science babce44ace
All checks were successful
no-vanity-metrics / Scan committed Markdown for vanity metrics (push) Successful in 3s
standards workspaces build + test / eoc-rs (push) Successful in 1m54s
standards workspaces build + test / jcp-rs (push) Successful in 1m19s
standards workspaces build + test / jouleclaw-rs (push) Successful in 4m3s
standards workspaces build + test / proof-rs (push) Successful in 1m14s
standards workspaces build + test / aac-rs (push) Successful in 1m23s
standards workspaces build + test / joule-code-rs (push) Successful in 41s
standards workspaces build + test / sandbox-rs (push) Successful in 2m9s
standards workspaces build + test / joulecontract-rs (push) Successful in 48s
standards workspaces build + test / map-rs (push) Successful in 35s
standards workspaces build + test / mesh-rs (push) Successful in 30s
standards workspaces build + test / smart-byte-rs (push) Successful in 2m36s
standards workspaces build + test / openpay (push) Successful in 1m35s
standards workspaces build + test / arl-rs (push) Successful in 2m6s
standards workspaces build + test / joule-ui-rs (push) Successful in 2m41s
standards workspaces build + test / jouledesk-rs (push) Successful in 2m16s
standards workspaces build + test / joulehook-rs (push) Successful in 4m19s
standards workspaces build + test / sense-rs (push) Successful in 2m34s
standards workspaces build + test / macOS energy backend (jcp-energy) (push) Successful in 2m9s
sense: publish the gate's refusal path — every outcome, with the budget after each
Every published C3 decision was `surface`, so the gate's two refusals — the half of
the attention budget that makes it a budget — were never published or checked, and
pack.rs pinned that absence with a sentinel.

The pack now also publishes the same scripted highlights gated for a user busy in
the modality a surfacing would occupy (focus 0.3, visual) on a 2500 µJ budget at
1000 µJ a surfacing: surface, surface, hold:value, hold:budget, with the budget
after each (1500, 500, 500, 500) — a surfacing debits, a hold spends nothing. The
additions are purely additive; every existing value is unchanged.

The third highlight is held for value although the budget could not have paid for
it either. The reference always tested value first, but the spec never said so, so
SPEC §5 now does: hold:budget means a worthy highlight the budget could not afford.

pack.rs replaces the sentinel with a real check, and requires the pack to publish
all three outcomes. Falsified: testing budget before value changes the published
decisions; a hold that spends changes the published budgets; a pack without its
refusals fails both the decision check and the generator check.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 16:25:02 -04:00
..
conformance/v1 sense: publish the gate's refusal path — every outcome, with the budget after each 2026-09-30 16:25:02 -04:00
sense-rs sense: publish the gate's refusal path — every outcome, with the budget after each 2026-09-30 16:25:02 -04:00
LICENSE sense: the ambient context standard (v0.1) 2026-06-13 21:39:39 -04:00
LICENSE-SPEC sense: the ambient context standard (v0.1) 2026-06-13 21:39:39 -04:00
README.md sense: the ambient context standard (v0.1) 2026-06-13 21:39:39 -04:00
SPEC.md sense: publish the gate's refusal path — every outcome, with the budget after each 2026-09-30 16:25:02 -04:00

Sense

The ambient context standard — the always-on, deterministic, energy-accounted record of what is happening around an agent, and a principled account of when that is worth attention.

The tool protocols (MCP, A2A, ACP) standardized the efferent half of an agent: reaching out for tools, peers, payments. Sense standardizes the afferent half — the observations flowing in. It is the substrate an ambient or proactive agent needs but none of them specify: a feed of the world, deterministic enough to audit, with a governed decision about when to interrupt a human.

Where OpenTelemetry traces the agent's own reasoning — non-deterministic by its own admission, and about the agent's insides — Sense records the agent's outside, deterministically, with every datum provenance- and trust-tagged, and every interruption priced in joules and sealed in a receipt.

The four tiers

observe ─▶ project ─▶ detect ─▶ gate ─▶ seal ─▶ verify ─▶ answer
  │           │          │        │       │        │         │
 store     attention  attention attention receipt receipt  cascade
  • sense-schema — the wire types: the content-addressed [Event], the vendor-neutral SourceClass, the TrustLevel, the family Energy/Provenance model, the StateProjection, the Highlight. Pure, no IO.
  • sense-store — a content-addressed, HLC-ordered, replay-deterministic event log. Two runs over the same events yield a byte-identical digest.
  • sense-attention — the part no observability stack carries: a deterministic salience/novelty/uncertainty observer, a k-sigma highlight detector, and the attention budget that gates surfacing by value vs. interruption cost, priced in joules. "Perception ⊗ attention-budget", the afferent dual of JCP's "capability ⊗ joule-budget".
  • sense-cascade — the synthesis tier: a query envelope, deterministic recall retrieval, and a speculative cascade that answers factual-recall queries with zero LLM calls and escalates to a frontier model only as a last resort.
  • sense-receipt — a hash-chained, Ed25519-signed surfacing log: the tamper-evident record of what was surfaced (or held), when, and what it cost. Sealable as a JCR-1 COSE_Sign1 envelope for cross-family verification.

See SPEC.md for the normative standard and conformance/v1/ for the reproducible vector pack.

Try it

cd sense-rs
cargo run -p sense-cli --bin sense     # the whole loop on a scripted stream
cargo test --workspace                 # the conformance suite

The demo scripts an ambient stream (a quiet shell baseline, a burst of file changes, a low-trust log line), then for each surfaced moment prints the projection, the gate decision, and the joules it cost — then verifies the hash-chained surfacing log and answers a recall query with no model call.

What is not here

  • A daemon, sensors, or a UI. A host wires its platform's sensors to the SourceClass vocabulary and renders highlights however it likes. Sense fixes the datum, the determinism, the attention decision, and the receipt — not the plumbing.
  • A model. The salience observer and the synthesis fallback are recognized edges; the reference observer is deterministic and the reference fallback is a recorder. A host brings the model it trusts.
  • A transport or storage engine. The wire is serde/JCR-1; the order is the HLC. Ride it over anything; persist it in anything that preserves the order.

Licence

Specification text: CC-BY-4.0 (LICENSE-SPEC). Reference implementation in sense-rs/: Apache-2.0 (LICENSE).