Conformance

Validate before render.

Conformance keeps adapters boring and renderers trustworthy: one valid event shape, semantic public channels, bounded metadata, and no protected substrate in public examples.

Direct answer

What makes an adapter conformant?

A conformant adapter emits valid Signal Contract JSON, preserves audit identifiers, uses public semantic labels, and keeps private scoring, source assets, and implementation details out of the event.

Validation

Producer rules

  • Validate against /protocol/v1/schema.json before sending events to a renderer.
  • Use one public semantic channel: nominal, advisory, warning, critical, recovery, opportunity, or handoff.
  • Keep VET, intensity, hue, and pulse normalized inside the schema ranges.
  • Put renderer-safe context in metadata; keep private formulas and substrate out of public events.
  • Treat examples as fixtures, not as permission to publish private operational data.
{
  "schema": "https://vibenet.ai/protocol/v1/schema.json",
  "command": "ajv validate -s public/protocol/v1/schema.json -d event.json",
  "expected": "valid Signal Contract event"
}

Renderer expectations

Consumers should stay predictable.

  • Renderers may ignore optional metadata, but they must respect required flat fields.
  • Renderers should degrade gracefully when audio is blocked or reduced motion is requested.
  • Renderers should not invent private channel codes or expose protected substrate in public UI.
  • Receipts should preserve event id, producer, entity, occurred_at, and schema_version for audit.