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¶
doc/project/20-memos/orbiplex-whisper.mddoc/project/20-memos/orbiplex-anon.mddoc/project/30-stories/story-005-whisper-rumor-intake.mddoc/project/40-proposals/013-whisper-social-signal-exchange.mddoc/project/40-proposals/015-nym-certificates-and-renewal-baseline.mddoc/project/40-proposals/035-agora-topic-addressed-record-relay.mddoc/project/40-proposals/041-agora-ingest-attestation.mddoc/project/40-proposals/042-inter-node-artifact-channel.md
Project Lineage¶
Requirements¶
doc/project/50-requirements/requirements-006-node-networking-mvp.mddoc/project/50-requirements/requirements-010-middleware-executor.mddoc/project/50-requirements/requirements-011-dator-arca-contracts.mddoc/project/50-requirements/requirements-014-resource-opinions.md
Stories¶
doc/project/30-stories/story-001-swarm-node-onboarding.mddoc/project/30-stories/story-004-pod-client-onboarding.mddoc/project/30-stories/story-005-whisper-rumor-intake.mddoc/project/30-stories/story-006-buyer-node-components.mddoc/project/30-stories/story-006-voluntary-swarm-exchange.mddoc/project/30-stories/story-007-settlement-capable-node.mddoc/project/30-stories/story-008-cool-site-comment.md
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.