pam ▸ docs/generated/ralph_loop_2026-03-16_candidate_review_event_stream.md
updated 2026-03-28

Ralph Loop 2026-03-16: Candidate Review Event Stream

Change

Added a candidate_review_done event to the continuous research loop.

Files: - research/continuous_loop.py - research/README.md - tests/test_continuous_loop.py

Why

The loop already wrote the live candidate-review packet into research/latest_state.json, but the step-level event stream stopped at replay evaluation. That meant Ralph could not see whether live review quality improved from one cycle to the next without opening the latest-state handoff.

Result

Each successful cycle now emits a compact candidate-review summary with:

  1. deployable, review, and research candidate counts
  2. deployment-gate readiness
  3. latest scan timestamp
  4. top invalidation reason
  5. top deployable/review/research tickers

This keeps candidate-review quality observable in the same place as backfill, replay, and search diagnostics.

Validation

Bottleneck After Change

This improves operator visibility, not candidate quality itself. The larger remaining issue is still weak eventful coverage and stale loop snapshots versus current replay/live scans.