Přeskočit obsah

Whisper Signal v1

Source schema: doc/schemas/whisper-signal.v1.schema.json

Machine-readable schema for the content body of an Agora record (or INAC artefact) expressing a bounded rumor-style social signal. The enclosing agora-record.v1 envelope carries identity, authorship (including pseudonymous nym:did:key:… authorship and the attached nym-certificate reference), authorship signature, timestamping, and topic routing; this schema validates only the content body. Sender transport identifiers (node id, federation id) are peer-session concerns and are not part of the signed content body.

Governing Basis

Project Lineage

Requirements

Stories

Fields

Field Required Shape Description
schema yes const: whisper-signal.v1 Content-level discriminator for consumers that inspect the payload outside its Agora or INAC envelope.
signal/polarity yes enum: problem, inspiration Fundamental polarity of the whisper signal. problem describes a distributed harm, failure, or dignity risk that may require correlation and protective response. inspiration describes a convergent idea, creative discovery, or emerging approach that may justify co-creation. Emergency handling MUST NOT be triggered solely by an inspiration signal.
epistemic/class yes enum: rumor, weak-signal Explicit epistemic class that prevents the artifact from being treated as evidence.
signal/text yes string Sanitized text accepted by the local user before publication.
signal/text-native no string Optional sanitized text in the original non-English language. Use this only when the original accepted user-facing wording is not English; English text stays solely in signal/text.
signal/text-native-lang no string BCP 47-like language tag for signal/text-native. This field is intentionally non-English; English originals MUST omit both native-text fields and use only signal/text.
topic/class yes string Normalized issue class used for bounded correlation. Distinct from the enclosing envelope's topic/key, which is an Agora routing key; topic/class is the semantic correlation class carried inside the rumor body.
signal/similarity-key no string Optional deterministic correlation key used by fixture-grade or policy-defined threshold engines. M4 uses topic/class plus this key for the first laptop smoke; semantic similarity remains a later policy or module concern.
contact/ref no string Optional reply/contact routing subject. Consumers MUST NOT infer a participant or node route from nym authorship when this field is absent.
context/facets yes array Normalized, low-resolution facets that help correlation without forcing raw disclosure.
confidence yes number Local confidence in the quality and relevance of the prepared signal.
disclosure/scope yes enum: private-correlation, federation-scoped, cross-federation, public-aggregate-only Maximum disclosure posture allowed for this signal. Distribution-surface selection honours this: private-correlation SHOULD travel via INAC direct exchange (proposal 042); wider scopes MAY use Agora. The SHOULD is intentional — public Agora deployments SHOULD refuse private-correlation at ingest (its publication properties conflict with the disclosure intent), while closed / intra-organization Agora federations MAY carry these whispers internally under their own ingest policy.
source/class no enum: direct-user, pod-user, operator-observed, derived-local, monus-derived, monus-sensorium-derived High-level origin class of the signal. monus-derived is used when a local Monus-like wellbeing module prepared the draft before Whisper publication. monus-sensorium-derived is used when Monus relied materially on Sensorium-originated local signals.
source/signal-kinds no array Optional high-level local signal classes that materially informed a derived or sensorium-assisted rumor draft.
signal/grade yes enum: low, moderate, high, critical Signal salience grade. For problem signals this grades protective risk and urgency. For inspiration signals this grades convergence strength, co-creation potential, or urgency of matching interested participants. Routing and disclosure policy MAY interpret the same scale differently by signal/polarity.
routing/profile yes enum: direct, relayed, onion-relayed Requested outbound transport posture.
routing/failure-mode yes enum: soft-fail, hard-fail Whether the sender allows downgrade if the requested transport posture cannot be satisfied.
relay/acceptable-classes no array Optional relay classes acceptable for outbound privacy realization.
forwarding/max-hops yes integer Maximum number of relay hops allowed for the signal.
forwarding/budget no integer Maximum number of bounded forwards allowed under local policy.
policy_annotations no object Optional implementation- or federation-local annotations that do not change the core semantics.

Conditional Rules

Rule 1

When:

{
  "properties": {
    "routing/profile": {
      "const": "direct"
    }
  },
  "required": [
    "routing/profile"
  ]
}

Then:

{
  "properties": {
    "forwarding/max-hops": {
      "const": 0
    }
  }
}

Rule 2

When:

{
  "properties": {
    "routing/failure-mode": {
      "const": "hard-fail"
    }
  },
  "required": [
    "routing/failure-mode"
  ]
}

Then:

{
  "properties": {
    "routing/profile": {
      "enum": [
        "relayed",
        "onion-relayed"
      ]
    }
  }
}

Field Semantics

schema

  • Required: yes
  • Shape: const: whisper-signal.v1

Content-level discriminator for consumers that inspect the payload outside its Agora or INAC envelope.

signal/polarity

  • Required: yes
  • Shape: enum: problem, inspiration

Fundamental polarity of the whisper signal. problem describes a distributed harm, failure, or dignity risk that may require correlation and protective response. inspiration describes a convergent idea, creative discovery, or emerging approach that may justify co-creation. Emergency handling MUST NOT be triggered solely by an inspiration signal.

epistemic/class

  • Required: yes
  • Shape: enum: rumor, weak-signal

Explicit epistemic class that prevents the artifact from being treated as evidence.

signal/text

  • Required: yes
  • Shape: string

Sanitized text accepted by the local user before publication.

signal/text-native

  • Required: no
  • Shape: string

Optional sanitized text in the original non-English language. Use this only when the original accepted user-facing wording is not English; English text stays solely in signal/text.

signal/text-native-lang

  • Required: no
  • Shape: string

BCP 47-like language tag for signal/text-native. This field is intentionally non-English; English originals MUST omit both native-text fields and use only signal/text.

topic/class

  • Required: yes
  • Shape: string

Normalized issue class used for bounded correlation. Distinct from the enclosing envelope's topic/key, which is an Agora routing key; topic/class is the semantic correlation class carried inside the rumor body.

signal/similarity-key

  • Required: no
  • Shape: string

Optional deterministic correlation key used by fixture-grade or policy-defined threshold engines. M4 uses topic/class plus this key for the first laptop smoke; semantic similarity remains a later policy or module concern.

contact/ref

  • Required: no
  • Shape: string

Optional reply/contact routing subject. Consumers MUST NOT infer a participant or node route from nym authorship when this field is absent.

context/facets

  • Required: yes
  • Shape: array

Normalized, low-resolution facets that help correlation without forcing raw disclosure.

confidence

  • Required: yes
  • Shape: number

Local confidence in the quality and relevance of the prepared signal.

disclosure/scope

  • Required: yes
  • Shape: enum: private-correlation, federation-scoped, cross-federation, public-aggregate-only

Maximum disclosure posture allowed for this signal. Distribution-surface selection honours this: private-correlation SHOULD travel via INAC direct exchange (proposal 042); wider scopes MAY use Agora. The SHOULD is intentional — public Agora deployments SHOULD refuse private-correlation at ingest (its publication properties conflict with the disclosure intent), while closed / intra-organization Agora federations MAY carry these whispers internally under their own ingest policy.

source/class

  • Required: no
  • Shape: enum: direct-user, pod-user, operator-observed, derived-local, monus-derived, monus-sensorium-derived

High-level origin class of the signal. monus-derived is used when a local Monus-like wellbeing module prepared the draft before Whisper publication. monus-sensorium-derived is used when Monus relied materially on Sensorium-originated local signals.

source/signal-kinds

  • Required: no
  • Shape: array

Optional high-level local signal classes that materially informed a derived or sensorium-assisted rumor draft.

signal/grade

  • Required: yes
  • Shape: enum: low, moderate, high, critical

Signal salience grade. For problem signals this grades protective risk and urgency. For inspiration signals this grades convergence strength, co-creation potential, or urgency of matching interested participants. Routing and disclosure policy MAY interpret the same scale differently by signal/polarity.

routing/profile

  • Required: yes
  • Shape: enum: direct, relayed, onion-relayed

Requested outbound transport posture.

routing/failure-mode

  • Required: yes
  • Shape: enum: soft-fail, hard-fail

Whether the sender allows downgrade if the requested transport posture cannot be satisfied.

relay/acceptable-classes

  • Required: no
  • Shape: array

Optional relay classes acceptable for outbound privacy realization.

forwarding/max-hops

  • Required: yes
  • Shape: integer

Maximum number of relay hops allowed for the signal.

forwarding/budget

  • Required: no
  • Shape: integer

Maximum number of bounded forwards allowed under local policy.

policy_annotations

  • Required: no
  • Shape: object

Optional implementation- or federation-local annotations that do not change the core semantics.