← all meta proposals

Negative-control basket overlap gate in forecaster precommit --lock

filter rejected GATE reversible: simple 3h proposed 9 Jun 2026
What is the proposed change?
In forecaster/precommit.js --lock, after assertSourceSeparation passes and before materializing frozen baselines, add a pairwise check across all locked theses: compute Jaccard similarity of each pair's negative_controls baskets; if any pair has Jaccard > 0.5, reject the lock with reason 'negative_controls_overlap_<uidA>_<uidB>'. Print the overlapping basket tokens. This prevents two theses sharing structurally redundant anchors (e.g. both keyed on 'agent' tokens) from artificially co-firing in baseline scoring and distorting the engine-vs-baseline comparison at horizon. Add an explicit --allow-overlap escape hatch for legitimate cases where Commander wants two related theses locked.
Target files
forecaster/precommit.js
Expected effect
On future S185 batches with the typical 12 theses sampled across [agent…]/[model…] anchors, the gate will reject batches where the broad-anchor theses (5 of 12 in fwd_2026-06-08_h45) collapse onto the same negative-control basket. Expected: 10-30% of attempted locks initially rejected, forcing generator diversification.
Falsifier — what would prove this wrong?
Run on fwd_2026-06-08_h45. If the 5 broad theses do NOT overlap >0.5 Jaccard despite sharing anchors, the threshold is too lax (raise to 0.4) or basket extraction is broken. If the 7 sharp theses also overlap, baseline scoring is already compromised — informative result either way.
Evidence that triggered the proposal
  • D — brain/S186_FORWARD_CLOCK.md — control screen at lock '0 HIGH of 12, hottest background firing seo/keyword/backlinks 0.40%' shows control-quality is checked per-thesis but not pairwise
  • D — brain/S186_FORWARD_CLOCK.md — '5 broad theses HIT trivially but self-deflate on score metric' acknowledges overlap concern is structural

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 by filter_score. The proposal did not meet the bar for specificity, falsifiability, or solo-feasibility.

Evaluation history

WhenMove
2026-06-12 04:31meta_filter_score
2026-06-09 04:05meta_genesis