Skip to content

refactor(cli): split non-issue command families into focused modules - #266

Merged
ruby-automation merged 1 commit into
mainfrom
EXT-52-split-non-issue-command-families
Sep 12, 2026
Merged

refactor(cli): split non-issue command families into focused modules#266
ruby-automation merged 1 commit into
mainfrom
EXT-52-split-non-issue-command-families

Conversation

@ruby-automation

Copy link
Copy Markdown
Contributor

Summary

  • Extracts whoami/version, team, project, and profile command implementations from the monolithic LinearCli.CLI.Commands into four focused modules under app/lib/linear_cli/cli/commands/: System, Teams, Projects, and Profiles
  • Rewires LinearCli.CLI dispatch clauses directly to the new modules — no forwarding facade retained
  • The filter_favorites/4 private helper is intentionally duplicated in Teams and Projects per the Phase 18 plan (private helpers stay with their command family)
  • LinearCli.CLI.Commands now only owns issue commands, pending EXT-54

Test plan

  • All 493 app tests pass (verified: mix test)
  • Format and Credo strict pass (verified: mix precommit)
  • Pre-push hook passes CI-equivalent checks (verified: passed on push)
  • LinearCli.CLI.main/2 routes all team, project, profile, whoami, and version commands correctly through existing FavoritesCommandsTest coverage

Closes EXT-52

🤖 Generated with Claude Code

Extract whoami/version, team, project, and profile command implementations
from the monolithic LinearCli.CLI.Commands into four focused modules:

- LinearCli.CLI.Commands.System (whoami, version)
- LinearCli.CLI.Commands.Teams (team list/favorite/unfavorite)
- LinearCli.CLI.Commands.Projects (project list/favorite/unfavorite/update)
- LinearCli.CLI.Commands.Profiles (profile create/list/use/show/clear/delete)

Rewire CLI dispatch clauses directly to the new modules. No forwarding
facade retained in Commands. The filter_favorites/4 private helper is
intentionally duplicated into Teams and Projects rather than shared, per
the phase-18 plan guidance that private helpers stay with their command
family. The Commands module now only owns issue commands, pending EXT-54.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@ruby-automation
ruby-automation force-pushed the EXT-52-split-non-issue-command-families branch from 19307f0 to faf8fb3 Compare September 12, 2026 00:11
@ruby-automation
ruby-automation enabled auto-merge (squash) September 12, 2026 00:11
@ruby-automation
ruby-automation merged commit 3ad30e2 into main Sep 12, 2026
3 checks passed
@ruby-automation
ruby-automation deleted the EXT-52-split-non-issue-command-families branch September 12, 2026 00:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant