You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Split forgelm/cli/_parser.py into a sub-package (_train, _inspect, _data, _run) — deferred until Phase 16 S5, S7 and S11 have landed #907
forgelm/cli/_parser.py is a deferred module split: every subcommand's argparse surface lives in one file, and check_cli_help_consistency.py pins every --help string, so the diff is wide and must be taken once. The module-size guard holds it to a fatal no-growth budget, but nothing pays the debt down until someone takes the split.
Condition or budget
Phase 16 S5, S7 and S11 have all landed (each edits this file); they are #891, #893 and #897
State today (re-checked 2026-10-09)
1370 code lines against a budget of 1372 (deferred at 1320).
Related
#667 and #668 track how the module-size guard counts lines and accepts budget raises; decide them before relying on a module's budget.
Acceptance criteria
The module becomes a sub-package along the recorded seams, behaviour-neutral, with every public name still importable from its current path.
Its _DEFERRED_SPLITS entry is removed from tools/check_module_size.py and every resulting module is under the normal ceiling.
Test patch targets that named the old module are retargeted to the module that resolves the name at call time (the forgelm/verify.py split found five that silently moved).
The row is removed from the deferral table and the CHANGELOG names its ID (the table's removal contract).
Recorded in docs/roadmap/risks-and-decisions.md (read at f94595f) and re-checked against the code on 2026-10-09. The row leaves that table only when the fix is on main, the CHANGELOG names its ID and any promised guard exists.
Activity