Skip to content

Replace trivial script-binding steps with type: set (conductor v0.1.18) #539

Description

@PolyphonyRequiem

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions