Summary
When using the conductor-bootstrap config (which triggers debug-workflow), the tester agent consistently fails with JSON schema validation errors even though the agent completes successfully and the underlying work is correct.
Error
Error: Agent tester output failed JSON schema validation:
#/required must have required property 'approved'
#/required must have required property 'summary'
#/required must have required property 'commandResult'
#/required must have required property 'rootCauseVerification'
#/required must have required property 'testVerification'
Root Cause
The tester agent in debug-workflow.json runs with stream-json output format (for live log visibility). In this mode, zeroshot validates the structured_output field of the final stream-json result against the agent's output schema after the fact.
However, because --json-schema is silently ignored when outputFormat !== 'json' (see runner.js → resolveJsonSchema), Claude is never told about the required schema shape. Claude produces its standard stream-json structured_output with {"summary": "...", "result": "..."} instead of the schema-required fields (approved, commandResult, rootCauseVerification, testVerification).
The result: schema validation always fails for the tester agent, causing the cluster to reject valid work and retry indefinitely.
Evidence
From task log, Claude's structured_output:
{
"summary": "Fix already applied in iteration 1; tester rejection was tester agent crash, not code issue",
"result": "ROOT CAUSE FIX: ..."
}
The agent itself noted: "The previous rejection was due to the tester agent crashing with JSON schema validation errors — the code fix was correct and already applied."
Expected Behavior
Either:
- The tester agent should use
strictSchema: true in debug-workflow.json so --output-format json --json-schema <schema> is passed to Claude, enforcing the schema natively, or
- When a
jsonSchema is defined on an agent, the system prompt should inject the schema shape so Claude knows to produce it even in stream-json mode
Config Used
conductor-bootstrap (out of the box, no customization)
Summary
When using the
conductor-bootstrapconfig (which triggersdebug-workflow), thetesteragent consistently fails with JSON schema validation errors even though the agent completes successfully and the underlying work is correct.Error
Root Cause
The
testeragent indebug-workflow.jsonruns withstream-jsonoutput format (for live log visibility). In this mode, zeroshot validates thestructured_outputfield of the final stream-json result against the agent's output schema after the fact.However, because
--json-schemais silently ignored whenoutputFormat !== 'json'(seerunner.js→resolveJsonSchema), Claude is never told about the required schema shape. Claude produces its standard stream-jsonstructured_outputwith{"summary": "...", "result": "..."}instead of the schema-required fields (approved,commandResult,rootCauseVerification,testVerification).The result: schema validation always fails for the tester agent, causing the cluster to reject valid work and retry indefinitely.
Evidence
From task log, Claude's
structured_output:{ "summary": "Fix already applied in iteration 1; tester rejection was tester agent crash, not code issue", "result": "ROOT CAUSE FIX: ..." }The agent itself noted: "The previous rejection was due to the tester agent crashing with JSON schema validation errors — the code fix was correct and already applied."
Expected Behavior
Either:
strictSchema: trueindebug-workflow.jsonso--output-format json --json-schema <schema>is passed to Claude, enforcing the schema natively, orjsonSchemais defined on an agent, the system prompt should inject the schema shape so Claude knows to produce it even instream-jsonmodeConfig Used
conductor-bootstrap(out of the box, no customization)