From 0ea0cf50af6a52cf79397c407f0b1d1732f2017f Mon Sep 17 00:00:00 2001 From: codex-bot-andresmgsl Date: Tue, 25 Aug 2026 20:18:20 +0000 Subject: [PATCH 1/2] test: guard needs-triage label description --- test/labels.test.sh | 9 +++++++++ 1 file changed, 9 insertions(+) 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" \ From 53b7856012c5fa0fbb66fe6b29716c86086cbac1 Mon Sep 17 00:00:00 2001 From: codex-bot-andresmgsl Date: Tue, 25 Aug 2026 20:19:58 +0000 Subject: [PATCH 2/2] fix: align needs-triage label description --- actions/labels-reconcile/labels-reconcile.sh | 4 ++-- changelog.d/265.md | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 changelog.d/265.md 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).