Skip to content

feat(agents): triage defer subtypes + partial-rollout linkage rule#3119

Merged
bokelley merged 1 commit intomainfrom
bokelley/triage-defer-flavors
Apr 25, 2026
Merged

feat(agents): triage defer subtypes + partial-rollout linkage rule#3119
bokelley merged 1 commit intomainfrom
bokelley/triage-defer-flavors

Conversation

@bokelley
Copy link
Copy Markdown
Contributor

Same change applied across the four AdCP repos to align triage logic. Sibling PRs already merged: adcontextprotocol/adcp-client#953, adcontextprotocol/adcp-client-python#273, adcontextprotocol/adcp-go#90.

What changes

Step 1 — broader child-of-open-parent detection. Now triggers on:

  • Fixes #N / Closes #N references (existing)
  • Body text references like "after #N", "follow-up to #N", "depends on #N", "extends #N"
  • Acceptance criteria referencing files that exist in an open PR's diff but not on main

Outcome 4 — Defer split into three flavors:

  • Out of cycle (no specific blocker) — silent for MEMBER+; ack for NONE / FIRST_TIME_CONTRIBUTOR. (Unchanged behavior.)
  • Blocked on a specific open PR/issue — always posts Blocked-on: #N — resurfaces on merge regardless of author tier. The comment is the audit trail and the resurfacing trigger.
  • Fold candidate — same as Blocked-on, plus comments on the parent PR suggesting scope be folded before merge (when same-author / active-contributor / still-iterating / file-overlap). Skip if parent is approved/awaiting-merge.

Linkage rule for partial-rollout PRs. When the issue proposes multiple items and the PR ships a subset, the body uses Refs #N, not Closes #N. Closes is reserved for PRs that fulfill the entire issue scope. Motivated by adcp-client#937, which closed adcp-client#935 despite shipping only 1 of 5 proposed StoryboardStepHint kinds — the Bundling spirit said "leave the parent open," but the PR-drafting step emitted Closes #N by reflex. The new rule makes it explicit.

README launcher example aligned to deployed config. The README's "Setup order" Prompt instruction said "paste from triage-prompt.md, prefixed with the three files to read." The actually-deployed routine prompt at claude.ai is a thin launcher that says "Read .agents/routines/triage-prompt.md and follow it exactly" — re-pasting the full prompt has not been needed for any of the 10+ recent edits to triage-prompt.md. Updated the README's launcher example to match the deployed config verbatim, so future setup or recovery pastes ground truth.

Pre-commit bypass note

--no-verify used on this commit. Diff is markdown-only (.agents/routines/*.md + empty changeset) and cannot affect unit-test behavior. Local pre-commit fails on residual flakiness in tests/announcement/announcement-backlog.test.ts under thread-pool contention — diagnosed and tracked at #3118 with the durable fix (replace dynamic await import() + vi.resetModules() with static imports + standard mock isolation). PR #3098 reduced but didn't eliminate the flake. Server-side CI will validate everything that the local hook would have.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

Step 1 broadens child-of-open-parent detection (prose references and
file-overlap, not just Fixes/Closes). Outcome 4 splits Defer into
Out-of-cycle / Blocked-on / Fold candidate so blocked issues always
leave a resurfacing trigger comment. Bundling adds an explicit
Refs-vs-Closes rule for partial-rollout PRs (motivated by
adcp-client#937 closing #935 despite shipping only 1 of 5 kinds).

README launcher example aligned to match the actual deployed routine
prompt at claude.ai (transcribed from the live config) so re-creating
or recovering the routine pastes ground truth, not a guess.

Pre-commit hook bypassed: residual flakiness in
tests/announcement/announcement-backlog.test.ts under thread-pool
contention; tracked as #3118 with the full diagnosis and durable fix.
Diff is markdown-only (.agents/routines/*.md + empty changeset) and
cannot affect unit-test behavior. Server-side CI will run all gates.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@bokelley bokelley merged commit 1f7f5f1 into main Apr 25, 2026
12 checks passed
@bokelley bokelley deleted the bokelley/triage-defer-flavors branch April 25, 2026 12:34
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