Skip to content

chore(triage): no-triage label gate + CLAUDE.md coordination rules#572

Merged
bokelley merged 1 commit into
mainfrom
bokelley/triage-open-work
May 4, 2026
Merged

chore(triage): no-triage label gate + CLAUDE.md coordination rules#572
bokelley merged 1 commit into
mainfrom
bokelley/triage-open-work

Conversation

@bokelley
Copy link
Copy Markdown
Contributor

@bokelley bokelley commented May 4, 2026

Summary

Two coordination guards for the Claude issue triage routine — found needed during today's open-work triage session.

What changed

`.github/workflows/claude-issue-triage.yml`

Adds a label-based skip on the auto-trigger paths:

  • `issues.opened/reopened`: skip when the issue carries `no-triage`
  • `issue_comment.created`: same
  • `repository_dispatch` (manual `/triage`): deliberately bypasses the label so adopters can still invoke the bot on a labeled issue when explicitly wanted

`CLAUDE.md`

New "Issue Triage Bot" section documenting:

  • The three label states: `claude-triaging` (in-flight), `claude-triaged` (PR opened or deferred), `no-triage` (preemptive opt-out)
  • When to apply each
  • Coordination rules: don't open a competing PR for an unlabeled issue; apply `no-triage` at issue creation if you/a designated agent plans to handle it; manual `/triage` overrides
  • The stale-draft-PR rule: when a human PR for the same issue lands first, prefer close-as-superseded over rebase. Today's session produced 17 such closes (the bot's draft PRs lost a parallel race to human-authored PRs that landed first), proving the rule.

Repo state

The `no-triage` label was created at the repo level earlier in the session (purple, with description) so it's available to apply to issues right now.

Test plan

  • `yamllint` passes (workflow file structure unchanged apart from `if:` expressions)
  • CLAUDE.md renders cleanly
  • Verify on next issue: open a test issue with `no-triage` label → routine should NOT fire
  • Verify `/triage execute` on a `no-triage` issue still routes through (member-association gate)

🤖 Generated with Claude Code

Adds two coordination guards for the Claude issue triage routine:

1. Workflow gate (.github/workflows/claude-issue-triage.yml): the
   issues.opened/reopened and issue_comment.created paths now
   skip when the issue carries the no-triage label. Apply at
   issue creation when a human or designated agent plans to do the
   work — the routine never fires. Manual /triage via
   slash-command-dispatch deliberately bypasses the label so the bot
   can still be invoked on no-triage issues when explicitly wanted.

2. CLAUDE.md ''Issue Triage Bot'' section documents the three label
   states (claude-triaging / claude-triaged / no-triage), when to
   apply each, and the stale-draft-PR coordination rule (close-as-
   superseded over rebase when a human PR for the same issue lands
   first — today's session produced 17 supersession closes proving
   the rule).

The no-triage label is created at the repo level (purple, with
description); the workflow gate ensures the routine doesn't fire on
labeled issues at GitHub's webhook layer rather than relying on the
routine itself to self-skip.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@bokelley bokelley merged commit e522078 into main May 4, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant