Skip to content

[Feature] Simplify get CLI with positional instance and unquoted multi-token query #59

@mbe24

Description

@mbe24

Problem

The get command still has avoidable UX friction:

  1. instance selection requires -I/--instance, while many users expect positional usage such as 99problems get jira -i 25.
  2. -q/--query commonly requires quoting the full query string, which is awkward and makes mixed quote content harder.

This increases command complexity for frequent use and onboarding.

Design

Implement a focused CLI simplification pass:

  1. support instance alias as optional first positional argument (99problems get <instance> ...),
  2. keep -I/--instance for backward compatibility in this phase,
  3. make -q/--query accept multiple unquoted tokens until the next flag and join them with spaces,
  4. keep shell quoting semantics unchanged.

Scope

  • Add optional positional instance alias to get.
  • Preserve -I/--instance support.
  • Define conflict behavior when both positional and -I are provided:
    • same value => allowed,
    • different values => usage error.
  • Update -q/--query parsing to multi-token capture and token joining.
  • Update help/man/README examples for positional instance and unquoted query usage.
  • Add parser/regression tests for new CLI behavior.

Boundary

  • No removal of -I/--instance in this issue.
  • No positional platform support in this issue (positional is instance-only).
  • No custom quote interpretation layer beyond normal shell behavior.
  • No additional CLI redesign outside instance/query simplification.

Acceptance Criteria

  • 99problems get jira -i 25 works as expected.
  • 99problems get -I jira -i 25 remains valid.
  • If positional instance and -I conflict, command fails with clear usage guidance.
  • 99problems get -q is:issue state:open architectural --no-comments parses and executes with full query content.
  • Existing non-targeted get behaviors remain unchanged.
  • Tests and pedantic clippy checks pass.

Context

This is a small, high-impact CLI ergonomics improvement that keeps compatibility while moving toward lower-friction command usage.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestpriorityImportant work that should be tackled soon

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions