Skip to content

Incorporate servicing release experience into release-manager playbooks#7656

Open
jeffhandley wants to merge 1 commit into
dotnet:mainfrom
jeffhandley:jeffhandley/servicing-release-agent-feedback
Open

Incorporate servicing release experience into release-manager playbooks#7656
jeffhandley wants to merge 1 commit into
dotnet:mainfrom
jeffhandley:jeffhandley/servicing-release-agent-feedback

Conversation

@jeffhandley

@jeffhandley jeffhandley commented Jul 23, 2026

Copy link
Copy Markdown
Member

The release-manager agent was used end-to-end for a servicing release, and a handful of practical improvements emerged from that experience.

UX and guidance

  • The agent now opens every session with a compact stage-tree overview of the active track (monthly vs. servicing) so the user immediately knows where they are.
  • A progress rail is shown at each gating prompt — completed stages, current step, and remaining stages.
  • After every stage the agent provides the exact next prompt or command the user needs to advance, eliminating the need to send generic "proceed" messages.

Execution context

  • API keys are now captured via an editor launched in wait mode rather than inline prompts.
  • Auth-sensitive commands (AzDO artifact access, dotnet nuget push, BAR promotion) are handed off as explicit terminal blocks for the user to run outside the session.

Stage 7 (support page) — conditional policy

  • Servicing releases that touch only existing packages skip Stage 7 entirely.
  • If new packages are introduced in a servicing release, the release manager authors the dotnet/website PR.
  • Monthly releases review a PR created by the partner team (unchanged behavior, now explicitly documented).

Release notes — backport attribution

  • For servicing releases, the source main PR is preferred over the bot-authored backport PR, with the correct human author credited.
  • A tag preflight check is required before creating a draft GitHub release.

Servicing preparation — backport survey

  • At the start of a servicing release, the agent now surveys the release branch and open PRs for existing backport activity.
  • If backport PRs are found, the agent informs the user that it can cherry-pick directly from main as part of the servicing process.
  • Source main PRs from open backport PRs are pre-highlighted in the candidate selection table.
  • Backports that already shipped in a prior release are classified separately and shown in a grounding table (not silently omitted).

Release wrap-up

  • When the release is fully complete, the agent presents a celebratory closing message with per-stage wall-clock timing and an estimate of active user-interaction time.

…aybooks

- Add startup stage-tree overview and per-stage progress rail to the agent's
  operating rules so each session opens with a process snapshot.
- Require concrete next-step guidance after every stage so the user always
  knows the exact prompt or command needed to advance.
- Add explicit run-location discipline: privileged and auth-sensitive commands
  use an editor-in-wait prompt for API keys and a terminal handoff block for
  AzDO/artifact/publish operations.
- Add conditional Stage 7 (support-page) policy: skip for servicing releases
  that touch only existing packages; release-manager authors the dotnet/website
  PR when new packages are introduced; monthly releases review a partner-team PR.
- Prefer the source main PR over the bot-authored backport PR in servicing
  release notes, with correct human author attribution.
- Require a tag preflight check before creating a draft GitHub release.
- Add Step 2 to the servicing preparation flow: survey the release branch and
  open PRs for existing backport activity; inform the user that the
  release-manager agent can efficiently cherry-pick from main as part of the
  servicing release process; pre-highlight identified source PRs as candidates
  in the selection table; classify already-released backports separately and
  surface them in a grounding table rather than omitting them.
- Add release wrap-up rule: present a celebratory closing message with
  per-stage wall-clock timing and an estimate of active user-interaction time.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 23, 2026 19:34
@jeffhandley
jeffhandley requested a review from a team as a code owner July 23, 2026 19:34

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the release-manager agent playbooks to incorporate lessons learned from running an end-to-end servicing release, improving user guidance, clarifying conditional policies, and refining release-notes scope/attribution for backports.

Changes:

  • Adds servicing-specific guidance for release-notes PR collection, including preferring source main PRs over release/* backport wrappers for attribution.
  • Makes Stage 7 (support-page follow-up) conditional based on monthly vs. servicing and whether new packages are introduced.
  • Improves servicing preparation guidance by surveying existing backport activity and enhancing candidate/grounding tables.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
.github/agents/release-manager/write-release-notes/references/collect-prs.md Adds servicing override to treat servicing-prep PR scope as canonical and prefer source main PRs for notes/attribution.
.github/agents/release-manager/write-release-notes/README.md Documents backport attribution rule and adds tag preflight requirement before drafting GitHub releases.
.github/agents/release-manager/validate-release/references/stage-7-support-page.md Refactors Stage 7 into decision-gated paths (monthly review vs. servicing skip vs. servicing author PR).
.github/agents/release-manager/validate-release/README.md Updates Stage 7 description to reflect conditional policy and adjusts servicing guidance.
.github/agents/release-manager/publish-release/references/stage-4-publish-and-promote.md Adds explicit “execution context” / terminal handoff expectations for auth-sensitive publish steps.
.github/agents/release-manager/prepare-release/references/stages-1-2-servicing-branch.md Adds a backport-survey step and expands candidate selection/grounding tables for servicing prep.
.github/agents/release-manager.agent.md Adds session-start stage-tree overview, progress rail guidance, terminal handoff guidance, and wrap-up timing summary requirements.
Comments suppressed due to low confidence (2)

.github/agents/release-manager/validate-release/README.md:27

  • The Stage 7 section heading says “Confirm the Support-Page Update”, but the referenced stage document is titled “Stage 7 - Support-Page Follow-up”. Aligning the heading text avoids confusion when users navigate between the README and the reference file.
## Stage 7 - Confirm the Support-Page Update

Stage 7 is conditional:

.github/agents/release-manager/prepare-release/references/stages-1-2-servicing-branch.md:190

  • The notes section still says “aligned with Step 5”, but after renumbering the commit-application step is Step 6. This can send readers to the wrong step when ordering commits.
- Keep the `DO-NOT-SQUASH` label on the PR from creation through merge.

Comment on lines +39 to +42
For each source `main` PR number identified, check whether it already shipped in a previous release:

- Run `git merge-base --is-ancestor <pr-merge-commit> <previous-tag>` to check ancestry.
- Or check whether the PR number appears in a prior release's release notes body.
- Stage 7 handles support-page follow-up based on release type and package novelty.

For servicing releases prepared directly on public `release/<major>.<minor>`, Stage 6 is often unnecessary because commits were backported from `main` into the release branch up front. In that case, run Stage 5 and Stage 7, and run Stage 6 only if the user explicitly asks for additional branch-flow follow-up.
For servicing releases prepared directly on public `release/<major>.<minor>`, Stage 6 is often unnecessary because commits were backported from `main` into the release branch up front. In that case, run Stage 5 and run Stage 6 only if the user explicitly asks for additional branch-flow follow-up.
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.

2 participants