{ "title": "Split generate_study_materials.sh under the 250-line cap with tested libs", "objective": "Bring linux_configuration/scripts/single_use/utils/generate_study_materials.sh from 1017 lines under the repo-wide 250-line cap by moving its functions and its 335-line top-level block into six sourced libraries, without changing the output it produces for any input it previously handled correctly. File 2 of the Phase 1 queue.", "acceptance_criteria": [ "The entry script and every lib/study_*.sh and lib/tests/*.sh file is at or under 250 lines.", "All three generated files stay byte-identical to a golden fixture captured before any edit, verified by sha256sum after every step.", "verify_shell_split.sh against 08f3c764 reports no function whose body changed; additions are limited to the wrappers introduced around previously top-level code.", "shell_coverage.sh reports 100% for every lib, or a measured figure with a falsified diagnosis for any shortfall.", "Any latent defect the tests expose is fixed rather than pinned, and each fix is demonstrated on a fixture that actually triggers it.", "shellcheck reports zero findings with no suppression added." ], "out_of_scope": [ "Changing which documentation sites the URL builders point at.", "Reworking the per-language analysis mode, beyond covering it with tests.", "The other five files still over the cap." ], "verifier": "sha256sum -c against the golden fixture plus a stdout diff, bash meta/scripts/verify_shell_split.sh 08f3c764, lib/tests/run_all.sh (166 assertions), bash meta/scripts/shell_coverage.sh lib/tests/run_all.sh 100 for all six libs, a second fixture with 25 imports and comment lines run at --top 3, shellcheck, and check_file_length.sh --all." }