+++ 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 `` argument to `nbd next`: ```sh 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: ```rust Next { ticket_type: Option, // new: positional shorthand filter: Vec, } ``` 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 calling `parse_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.