Summary
conductor v0.1.18 ships type: set — a step that binds inline values into workflow context without calling any agent. Example:
set_defaults:
type: set
values:
threshold: 3
strategy: "{{ user_input.output.strategy | default('conservative') }}"
Polyphony currently uses type: script for short inline binding steps that don't do real computation — just format-conversion, default-filling, or label-setting before a gate. These could be replaced with type: set, eliminating PowerShell subprocess overhead and simplifying the YAML.
What to do
Audit workflows for type: script nodes whose scripts are under ~10 lines and only write values to CONDUCTOR_OUTPUT. Candidates:
- Preflight label/flag injectors
- Default-value inserters before gates
- Context assemblers that just rename or reshape fields
Replace with type: set where the values can be expressed as Jinja2 expressions.
Constraints
type: set values are Jinja2 expressions, not arbitrary code. Can't do conditionals with side effects.
- Only viable when the binding logic is stateless and expression-based.
Dependencies
- Requires conductor v0.1.18+ (already shipped)
- Polyphony CI pins
@main, so this is available now
Effort/Risk
Low effort per node, low risk. Purely additive/replacement. CI validates via conductor validate.
References
- Conductor v0.1.18 release notes:
type: set/wait/terminate steps
- Mahler adoption survey 2026-05-28 (decision inbox)
/cc Epic #521
Summary
conductor v0.1.18 ships
type: set— a step that binds inline values into workflow context without calling any agent. Example:Polyphony currently uses
type: scriptfor short inline binding steps that don't do real computation — just format-conversion, default-filling, or label-setting before a gate. These could be replaced withtype: set, eliminating PowerShell subprocess overhead and simplifying the YAML.What to do
Audit workflows for
type: scriptnodes whose scripts are under ~10 lines and only write values toCONDUCTOR_OUTPUT. Candidates:Replace with
type: setwhere the values can be expressed as Jinja2 expressions.Constraints
type: setvalues are Jinja2 expressions, not arbitrary code. Can't do conditionals with side effects.Dependencies
@main, so this is available nowEffort/Risk
Low effort per node, low risk. Purely additive/replacement. CI validates via
conductor validate.References
type: set/wait/terminatesteps/cc Epic #521