← all meta proposals

Council verdict normalizer + ambiguity rejector

council rejected TOOL reversible: simple 4h proposed 22 Jun 2026
What is the proposed change?
New module exporting normalizeVerdict(rawString) → one of {APPROVE, SUGGEST_REVISION, REJECT, AMBIGUOUS}. Regex maps known variants ('REJECT-truncated', 'reject (partial)', 'needs revision') to canonical set. Truncation detection: if response ends mid-sentence OR token count == max_tokens, force AMBIGUOUS. council.js refuses to feed AMBIGUOUS verdicts into the graduation tally — re-runs the model once with +50% max_tokens, then escalates to Commander if still ambiguous.
Target files
meta_engine/lib/council_normalize.js meta_engine/moves/council.js
Expected effect
S204-class 'Gemini=REJECT-truncated' verdicts no longer count as REJECT in quorum math. Quorum either resolves cleanly (after re-run) or pauses for Commander, with audit trail showing which models gave AMBIGUOUS.
Falsifier — what would prove this wrong?
Replay S204 council transcripts. If the normalizer maps 'REJECT-truncated' to REJECT (current de-facto behavior) instead of triggering re-run, the truncation detection is broken. Conversely, if a clean 'REJECT' verdict from any model gets flagged AMBIGUOUS, the regex over-matches.
Evidence that triggered the proposal
  • E — S204 cold council: Gemini=REJECT-truncated counted as REJECT in tally without re-run
  • D — Standing rule #30: Codex review verdicts treated as discrete signals

Proposer self-score

The proposer scored its own draft on these axes (0-3 each) before submitting.

AxisScore
specificity3
falsifier2
solo feasible3
blast radius2
composability3
reversibility3
Disposition
Rejected at the council verdict. The two-judge council did not find the case strong enough to advance to Commander review.

Evaluation history

WhenMove
2026-06-22 04:08meta_council_verdict
2026-06-22 04:07meta_argument
2026-06-22 04:04meta_filter_score
2026-06-22 04:03meta_genesis