Summary
Control actions defined inline within controllers: entries in STPA YAML are no longer extracted as standalone control-action artifacts. This is a regression — the same YAML produced 19 control-action artifacts in an earlier rivet version (PR pulseengine/loom#61, merged 2026-03-22) but produces 0 in rivet 0.3.0.
Reproduction
In pulseengine/loom, safety/stpa/control-structure.yaml defines controllers with inline control actions:
controllers:
- id: CTRL-1
name: Parser
type: automated
control-actions:
- ca: CA-1
target: CP-1
action: Parse operator into Instruction variant
- ca: CA-2
target: CTRL-3
action: Report unsupported instructions in function
Seven controllers define a total of 19 control actions (CA-1 through CA-19).
$ rivet list --type control-action
0 artifacts
Expected: 19 control-action artifacts extracted, with issued-by links to their parent controllers and acts-on links to their targets.
Context
When PR pulseengine/loom#61 was merged, rivet stats reported 185 total artifacts including 19 control-actions. The current count is 144 — exactly 22 missing UCAs (see rivet#129) + 19 missing control-actions = 41 missing.
The control-action artifact type in the STPA schema expects:
yaml-section: control-actions (top-level section)
- Required fields:
action (string)
- Required links:
source (issued-by → controller), target (acts-on → controlled-process/controller)
The inline format inside controllers provides all the necessary data (ca = ID, action = description, target = acts-on target) but is not being parsed into standalone artifacts.
Expected Behavior
Either:
- Extract inline control actions from controller entries as standalone artifacts (as was done previously)
- Document that control actions must be in a separate
control-actions: top-level section
- Warn when controller entries have
control-actions: fields that aren't being extracted
Related
Environment
- rivet 0.3.0 (f43c442 feat/parallel-improvements 2026-04-07)
- Project: pulseengine/loom
Summary
Control actions defined inline within
controllers:entries in STPA YAML are no longer extracted as standalonecontrol-actionartifacts. This is a regression — the same YAML produced 19 control-action artifacts in an earlier rivet version (PR pulseengine/loom#61, merged 2026-03-22) but produces 0 in rivet 0.3.0.Reproduction
In
pulseengine/loom,safety/stpa/control-structure.yamldefines controllers with inline control actions:Seven controllers define a total of 19 control actions (CA-1 through CA-19).
Expected: 19
control-actionartifacts extracted, withissued-bylinks to their parent controllers andacts-onlinks to their targets.Context
When PR pulseengine/loom#61 was merged,
rivet statsreported 185 total artifacts including 19 control-actions. The current count is 144 — exactly 22 missing UCAs (see rivet#129) + 19 missing control-actions = 41 missing.The
control-actionartifact type in the STPA schema expects:yaml-section: control-actions(top-level section)action(string)source(issued-by → controller),target(acts-on → controlled-process/controller)The inline format inside controllers provides all the necessary data (
ca= ID,action= description,target= acts-on target) but is not being parsed into standalone artifacts.Expected Behavior
Either:
control-actions:top-level sectioncontrol-actions:fields that aren't being extractedRelated
Environment