Official agent skill

Update Release Notes Branch Set

by dotnet in dotnet/core

Refreshes an existing .NET release-notes milestone branch set incrementally, regenerating data only when the preview moved and keeping human edits and review replies.

OfficialMITAuto-check passedDevelopment

Install Update Release Notes Branch Set

skills CLI
$ npx skills add dotnet/core --skill update-existing-branch -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install dotnet/core update-existing-branch --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/dotnet/core.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/update-existing-branch .claude/skills/update-existing-branch && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
update-existing-branch
GitHub stars
22k
Token cost
~1.7k tokens
SKILL.md length
873 words
Files
1
Skills in repo
15
Repo updated
First seen
Licence
MIT

At a glance

Refreshes an existing .NET release-notes milestone branch set incrementally, regenerating data only when the preview moved and keeping human edits and review replies.

  • Works in 6 steps: Check whether the preview moved forward → Compute a delta from the existing files → Merge into the existing features.json → …
  • Rerunning release notes on a milestone branch set that already has drafts
  • SKILL.md covers Purpose, Inputs, Which branch holds what and Process
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

This is the rerun stage of a .NET release-notes pipeline. It treats a populated base branch and its per-component branches as the working baseline. The agent reads the base branch and its PR, every component branch, the existing changes.json, features.json and build-metadata.json, the markdown on each component branch and any unresolved review comments.

It first checks whether later commits landed in the dotnet/dotnet VMR for the same preview, and regenerates changes.json only if they did. A delta is then computed by comparing old and new files by stable id and merged into features.json, and new material is folded into the existing markdown without overwriting human or reviewer edits. Files live in fixed places: the JSON files and README entries on the base branch, and one markdown file per component, such as aspnetcore.md or runtime.md, on its own branch. First-pass generation of a new milestone belongs to other skills.

When your agent uses it

  • Rerunning release notes on a milestone branch set that already has drafts
  • Responding to review comments across the per-component PRs
  • Merging newly shipped changes into features.json without redoing the whole release

Example prompts

  • “Update the .NET release-notes branches for the latest preview and keep the reviewers' edits.”
  • “Check whether the VMR ref moved since the last run and regenerate changes.json only if it did.”
  • “Address the unresolved review comments on the aspnetcore component branch.”

Requirements

  • An existing milestone base branch with per-component branches and PRs
  • Access to the dotnet/dotnet repository history

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Check whether the preview moved forward
  2. Compute a delta from the existing files
  3. Merge into the existing features.json
  4. Update markdown in place
  5. Treat review comments as required inputs
  6. Default outcome

What it can do on your machine

Read from SKILL.md and the folder at commit 44927bc. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Update Release Notes Branch Set loads about 1.7k tokens when it runs. Until then it costs about 129 tokens; SKILL.md has 873 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~129
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from dotnet/core at commit 44927bc, republished under its MIT licence (© dotnet). 873 words, ~1,722 tokens.

Download SKILL.mdSave it as .claude/skills/update-existing-branch/SKILL.md (or your agent's skills folder).
name
update-existing-branch
description
Refresh an existing .NET release-notes milestone branch set incrementally. Checks whether the VMR ref moved, regenerates `changes.json` only when needed, merges the delta into `features.json`, integrates new material into existing markdown clusters across the per-component branches, and responds to review feedback. USE FOR: reruns on a populated release-notes branch set. DO NOT USE FOR: first-pass generation of a new milestone (use generate-changes, generate-features, and release-notes).

Update Existing Branch

Use this skill when the milestone branch set already exists and contains drafted markdown, features.json, reviewer comments, or human edits. The branch set is the base branch plus its per-component branches as defined in release-notes/references/pr-layout.md.

This is the incremental rerun stage of the release-notes pipeline. It is the branch-maintenance equivalent of what editorial-scoring is for scoring: the canonical place to describe how follow-up runs should behave.

Purpose

Treat the existing branch set as the working baseline, not as a blank slate.

The goal is to:

  1. refresh shipped-change data only when the preview actually moved forward
  2. score and write the delta, not the whole release again
  3. preserve human edits and reviewer-driven rewrites on every component branch
  4. integrate new material into the current story cleanly

Inputs

Read these before making changes:

  1. the current base branch and its PR
  2. every per-component branch and its PR
  3. the existing changes.json, features.json, and build-metadata.json on the base branch
  4. the existing markdown files on each component branch
  5. unresolved PR review comments and discussion threads on every PR in the set

Which branch holds what

Respect this invariant on every rerun:

ArtifactLives on
changes.json, features.json, build-metadata.jsonbase branch only
README.mdbase branch preallocates entries; each component branch links only its own entry alongside the matching file
{component}.md (e.g. aspnetcore.md, runtime.md)matching component branch only

Process

1. Check whether the preview moved forward

Determine whether later dotnet/dotnet codeflow commits landed for the same preview branch or tag since the last run.

If the relevant VMR ref moved forward, regenerate changes.json on the base branch. If it did not, keep the current file and focus on editorial fixes and comment responses on the component branches.

Typical signals:

  • later commits on dotnet/dotnet for release/<major>.0.1xx-previewN
  • a newer release-branch head than the one captured in build-metadata.json
  • new source-manifest commits for a component already discussed in the draft
2. Compute a delta from the existing files

If you refreshed changes.json, compare the old and new files by stable id.

Classify changes as:

  • added — new shipped items not seen in the last run
  • changed — same id, but new evidence, labels, revert state, or reviewer context changes the treatment
  • removed or superseded — no longer relevant to the current build story, or later evidence shows the original interpretation was wrong
  • unchanged — keep the prior editorial work

Do not treat a refreshed changes.json as permission to restart the whole release from zero.

3. Merge into the existing features.json

When features.json already exists, use it as the editorial baseline and merge the delta into it on the base branch.

Preserve prior annotations for unchanged entries, including:

  • score
  • score_reason
  • score_breakdown
  • breaking_changes
  • reverted_by / reverts
  • useful human notes or hand-tuned annotations

Only rescore:

  • newly added entries
  • materially changed entries
  • earlier entries that reviewers explicitly questioned or that new evidence disproved

This should feel like a delta merge, not a full rescore.

Show full SKILL.md (391 more words)Show less
4. Update markdown in place

Use the current draft as the starting point. Prefer integration over duplication.

For each component affected by the delta, update only that component's markdown and its own README entry on its branch. Before editing, merge the base branch into the component branch so the latest metadata and already-merged index links are available in your working tree; don't touch component branches you aren't editing this run. Add a link only when adding the matching component file; keep other pending entries unlinked and preserve links already merged.

Examples:

  • on the runtime branch, add a new GC item into the existing Garbage Collection Performance Improvements section in runtime.md
  • on the libraries branch, extend an existing Unsafe Evolution block in libraries.md instead of creating a second heading
  • move a newly demoted item into Bug fixes instead of deleting the story without explanation

Keep the existing structure when it still works. Add a new top-level section only when the delta introduces a genuinely new story.

When the target build changes or an incremental API diff becomes available, review it for upgrade-impacting changes, including any API-diff review left pending on the base PR. Put verified guidance in the affected component's version-to-version or preview-only section as appropriate, without rewriting unrelated notes. Incorporate newly published compatibility guidance even if the build has not changed.

5. Treat review comments as required inputs

Unresolved PR comments are part of the spec for the next run, on every PR in the set.

  • read them before rewriting anything
  • answer factual questions with evidence from changes.json, VMR refs, API verification, or the final build
  • update the markdown when the reviewer is right
  • if the reviewer is directionally right but the current build still contains the feature, explain the milestone and branch context clearly
6. Default outcome

For an existing release-notes branch set, the normal loop is:

  1. refresh changes.json only if the preview moved forward
  2. merge the delta into features.json
  3. update the existing markdown in place
  4. respond to comments and questions

Before finalizing the refreshed draft, run review-release-notes against the merged features.json, changes.json, and component files on their own branches until merged. Resolve noteworthy omissions or record the editorial reason in the corresponding features.json entry's score_reason on the base branch.

This keeps the branch set stable for reviewers and avoids throwing away already curated editorial work.

© dotnet, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .github/skills/update-existing-branch of dotnet/core.

Open the folder on GitHubat commit 44927bc

Compare with similar skills

Update Release Notes Branch Set next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Update Release Notes Branch Set compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Update Release Notes Branch Set this skilldotnet/core22k—~1.7kAutomated safety check: PassMIT
Add Analyzerdotnet/roslynator3.5k—~1.3kAutomated safety check: PassCustom licence
Release Roslynatordotnet/roslynator3.5k—~1kAutomated safety check: PassCustom licence
Open Pull RequestGremlinq/ExRam.Gremlinq187—~1.5kAutomated safety check: PassMIT
Prepare ReleaseGremlinq/ExRam.Gremlinq187—~1.1kAutomated safety check: PassMIT
Maintain DisCatSharpAiko-IT-Systems/DisCatSharp140—~1.2kAutomated safety check: PassMIT

Similar skills

  • Add Analyzer

    dotnet/roslynator

    Official

    A skill your agent uses when adding a new RCS diagnostic in roslynator (RCS0 formatting, RCS1 general, RCS9 code-analysis), wiring roslynator EditorConfig options, or when docs say CHANGELOG.md…

    3.5k GitHub stars~1.3k tokensUpdated 6 days ago
    DevelopmentAuto-check passed
  • Release Roslynator

    dotnet/roslynator

    Official

    A skill your agent uses when shipping a roslynator release, rolling CHANGELOG.md [Unreleased], updating the VS Code extension changelog, creating a GitHub v release, or optionally tagging cli-v.

    3.5k GitHub stars~1k tokensUpdated 6 days ago
    DevelopmentAuto-check passed
  • Open Pull Request

    Gremlinq/ExRam.Gremlinq

    A skill your agent uses when opening a pull request for the current branch, or when an existing pull request needs a better description - including when the check-description CI check has failed.

    187 GitHub stars~1.5k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Prepare Release

    Gremlinq/ExRam.Gremlinq

    A skill your agent uses when preparing a new release. An agent skill from Gremlinq/ExRam.Gremlinq.

    187 GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Maintain DisCatSharp

    Aiko-IT-Systems/DisCatSharp

    Guides changes to the DisCatSharp C# Discord library: tracing a payload field through parsing, serialization and caches, then validating across target frameworks.

    140 GitHub stars~1.2k tokensUpdated today
    DevelopmentAuto-check passed
  • Revit Toolkit Backward Compat

    Nice3point/RevitToolkit

    Evolve the public surface of Nice3point.Revit.Toolkit without breaking downstream consumers: deprecate a renamed or replaced member with [Obsolete] with a JetBrains [CodeTemplate] auto-conversion…

    176 GitHub stars~2k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from dotnet/core

All 15 skills in this repo
  • Official

    Audits and updates os-packages.json files listing the Linux packages each .NET release needs per distro, then regenerates the Markdown from the JSON.

    22k GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • Official

    Audits and updates the supported-os.json files for .NET releases, checking them against upstream lifecycle data and regenerating the markdown with the release-notes tool.

    22k GitHub stars~4.1k tokensUpdated yesterday
    Auto-check passed
  • Official

    Validates .NET release data with the release-notes CLI: download URL liveness, SHA512 hashes, CDN latest.version files and aka.ms redirects.

    22k GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed
  • Produces the changes.json manifest for a .NET preview, RC or GA milestone by choosing the right VMR base and head refs and running release-notes generate changes.

    22k GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed
  • Official

    Ranks the changes in a release manifest and writes a scored features file that release notes, docs and blog posts can each cut at their own threshold.

    22k GitHub stars~2.2k tokensUpdated yesterday
    Auto-check passed
  • Official

    Audits a scored features.json file and its draft release notes against editorial examples to catch over-scored, under-scored, or missing entries.

    22k GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Update Release Notes Branch Set

What does Update Release Notes Branch Set do?

Refreshes an existing .NET release-notes milestone branch set incrementally, regenerating data only when the preview moved and keeping human edits and review replies. NET release-notes pipeline. It treats a populated base branch and its per-component branches as the working baseline.

When should I use Update Release Notes Branch Set?

Update Release Notes Branch Set fits situations like: rerunning release notes on a milestone branch set that already has drafts; responding to review comments across the per-component PRs; merging newly shipped changes into features.json without redoing the whole release.

How do I install Update Release Notes Branch Set in Claude Code?

Run `npx skills add dotnet/core --skill update-existing-branch -a claude-code`. Or copy the skill folder (.github/skills/update-existing-branch in dotnet/core) into .claude/skills/update-existing-branch in your project. Claude Code loads it when a task matches its description.

How do I install Update Release Notes Branch Set in Codex?

Run `npx skills add dotnet/core --skill update-existing-branch -a codex`. Or copy the skill folder (.github/skills/update-existing-branch in dotnet/core) into .agents/skills/update-existing-branch in your project. Codex loads it when a task matches its description.

Can I use Update Release Notes Branch Set in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dotnet/core --skill update-existing-branch -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/update-existing-branch, .gemini/skills/update-existing-branch, .github/skills/update-existing-branch and .opencode/skills/update-existing-branch in your project.

What does Update Release Notes Branch Set need to run?

SKILL.md names no scripts, command-line tools or credentials: Update Release Notes Branch Set is instructions for the agent only. Our summary lists: An existing milestone base branch with per-component branches and PRs; Access to the dotnet/dotnet repository history.

Does Update Release Notes Branch Set access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Update Release Notes Branch Set safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Update Release Notes Branch Set use?

Update Release Notes Branch Set is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Update Release Notes Branch Set use?

About 1.7k tokens (SKILL.md is roughly 6.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Update Release Notes Branch Set?

Skills that share tags, products or a category with Update Release Notes Branch Set: Add Analyzer (dotnet/roslynator, 3.5k stars), Release Roslynator (dotnet/roslynator, 3.5k stars), Open Pull Request (Gremlinq/ExRam.Gremlinq, 187 stars) and Prepare Release (Gremlinq/ExRam.Gremlinq, 187 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Update Release Notes Branch Set?

dotnet (a GitHub organization, an official publisher) maintains it in dotnet/core, which has 22,037 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 9, 2026.

Source: dotnet/core on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.