Split `forgelm/cli/_parser.py` into a sub-package (`_train`, `_inspect`, `_data`, `_run`) — deferred until Phase 16 S5, S7 and S11 have landed
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
Start by confirming that #891, #893 and #897 have merged, then read the split seams recorded in docs/roadmap/risks-and-decisions.md near line 80. The work touches forgelm/cli/_parser.py, the _DEFERRED_SPLITS entry in tools/check_module_size.py, and check_cli_help_consistency.py, which pins every --help string. Done means the sub-package keeps every public name importable, the module-size check passes without the deferral, and the CHANGELOG names F-PR29-A1-06/07/08.
由索引模型根据 Issue 内容生成。
描述
Deferred work ·
F-PR29-A1-06 / A1-07 / A1-08: _parser.py· severity Low · cost ~4-8 h · recorded indocs/roadmap/risks-and-decisions.md:80
Summary
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_SPLITSentry is removed fromtools/check_module_size.pyand 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.pysplit 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.
- 主要语言
- Python
- 星标
- 9
- 派生
- 1
- 平均合并
- 17 小时 14 分钟
- 30 天内合并 PR
- 17
环境准备
- 提供 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
HodeTech/ForgeLM 的其他 Issue
-
area: site bug good first issue severity: low wave: 4
难度 2/5 1-3 小时 新手友好度 75/100
HodeTech/ForgeLM#961 · 1 条评论 ·
维护者通常 1 天内回复
-
area: dev-tooling bug severity: low source: roadmap wave: 4
难度 2/5 1-3 小时 新手友好度 70/100
维护者通常 1 天内回复
-
documentation good first issue severity: low source: review-2026-09 wave: 4
难度 1/5 1-3 小时 新手友好度 80/100
维护者通常 1 天内回复
-
documentation severity: medium source: review-2026-09 wave: 3
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
documentation good first issue severity: medium source: review-2026-09 wave: 3
难度 2/5 1-3 小时 新手友好度 68/100
维护者通常 1 天内回复
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 85/100
维护者通常 1 天内回复
-
infrastructure qa
难度 2/5 1-3 小时 新手友好度 84/100
khuisman/mcp-gee-sweet#1068 ·
维护者通常 1 天内回复
-
area:ecosystem documentation
难度 2/5 1-3 小时 新手友好度 78/100
Chelis-Lang/chelis#3866 ·
维护者通常 1 天内回复
-
`lvm_compact` has no self-hosted twin, and `docs/158` §5 says every language-face component must未关闭bug sev-3 vm
难度 2/5 1-3 小时 新手友好度 65/100
-
issue: Picking a prompt from the / menu in a channel inserts a command chip instead of the prompt未关闭bug confirmed issue
难度 2/5 半天 新手友好度 78/100
open-webui/open-webui#32712 · 2 条评论 ·
维护者通常 1 天内回复