SIGNAL CONTRACT · PROTOCOL

Listen to your agents. The fleet you cannot watch is the one you can hear.

VIBEnet is a multi-modal temporal-rendering layer for agent awareness. Signal Contract carries machine state. BeatSync supplies the shared clock. Governed renderers turn the same run into sound, visual pulse, trace rows, contract panes, logs, and future device cues.

Canonical machine-readable schema

Signal Contract schema URI

https://vibenet.ai/protocol/v1/schema.json

Version: 1.0Status: Public schema assetHuman guide: this page

DIRECT ANSWER

What is the Signal Contract?

Signal Contract is the portable event object that lets agent work become perceptible. It separates the state of a run from the renderer that expresses it, so one event can become audio, motion, a trace row, a structured log, or a future device cue without changing the event shape.

ARCHITECTURE

One event. One shared clock. Many renderers.

State

Signal Contract carries state.

A small renderer-facing event says what changed, which semantic channel it belongs to, and how strongly it should be felt.

Clock

BeatSync gives the run a shared clock.

The same event stream can advance audio, visual pulse, trace rows, contract panes, and future surfaces without inventing a new clock per renderer.

Rendering

Renderers make the state perceptible.

The output may be sound, motion, logs, route strips, or device cues. The event stays portable before any single renderer makes it beautiful.

Governance

Constitutional CMS keeps the publishing posture explicit.

Governance explains what is public, what is protected, and how adapter builders should route state into the protocol without exposing source material.

VNEXT: CYBERNETIC MODULATION

Governing the transition contour.

The Signal Contract v1 intentionally specifies point-state awareness. The next frontier of the VIBEnet protocol governs Cybernetic Modulation: how the system moves from one state to another. A tension value of 0.73 that exploded upward from calm is fundamentally different from a 0.73 resolving downward from crisis.

The Internal Modulation Contract (vNext) introduces transition fields to ensure that every renderer preserves the same movement contour without hallucinating perceptual intent:

  • from_stateThe prior VET coordinate of the system.
  • to_stateThe newly materialized VET coordinate.
  • slew_rateThe actuation curve (e.g. snap, ease, oscillate).
  • transition_intentThe human-readable objective (e.g. "calm the operator").

PROOF PATH

The proof is not a player. It is synchronized state.

The current browser proof starts with a scored reference run. The important thing to see is alignment: event enters, contract updates, clock advances, visual pulse changes, trace row moves, and audio plays from the same run.

  1. 01A raw agent or domain event enters through an adapter.
  2. 02The adapter emits one Signal Contract object.
  3. 03The shared clock advances the scored run.
  4. 04The pulse, trace row, contract pane, audio, and exports move together.

VISUAL CONCEPTS

What should you actually see?

The public shell has three visual jobs: show the scored proof running, show the operator surface, and keep experimental renderers out of the launch until they are ready.

Live proof

Signal Demo

A scored reference run clocks the visual concept while the contract pane, trace row, pulse, audio, and exports change together.

Open the live proof

Control surface

Lightboard

A castable surface translates semantic channel, VET coordinates, cluster, device, and ticker state into one readable operator field.

View Lightboard

Boundary

Governed renderer work

Experimental renderer work stays out of the public contract until it is promoted into a reference surface with bounded claims.

Governance boundary

Canonical event shape

The event stays flat and renderer-facing. Producers can add context inside metadata, but the core fields keep the object portable.

Signal Contract JSON example
{
  "schema_version": "1.0",
  "id": "sig_demo_005",
  "occurred_at": "2026-04-19T18:32:18.442Z",
  "producer": "vibenet-demo",
  "entity": "agent.serpradio.route_intelligence",
  "event": "handoff.requested",
  "channel": "handoff",
  "valence": 0.42,
  "energy": 0.66,
  "tension": 0.73,
  "intensity": 0.72,
  "hue": 44,
  "pulse": 0.78,
  "confidence": 0.94,
  "ttl_ms": 15000,
  "metadata": {
    "reason": "source_confidence_below_threshold",
    "route": "JFK-LHR"
  }
}

Field specification

schema_versionstringrequired

Published version of the flat public event object.

Example: 1.0

idstringrequired

Stable event identifier for dedupe, replay, and audit references.

Example: sig_demo_005

occurred_atRFC 3339 timestamprequired

When the awareness event occurred, not when the renderer received it.

Example: 2026-04-19T18:32:18.442Z

producerstringrequired

System or adapter that emitted the event.

Example: vibenet-demo

entitystringrequired

Stable subject identifier for the thing whose state changed.

Example: agent.serpradio.route_intelligence

eventstringrequired

Meaningful awareness event name. Snake case is recommended.

Example: handoff.requested

channelenumrequired

Public semantic channel for how the state should be interpreted.

Example: handoff

valencenumber 0-1required

Normalized affective polarity for the current state.

Example: 0.42

energynumber 0-1required

Normalized activity level of the state change.

Example: 0.66

tensionnumber 0-1required

Normalized instability or unresolved uncertainty.

Example: 0.73

intensitynumber 0-1required

Renderer-facing emphasis. Higher values should feel harder to ignore.

Example: 0.72

huenumber 0-360required

Flat renderer-facing hue hint for browser, lighting, or AR renderers.

Example: 44

pulsenumber 0-1required

Flat renderer-facing pulse hint for motion, cadence, or temporal emphasis.

Example: 0.78

confidencenumber 0-1optional

Optional producer confidence in the emitted awareness event.

Example: 0.94

ttl_msintegeroptional

How long a renderer should keep expressing the event before it expires.

Example: 15000

metadataobjectoptional

Context payload for links, IDs, route names, renderer-safe details, and optional publishable/indexable convention fields.

Example: {"publishable":false,"indexable":true,"fallback_reason":"primary_source_stale"}

Semantic channels

Public channels describe posture, not private taxonomy. They tell a renderer how the event should be interpreted without exposing internal scoring systems.

nominal

Expected operating state. Nothing requires attention.

Use when the system is steady and no intervention is needed.

advisory

Work is happening. Attention is optional.

Use for planning, tool calls, synthesis, and healthy in-flight state shifts.

warning

Something deserves a second look.

Use when confidence drops, retries stack up, or trust changes materially.

critical

Intervention required.

Use when a human or policy boundary must intervene immediately.

recovery

The system is resolving back toward nominal.

Use when an earlier warning has been contained or when the run lands cleanly.

opportunity

An actionable window has appeared.

Use when the system detects a state worth acting on soon but not urgently.

handoff

Attention is passing between agents, humans, or devices.

Use when responsibility moves and the receiver needs situational context.

GOVERNED BUILD PATH

Build adapters against the schema, then document the surface.

Start with raw system state, normalize it through a Domain Adapter, emit a valid Signal Contract event, and let the renderer decide which sense receives it. Governance explains the public documentation posture and the boundary between open contracts and protected source material.