{ "title": "Split scripts/lib/common.sh under the 250-line cap", "objective": "Bring the shared library that 49 scripts source under the cap, without changing any name it exports or requiring a single consumer to be edited.", "acceptance_criteria": [ "common.sh and all three new parts are at most 250 lines.", "common.sh remains the single path every consumer sources; it sources its own parts, so no caller changes.", "Sourcing common.sh yields exactly the same set of function names as before the split, proven by diffing `declare -F` against a detached worktree at HEAD. A passing lint is not sufficient evidence for a library with this many consumers.", "Any array or constant a moved function reads moves with it, rather than being left behind and suppressed.", "The pre-commit shellcheck hook passes on every file, with no new suppression.", "The parts are sourced in the original definition order, so a consumer relying on ordering is unaffected." ], "out_of_scope": [ "Executing any of the 49 consumer scripts.", "Changing what any helper does.", "The other over-cap linux_configuration scripts." ], "verifier": "A subshell that sources common.sh and prints `declare -F`, diffed against the same run from a detached worktree at HEAD; plus array-length checks, shellcheck -x, meta/scripts/verify_shell_split.sh on a real consumer, and check_file_length.sh." }