--- id: CMP-6 family: RT-CMP level: core profiles: [runtime] posture: normative-target added: "1.0" changed: "1.0" source: https://flowdrop.io/spec/rules/rt-cmp/cmp-6 specification: FlowDrop Workflow Specification 1.0-draft licence: CC BY 4.0 --- # CMP-6 — Which nodes reach the execution graph *RT-CMP (Part II) · level: core · profiles: runtime · added in 1.0* A loop head needs a forward entry edge: being reachable by loopback alone is not enough to be scheduled, even though every re-enterable node type carries a loopback port. ## The rule > **Normative.** This is the rule. > > 1. A node is excluded from the execution graph if its type is non-executable, if it is wired only as a tool provider, or if its only incoming edges are loopback edges. > > 2. A node with no incoming edges is included, and so is a node with no edges at all. > > 3. The exclusions are applied in that precedence. ## What it means Being wired to something real does not earn a node a place in the execution graph. A node whose type is marked non-executable is excluded regardless of what touches it — including an ordinary incoming connection from a node that does run — because the exclusion is decided from the node's own type before its wiring is considered at all. The same precedence protects the opposite case: a node with no edges at all, or none incoming, is included rather than treated as an orphan to drop. ## Example A record-only node wired downstream of a node that does run: ```json title="A record-only node with a real incoming connection" verdict="given" { "nodes": [ { "id": "input", "type": "text_input" }, { "id": "mynote", "type": "note" } ], "edges": [{ "source": "input", "target": "mynote" }] } ``` ```json title="What compilation records for it" verdict="excluded" { "id": "mynote", "reason": "non_executable" } ``` The upstream node is unaffected — only the record-only one is left out of the execution graph. ## Related rules - Names: CMP-5 - Referenced by: CMP-1, CMP-5 --- 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.