← all meta proposals

closed_thesis_distance machine-readable rejection gate in genesis

council rejected GATE reversible: simple 3h proposed 1 Jun 2026
What is the proposed change?
After the proposer returns a parsed candidate JSON in runGenesis (before the dedup pass at filter_score.js:491), add a synchronous gate that scans candidate.title + candidate.description for any token in the S128 trigger lexicon {graded, audit, calibration, forecast QA, reality-resolved, evidence-graded, scorecard, drift monitor, claim verification}. If any token hits AND candidate.closed_thesis_distance is missing, empty, or equals 'inside_thesis_territory', return {admitted: false, reason: 'closed_thesis_gate_violation'} without calling council or dedup. If closed_thesis_distance === 'borderline_with_defense', additionally require candidate.defense to be a string of >=10 words; otherwise reject with reason 'closed_thesis_gate_missing_defense'. Currently the prompt at genesis.js:38-46 asks the proposer to set the field, but enforcement is left to the model. The new gate fires before any cost-bearing dedup/council call so refusal cost is one parse.
Target files
hypothesis_engine/moves/genesis.js
Expected effect
Re-running the proposer with the S128 trigger lexicon present in 50 candidates should produce ~10-20 admissions blocked at the new gate (today they slip through to dedup/council). Per-genesis-cycle cost drops by the dedup+council spend on blocked candidates (~$0.02-0.05 per save).
Falsifier — what would prove this wrong?
Backfill the gate against the 19 S128-archived hypotheses. If fewer than 15 of them would have been rejected by this gate (using their stored title+description, with closed_thesis_distance set to its actual archived value or absent), the trigger lexicon is too narrow or the field schema does not survive proposer output. Conversely, if backfilling against the 12 currently-active non-archived hypotheses produces >2 rejections, gate is over-broad.
Evidence that triggered the proposal
  • D — hypothesis_engine/moves/genesis.js:38-46 — S128 closed thesis doctrine + closed_thesis_distance prompt requirement
  • D — hypothesis_engine/moves/genesis.js:170-176 — S136 active-pool diversification note: 'embedding+LLM dedup correctly kills them as same-product. The bottleneck is the proposer, not the filter.'

Proposer self-score

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

AxisScore
specificity3
falsifier3
solo feasible3
blast radius3
composability2
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-01 04:12meta_council_verdict
2026-06-01 04:09meta_argument
2026-06-01 04:06meta_filter_score
2026-06-01 04:05meta_genesis