Challenge the premise
The issue asks us to reject whitespace-only messages. The probe shows the SDK already throws the expected validation error. This work order should stop rather than expand into an adjacent cleanup.
{
"claimSupported": false,
"disposition": "unsupported",
"openQuestions": [],
"evidence": [
{ "command": "pnpm test ...", "result": "empty message rejected" }
]
}Stopping preserves trust and reviewer time. The factory should explain the contradiction without smuggling in a nearby change.
Let Contradictory Evidence Stop the Line
Stop or redirect a work order when evidence cannot support the requested change.
Hands-on Exercise 3.3
Add two fields to agent/subagents/investigator/agent.ts:
disposition: {
enum: ["proceed", "needs-clarification", "unsupported"],
type: "string",
},
openQuestions: { items: { type: "string" }, type: "array" },Add both names to required. openQuestions: [] means the Investigator has enough information to decide.
Update the Investigator instructions:
If the premise is unsupported, set `disposition` to `unsupported` and explain the contradictory evidence. If a decision requires missing product intent, set `disposition` to `needs-clarification` and ask focused questions. Produce a buildable specification only when `disposition` is `proceed`.Now add the matching boundary to the root agent/instructions.md. Place it immediately after the Investigator returns:
Read the Investigator disposition before any implementation handoff. For `unsupported`, record the contradictory evidence, set the work order to `stopped`, and explain why no code change was created. For `needs-clarification`, ask the returned questions and stop. Delegate to the Builder only when the disposition is exactly `proceed`.The position matters. Check the disposition before the Builder handoff so unsupported work cannot reach implementation.
Try It
Run the static checks:
pnpm typecheck
pnpm exec eve infoThen invoke the factory with the false-premise fixture:
pnpm exec eve invoke "$(cat fixtures/issues/false-premise-example.md)"Inspect the final work order. It should contain the probe and the stop decision, with no Builder delegation and no candidate branch.
Run the recorded overview again for comparison:
pnpm traceIssue 44 should stop after investigation. Issue 42 should continue. The same bug lane can now produce two correct outcomes.
Commit
git add agent/subagents/investigator agent/instructions.md
git commit -m "feat(factory): stop unsupported work"Done-When
- Every investigation returns an explicit disposition
- Unsupported work records contradictory evidence
- Missing product intent produces focused questions
- Only
proceedcan reach implementation - A stopped work order creates no branch
An evidence-backed decision to change zero files is a successful result. Supported work can now proceed to a Builder with scoped write access.
Solution
The completed contract requires every field listed in the exercise, including disposition and openQuestions. The root instructions inspect that disposition before any Builder handoff.
Was this helpful?