agentleFS
MicrosoftKnown publishermicrosoft/rayfin/.github/skills/hotfix-release/SKILL.md

hotfix-release

Skill646 starsChanged 24 days agoMITView on GitHub

Create a hotfix release branch, cherry-pick commits, bump the version, and open a draft PR. Use when: hotfix, patch release, cherry-pick to release, hotfix nuget, hotfix npm, release branch fix, backport fix.

  • Commits and pushes

We split this skill into the rules it gives an agent

17 rules. About 0 are common, 11 are distinctive, and 6 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈11

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 6

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Create a hotfix release for a previously published NuGet or npm package.

    line 13
  2. Distinctive:

    If any input is missing, use the AskUserQuestion tool to collect it:

    line 21
  3. Very specific:

    If package type is unclear, ask: nuget or npm?

    line 23
  4. Very specific:

    If version is missing, list recent tags with git tag -l "nuget/v*" --sort=-version:refname | head -10 (or npm/v*) and let the user pick

    line 24
  5. Distinctive:

    If commits are missing, ask for the commit SHAs or PR numbers to cherry-pick

    line 25
  6. Distinctive:

    If the tag doesn't exist, stop and tell the user.

    line 36
  7. Distinctive:

    NuGet: Use 4-part versioning. Check for existing hotfix tags:

    line 40
  8. Very specific:

    If no prior hotfix: new version is {{version}}.1

    line 46
  9. Very specific:

    If {{version}}.N exists: new version is {{version}}.N+1

    line 47
  10. Distinctive:

    npm: Use semver patch bump. Parse the version parts and increment patch:

    line 49
  11. Very specific:

    If npm/v1.31.1 exists, use 1.31.2, etc.

    line 52
  12. Distinctive:

    If a cherry-pick conflicts:

    line 75
  13. Distinctive:

    Ask them to resolve

    line 78
  14. Distinctive:

    After resolution, run git cherry-pick --continue

    line 79
  15. Very specific:

    Create a draft PR targeting release/{{type}}-v{{version}} (not main):

    line 104
  16. Distinctive:

    After creating the PR, print a summary:

    line 112
  17. Distinctive:

    Branch already exists: Ask the user if they want to use the existing branch or create a new one

    line 135

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Create a hotfix release for a previously published NuGet or npm package.

Input: The user provides:

  • Package type: nuget or npm
  • Version to patch: The published version to hotfix (e.g., 0.0.45 for NuGet, 1.31.0 for npm)
  • Commits to cherry-pick: One or more commit SHAs, PR numbers, or branch names containing the fix

If any input is missing, use the AskUserQuestion tool to collect it:

  • If package type is unclear, ask: nuget or npm?
  • If version is missing, list recent tags with git tag -l "nuget/v*" --sort=-version:refname | head -10 (or npm/v*) and let the user pick
  • If commits are missing, ask for the commit SHAs or PR numbers to cherry-pick

Steps

1. Validate the tag exists

git fetch origin --tags
git rev-parse "{{type}}/v{{version}}" >/dev/null 2>&1

If the tag doesn't exist, stop and tell the user. List available tags for that package type to help them.

2. Determine the hotfix version

NuGet: Use 4-part versioning. Check for existing hotfix tags:

git tag -l "nuget/v{{version}}.*" --sort=-version:refname
  • If no prior hotfix: new version is {{version}}.1
  • If {{version}}.N exists: new version is {{version}}.N+1

npm: Use semver patch bump. Parse the version parts and increment patch:

  • 1.31.0 → 1.31.1
  • If npm/v1.31.1 exists, use 1.31.2, etc.

Announce the computed hotfix version to the user before proceeding.

3. Create the release branch

git checkout -b release/{{type}}-v{{version}} {{type}}/v{{version}}
git push origin release/{{type}}-v{{version}}

4. Create the fix branch and cherry-pick

git checkout -b fix/hotfix-{{type}}-v{{hotfix_version}} release/{{type}}-v{{version}}

Cherry-pick each provided commit:

git cherry-pick {{commit_sha}}

If a cherry-pick conflicts:

  1. Show the conflicting files to the user
  2. Ask them to resolve
  3. After resolution, run git cherry-pick --continue

5. Bump the version

NuGet: Edit packages/host/Version.props — set <VersionPrefix> to the hotfix version:

<VersionPrefix>{{hotfix_version}}</VersionPrefix>

npm: Edit packages/typescript-sdk/core/package.json and any other affected packages — set "version" to the hotfix version. Rush version policies apply to all packages in the typescript-sdk policy, so update each affected package.

6. Commit the version bump

git add -A
git commit -m "chore(host): bump {{type}} version to {{hotfix_version}} for hotfix" --no-verify

7. Push and create a draft PR

git push origin fix/hotfix-{{type}}-v{{hotfix_version}}

Create a draft PR targeting release/{{type}}-v{{version}} (not main):

  • Title: fix({{type}}): hotfix v{{hotfix_version}}
  • Body: List the cherry-picked commits and the version bump
  • Draft: true

8. Summary

After creating the PR, print a summary:

✅ Hotfix prepared

  Package type:    {{type}}
  Base version:    {{version}}
  Hotfix version:  {{hotfix_version}}
  Release branch:  release/{{type}}-v{{version}}
  Fix branch:      fix/hotfix-{{type}}-v{{hotfix_version}}
  PR:              {{pr_url}}

Next steps:
  1. Review and merge the PR
  2. Queue the rayfin.official pipeline on release/{{type}}-v{{version}}
     - Set Publish{{Type}}: true
  3. Pipeline will publish and tag {{type}}/v{{hotfix_version}}

Error Handling

  • Tag not found: List available tags and ask the user to pick the correct version
  • Cherry-pick conflict: Show conflicting files, let the user resolve, then continue
  • Branch already exists: Ask the user if they want to use the existing branch or create a new one
  • Version already tagged: Increment to the next available revision and confirm with the user

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.