feat(cli): categorize /help into General/Model/Session/Git groups - #44
Conversation
Group the slash-command help listing by category (General, Model, Session, Git) so long command lists stay scannable, and keep the Rich markup rendering via the existing console.print path. Closes shauryagangrade#31
shauryagangrade
left a comment
There was a problem hiding this comment.
Review
Nice, tight change — all 12 commands preserved, Rich markup renders correctly (verified via a real console.print), 26/26 tests pass, ruff/mypy/bandit clean. The new test covers all four group headers plus a representative command each.
Two docs items to close before merge:
- Demo snapshot (stale):
demo/make_demo.py:229-237hardcodes the old flat/helpoutput — the recorded demo will disagree with real output after this lands. Repo convention keeps it in sync (e.g. commit 9e39fbe). Please update it, and checkdemo/demo.taperegenerates cleanly. - CHANGELOG (missing): this is a user-visible feature — add an entry under
CHANGELOG.mdUnreleased > Added.
Minor nit: /setup under "Session" is defensible but could equally be "Model"; fine either way.
|
Merged. Thanks for your work here. If you would like to contribute to more repos just like this, I recommend: https://github.com/shauryagangrade/intent-drift-skill |
|
Thanks for the review and for merging this. Both docs items are noted and remain outstanding on the merged tree: the |
Summary
Closes #31 — groups the
/helpslash-command listing into General, Model, Session, and Git categories so the growing command set stays scannable.Changes
gcode/cli.py—_print_helpnow emits categorized group headers with Rich markup (rendered by the existingRichUI.info→console.printpath); no command was dropped or reworded.tests/test_cli.py— regression test asserting all four category headers plus a representative command per group appear in the help text.Why
The flat command list has grown past a dozen entries; grouping by usage area makes discovery faster without changing any command behavior.
Validation
pytest: 26/26 passruff check+ruff format --check: cleanmypy+bandit: clean