From f15cb8c0c9decd360d62bc5990629fa8526351a3 Mon Sep 17 00:00:00 2001 From: codex-bot-andresmgsl <304681515+codex-bot-andresmgsl@users.noreply.github.com> Date: Thu, 23 Jul 2026 17:27:24 +0000 Subject: [PATCH 1/4] feat: add attention core label row --- actions/labels-reconcile/labels-reconcile.sh | 1 + test/labels.test.sh | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/actions/labels-reconcile/labels-reconcile.sh b/actions/labels-reconcile/labels-reconcile.sh index 25231ea..d2b8902 100755 --- a/actions/labels-reconcile/labels-reconcile.sh +++ b/actions/labels-reconcile/labels-reconcile.sh @@ -393,6 +393,7 @@ stale|B60205|No activity for 48h — needs a poke (sweep-managed) blocked|6A737D|Waiting on another PR or issue to land first offsite|CFD3D7|Issue deliverable is a PR in another repository — claim clock paused 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 ready|0E8A16|Triaged, spec complete, unblocked — a builder can start now and succeed diff --git a/test/labels.test.sh b/test/labels.test.sh index af0d4de..c8bfc2f 100755 --- a/test/labels.test.sh +++ b/test/labels.test.sh @@ -26,6 +26,16 @@ check "panel is parsed" 0 "one two three" bash -c \ check "core and config rows merge" 0 "scope:two|C5DEF5|Second scope" bash -c \ 'source "$1"; core_label_rows; configured_label_rows "$2"' _ \ "$ROOT/actions/labels-reconcile/labels-reconcile.sh" "$TMP/good.conf" +attention_row='attention|D93F0B|A demand is parked here for the assignee: pick up the thread, ack by removing this label' +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" +# 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" \ + bash -c 'source "$1"; while IFS="|" read -r name color desc; do + [ "$name" != attention ] || printf "%s\n" "$desc" + done < <(core_label_rows)' _ "$ROOT/actions/labels-reconcile/labels-reconcile.sh" # shellcheck disable=SC2016 # expansion belongs to the nested bash check "triage config is not parsed as a label row" 1 "" bash -c \ 'source "$1"; configured_label_rows "$2" | grep -F triage-actors' _ \ From cb5ae0a068d7dff573accc5d853b3ed5fc39c4c4 Mon Sep 17 00:00:00 2001 From: codex-bot-andresmgsl <304681515+codex-bot-andresmgsl@users.noreply.github.com> Date: Thu, 23 Jul 2026 17:28:02 +0000 Subject: [PATCH 2/4] test: pin attention issueflow inertness --- test/issueflow-reconcile.test.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/issueflow-reconcile.test.sh b/test/issueflow-reconcile.test.sh index 6b0d708..28cc14f 100644 --- a/test/issueflow-reconcile.test.sh +++ b/test/issueflow-reconcile.test.sh @@ -74,6 +74,8 @@ check "needs-ruling still exempts through the shared gate" 0 "EXEMPT" \ check "both quiet flags still produce one exemption verdict" 0 "EXEMPT" \ claim_clock_exempt <<< $'offsite\nneeds-ruling' check "blocked does not exempt a claimed issue" 0 "SWEEP" claim_clock_exempt <<<"blocked" +check "attention does not exempt a claimed issue" 0 "SWEEP" \ + claim_clock_exempt <<<"attention" check "ready does not exempt a claimed issue" 0 "SWEEP" claim_clock_exempt <<<"ready" check "empty labels do not exempt a claimed issue" 0 "SWEEP" claim_clock_exempt Date: Thu, 23 Jul 2026 17:28:31 +0000 Subject: [PATCH 3/4] docs: document attention taxonomy flag --- CHANGELOG.md | 1 + LABELS.md | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 75eba41..db62636 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ so entries say what changed, cite the issue, and stop. ## Unreleased +- `attention` — add the issue-only, hand-set assignee-demand flag to the core label taxonomy (#84). - `issueflow-reconcile` — keep cross-repo references out of local dependency decisions and require triage to resolve cross-repo blockers by hand (#61). - `needs-ruling` — the cross-cutting flag for a pending human decision, excluded from `state:needs-human` and from the staleness sweep (#51). - Cross-repo doctrine: the panel is the PR's repo's roster, a review request is authorization but not panel membership, and `Part of #N` replaces the `Closes #N` that cannot cross repos (#57). diff --git a/LABELS.md b/LABELS.md index 6d86a5b..0140039 100644 --- a/LABELS.md +++ b/LABELS.md @@ -68,6 +68,7 @@ comments, unassigns the stale owner, and restores `ready`. | `blocked` | `#6A737D` | (see above — same label serves PRs waiting on another PR/issue; legitimately quiet, the staleness sweep skips it) | | `offsite` | `#CFD3D7` | issue deliverable is a PR in another repository; set by the builder with the draft link and cleared by the builder at handoff | | `needs-ruling` | `#D4C5F9` | a human-owned decision is required; use BUILDER.md's ruling template and ladder. Set by triage or the builder; a state, not a signal — it clears on agreement, not on a reply | +| `attention` | `#D93F0B` | issue-only demand parked for the assignee; hand-set, and never written by the machine | | `release` | `#0E8A16` | release flow, versioning, packaging work — and the ceremony PR itself | | `merge-next` | `#0E8A16` | head of the merge queue — merge this one next. Queue order is *intent*: never set by the reconciler, only cleared by it | From bcee821153a4a65e40dac6f34af352a94f235d6e Mon Sep 17 00:00:00 2001 From: codex-bot-andresmgsl <304681515+codex-bot-andresmgsl@users.noreply.github.com> Date: Thu, 23 Jul 2026 17:29:23 +0000 Subject: [PATCH 4/4] test: annotate nested attention assertion --- test/labels.test.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/test/labels.test.sh b/test/labels.test.sh index c8bfc2f..18f8c45 100755 --- a/test/labels.test.sh +++ b/test/labels.test.sh @@ -27,6 +27,7 @@ check "core and config rows merge" 0 "scope:two|C5DEF5|Second scope" bash -c \ 'source "$1"; core_label_rows; configured_label_rows "$2"' _ \ "$ROOT/actions/labels-reconcile/labels-reconcile.sh" "$TMP/good.conf" attention_row='attention|D93F0B|A demand is parked here for the assignee: pick up the thread, ack by removing this label' +# shellcheck disable=SC2016 # expansion belongs to the nested bash 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"