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.
3.1 KiB
3.1 KiB
+++ title = "Add triage status: new default for tickets lacking implementation detail" priority = 6 status = "todo" ticket_type = "feature" dependencies = [] +++
Problem
New tickets are created with status=todo, implying they are ready to work on. But many tickets need further research or implementation details before work can begin. The TODO describes a triage status for exactly this case — tickets that need an LLM or human to fill in details before they become todo.
Status semantics
triage— the ticket exists but lacks sufficient detail to begin implementation. An LLM or human should flesh out the body and move it totodowhen ready.triageis excluded fromnbd readyandnbd next(not actionable yet).triageis excluded fromnbd listby default (likebacklog).triageis the new default status fornbd create(replacestodo).
Changes
src/ticket.rs
Add Triage variant to Status:
/// The ticket needs more detail before it can be worked on.
///
/// A triage ticket should have its body updated with implementation
/// details and then moved to `todo`.
Triage,
Change the #[default] attribute from Todo to Triage.
src/main.rs
parse_status: add"triage" => Ok(Status::Triage)and update the error message.Commands::Create: change the default value for--statusfrom"todo"to"triage".- Note: If
.nbd/config.tomlsupport (separate ticket) is implemented first, the default should be settable via config; fall back to"triage"if config is absent.
- Note: If
cmd_readyandcmd_next: addStatus::Triageto the exclusion list.cmd_list: addStatus::Triageto the default exclusion list.
src/filter.rs
status_str: addStatus::Triage => "triage".
src/display.rs
status_str: addStatus::Triage => "triage".- Column widths:
STATUScolumn is currently 13 chars ("in_progress" + 2). `"triage"" is 6 chars — no width change needed.
src/graph.rs
status_str: addStatus::Triage => "triage".
src/claude_md_snippet.md
Update the embedded snippet to document the triage workflow:
triagetickets need implementation details added to their body before they can be worked on.- When creating a ticket that is ready to work on immediately, pass
--status todoexplicitly. - Default:
nbd create --title "..."creates atriageticket.
CLAUDE.md (project-level)
Update the workflow section to reflect the new default and document when to use --status todo vs. leaving the default.
src/tests.rs
Add unit tests:
Status::Triageserialises to"triage"- Round-trip deserialisation
- Default
Ticket::newhasstatus == Status::Triage
tests/integration.rs
nbd createwith no--statusflag creates atriageticket.nbd create --status todocreates atodoticket.nbd readydoes not includetriagetickets.nbd nextdoes not includetriagetickets.nbd listdoes not includetriagetickets by default.nbd list --filter status=triageshows only triage tickets.nbd list --allincludestriagetickets.