Appearance
Skills and executors
A skill reads a story and raises a warning for editorial attention: a claim with no source, a lower third about to air behind a pending standards gate. It never changes the story itself.
SOM 1.0 defines the skill.warning.raised message and a story's skills_config. The SOM skill library (0.2.2) describes skills. Neither says what the code running a skill does on a bus; RND's executor contract fills that gap, and these pages follow it.
Terms
| Term | Meaning |
|---|---|
| Skill | A file in the SOM skill library. A specification, not code: skills declare, executors evaluate and emit |
| Executor | The code that runs skills for one tool (a rundown, a MAM, a CMS…). A sidecar to the tool, not a newsroom-wide service. One executor may run many configured instances of many skills |
| Configured instance | One skill with one house's values loaded, watching one condition. The house registers it on the bus, and its instance_label is the rule_id on its warnings |
| Trigger | A delivered message whose message_type is in the skill's recall_on list |
| Declaration | The condition one configured instance watches, on one story, at one scope, while it holds. It opens, may change, and closes |
| Suite | som-<SOM version>+lib-<library version>. These pages are for som-1.0.0+lib-0.2.2 |
On the bus
An executor is both a consumer and a producer:
story.context ──▶ your consumer queue ──▶ executor ──▶ evaluate ──▶ skill.warning.raised ──▶ bus
(and its other triggers) (sidecar to one tool)| It | How | Status |
|---|---|---|
Receives story.context and its other triggers | A consumer connection, filtered by message type, read over the HTTPS pull API. See Consumer connections | Available now |
Publishes skill.warning.raised | As a connected producer app granted skill.warning.raised (or skill.*). See Credentials | Available now |
| Is tested against the suite | The skill harness in Test runs | Available now |
| Runs the configured instances the house registered for it | The house registers each one, with its values and authority scale, and binds it to the executor's consumer connection; the executor reads them from the bus. See Registrations and Run skills in your house | Available now |
What a skill may and may not do
| A skill | Source |
|---|---|
Reads the whole snapshot. story.context is never a delta: a field that's absent is absent | SOM |
Publishes only skill.warning.raised on its own behalf | Skill library |
Never changes content. No story.context, no edits to assets, no config writes: every library skill is auto_change_content: false | Skill library |
Fails closed. A watched field present but unreadable, or config missing, is treated as the condition holding, at the loudest severity the skill allows, and detail says what couldn't be read. A watched field that's absent is a non-match | Skill library |
| Is independent of other configured instances, except through the bus like any other system | Skill library |
| Never turns a flag into a gate itself. The story's owner does, in its next snapshot | RND position P-13 |
Severity
| Severity | Means | What the bus does |
|---|---|---|
hold | Tools must withhold output on the affected fields | Carries it. The bus doesn't enforce a hold: the tools that act on the warning do |
flag | Mark for review | Carries it |
inform | Advisory | Carries it |
Holds combine: any one hold means held. A flag never withholds anything by itself.
Scope
A warning is about a story, an asset or a link: scope is story:<story_id>, asset:<asset_id> or link:<link_id>, the level the configured instance evaluates at.
Where each rule comes from
These pages label every rule with its source, so you know what's the standard and what isn't:
| Label | Source |
|---|---|
| SOM | SOM 1.0's schemas and conformance rules. Normative |
| Skill library | The skill file, and the library's conventions. Upstream, still a draft |
| P-nn | An RND position, where SOM and the library are silent or disagree. Ours, not the standard |
| The bus | What SOM Managed Bus refuses, with its rule id. Another bus may do less |
Results read "passes som-bus suite som-1.0.0+lib-0.2.2", never "certified" or "compliant".
A working executor
RND's reference executor for raise-flag-on-match is open source in sombus-dev-kit (Apache 2.0). Read it next to these pages, start your own from it, or run it against your vendor workspace and grade it with the skill harness. Its README maps each section of the skill file to the code, cites the positions it follows, and says what it doesn't do yet.
The newsroom's side of skills (which ones a house runs, with which values, and who acts on a warning) is in Skills for publishers.
Next: A warning that validates.