Naming a firing trigger drops the other triggers
The rule
Normative: this is the rule
- Where a run's initial data names a trigger node, direct synchronous execution runs that trigger node and drops the workflow's other trigger nodes.
- Where it does not, the compiled order runs verbatim.
- Nodes that are not triggers are never filtered.
What it means
The filter is opt-in, keyed only on whether a run's initial data names a trigger node. Naming one selects exactly that trigger to run and drops every other trigger node the workflow declares — but only trigger nodes are ever dropped this way; anything downstream of the firing trigger still runs exactly as compiled.
Leaving the name out — a manual or externally launched run, rather than one started by a specific trigger firing — runs the compiled order verbatim, trigger nodes included.
Example
A workflow with two trigger nodes feeding a shared step, launched two ways:
{ "trigger_node_id": "cron_trigger" }["cron_trigger", "worker"]{}["cron_trigger", "webhook_trigger"]Rule identifiers are permanent and are never renumbered. Each implementation publishes its own standing against these rules; this specification does not.spec 1.0-draft · ORC-8 · changed in spec 1.0