scidex/agora/open_question_tournament.py exposes
run_tournament_batch(domains, pairs_per_field) and
run_single_match(), but pair selection is uniform-random within field.
With wiki/debate/paper miners landing thousands of new open_questions
(other Q-OPENQ tasks), uniform sampling will starve high-RD newcomers and
re-grind already-converged top pairs. Build a Glicko-2-aware scheduler that
prioritizes pairs with high uncertainty reduction per match, ensures every
new question gets ≥5 matches in its first 7 days, and avoids re-judging the
same pair within a 30-day window.
run_tournament_batch pair-selection with a scheduler that(a,b) may be re-judged within 30 days unless either side'sopen_question_match_history(question_a_id,
question_b_id, judged_at, winner, judge_persona).
open_question withcreated_at > NOW() - INTERVAL '7 days' AND n_matches<5 ispython -m scidex.agora.open_question_tournamentapi.py:79192 (get_tournament_status)cold_start_questions_count, next_high_info_pairs[],field_rd_distribution.
migrations/openq_match_history.sql creates the new table(question_a_id, question_b_id) symmetric uniqueness viarun_tournament_batch and field_leaderboard inscidex/agora/open_question_tournament.py to understand current loop.
judge_elo_ratings table_get_or_init_rating() in open_question_tournament.py:189).
(field, candidate_questions,run_tournament_batch is left47ee9103-ccc0 — base Elo tournament (consumer)q-openq-mine-from-wiki-pages and siblings — provide the population that_fairness_scheduler() with three weighted strategies:_record_match_history, _is_pair_locked,_get_last_match_for_pair, _get_match_count, _is_cold_start,_get_cold_start_questions
run_single_match to call _record_match_history after each matchrun_tournament_batch with seed parameter for reproducibilityget_tournament_status with new fields: cold_start_questions_count,python -m scidex.agora.open_question_tournament run-batch|statusopen_question_match_history table with symmetric UNIQUEtests/test_openq_tournament_scheduler.py with pytest suite