-- Split the evaluator's two audiences. -- -- `reason` is written for the operator and may quote whatever the judge found. -- It was also being fed straight back to the agents as their brief for the next -- pass, which taught them to satisfy the checker: a phase whose condition named -- a literal token was judged complete on pass 2 because pass 1's reason said -- the token was missing, and an agent printed it. -- -- `guidance` is the agent-facing half — the unmet dimension without the -- acceptance text — and is sanitized before it is stored. `checks` records the -- verification commands the judge ran, so an operator can see whether a verdict -- rests on evidence or on the agents' own claims. ALTER TABLE mission_phase_evaluations ADD COLUMN IF NOT EXISTS guidance TEXT, ADD COLUMN IF NOT EXISTS checks JSONB NOT NULL DEFAULT '[]'::jsonb; -- Existing rows predate the split; their reason was what the agents saw. UPDATE mission_phase_evaluations SET guidance = reason WHERE guidance IS NULL;