← all meta proposals

Add temporal-specificity sanity gate to T-corpus ingest

filter rejected GATE reversible: simple 4h proposed 5 Jun 2026
What is the proposed change?
After parseJsonLoose in classifyDigestItem flow, insert a pre-acceptance sanity check that runs BEFORE the workflow-relevance LLM call. Three deterministic rules: (a) reject if any date string parsed from title/summary/why_it_matters exceeds today by >7 days (today = system clock); (b) flag (do not reject, but tag suspect=true) if summary contains an unsourced specific integer ≥1000 AND source_url is empty or domain ∉ {gartner.com, idc.com, mckinsey.com, ft.com, reuters.com, bloomberg.com, venturebeat.com, theinformation.com}; (c) reject if title contains a named company + a precise victim count and no source_url. Write rejections to inbox/<date>.json under rejected_temporal[] with rule_id. Add a stdout summary line `temporal-gate: kept N, rejected M`.
Target files
meta_engine/moves/digest_ingest.js
Expected effect
Re-running ingest over the last 30 days of digest items will reject digest-2026-06-04-007 (Air Canada Jan 2026 1,247 passengers — flagged by Gemini as hallucinated) and at least 1-2 other items where Gemini's review caught fabricated specifics. T-corpus items reaching genesis with `suspect=true` drop by ≥80%.
Falsifier — what would prove this wrong?
Replay last 30 days of digest items through the gate. If digest-2026-06-04-007 is NOT rejected by rule (a) or (c), the rule predicates are misdesigned. If <2 items total are rejected across 30 days, the gate is empty theatre and should be removed.
Evidence that triggered the proposal
  • E — brain/proposals/digest-2026-06-04-007.json — Gemini REJECT review naming Air Canada 1,247 figure as hallucinated; Opus also flagged 'unverifiable from materials provided'
  • D — brain/DESIGN_PRINCIPLES.md P85/P86 (compiled-view drift, write-time vs query-time): contamination must be caught at the write boundary, not query-time

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:14meta_filter_score
2026-06-05 04:04meta_genesis