{
  "title": "steam_backlog_enforcer: split hltb/scanning helpers into private submodules",
  "objective": "Reduce hltb.py and scanning.py below the 500-line budget by extracting private helper functions into _hltb_search.py and _scanning_confidence.py respectively. Fix all 23 test failures introduced by the split (broken imports and stale patch targets in tests).",
  "acceptance_criteria": [
    "hltb.py and scanning.py are each under 500 lines",
    "_hltb_search.py and _scanning_confidence.py contain the extracted helpers",
    "All 622 tests pass with 100% branch coverage",
    "ruff, mypy, pylint, bandit all pass with zero suppressions",
    "No behavioral change to the running bot"
  ],
  "out_of_scope": [
    "Public API changes to steam_backlog_enforcer",
    "Refactoring of other modules (main.py, library_hider.py, etc.)",
    "Performance improvements"
  ],
  "verifier": "python -m pytest python_pkg/steam_backlog_enforcer/tests/ --cov=python_pkg.steam_backlog_enforcer --cov-branch --cov-fail-under=100 && pre-commit run --files $(git diff --cached --name-only | tr '\\n' ' ')"
}
