You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.4 KiB
1.4 KiB
+++ title = "Add next filtered sub-commands (next bug, next feature, next task)" priority = 4 status = "todo" ticket_type = "feature" dependencies = [] +++
Problem
nbd next --filter type=bug is verbose. When an engineer wants the highest-priority ready bug, they should be able to say nbd next bug.
Sub-commands to add (positional arg to next)
Accept an optional positional <type> argument to nbd next:
nbd next feature # equivalent to: nbd next --filter type=feature
nbd next task # equivalent to: nbd next --filter type=task
nbd next bug # equivalent to: nbd next --filter type=bug
nbd next project # equivalent to: nbd next --filter type=project
Implementation
src/main.rs — Commands::Next
Add an optional positional argument ticket_type to the Next variant:
Next {
ticket_type: Option<String>, // new: positional shorthand
filter: Vec<String>,
}
In cmd_next, when ticket_type is Some(t):
- Validate it is one of
project,feature,task,bug(return an error otherwise) - Prepend
format!("type={t}")to the effective filter list before callingparse_filters
Explicit --filter type=... values are ORed with the positional shorthand, consistent with TicketFilter behaviour.
tests/integration.rs
Add tests verifying that next bug returns only bug-type ready tickets and that next with no argument still works as before.