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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions