feat: add the attention core label row #87

Merged
codex-bot-andresmgsl merged 4 commits from build/84-attention-core-label-row into main 2026-07-23 17:45:34 +00:00
codex-bot-andresmgsl commented 2026-07-23 17:27:47 +00:00 (Migrated from github.com)

Closes #84

Adds the attention label to the shared core taxonomy, documents it, and pins its intended inertness with tests.

The operator bootstrap dispatch is explicitly post-merge work tracked on #83; the label not existing on the repository yet is not part of this PR's done. LABELS.md is vendored doctrine, so consumer .ceremony/ mirrors will drift on merge and refresh with docs-sync --fix at each consumer's next pin bump.

Acceptance criteria

  • core_label_rows() emits attention|D93F0B|A demand is parked here for the assignee: pick up the thread, ack by removing this label, once, byte-exact.
  • bootstrap_labels therefore upserts it with no change to bootstrap_labels itself — the row is data, the bootstrap loop is untouched.
  • LABELS.md's Cross-cutting table lists attention with #D93F0B, issue-only, hand-set, machine-never-written.
  • A test fails if the row is dropped or its color is changed.
  • A test fails if attention ever starts pausing the claim clock or tripping the queue-conflict flag.
  • The diff touches actions/labels-reconcile/labels-reconcile.sh, LABELS.md, the two test files and CHANGELOG.md, and nothing else. No .github/labels.conf row, new reconciler branch, or workflow change.
  • The operator's bootstrap dispatch is identified as post-merge work tracked on #83.

Worklog

  • Add the exact core label row and byte-exact/color/field-split coverage.
  • Add queue and claim-clock inertness tests.
  • Add the single Cross-cutting taxonomy row and Unreleased changelog entry.
  • Run the full test suite, shellcheck, actionlint, docs-sync check, and mutation cases.
  • Mark ready and request the complete non-author review bench.
Closes #84 Adds the `attention` label to the shared core taxonomy, documents it, and pins its intended inertness with tests. The operator bootstrap dispatch is explicitly post-merge work tracked on #83; the label not existing on the repository yet is not part of this PR's done. `LABELS.md` is vendored doctrine, so consumer `.ceremony/` mirrors will drift on merge and refresh with `docs-sync --fix` at each consumer's next pin bump. ## Acceptance criteria - [x] `core_label_rows()` emits `attention|D93F0B|A demand is parked here for the assignee: pick up the thread, ack by removing this label`, once, byte-exact. - [x] `bootstrap_labels` therefore upserts it with no change to `bootstrap_labels` itself — the row is data, the bootstrap loop is untouched. - [x] `LABELS.md`'s Cross-cutting table lists `attention` with `#D93F0B`, issue-only, hand-set, machine-never-written. - [x] A test fails if the row is dropped or its color is changed. - [x] A test fails if `attention` ever starts pausing the claim clock or tripping the queue-conflict flag. - [x] The diff touches `actions/labels-reconcile/labels-reconcile.sh`, `LABELS.md`, the two test files and `CHANGELOG.md`, and nothing else. No `.github/labels.conf` row, new reconciler branch, or workflow change. - [x] The operator's bootstrap dispatch is identified as post-merge work tracked on #83. ## Worklog - [x] Add the exact core label row and byte-exact/color/field-split coverage. - [x] Add queue and claim-clock inertness tests. - [x] Add the single Cross-cutting taxonomy row and Unreleased changelog entry. - [x] Run the full test suite, shellcheck, actionlint, docs-sync check, and mutation cases. - [x] Mark ready and request the complete non-author review bench.
danmt (Migrated from github.com) reviewed 2026-07-23 17:27:47 +00:00
grok-bot-andresmgsl commented 2026-07-23 17:35:40 +00:00 (Migrated from github.com)

🔎 reviewing head bcee821153

🔎 reviewing head bcee821153a4a65e40dac6f34af352a94f235d6e
claude-bot-andresmgsl commented 2026-07-23 17:35:46 +00:00 (Migrated from github.com)

🔎 reviewing head bcee821153

🔎 reviewing head bcee821153a4a65e40dac6f34af352a94f235d6e
grok-bot-andresmgsl (Migrated from github.com) approved these changes 2026-07-23 17:37:08 +00:00
grok-bot-andresmgsl (Migrated from github.com) left a comment

Verdict: approve

Reviewed head bcee821153a4a65e40dac6f34af352a94f235d6e against #84's acceptance criteria and D1–D5.

Acceptance criteria

Criterion Result
core_label_rows() emits the D1 row once, byte-exact Pass — row is attention|D93F0B|A demand is parked here for the assignee: pick up the thread, ack by removing this label (88-char description), placed beside offsite/needs-ruling per D2
bootstrap_labels untouched — row is data only Pass — only the heredoc gained a line; the upsert loop is unchanged
LABELS.md Cross-cutting lists attention #D93F0B, issue-only, hand-set, machine-never-written Pass — single table row, no usage-contract essay (D4 leaves that to #85)
Test fails if row dropped or color changed Pass — mutations: drop-row → 2 fails; wrong color → 1 fail in test/labels.test.sh
Test fails if attention pauses claim clock or trips queue conflict Pass — claim_clock_exempt <<<attention is SWEEP; claimed+attention is KEEP. Adding attention to the exempt set makes the inertness test fail
Diff only the five allowed paths; no labels.conf / reconciler branch / workflow Pass — CHANGELOG.md, LABELS.md, labels-reconcile.sh, two test files
Operator bootstrap called out as post-merge on #83 Pass — PR body states it explicitly

Verification

  • bash test/run.sh: 15/15 files green (including the new attention cases)
  • shellcheck-all.sh: clean
  • CI on this head: test, self-guards, action-exercise, docs-sync-exercise, release-exercise fixtures all green
  • Color repeat with state:addressing is intentional (D3); they cannot co-occur (PR-only machine state vs issue-only hand-set)

No blocking findings. Non-blocking: none worth a builder round-trip — the PR is the minimal data+docs+pinning-tests shape the issue asked for.

## Verdict: approve Reviewed head `bcee821153a4a65e40dac6f34af352a94f235d6e` against #84's acceptance criteria and D1–D5. ### Acceptance criteria | Criterion | Result | |---|---| | `core_label_rows()` emits the D1 row once, byte-exact | Pass — row is `attention\|D93F0B\|A demand is parked here for the assignee: pick up the thread, ack by removing this label` (88-char description), placed beside `offsite`/`needs-ruling` per D2 | | `bootstrap_labels` untouched — row is data only | Pass — only the heredoc gained a line; the upsert loop is unchanged | | `LABELS.md` Cross-cutting lists `attention` `#D93F0B`, issue-only, hand-set, machine-never-written | Pass — single table row, no usage-contract essay (D4 leaves that to #85) | | Test fails if row dropped or color changed | Pass — mutations: drop-row → 2 fails; wrong color → 1 fail in `test/labels.test.sh` | | Test fails if `attention` pauses claim clock or trips queue conflict | Pass — `claim_clock_exempt <<<attention` is `SWEEP`; `claimed`+`attention` is `KEEP`. Adding `attention` to the exempt set makes the inertness test fail | | Diff only the five allowed paths; no `labels.conf` / reconciler branch / workflow | Pass — `CHANGELOG.md`, `LABELS.md`, `labels-reconcile.sh`, two test files | | Operator bootstrap called out as post-merge on #83 | Pass — PR body states it explicitly | ### Verification - `bash test/run.sh`: 15/15 files green (including the new attention cases) - `shellcheck-all.sh`: clean - CI on this head: test, self-guards, action-exercise, docs-sync-exercise, release-exercise fixtures all green - Color repeat with `state:addressing` is intentional (D3); they cannot co-occur (PR-only machine state vs issue-only hand-set) No blocking findings. Non-blocking: none worth a builder round-trip — the PR is the minimal data+docs+pinning-tests shape the issue asked for.
claude-bot-andresmgsl (Migrated from github.com) approved these changes 2026-07-23 17:37:26 +00:00
claude-bot-andresmgsl (Migrated from github.com) left a comment

Approve — reviewed at head bcee821153a4a65e40dac6f34af352a94f235d6e against issue #84.

Verified, not just read:

  • Full suite green at head: test/run.sh → 15 test files, 0 failures. shellcheck-all.sh (33 scripts) and actionlint-all.sh (6 workflows) clean. All PR CI checks pass.
  • D1 byte-exact: attention|D93F0B|A demand is parked here for the assignee: pick up the thread, ack by removing this label sits at labels-reconcile.sh:396, emitted exactly once (grep -cxF = 1); description is 88 chars, under GitHub's 100.
  • D2 placement: directly after needs-ruling, beside offsite — the hand-set-flag neighborhood, not among state:*/blocker:* rows. bootstrap_labels itself untouched; the change is one data row.
  • Mutation cases all go red as the test plan requires (I ran each, then restored):
    • delete the row → labels.test.sh fails both new checks (byte-exact + field-split);
    • change D93F0B to FF0000 → byte-exact check fails;
    • add attention to claim_clock_exempt's exempt set → issueflow-reconcile.test.sh "attention does not exempt a claimed issue" fails.
  • D5 inertness pinned: claim_clock_exempt <<<"attention"SWEEP, queue_decision <<< claimed+attentionKEEP, both asserted.
  • Docs: LABELS.md Cross-cutting table gains exactly one row (#D93F0B, issue-only, hand-set, never machine-written — matches the AC wording). Changelog line added under ## Unreleased above the next heading. LABELS.md is in docs/VENDORED.txt; the PR body correctly notes consumer mirror drift and the docs-sync --fix refresh path.
  • Scope: diff touches exactly the five permitted files (labels-reconcile.sh, LABELS.md, the two test files, CHANGELOG.md) — no .github/labels.conf row, no reconciler branch, no workflow change. The operator bootstrap dispatch is correctly left to #83, and the PR body says so.

Non-blocking observation only: D3 permits (does not require) a one-clause note on the intentional D93F0B color repeat with state:addressing; the PR omits it, which the spec allows — the rationale lives in #84.

**Approve** — reviewed at head `bcee821153a4a65e40dac6f34af352a94f235d6e` against issue #84. Verified, not just read: - **Full suite green at head**: `test/run.sh` → 15 test files, 0 failures. `shellcheck-all.sh` (33 scripts) and `actionlint-all.sh` (6 workflows) clean. All PR CI checks pass. - **D1 byte-exact**: `attention|D93F0B|A demand is parked here for the assignee: pick up the thread, ack by removing this label` sits at `labels-reconcile.sh:396`, emitted exactly once (`grep -cxF` = 1); description is 88 chars, under GitHub's 100. - **D2 placement**: directly after `needs-ruling`, beside `offsite` — the hand-set-flag neighborhood, not among `state:*`/`blocker:*` rows. `bootstrap_labels` itself untouched; the change is one data row. - **Mutation cases all go red as the test plan requires** (I ran each, then restored): - delete the row → `labels.test.sh` fails both new checks (byte-exact + field-split); - change `D93F0B` to `FF0000` → byte-exact check fails; - add `attention` to `claim_clock_exempt`'s exempt set → `issueflow-reconcile.test.sh` "attention does not exempt a claimed issue" fails. - **D5 inertness pinned**: `claim_clock_exempt <<<"attention"` → `SWEEP`, `queue_decision <<< claimed+attention` → `KEEP`, both asserted. - **Docs**: `LABELS.md` Cross-cutting table gains exactly one row (`#D93F0B`, issue-only, hand-set, never machine-written — matches the AC wording). Changelog line added under `## Unreleased` above the next heading. `LABELS.md` is in `docs/VENDORED.txt`; the PR body correctly notes consumer mirror drift and the `docs-sync --fix` refresh path. - **Scope**: diff touches exactly the five permitted files (`labels-reconcile.sh`, `LABELS.md`, the two test files, `CHANGELOG.md`) — no `.github/labels.conf` row, no reconciler branch, no workflow change. The operator bootstrap dispatch is correctly left to #83, and the PR body says so. Non-blocking observation only: D3 permits (does not require) a one-clause note on the intentional `D93F0B` color repeat with `state:addressing`; the PR omits it, which the spec allows — the rationale lives in #84.
kimi-bot-andresmgsl commented 2026-07-23 17:38:38 +00:00 (Migrated from github.com)

🔎 reviewing head bcee821153

🔎 reviewing head bcee821153a4a65e40dac6f34af352a94f235d6e
kimi-bot-andresmgsl (Migrated from github.com) approved these changes 2026-07-23 17:39:22 +00:00
kimi-bot-andresmgsl (Migrated from github.com) left a comment

Approve — head bcee821.

Checked every acceptance criterion of #84 against the diff and by execution:

  • Row, byte-exact, once (D1): attention|D93F0B|A demand is parked here for the assignee: pick up the thread, ack by removing this label emitted exactly once by core_label_rows() — asserted by the new grep -cxF test and confirmed by running it.
  • Placement (D2): the row sits in the heredoc between needs-ruling and release, beside offsite — the hand-set flag neighborhood, not among state:*/blocker:* rows.
  • Color repeat (D3): confirmed D93F0B is also state:addressing's (L386 vs L396); they can never co-occur (PR-only machine-owned vs issue-only hand-set), and no note was required.
  • LABELS.md (D4): exactly one row in the Cross-cutting table — attention | #D93F0B | issue-only, hand-set, never written by the machine. Usage contract correctly left to #85.
  • No behavior (D5): diff is one heredoc row under actions/; no reconciler branch, no .github/labels.conf row, no workflow change. Diff touches exactly the five sanctioned files (--stat verified).
  • Inertness tests exist and bite. Ran the full mutation floor from the issue's test plan:
    • row deleted → test/labels.test.sh red
    • D93F0BAAAAAAtest/labels.test.sh red
    • attention added to claim_clock_exempt's exempt set → test/issueflow-reconcile.test.sh red (attention does not exempt a claimed issue fails)
    • worktree restored clean after mutations.
  • Suite: test/run.sh on this head fails identically to origin/main in this environment (7 files, all from missing node/jq here — pre-existing, unrelated to the diff). The two test files this PR touches pass fully: labels.test.sh 11/11, and both new issueflow-reconcile checks green (SWEEP for claimed+attention, KEEP for the queue decision). shellcheck/actionlint binaries are absent locally so I could not execute those gates; the shell change is a single heredoc data row and the test additions follow the file's existing idiom including the SC2016 disables.
  • PR body correctly identifies the operator bootstrap dispatch as post-merge work tracked on #83 and notes the vendored LABELS.md drift/refresh cycle.

Non-blocking nit: the new CHANGELOG line went in at the top of ## Unreleased, above the #61 entry — matches the issue's "above the heading below it" instruction and the monotonic check passes, so nothing to do.

LGTM.

Approve — head bcee821. Checked every acceptance criterion of #84 against the diff and by execution: - **Row, byte-exact, once** (D1): `attention|D93F0B|A demand is parked here for the assignee: pick up the thread, ack by removing this label` emitted exactly once by `core_label_rows()` — asserted by the new `grep -cxF` test and confirmed by running it. - **Placement** (D2): the row sits in the heredoc between `needs-ruling` and `release`, beside `offsite` — the hand-set flag neighborhood, not among `state:*`/`blocker:*` rows. - **Color repeat** (D3): confirmed `D93F0B` is also `state:addressing`'s (L386 vs L396); they can never co-occur (PR-only machine-owned vs issue-only hand-set), and no note was required. - **`LABELS.md`** (D4): exactly one row in the Cross-cutting table — `attention` | `#D93F0B` | issue-only, hand-set, never written by the machine. Usage contract correctly left to #85. - **No behavior** (D5): diff is one heredoc row under `actions/`; no reconciler branch, no `.github/labels.conf` row, no workflow change. Diff touches exactly the five sanctioned files (`--stat` verified). - **Inertness tests exist and bite.** Ran the full mutation floor from the issue's test plan: - row deleted → `test/labels.test.sh` red - `D93F0B` → `AAAAAA` → `test/labels.test.sh` red - `attention` added to `claim_clock_exempt`'s exempt set → `test/issueflow-reconcile.test.sh` red (`attention does not exempt a claimed issue` fails) - worktree restored clean after mutations. - **Suite**: `test/run.sh` on this head fails identically to `origin/main` in this environment (7 files, all from missing `node`/`jq` here — pre-existing, unrelated to the diff). The two test files this PR touches pass fully: `labels.test.sh` 11/11, and both new `issueflow-reconcile` checks green (`SWEEP` for claimed+attention, `KEEP` for the queue decision). `shellcheck`/`actionlint` binaries are absent locally so I could not execute those gates; the shell change is a single heredoc data row and the test additions follow the file's existing idiom including the `SC2016` disables. - **PR body** correctly identifies the operator bootstrap dispatch as post-merge work tracked on #83 and notes the vendored `LABELS.md` drift/refresh cycle. Non-blocking nit: the new CHANGELOG line went in at the top of `## Unreleased`, above the #61 entry — matches the issue's "above the heading below it" instruction and the monotonic check passes, so nothing to do. LGTM.
codex-bot-andresmgsl commented 2026-07-23 17:41:14 +00:00 (Migrated from github.com)

Closing round summary

What shipped

  • Added the byte-exact attention|D93F0B|A demand is parked here for the assignee: pick up the thread, ack by removing this label row to the shared core taxonomy, so bootstrap upserts it without changing bootstrap behavior.
  • Documented attention as an issue-only, hand-set, machine-never-written cross-cutting label and added the Unreleased changelog entry.
  • Pinned the row's exact value/field split and its queue/claim-clock inertness in tests.

Rounds

  • Round 1 (bcee821): Grok, Claude, and Kimi approved the current head. No blocking or non-blocking change request required another code round, so the shipped head is unchanged.

Verified

  • All three panel approvals are on current head bcee821153a4a65e40dac6f34af352a94f235d6e.
  • CI is green, including the full test job, self-guards, action exercise, docs-sync exercise, and release-exercise fixtures; GitHub reports the PR cleanly mergeable.
  • Reviewers independently exercised the mutation floor: deleting the row, changing its color, or making attention claim-clock-exempt turns the intended tests red.
  • The diff is limited to the five issue-authorized files, with no workflow, .github/labels.conf, bootstrap-loop, or reconciler-branch change.

Post-merge residue

  • The operator bootstrap dispatch that creates the label in repositories remains tracked by #83.
  • Consumer vendored doctrine refreshes via docs-sync --fix on each consumer's next pin bump.
  • The usage contract remains deliberately scoped to #85.
## Closing round summary **What shipped** - Added the byte-exact `attention|D93F0B|A demand is parked here for the assignee: pick up the thread, ack by removing this label` row to the shared core taxonomy, so bootstrap upserts it without changing bootstrap behavior. - Documented `attention` as an issue-only, hand-set, machine-never-written cross-cutting label and added the Unreleased changelog entry. - Pinned the row's exact value/field split and its queue/claim-clock inertness in tests. **Rounds** - Round 1 (`bcee821`): Grok, Claude, and Kimi approved the current head. No blocking or non-blocking change request required another code round, so the shipped head is unchanged. **Verified** - All three panel approvals are on current head `bcee821153a4a65e40dac6f34af352a94f235d6e`. - CI is green, including the full test job, self-guards, action exercise, docs-sync exercise, and release-exercise fixtures; GitHub reports the PR cleanly mergeable. - Reviewers independently exercised the mutation floor: deleting the row, changing its color, or making `attention` claim-clock-exempt turns the intended tests red. - The diff is limited to the five issue-authorized files, with no workflow, `.github/labels.conf`, bootstrap-loop, or reconciler-branch change. **Post-merge residue** - The operator bootstrap dispatch that creates the label in repositories remains tracked by #83. - Consumer vendored doctrine refreshes via `docs-sync --fix` on each consumer's next pin bump. - The usage contract remains deliberately scoped to #85.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: heavy-duty/ceremony#87
No description provided.