{ "title": "Split brother_printer/consumables.py under the 250-line cap", "objective": "Bring python_pkg/brother_printer/consumables.py (279 lines) under the repo-wide 250-line cap by moving the dropped-page detection into a new _page_delivery.py, while leaving every state-file primitive in consumables where two test modules patch it.", "acceptance_criteria": [ "consumables.py and the new _page_delivery.py are each at most 250 lines.", "The brother_printer suite still reports exactly 402 passing tests -- the same count as before the split, proving no test was dropped or silently skipped.", "The package keeps 100% branch coverage of the brother_printer source modules.", "_load_consumable_state, _save_consumable_state, _get_cups_total_pages, CONSUMABLE_STATE_FILE and CUPS_PAGE_LOG stay defined in consumables.py, so test_consumables.py's patches still intercept every write that would otherwise reach ~/.config/brother_printer/state.json.", "~/.config/brother_printer/state.json is unmodified after a full suite run, checked by mtime rather than inferred from a green run.", "test_consumables.py needs no edit; test_consumables_part2.py gains a second MOD constant applied only to the two classes whose functions moved, never as a blanket substitution.", "No assertion is changed and no test is deleted, skipped or weakened.", "No suppression is added and no coverage exclusion is introduced." ], "out_of_scope": [ "Changing what any test asserts, or any counter-rebasing arithmetic.", "Moving the state-file primitives, which would risk a test writing to the live consumable state.", "Shrinking the module docstring, which records why the printer's counter is trusted over the CUPS page log.", "Splitting the brother_printer test files, which are separate commits." ], "verifier": "PYTHONPATH=. python3 -m pytest python_pkg/brother_printer/tests -q (expects exactly 402 passed), plus ls -la ~/.config/brother_printer/state.json to confirm the live state file was not written, plus pre-commit run --files on the touched files, plus bash ~/utils/scripts/check_file_length.sh --all for the cap." }