Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,10 @@ version 2: its `{{ … }}` sequences become substitution points, and its

### 2

- §3.2 — a message of §§5–8 whose payload omits a required identity
field is malformed: a consumer **MUST NOT** index or act on it,
**MUST NOT** derive the value from context, topic or another field,
and **MUST** log the rejection at WARN naming the missing field.
- §8.6 (new) — `ovos.skill.loaded`, the session-keyed load announcement
with a registered `capabilities` vocabulary (`fallback`, `common_query`,
`converse`); withdrawn by `ovos.skill.deregister`. §10.3 (new) —
Expand Down
12 changes: 12 additions & 0 deletions intent-4.md
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,18 @@ Because the payload carries the identity that acts, a message of
a skill has no `skill_id` of its own to declare; §3.1 binds
skills, not every emitter.

The payload is not complete without its identity. A message of
§§5–8 whose payload omits a required identity field — `skill_id`,
`intent_name` or `entity_name`, or `lang` where the table above
requires it — is **malformed**. A consumer **MUST NOT** index or act
on it, **MUST NOT** derive the missing value from `context`, from
the topic, from the shape of another field, or from any other
source, and **MUST** log the rejection at WARN with the §5.3 fields
that are present, the rejecting topic, and the name of the missing
field. A registration lacking a third of its identity describes no
intent, and a consumer that repairs it silently leaves the producer
with no signal that its message was wrong.

Which sources may act on which targets is, deployment-wide, an
unsolved trust problem — a hardening decision this specification
cannot settle. Unguarded, `ovos.skill.deregister` (§8.4) is a remote
Expand Down