Skip to content

feat(agents): triage routes PRs to milestone + release branch by bump level#3056

Merged
bokelley merged 1 commit intomainfrom
bokelley/triage-milestone-and-branch-routing
Apr 24, 2026
Merged

feat(agents): triage routes PRs to milestone + release branch by bump level#3056
bokelley merged 1 commit intomainfrom
bokelley/triage-milestone-and-branch-routing

Conversation

@bokelley
Copy link
Copy Markdown
Contributor

Summary

Two related routing rules added to `triage-prompt.md`:

  1. Milestone assignment — any `minor` changeset goes on the next open `X.Y.0` milestone (e.g. `3.1.0`); any `major` changeset goes on the next open `X.0` milestone (e.g. `4.0`); `patch` goes on the active patch milestone; `--empty` gets no milestone. Old rule was "only milestone on explicit signal" which left minor-bump PRs unmilestoned.
  2. Release-branch routing — `patch` PRs target the active `X.Y.x` branch, not `main`. If no patch branch is open, flag-for-human with "needs @bokelley to cut one."

The routine still never creates milestones — if the expected one is missing, surface the gap and flag for human.

Motivation

Caught on #3051 tonight (vast_tracker / daast_tracker for #2915) — a `minor` changeset that shipped unmilestoned and I had to `gh pr edit --milestone` manually. Also surfaced that no `3.0.x` patch branch is open yet, so any patch triage right now flags for human.

Sibling repos

Not propagating — sibling SDK repos use release-please with their own repo-specific rules. The adcp protocol repo is the one where the milestone/branch mapping matters.

Test plan

  • CI green
  • Next minor-bump PR the routine drafts includes the right milestone line in the triage comment AND on the PR itself

🤖 Generated with Claude Code

…es to release branch

Old rule was too conservative: "only milestone on explicit signal,
never create milestones, never infer." Result: minor-bump PRs (like
#3051 for 3.1.0) shipped unmilestoned and had to be edited manually.

New rule: the changeset bump level is explicit signal. Fetch open
milestones + patch branches via gh api, then apply the routing
matrix — major → next-major milestone on main; minor → next-minor
milestone (e.g. 3.1.0) on main; patch → patch milestone on X.Y.x
branch (flag-for-human if no patch branch exists); --empty → no
milestone, main.

Still never creates milestones — if the expected one is missing,
flag-for-human. Matches the repo invariant: milestones are a human
planning surface, branches are a human release-cut decision.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@bokelley bokelley merged commit 4a51eea into main Apr 24, 2026
12 checks passed
@bokelley bokelley deleted the bokelley/triage-milestone-and-branch-routing branch April 24, 2026 19:32
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