← all meta proposals

signal_recency_decay term in composite_rank_score

council rejected HARNESS reversible: simple 4h proposed 1 Jun 2026
What is the proposed change?
Replace the `0.3 * h.signal_count` term at filter_score.js:211 with `0.3 * decayed_signal_count` where decayed_signal_count is computed by reading per-signal timestamps off the hypothesis row (signal_a_collected_at, signal_b_collected_at, signal_c_collected_at, signal_d_collected_at, signal_e_collected_at — if those columns are absent today, fall back to hypothesis.created_at as a single decay anchor for all signals). Decay function: weight = 1.0 if age_days <= 30, 0.7 if 30 < age_days <= 90, 0.4 if 90 < age_days <= 365, 0.0 if age_days > 365. decayed_signal_count = sum of weights across signals present. The composite floor at S107 Fix 3 (median_total >= 9) is unchanged because that floor is on filter_score_median_total, not the signal term.
Target files
hypothesis_engine/moves/filter_score.js
Expected effect
Hypotheses scored fresh (signals < 30d) see composite identical to today. Hypotheses that have been languishing in GATHER_MORE_SIGNAL for >90 days see their composite drop by 0.3-0.9 points and may fall out of the top-N graduation bucket. Stalled hypotheses naturally demote themselves.
Falsifier — what would prove this wrong?
Re-rank all currently-scored hypotheses with and without the decay term. If fewer than 10% of rank positions change, the decay slope is too flat — increase the 0.3 multiplier. If >50% of positions change including hypotheses whose newest signal is <30 days old, the decay function is wrong (it should leave fresh-signal hypotheses unaffected). The acceptable signal: rank changes concentrated on hypotheses with median signal age >90 days.
Evidence that triggered the proposal
  • D — hypothesis_engine/moves/filter_score.js:211 — composite formula uses raw signal_count with no age weighting
  • D — brain/proposals/s107-hypothesis-engine-v3.1-amendment.md Fix 2 — formula audit history; recency was never addressed

Proposer self-score

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

AxisScore
specificity3
falsifier3
solo feasible3
blast radius2
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:14meta_council_verdict
2026-06-01 04:11meta_argument
2026-06-01 04:08meta_filter_score
2026-06-01 04:05meta_genesis