Official agent skill

Porting Changes

by dotnet in dotnet/dotnet-docker

Plan and move changes between branches in dotnet/dotnet-docker.

OfficialMITAuto-check passedDevOps & Cloud

Install Porting Changes

skills CLI
$ npx skills add dotnet/dotnet-docker --skill porting-changes -a claude-code

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

GitHub CLI
$ gh skill install dotnet/dotnet-docker porting-changes --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/dotnet-docker.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/porting-changes .claude/skills/porting-changes && 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
porting-changes
GitHub stars
4.9k
Token cost
~781 tokens
SKILL.md length
418 words
Files
2
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

Plan and move changes between branches in dotnet/dotnet-docker.

  • Works in 3 steps: Review the complete target diff and run… → Get user confirmation before submitting… → Open a pull request using the template.
  • Backport changes
  • SKILL.md covers Before porting, Choosing an integration method, Applying changes and Completing the port
  • Calls pwsh

What it does

Porting Changes is an agent skill from dotnet/dotnet-docker, published by the product's own GitHub organization. Plan and move changes between branches in dotnet/dotnet-docker. Use when asked to port or backport changes.

Its SKILL.md is about 780 tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `reference/pull-request-template.md`).

It sits in DevOps & Cloud, covering Containers. It works with .NET and Docker. The repository describes itself as: Official container images for .NET. The licence is MIT.

When your agent uses it

  • Backport changes
  • Tasks that involve Containers

Example prompts

  • “/porting-changes”

Requirements

  • Docker

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Review the complete target diff and run focused validation.
  2. Get user confirmation before submitting a pull request.
  3. Open a pull request using the template.

What it can do on your machine

Read from SKILL.md and the folder at commit 3eaedc9. 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

    Shell commands in SKILL.md call:

    • pwsh

    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

Porting Changes loads about 781 tokens when it runs. Until then it costs about 31 tokens; SKILL.md has 418 words of instructions outside code blocks.

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

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/dotnet-docker at commit 3eaedc9, republished under its MIT licence (© dotnet). 418 words, ~781 tokens.

Download SKILL.mdSave it as .claude/skills/porting-changes/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
porting-changes
description
Plan and move changes between branches in dotnet/dotnet-docker. Use when asked to port or backport changes.

Porting changes between branches

Before porting

  • Identify the source branch, target branch, and reason for the port.
  • Read the branch guide.
  • If either branch is a release branch, use pwsh eng/Get-ReleaseBranches.ps1 to identify it. Do not assume main is the current release branch.
  • Compare branch history, source PRs, and final patches. A different commit may already provide the same change on the target.
  • Identify the logical changes and their dependencies. Include only changes that belong on the target.

Use these common directions as a guide:

DirectionPort when
nightly to release/*A change in nightly is planned to be shipped in the next release. This is the most common porting operation. Exclude daily-only version bumps, experiments, and changes already represented on the release branch.
release/* to mainThe release contents are final and will be published soon.
main to nightlyAfter a new .NET release, use the merge-main-to-nightly skill to merge changes from main into nightly. Outside of normal release processes, individual changes may be ported as needed if a fix was made initially in the main branch instead of the nightly branch.
nightly to mainA fix in the nightly branch affects all currently published images, shared automation, tests, samples, or documentation before the next release merge.
main to release/*main had changes after the release branch was created. Example: new Aspire Dashboard version.
release/* to nightlyRare. Prefer the normal release/* to main to nightly route. Port directly only when nightly needs an urgent fix before that route completes.

Version-only daily or preview updates stay on nightly, except when that exact preview version is being published or when those updates include meaningful changes beyond just versions (Dockerfile changes, test changes, etc.). Security, correctness, and release-blocking fixes may take priority over the normal cadence.

Show full SKILL.md (123 more words)Show less

Choosing an integration method

  • The default flow is to cherry-pick the final (squashed or merged) commits for each change/PR directly from the source branch.
  • If the change does not apply cleanly, confirm the expected behavior with the user. The change may require extra work to preserve the user's intention.

Applying changes

  • Base new work on the target branch.
  • Preserve product versions, publishing settings, and other state that intentionally differs on the target.
  • Follow the resolving-conflicts skill when a cherry-pick or merge has conflicts.
  • Regenerate Dockerfiles, READMEs, and test baselines after changing their inputs.

Completing the port

  1. Review the complete target diff and run focused validation.
  2. Get user confirmation before submitting a pull request.
  3. Open a pull request using the template.

© 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

SKILL.md and 1 other file in .agents/skills/porting-changes of dotnet/dotnet-docker.

  • SKILL.md
  • reference/pull-request-template.md

Open the folder on GitHubat commit 3eaedc9

Compare with similar skills

Porting Changes 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.

Porting Changes compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Porting Changes this skilldotnet/dotnet-docker4.9k—~781Automated safety check: PassMIT
.NET Crash Dump Collectiondotnet/skills5.6k2 repos~1.1kAutomated safety check: PassMIT
Foundationdb AspireSnowBankSDK/foundationdb-dotnet-client158—~3.4kAutomated safety check: PassBSD-3-Clause
Corvus Bowtie Testingcorvus-dotnet/Corvus.JsonSchema199—~1.4kAutomated safety check: PassApache-2.0
Container Publishcodewithmukesh/dotnet-claude-kit7511 repos~1.8kAutomated safety check: PassMIT
Dockercodewithmukesh/dotnet-claude-kit7511 repos~1.5kAutomated safety check: PassMIT

Similar skills

  • Official

    Configures automatic crash dumps or captures dumps from running processes for modern .NET apps on Linux, macOS and Windows, including Docker and Kubernetes.

    5.6k GitHub starsUsed in 2 repos~1.1k tokens
    DevOps & CloudAuto-check passed
  • Foundationdb Aspire

    SnowBankSDK/foundationdb-dotnet-client

    How to run a FoundationDB cluster and connect to it from .NET — getting the IFdbDatabaseProvider that the keys/transactions/layers skills assume you already have.

    158 GitHub stars~3.4k tokensUpdated 6 days ago
    DevOps & CloudAuto-check passed
  • Corvus Bowtie Testing

    corvus-dotnet/Corvus.JsonSchema

    Test Corvus.JsonSchema against the JSON Schema Test Suite using Bowtie, the cross-implementation meta-validator.

    199 GitHub stars~1.4k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Container Publish

    codewithmukesh/dotnet-claude-kit

    Dockerfile-less containerization using the .NET 10 SDK container publishing feature.

    751 GitHub starsUsed in 1 repo~1.8k tokens
    DevOps & CloudAuto-check passed
  • Docker

    codewithmukesh/dotnet-claude-kit

    Docker containerization for .NET 10 applications. An agent skill from codewithmukesh/dotnet-claude-kit.

    751 GitHub starsUsed in 1 repo~1.5k tokens
    DevOps & CloudAuto-check passed
  • Containerize Aspnetcore

    github/awesome-copilot

    Official

    Containerize an ASP.NET Core project by creating Dockerfile and .dockerfile files customized for the project.

    40k GitHub starsUsed in 1 repo~4k tokens
    DevOps & CloudAuto-check: warnings

More from dotnet/dotnet-docker

  • Official

    Modify Cottle templates that generate Dockerfiles and READMEs in dotnet/dotnet-docker.

    4.9k GitHub stars~563 tokensUpdated today
    Auto-check passed
  • Image Management

    dotnet/dotnet-docker

    Official

    Manages .NET Docker images including adding images for new .NET versions, new Linux distros (Alpine, Ubuntu, Azure Linux), and new Windows versions.

    4.9k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Resolving Conflicts

    dotnet/dotnet-docker

    Official

    A skill your agent uses when merging or cherry-picking changes cause git conflicts.

    4.9k GitHub stars~573 tokensUpdated today
    Auto-check passed
  • Merge Main To Nightly

    dotnet/dotnet-docker

    Official

    Create a PR to merge main into the nightly branch after a .NET containers release.

    4.9k GitHub stars~249 tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Porting Changes

What does Porting Changes do?

Plan and move changes between branches in dotnet/dotnet-docker. Porting Changes is an agent skill from dotnet/dotnet-docker, published by the product's own GitHub organization. Plan and move changes between branches in dotnet/dotnet-docker.

When should I use Porting Changes?

Porting Changes fits situations like: backport changes; tasks that involve Containers.

How do I install Porting Changes in Claude Code?

Run `npx skills add dotnet/dotnet-docker --skill porting-changes -a claude-code`. Or copy the skill folder (.agents/skills/porting-changes in dotnet/dotnet-docker) into .claude/skills/porting-changes in your project. Claude Code loads it when a task matches its description.

How do I install Porting Changes in Codex?

Run `npx skills add dotnet/dotnet-docker --skill porting-changes -a codex`. Or copy the skill folder (.agents/skills/porting-changes in dotnet/dotnet-docker) into .agents/skills/porting-changes in your project. Codex loads it when a task matches its description.

Can I use Porting Changes 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/dotnet-docker --skill porting-changes -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/porting-changes, .gemini/skills/porting-changes, .github/skills/porting-changes and .opencode/skills/porting-changes in your project.

What does Porting Changes need to run?

Going by SKILL.md and its folder, Porting Changes needs the command-line tools its instructions call (pwsh). Our summary lists: Docker.

Does Porting Changes 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 Porting Changes 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 Porting Changes use?

Porting Changes 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 Porting Changes use?

About 781 tokens (SKILL.md is roughly 3.1k 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 Porting Changes?

Skills that share tags, products or a category with Porting Changes: .NET Crash Dump Collection (dotnet/skills, 5.6k stars), Foundationdb Aspire (SnowBankSDK/foundationdb-dotnet-client, 158 stars), Corvus Bowtie Testing (corvus-dotnet/Corvus.JsonSchema, 199 stars) and Container Publish (codewithmukesh/dotnet-claude-kit, 751 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Porting Changes?

dotnet (a GitHub organization, an official publisher) maintains it in dotnet/dotnet-docker, which has 4,874 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 7, 2026.

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