Observation
jr issue list currently offers structured filters for status/team/assignee/reporter/dates/asset — but not --label, --component, --priority, or --type, and no filter supports negation, OR, or emptiness. Everything else forces a drop to hand-written --jql.
Proposal: one boolean mini-grammar, shared by all structured filters
| Form |
Meaning |
JQL emitted |
--X a --X b |
OR within dimension |
X in (a, b) |
--X not:a |
negation |
(X not in (a) OR X is EMPTY) — flag-documented choice |
--X none |
empty |
X is EMPTY |
--X all:a --X all:b |
AND within dimension (multi-valued fields) |
X = a AND X = b |
| different flags |
AND across dimensions |
(…) AND (…) |
with --jql |
structured flags append |
<jql> AND (…) |
- Prefix style (
not:, all:, none) deliberately matches the existing add:/remove: convention on edit flags — one prefix vocabulary across the CLI.
- Applies to:
--component (filed separately as the first full implementation), --label, --status, --priority, --type, and the existing single-valued flags gain not:/repetition where meaningful.
--verbose already prints the request; it should show the final composed JQL so users can graduate to raw --jql when they outgrow the grammar.
This is a design-level issue; happy to split per-flag implementation issues once the grammar is agreed.
Observation
jr issue listcurrently offers structured filters for status/team/assignee/reporter/dates/asset — but not--label,--component,--priority, or--type, and no filter supports negation, OR, or emptiness. Everything else forces a drop to hand-written--jql.Proposal: one boolean mini-grammar, shared by all structured filters
--X a --X bX in (a, b)--X not:a(X not in (a) OR X is EMPTY)— flag-documented choice--X noneX is EMPTY--X all:a --X all:bX = a AND X = b(…) AND (…)--jql<jql> AND (…)not:,all:,none) deliberately matches the existingadd:/remove:convention on edit flags — one prefix vocabulary across the CLI.--component(filed separately as the first full implementation),--label,--status,--priority,--type, and the existing single-valued flags gainnot:/repetition where meaningful.--verbosealready prints the request; it should show the final composed JQL so users can graduate to raw--jqlwhen they outgrow the grammar.This is a design-level issue; happy to split per-flag implementation issues once the grammar is agreed.