Skip to content

Declare output schemas on polyphony's script-agent steps (conductor 9d603a1) #537

Description

@PolyphonyRequiem

Summary

conductor v0.1.17+ allows script: agents to declare \output:\ schemas just like LLM agents (#118 / commit 9d603a1 in microsoft/conductor). Polyphony's lifecycle-dispatch scripts (lifecycle-router.ps1, batch-integrator.ps1, etc.) currently emit JSON to stdout with no declared schema, so conductor cannot validate output fields at schema-parse time.

What to do

For each script node in .conductor/registry/workflows/\ that emits structured JSON, add an \output:\ schema declaration matching the emitted shape. This closes the M2-class footgun for script-node outputs and enables the Jinja path resolver lint to validate script outputs.

Files to audit


  • oot-item-dispatch.yaml\ — lifecycle-router, state-detect, emitter scripts

  • oot-batch-dispatch.yaml\ — aggregate_renegotiation, batch-integrator
  • \polyphony.yaml\ — outer_loop_evaluator, preflight_sync
  • Any other workflows with \ ype: script\ nodes that emit JSON

Effort/Risk

~1-2h per workflow (mechanical annotation pass). Low risk — adds schema; doesn't change runtime behavior.

References

  • Conductor commit 9d603a1: \ eat(script): allow script agents to declare output schemas\
  • conductor-mechanics skill M2: LLM Agent Output Schemas (same footgun for script nodes)
  • 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