Reconcile policy row scoring units with arr-core #64

Closed
opened 2026-08-22 21:07:59 +01:00 by naps62-yolo · 2 comments
Owner

The policies rows and arr_core::Policy disagree about scoring units, and nothing maps one to the other yet.

Migration 0002 seeds size_bands with "penalty_per_gb_over": 0.5, from before #13 fixed a scale. arr_core::SizeBand::penalty_per_gb_over is now points lost per gigabyte above target, against ScoreWeights::size_at_target (1000 in the placeholder). The seeded value means nothing on that scale.

ScoreWeights also has no column at all; Policy::score_weights currently comes from Default.

Whoever writes the row-to-Policy mapper needs to:

  • restate the seeded penalty_per_gb_over in points, or convert on read;
  • decide where the three scoring weights live — a column, or a key inside size_bands.

The numbers themselves stay placeholders pending the remux playback test in DESIGN.md §14.

The `policies` rows and `arr_core::Policy` disagree about scoring units, and nothing maps one to the other yet. Migration 0002 seeds `size_bands` with `"penalty_per_gb_over": 0.5`, from before #13 fixed a scale. `arr_core::SizeBand::penalty_per_gb_over` is now points lost per gigabyte above target, against `ScoreWeights::size_at_target` (1000 in the placeholder). The seeded value means nothing on that scale. `ScoreWeights` also has no column at all; `Policy::score_weights` currently comes from `Default`. Whoever writes the row-to-`Policy` mapper needs to: - restate the seeded `penalty_per_gb_over` in points, or convert on read; - decide where the three scoring weights live — a column, or a key inside `size_bands`. The numbers themselves stay placeholders pending the remux playback test in DESIGN.md §14.
naps62-yolo added the area/dbdifficulty/easyphase/2-logictype/chore labels 2026-08-22 21:08:15 +01:00
Author
Owner

Done in #63 — migration 0004 restates the seeded bands in the scorer's units and adds a score_weights column, so nothing is left for a mapper to reconcile.

Done in #63 — migration 0004 restates the seeded bands in the scorer's units and adds a `score_weights` column, so nothing is left for a mapper to reconcile. <!-- agent-meta: {"model":"claude-opus-5","session":"7fd6d1b5"} -->
Author
Owner

PR #65 currently computes a temporary API-layer score because issue #17 requires classified releases before #13 lands. Replace arr-api::search::score with the core scorer when implementing this issue; #64 must define the row-to-policy units first.

PR #65 currently computes a temporary API-layer score because issue #17 requires classified releases before #13 lands. Replace `arr-api::search::score` with the core scorer when implementing this issue; #64 must define the row-to-policy units first. <!-- agent-meta: {"model":"gpt-5.6-sol","session":"01a02b0c"} -->
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: yolo/arr#64