testsAndMisc/docs/superpowers/contracts/steam-backlog-finished-only-next-pick-2026-05.json
Krzysztof kuhy Rudnicki 8067225ec4 steam_backlog_enforcer: only prompt next pick after game is finished
Replaces the auto-reassign-to-shorter-game logic (which fired while the
current game was still in progress) with a strict workflow:

1. Check if assigned game is finished.
2. If not, do nothing.
3. If yes, pick the next shortest game and prompt the user.
4. If the user skips, ignore that game for 7 days and pick the next
   shortest candidate.

Changes:
- State: add skipped_until + skip_for_days + active_skipped_ids.
- scanning.pick_next_game: optional on_select callback drives a
  sequential picker that filters skipped IDs; legacy cmd_pick flow
  preserved when on_select is None.
- _cmd_done._finalize_completion: pick + prompt via on_select.
- _cmd_done: remove _try_reassign_shorter_game and helpers
  (_apply_cached_confidence_to_games, _should_reassign_candidate,
  _echo_reassign_decision, _evaluate_reassign_iteration) plus call
  site in cmd_done.
- Tests: drop obsolete _try_reassign_shorter_game suite; add
  TestPromptKeepOrSkip, TestPickNextGameSequential, and State
  skipped_until tests.
2026-05-23 21:19:44 +02:00

18 lines
1.1 KiB
JSON

{
"title": "Steam backlog: finished-only next-pick prompt with 7-day skip",
"objective": "Replace silent auto-reassign-to-shorter-game with a strict finished-only workflow: only after the assigned game is complete, propose the next shortest game and let the user accept or skip (skipped games are ignored for 7 days).",
"acceptance_criteria": [
"State persists skipped_until and prunes expired entries",
"_finalize_completion calls pick_next_game with on_select prompt",
"_try_reassign_shorter_game and helpers removed from _cmd_done",
"Legacy cmd_pick top-N picker preserved when on_select is None",
"pytest + pre-commit pass; steam_backlog_enforcer coverage 100%",
"./run.sh on in-progress game prints 'NOT COMPLETE: N achievements remaining' with no swap prompt"
],
"out_of_scope": [
"Changes to other commands (status, scan, pick, install)",
"Changes to HLTB cache schema"
],
"verifier": "pytest python_pkg/steam_backlog_enforcer/tests/ --cov=python_pkg.steam_backlog_enforcer --cov-branch + pre-commit run --files <changed> + ./run.sh"
}