feat(agents): triage fires on comments + claude-triaging lifecycle label#277
Merged
feat(agents): triage fires on comments + claude-triaging lifecycle label#277
Conversation
Mirrors the changes from adcontextprotocol/adcp#3146 + #3155: - Workflow fires on issue_comment.created with self-loop / bot / /triage / PR-conversation filtering. Plain comments now reach the routine through the new comment.created event kind. - claude-triaging lifecycle label: routine applies it after the concurrency + already-engaged checks pass, swaps to claude-triaged at end of run. Gives humans a visible "I'm on this" signal. - Manual triage docs in .agents/routines/README.md. - clear-stuck-claude-triaging.yml: cron every 30 min clears orphaned labels on issues stuck >30 min. - triage-webhook-miss-sweep.yml: cron hourly catches issues opened in last 24h that the issues.opened webhook silently missed. - .agents/scripts/triage-local.sh: local fire script. claude-triaging label created in this repo ahead of merge. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Same triage-routine resilience improvements that landed in adcontextprotocol/adcp via #3146 + #3155, applied to this repo. Three coordinated changes plus three new files.
What changes
1. Workflow now fires on
issue_comment.createdwith self-loop / bot //triage/ PR-conversation filtering. The routine prompt'sissue_comment.createdbranch (which always existed) now actually receives plain prose comments instead of being dead code.2.
claude-triaginglifecycle label. Routine applies it immediately after concurrency + already-engaged checks pass, swaps toclaude-triagedat end of run. Gives humans a visible "I'm on this, don't open a parallel PR" signal during the 1-3 min triage window. Skip cases (concurrency-skip, already-engaged-defer, non-substantive comments) leave the label off entirely.3. Manual triage docs in
.agents/routines/README.mddocumenting/triagesyntax, what does/doesn't trigger triage, how to read claude-triaging vs claude-triaged, and webhook-miss recovery paths.New recovery infrastructure
.github/workflows/clear-stuck-claude-triaging.yml— cron every 30 min, removesclaude-triagingfrom issues where it's been on >30 min (orphan case where routine errored mid-run)..github/workflows/triage-webhook-miss-sweep.yml— cron hourly, finds issues opened in last 24h with noclaude-triag*label and no## Triagecomment, fires the routine manually with aRECOVERY SWEEP:payload tag. Closes the silent-failure mode where GitHub silently dropsissues.openedwebhooks (this happened on adcontextprotocol/adcp#3112)..agents/scripts/triage-local.sh— local CLI to fire triage immediately on an issue without leaving a public/triagecomment trail. LoadsCLAUDE_ROUTINE_TRIAGE_URL/_TOKENfrom env or local.env.Prerequisites
claude-triaginglabel was created in this repo ahead of this merge. Required for the routine to apply — the routine stops and reports if the label is missing.🤖 Generated with Claude Code
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com