FlowDrop Workflow Specification 1.0-draft

A hidden port cannot be filled through the bundle

Decomposition filters on connectable alone, so a hidden port's key can survive the unpacking. Resolution then applies the exposure gate a second time. Two guards, one outcome: a hidden port is not fillable, by any route.

The rule

Normative: this is the rule
  1. Decomposition of the unified input port (CFG-16) admits a key on the strength of connectable alone.
  2. A value that reaches a hidden connectable port this way is still discarded when the parameter is resolved, because priority 1 requires the port to be exposed (CFG-4).
  3. Bundling a value must never fill a port that could not be wired directly.

What it means

Passing a value through the bundled input port and wiring it directly to a port are, for a hidden port, the same thing tried two ways — and both fail. The bundle's own filter only checks whether a key names a connectable parameter (CFG-16); it says nothing about exposure, so a hidden but connectable key survives the unpacking and lands in the runtime inputs under its own name. Priority 1 is then asked again, on that unpacked key, and this time the exposure gate is the one guarding it (CFG-4): a hidden port fails that gate regardless of how its value arrived. The parameter falls through to whatever priority 2 or later would have given it anyway, exactly as if the bundle had never carried the key at all.

Example

A step's hidden parameter is connectable but not exposed by default, and also configurable, with a stored value of its own. A bundle delivered to the step's reserved input port carries a hidden entry:

The value the bundle carries for hiddenunpacked
"must_be_dropped_at_regate"
What resolution assigns the hidden parameterresolved
"config_wins_over_unified"

The bundled value is unpacked and then discarded at the same gate a direct wire would have hit; what the step actually receives is the value resolution falls through to instead.

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 · CFG-17 · changed in spec 1.0