Close the scientific lifecycle loop by implementing and running a hypothesis validation gate that promotes top-scoring hypotheses to `validated` status. Currently 0 of 1,967 hypotheses are validated despite 221 being promoted and 88 having composite_score >= 0.8, 3,729 predictions, and 724 proposed experiments.
**Why this matters:** SciDEX's value proposition is not just generating hypotheses but validating them. 0 validated = platform's most important scientific output is absent.
**Validation criteria (all three must pass):**
1. composite_score >= 0.80 OR confidence_score >= 0.80
2. evidence_for JSONB array length >= 3 (real citations, not empty)
3. At least 1 debate session linked via analysis_id with quality_score > 0.5
**What to do:**
1. Read scidex/agora/hypothesis_lifecycle.py and docs/planning/alignment-feedback-loops.md
2. Read spec: docs/planning/specs/agora_hypothesis_validation_gate_spec.md
3. Query eligible hypotheses (expect 25-70 rows)
4. Update status='validated', add validated_at column (migration), write hypothesis_events row
5. Generate one-paragraph validation summary per hypothesis, store in validation_notes column
6. Add /api/hypotheses/validated endpoint returning JSON list
7. Commit schema migration, script, and API route in one PR
**Success metrics:** >= 25 hypotheses in validated status; validated_at populated; /api/hypotheses/validated endpoint works
**Do NOT:** Change composite_score calculation, invalidate non-passing hypotheses, create new recurring CI
Completion Notes
Auto-completed by supervisor after successful deploy to main