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

Ralph Loop 2026-03-16: Candidate Review Unmatched Sleeve Concentration

Why this change

research/latest_state.json showed top_research_candidate_sleeves being dominated by no_semantic_sleeve_match. That made sleeve concentration diagnostics less truthful, because unmatched coverage gaps were being reported as if they were a real sleeve family.

Bounded change

Adjusted candidate-review diagnostics so:

  1. top_*_sleeves excludes no_semantic_sleeve_match
  2. unmatched rows are still tracked via: - unmatched_semantic_sleeve_count - unmatched_review_candidate_count - unmatched_research_candidate_count
  3. status summaries and loop events now expose the per-state unmatched counts

This keeps sleeve concentration focused on actual sleeve families while preserving explicit visibility into uncovered live rows.

Validation

Focused tests:

pytest -q tests/test_candidate_review.py tests/test_continuous_loop.py tests/test_research_status.py

Result:

Live packet smoke check:

python3 -m research.candidate_review --db data/unicorn.db --recent-runs 6 --max-per-state 3

Relevant output after the change:

Outcome

This improves candidate review quality without loosening any trade gate. Operators can now distinguish actual sleeve concentration from plain sleeve-coverage gaps.