Merge pull request #87 from codex-bot-andresmgsl/build/84-attention-core-label-row
feat: add the attention core label row
This commit is contained in:
commit
90a42b16b0
5 changed files with 18 additions and 0 deletions
|
|
@ -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 <repo>#N` replaces the `Closes #N` that cannot cross repos (#57).
|
||||
|
|
|
|||
|
|
@ -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 |
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 </dev/null
|
||||
check "one closed offsite PR nudges" 0 "NUDGE" offsite_resolved_decision <<<"CLOSED"
|
||||
|
|
@ -182,6 +184,8 @@ check "claimed plus offsite is a healthy issue" 0 "KEEP" \
|
|||
queue_decision <<< $'claimed\noffsite'
|
||||
check "offsite alone still needs triage" 0 "ADD_NEEDS_TRIAGE" \
|
||||
queue_decision <<<"offsite"
|
||||
check "claimed plus attention is a healthy issue" 0 "KEEP" \
|
||||
queue_decision <<< $'claimed\nattention'
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# The ruling pass on the issue surface (#52), against a recording stub: the
|
||||
|
|
|
|||
|
|
@ -26,6 +26,17 @@ 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'
|
||||
# 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"
|
||||
# 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' _ \
|
||||
|
|
|
|||
Loading…
Reference in a new issue