Skip to content
The judging ladder

The judging ladder

PULSE’s agents propose. Before some proposals are saved or shown, a judge checks each one against the evidence the run actually gathered. This is the judging ladder, from the shared inference/judgement library, with the wire format from ui/judgement. It runs inside the PULSE process.

What is judged

ProposalWhere it appears
Channel prescriptionsDiagnostic.channel_prescriptions
Brand-visibility insightsDiagnostic.brand_visibility
Content gapsContentGapsResponse.gaps
Content pillarsContentStrategyResponse.pillars
Roadmap phasesStrategyRoadmapResponse.phases

The evidence is what that run collected: your intake answers, the scraped website, web research, Google Analytics and Google Ads signals, and the latest diagnosis findings.

What the verdict does

VerdictEffect
ConcurThe proposal is kept, with its verdict attached.
Unable to judgeThe proposal is kept and marked.
DissentThe proposal is withheld. It appears only in the response’s judgements set, with accepted=false.

A withheld prescription never becomes a draft or a scheduled post, because the diagnosis fans out only what was kept.

Each judged message carries a judgement field, and each response carries a judgements set that lists every verdict (accepted and rejected) with the judge’s counts. Any verdict fields the model wrote itself are stripped from its output first. The judge is the only source of a verdict.

Turning it off

Set PULSE_JUDGEMENT=off. Every proposal then passes unjudged, and the judgement fields are unset.