Skip to content

Available now

A warning that validates ​

An executor publishes exactly one kind of message on a skill's behalf: skill.warning.raised. Build it from the SOM 1.0 schema, not from the sample warnings in the skill files.

The skill library's samples don't validate

The 0.2.2 samples use a wrn-… warning_id (the schema wants a UUID), a null skill_warning_ref (it wants a string) and, in one skill, a system_type outside SOM's list. SOM 1.0 refuses all three, and so does the bus. Load Skill warning copied from the skill library sample in the Playground to see the verdict. RND's position: P-01.

The envelope ​

FieldValueSource
som_version"1.0.0"SOM
message_idA UUID (UUIDv7 recommended), new per warning, and the same on a retry of that warningSOM, P-10
correlation_idThe trigger's correlation_id: the story'sSOM
causation_idThe trigger's message_id. Always set it, although SOM makes it optionalSkill library
message_type"skill.warning.raised"SOM
timestampWhen the evaluation produced the warning, RFC 3339SOM
originating_systemA system_id your connection may stamp; a system_type from SOM's listSOM, the bus, P-02
topic"som.skill.warning.raised"SOM (must start som.)

system_type must be one of SOM 1.0's values. The library's own tool types (rundown, mam, playout, cms…) aren't, apart from graphics and archive, and are refused with envelope.enum. Which value to use is P-02.

The payload ​

All twelve required fields, and nothing the schema doesn't define.

FieldRuleCommon mistake
warning_idA UUID (UUIDv7), new for each warning"wrn-7f2c9a41", copied from the samples
skill_idThe upstream id, smart-stories/<name>, never renamed–
skill_versionThe version of the skill file you implement: "0.2.2" in this suite"v2"
story_idThe snapshot's story_id–
scopestory:<story_id>, asset:<asset_id> or link:<link_id>An instance reference. SOM says never, although the schema only checks that it's a string
severityhold, flag or inform, lower case, within the skill's range"FLAG", "warning"
rule_idThe configured instance's label–
non_overridabletrue for hold, otherwise falseLeft out
affected_fieldsField paths in the story, such as ["lifecycle.phase"]–
detailPlain words: what was read, what it was compared with, and what clears it–
blocks[] unless severity is hold; then what is withheldLeft out when empty
skill_warning_refA string naming the declarationnull, copied from the samples. See P-09
message_typeOptional. If present, "skill.warning.raised"A different value: refused with payload.message_type_mismatch

A complete warning ​

raise-flag-on-match, configured instance house-breaking-indicative-category, triggered by snapshot 6 of the hurricane run:

json
{
  "som_version": "1.0.0",
  "message_id": "0199a1c4-7b90-7d12-9c3e-5a1f0b2c3d41",
  "correlation_id": "0199a1c4-5b10-7c3a-9e4f-2a6b8c0d1e22",
  "causation_id": "0199a1c4-7a2e-7b31-8c55-4d2f9e6a1b07",
  "message_type": "skill.warning.raised",
  "timestamp": "2026-09-11T16:41:00.412000Z",
  "originating_system": { "system_id": "planning-01", "system_type": "ncs" },
  "topic": "som.skill.warning.raised",
  "payload": {
    "warning_id": "0199a1c4-7b90-7d12-9c3e-5a1f0b2c3d42",
    "skill_id": "smart-stories/raise-flag-on-match",
    "skill_version": "0.2.2",
    "story_id": "hurricane-2026-0911",
    "scope": "story:hurricane-2026-0911",
    "severity": "flag",
    "rule_id": "house-breaking-indicative-category",
    "non_overridable": false,
    "affected_fields": ["lifecycle.phase"],
    "detail": "indicative-category declared: lifecycle.phase reads BREAKING, which matches BREAKING. Cleared by an assertion at or above duty-editor on this story.",
    "blocks": [],
    "skill_warning_ref": "house-breaking-indicative-category/story:hurricane-2026-0911/1",
    "message_type": "skill.warning.raised"
  }
}

Checkpoint ​

  • [ ] My warnings pass the Playground: warning_id a UUID, skill_warning_ref a string, system_type from SOM's list.
  • [ ] Every warning carries the trigger's correlation_id, and its message_id as causation_id.

Next: How an executor behaves.

SOM is an open standard maintained by the SOM working group. This service is not endorsed by it.