diff --git a/actions/labels-reconcile/labels-reconcile.sh b/actions/labels-reconcile/labels-reconcile.sh index bb792c4..ca11fa1 100755 --- a/actions/labels-reconcile/labels-reconcile.sh +++ b/actions/labels-reconcile/labels-reconcile.sh @@ -715,7 +715,7 @@ offsite|CFD3D7|Issue deliverable is a PR in another repository — claim clock p needs-ruling|D4C5F9|A human decision is pending — question, options and a recommendation are in the comment attention|D93F0B|A demand is parked here for the assignee: pick up the thread, ack by removing this label release|0E8A16|Release flow and version/packaging work -needs-triage|FBCA04|Did not come through triage — owes normalization or conversion to a discussion +needs-triage|FBCA04|Did not come through triage — owes normalization into work or a reasoned refusal ready|0E8A16|Triaged, spec complete, unblocked — a builder can start now and succeed claimed|1D76DB|A builder owns it: assignee set, draft PR expected shortly post-merge|006B75|Refs-linked PR merged; post-merge criteria remain and triage owns completion @@ -723,7 +723,7 @@ epic|5319E7|Organizes other issues via a dependency-ordered task list — builde EOF } -retired_label_names() { # the GitHub defaults LABELS.md retires — a `question` is a discussion +retired_label_names() { # the GitHub defaults LABELS.md retires — a `question` belongs in a proposal, not a work issue # One registry, kept beside core_label_rows() for the same reason those rows # are not in labels.conf: a rule that must hold in every governed repo # cannot live in a per-repo file. The six names match LABELS.md exactly. diff --git a/changelog.d/265.md b/changelog.d/265.md new file mode 100644 index 0000000..73c7b2c --- /dev/null +++ b/changelog.d/265.md @@ -0,0 +1,3 @@ +### Fixed + +- The `needs-triage` label now directs untriaged issues toward work normalization or a reasoned refusal instead of an unavailable discussion path (#265). diff --git a/test/labels.test.sh b/test/labels.test.sh index 8c908ef..35fcd4b 100755 --- a/test/labels.test.sh +++ b/test/labels.test.sh @@ -31,6 +31,15 @@ attention_row='attention|D93F0B|A demand is parked here for the assignee: pick u check "attention core row is emitted once, byte-exact" 0 "1" bash -c \ 'source "$1"; core_label_rows | grep -cxF "$2"' _ \ "$ROOT/actions/labels-reconcile/labels-reconcile.sh" "$attention_row" +needs_triage_row='needs-triage|FBCA04|Did not come through triage — owes normalization into work or a reasoned refusal' +# shellcheck disable=SC2016 # expansion belongs to the nested bash +check "needs-triage core row is emitted once, byte-exact" 0 "1" bash -c \ + 'source "$1"; core_label_rows | grep -cxF "$2"' _ \ + "$ROOT/actions/labels-reconcile/labels-reconcile.sh" "$needs_triage_row" +# shellcheck disable=SC2016 # expansion belongs to the nested bash +check "core label rows carry no stale discussion path" 1 "" bash -c \ + 'source "$1"; core_label_rows | grep -i discussion' _ \ + "$ROOT/actions/labels-reconcile/labels-reconcile.sh" # shellcheck disable=SC2016 # fields are intentionally split in the nested shell check "attention description survives label field splitting" 0 \ "A demand is parked here for the assignee: pick up the thread, ack by removing this label" \