FlowDrop Workflow Specification 1.0-draft

Every re-enterable node gets a hidden loop-back input

Re-entry is a property of the graph, not of a handful of node types. Every node that can be re-entered declares the port; it just ships hidden, so no canvas gains a re-entry handle until an author asks for one.

The rule

Normative: this is the rule
  1. A reserved loop_back input is injected on every re-enterable node type (every node type that is not a start, terminal or non-executable one) with display order 95 and the trigger lane, and it ships hidden, so no canvas gains a re-entry handle until an author exposes the port on that instance.
  2. A node type that declares its own loop_back keeps it and the injection is skipped, because such a declaration carries semantics the injection does not.
  3. Because the port is now declared rather than absent, an edge drawn into an unexposed loop_back is refused as an edge into an unexposed port, where previously it fell outside the check entirely.

What it means

The injected port ships hidden by default, so declaring re-entry legal on every eligible node type does not put a re-entry handle in every editor — an author still has to expose it per instance before a wire can land there. Where a node type already declares its own loop_back, the injection does not run at all: the declared port is kept as-is, not merged with or replaced by the injected one.

Example

exposedByDefault of the loop_back input injected on an ordinary node typehidden
false
The name of the only loop_back input on a node type that declares its ownkept
"Custom Loop Back"
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 · SCH-32 · changed in spec 1.0