cyberine
UsageRun recipes

AdversarialJudge rationale carries the skeptics' reasons (kxqep)

AdversarialJudge already asked each skeptic for {"refuted": true|false, "reason": "..."}; the winning candidate's verdict.rationale now names the refuting skeptics' reasons instead of just the refuted/total count, e.g. refuted 2/3: (1) missed the stated edge case; (2) contradicts the constraint in the prompt. A surviving candidate's rationale is unchanged.

Regression guard (stub CompletionFn, no live provider): npm run selftest:adversarial-reason.

Known Limitations and Deferred Work: at most 3 reasons are shown per rationale, and each reason is capped to 300 characters (newlines stripped) before it is folded in — a skeptic with more than 3 co-refuting peers, or a very long reason, is summarized rather than shown in full. The Verdict type (src/core/Judge.ts) has no raw/details field, so the full per-skeptic vote list is not persisted anywhere beyond the capped rationale string.