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

Ralph Loop 2026-03-16: Replay Metadata Side Split

Change

Bounded replay-quality improvement for PRD 001 / PRD 004:

  1. research/prepare_replay.py now summarizes eventful metadata coverage for large-move replay pairs separately on the entry side and the later paired side: - large_move_entry_eventful_metadata_rows - large_move_next_eventful_metadata_rows
  2. research/continuous_loop.py now emits per-side metadata counts in replay_prepare_done events.
  3. research/status.py and research/discord_status.py now print metadata coverage as entry/next/pair instead of a single opaque pair count.
  4. research/README.md documents the new diagnostics.

Why

The current replay bottleneck is data quality, not sleeve aggressiveness. Live status after the change shows:

current replay inputs: eventful=2/1280 metadata(entry/next/pair)=5/5/2 actionable=0/1280 review=0
current replay move coverage: moved=28/1280 large_move=28 large_move_untagged=27 large_move_metadata(entry/next/pair)=0/1/0 missing_metadata(pair)=28 zero_score=0 scored=0 unscored=27 max_untagged_score=0.0

That makes the bottleneck explicit:

  1. pair-level eventful metadata is nearly absent
  2. large-move rows are not being missed because they are close to the threshold
  3. the missing metadata is concentrated on both sides of the large-move pair, with only 1/28 large moves carrying later-snapshot metadata

Validation

Commands run:

PYTHONPATH=. pytest -q tests/test_prepare_replay.py tests/test_continuous_loop.py tests/test_research_status.py
python3 -m py_compile research/prepare_replay.py research/continuous_loop.py research/status.py research/discord_status.py
python3 research/status.py
python3 research/discord_status.py

Observed:

  1. Focused tests passed: 13 passed
  2. Python compile check passed
  3. Operator status now exposes the metadata bottleneck directly without opening raw replay rows

Next Bottleneck

The next useful bounded change is likely upstream of replay evaluation:

  1. inspect why eventful metadata is absent on almost all large-move journal pairs
  2. determine whether the gap is backfill selection, journal persistence, or scanner payload construction