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

Ralph Loop 2026-03-16: Eventful Miss Quality

Change

Added a replay-input diagnostic that splits large later movers missed by the eventful tagger into:

  1. large_move_scored_untagged_rows
  2. large_move_unscored_untagged_rows
  3. max_large_move_untagged_score
  4. avg_large_move_untagged_score

These now flow through research.prepare_replay, research.status, research.discord_status, and research/README.md.

Why

large_move_untagged_rows alone was not enough. It told Ralph that large later moves were being missed, but not whether those rows were close to the eventful threshold or had no eventful support at all. That distinction matters:

  1. scored misses suggest threshold calibration
  2. unscored misses suggest missing observation features

Validation

Commands:

PYTHONPATH=. pytest -q tests/test_prepare_replay.py tests/test_research_status.py
python3 main.py research-status
python3 main.py research-discord-status

Result:

6 passed in 0.03s

Smoke check from current replay snapshot:

current replay move coverage: moved=28/1280 large_move=28 large_move_untagged=28 scored=0 unscored=28 max_untagged_score=0.0

Interpretation

The current bottleneck is not a near-threshold calibration problem. Every currently observed large move missed by the eventful layer was fully unscored. The next bounded PRD-001 improvement should target missing eventful features or journal-selection inputs, not just lower the 0.18 threshold.