Refresh an existing .NET release-notes milestone branch or PR 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, and responds to review feedback. USE FOR: reruns on a populated release-notes branch. DO NOT USE FOR: first-pass generation of a new milestone (use generate-changes, generate-features, and release-notes).
Use this skill when the milestone branch already exists and contains drafted
markdown, features.json, reviewer comments, or human edits.
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.
Treat the existing branch as the working baseline, not as a blank slate.
The goal is to:
Read these before making changes:
changes.json, features.json, and markdown filesbuild-metadata.json, if presentDetermine 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. If it did not,
keep the current file and focus on editorial fixes and comment responses.
Typical signals:
dotnet/dotnet for release/<major>.0.1xx-previewNbuild-metadata.jsonIf you refreshed changes.json, compare the old and new files by stable id.
Classify changes as:
id, but new evidence, labels, revert state, or reviewer context changes the treatmentDo not treat a refreshed changes.json as permission to restart the whole
release from zero.
features.jsonWhen features.json already exists, use it as the editorial baseline and merge
the delta into it.
Preserve prior annotations for unchanged entries, including:
scorescore_reasonscore_breakdownbreaking_changesreverted_by / revertsOnly rescore:
This should feel like a delta merge, not a full rescore.
Use the current draft as the starting point. Prefer integration over duplication.
Examples:
Keep the existing structure when it still works. Add a new top-level section only when the delta introduces a genuinely new story.
Unresolved PR comments are part of the spec for the next run.
changes.json, VMR refs, API verification, or the final buildFor an existing release-notes branch, the normal loop is:
changes.json only if the preview moved forwardfeatures.jsonThis keeps the branch stable for reviewers and avoids throwing away already curated editorial work.