--- id: ORC-8 family: RT-ORC level: extended profiles: [runtime] posture: normative-target added: "1.0" changed: "1.0" source: https://flowdrop.io/spec/rules/rt-orc/orc-8 specification: FlowDrop Workflow Specification 1.0-draft licence: CC BY 4.0 --- # ORC-8 — Naming a firing trigger drops the other triggers *RT-ORC (Part II) · level: extended · profiles: runtime · added in 1.0* ## The rule > **Normative.** This is the rule. > > 1. 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. > > 2. Where it does not, the compiled order runs verbatim. > > 3. 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: ```json title="A run naming the trigger that fired" verdict="filtered" { "trigger_node_id": "cron_trigger" } ``` ```json title="The compiled order, filtered to that trigger" verdict="filtered" ["cron_trigger", "worker"] ``` ```json title="A run naming no trigger at all" verdict="unfiltered" {} ``` ```json title="The compiled order, run verbatim" verdict="unfiltered" ["cron_trigger", "webhook_trigger"] ``` ## Related rules - Names: ORC-7 --- Rule identifiers are permanent and are never renumbered. This specification carries no implementation status: each implementation publishes its own standing against these rules. Licensed CC BY 4.0.