Official agent skill

Backport

by microsoft in microsoft/vscode-cosmosdb

Backport changes (current branch, a PR, a branch, or specific commits/SHAs) onto a target branch (typically a release branch like rel/).

OfficialMITAuto-check passedDatabases

Install Backport

skills CLI
$ npx skills add microsoft/vscode-cosmosdb --skill backport -a claude-code

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

GitHub CLI
$ gh skill install microsoft/vscode-cosmosdb backport --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/microsoft/vscode-cosmosdb.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/backport .claude/skills/backport && 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
backport
GitHub stars
200
Token cost
~5k tokens
SKILL.md length
2,858 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

Backport changes (current branch, a PR, a branch, or specific commits/SHAs) onto a target branch (typically a release branch like rel/).

  • Works in 3 steps: Source — one of → Target branch — any existing branch on… → Squash — only if the user explicitly…
  • The user says backport this
  • SKILL.md covers Inputs to resolve, Workflow, Constraints and Reporting, plus 1 more section
  • Calls git, gh and npm; needs GITHUB_TOKEN and GH_TOKEN

What it does

Backport is an agent skill from microsoft/vscode-cosmosdb, published by the product's own GitHub organization. Backport changes (current branch, a PR, a branch, or specific commits/SHAs) onto a target branch (typically a release branch like rel/). Use when the user says "backport this", "backport PR ...", "cherry-pick to <branch", or asks to port commits to another branch. Handles stashing uncommitted work, branch creation, cherry-picking with conflict handling, pushing, and opening a PR.

Its SKILL.md is about 5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Databases. It works with Visual Studio Code, Azure Cosmos DB and Git. The repository describes itself as: Azure Cosmos DB extension for VS Code. The licence is MIT.

When your agent uses it

  • The user says backport this
  • Backport PR ...
  • Cherry-pick to <branch
  • Asks to port commits to another branch

Example prompts

  • “backport this”
  • “backport PR ...”
  • “cherry-pick to <branch”
  • “/backport”

Requirements

  • Node.js

Workflow steps

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

  1. Source — one of
  2. Target branch — any existing branch on origin. Typical case is a release branch (rel/*). If the user did not specify, list candidates with…
  3. Squash — only if the user explicitly says "squash". Default: no squash.

What it can do on your machine

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

    • git
    • gh
    • npm

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

  • Network

    No URLs in SKILL.md. Its commands use git, gh and npm, which can reach the network depending on how they are called.

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

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • GITHUB_TOKEN
    • GH_TOKEN

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

Context cost

Backport loads about 5k tokens when it runs. Until then it costs about 99 tokens; SKILL.md has 2,858 words of instructions outside code blocks.

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

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 microsoft/vscode-cosmosdb at commit fb4fbb4, republished under its MIT licence (© microsoft). 2,858 words, ~5,000 tokens.

Download SKILL.mdSave it as .claude/skills/backport/SKILL.md (or your agent's skills folder).
name
backport
description
Backport changes (current branch, a PR, a branch, or specific commits/SHAs) onto a target branch (typically a release branch like `rel/*`). Use when the user says "backport this", "backport PR ...", "cherry-pick to <branch>", or asks to port commits to another branch. Handles stashing uncommitted work, branch creation, cherry-picking with conflict handling, pushing, and opening a PR.

Backport Skill

Create a backport pull request that applies changes from a source (current branch, a PR, another branch, or specific commits) onto a target branch — interactively, from the local workspace. The target is typically a release branch (e.g. rel/0.32), but any existing branch is allowed except the source's own base branch (a backport onto the same base is a no-op).

Inputs to resolve

Before running any git commands, determine:

  1. Source — one of:
    • Current branch (default if the user says "backport this" without specifying).
    • PR number (e.g. "backport PR #1234").
    • Branch name.
    • Commit SHA(s) or range.
  2. Target branch — any existing branch on origin. Typical case is a release branch (rel/*). If the user did not specify, list candidates with git branch -r --list 'origin/rel/*' first; if none match or the user wants something else, fall back to git branch -r and ask. Refuse the source's own base branch (e.g. if the PR or current branch already targets main, refuse main; if it targets rel/0.32, refuse rel/0.32) — a backport onto the same base is a no-op. Verify the target exists on origin before proceeding.
  3. Squash — only if the user explicitly says "squash". Default: no squash.

If anything is ambiguous, ask once before touching the working tree.

Workflow

Execute these phases in order. Stop and report on any error.

Phase A — Pre-flight & safety
  1. Verify tooling: git --version, gh --version, gh auth status. If gh is missing or unauthenticated, abort with a clear message — do not continue. Cloud-agent override: when running as the GitHub.com cloud agent (see "Running as the GitHub cloud agent" below), a failing gh auth status must not abort the backport — the git work uses the platform's credential helper, not gh. See that section.
  2. Capture state: original branch (git rev-parse --abbrev-ref HEAD), git status --porcelain, list of unpushed commits.
  3. If source ≠ current branch and the working tree is dirty (including untracked files):
    • Run git stash push -u -m "backport-skill autostash <ISO-timestamp>".
    • Record the resulting stash ref (git stash list -1 --format=%gd) so it can be restored later.
  4. If source = current branch: do not stash. Warn the user if there are uncommitted changes that won't be included, and confirm before proceeding.
  5. git fetch origin <target>. Abort if the target branch does not exist on origin.
Phase B — Resolve the commit list
  • PR source: gh pr view <num> --json number,title,body,headRefName,baseRefName,mergeCommit,commits,state. If the command fails (non-zero exit, PR not found, or insufficient permissions), abort with a clear error message showing the PR number and the gh error output. Then branch on state:
    • MERGED: prefer the squash-merge commit if the PR was squash-merged; otherwise use the listed commits in order.
    • OPEN: warn that backporting an unmerged PR may include incomplete or intermediate work, and confirm with the user before proceeding. Use the listed commits in order.
    • CLOSED (not merged): legitimate but unusual. Warn the user that the PR was closed without merging (the work may have been abandoned, superseded, or rewritten elsewhere) and confirm before proceeding. Use the listed commits in order, or offer squash-and-reapply if the user prefers a single commit.
  • Branch source: git log --reverse --format=%H origin/<target>..<branch>.
  • SHA(s) / range: use as given (validate with git cat-file -e <sha>).

Show the resolved list (count + short log) to the user and confirm before continuing.

Phase C — Create the backport branch
  • Branch name: backport/<id>-to-<target-slug> where:
    • Prefix is backport/ for local runs (the default — this skill running in a VS Code workspace). Use the copilot/ prefix only when running as the GitHub.com cloud agent; see "Running as the GitHub cloud agent" below. If you are executing git commands on the user's local machine, you are not the cloud agent — use backport/.
    • <id> is the PR number (PR source), the source branch's last segment, or <short-sha> (single-commit / range).
    • <target-slug> is the target branch with every / replaced by -. Compute it, don't hand-write it (e.g. in shell: target_slug="${target//\//-}"). Examples: rel/0.32 → rel-0.32, rel/0.34 → rel-0.34.
    • Full example: PR #3036 onto rel/0.34 gives branch backport/3036-to-rel-0.34 (correct), not backport/3036-to-rel/0.34 (wrong — the / from the target was left in).
    • Verify before checkout: the final branch name must contain exactly one / (the separator right after backport). If it contains two, the slug wasn't applied — recompute it before creating the branch.
  • Collision handling (local or origin/<branch> exists): ask the user — overwrite (delete local + remote, recreate) or use a numeric suffix (-2, -3, …). Never silently overwrite.
  • git checkout -b <name> origin/<target>.
Phase D — Cherry-pick
  • Squash: git merge --squash <source> then git commit -m "Backport #<n>: <original-title>" (or a synthesized title for non-PR sources).
  • Otherwise: git cherry-pick <sha…> in order.

Conflict policy (relaxed but safe):

Cloud-agent override: when running inside the GitHub Copilot cloud agent (see "Running as the GitHub cloud agent" below), use the stricter policy: auto-resolve only trivial cases per step 2; for anything ambiguous, do not invent a resolution — commit the conflict markers as a WIP: commit and mark the PR as draft. Skip steps 3 and 4 (no interactive prompts, no squash-and-retry).

  1. On conflict, run git status and git diff to inspect.
  2. Auto-resolve only trivial cases:
    • Import-order: only the order of import / require statements differs; identifiers are identical.
    • Formatting-only: whitespace, trailing comma, or semicolon changes where no identifiers, literals, or control flow differ between sides.
    • Additive non-overlapping hunks: one side adds lines while the other side is unchanged in that region.
    • Pure deletions on one side: one side deletes a block, the other leaves it untouched, and the deleted block is not referenced by code added on either side. After resolving, verify with git diff --check and ! grep -R '<<<<<<<' -- . before staging.
  3. For anything ambiguous (semantic overlap, both branches modified the same hunk meaningfully, version/lockfile bumps, generated files): stop and present the conflicting files and hunks to the user. Offer:
    • Resolve manually & continue — wait for the user, then git add + git cherry-pick --continue.
    • Abort — git cherry-pick --abort, delete the backport branch, restore (Phase G).
    • Squash and retry — only when (a) more than one commit, (b) the current run was not already squash, (c) the conflicting commit is not the last. Abort current cherry-pick, delete the branch, restart from Phase C with squash enabled.
  4. Record every conflict and its resolution for the PR body.

Cherry-picks onto older release branches often produce code that compiles on the source's base but breaks on the target (different deps, removed APIs, stricter lint config). Catch this before pushing:

  1. Ask the user whether to run validation. Default: yes. Offer to skip for speed.
  2. If yes, run the repo's standard checks following .github/copilot-instructions.md. Because the working tree was switched from the original branch to origin/<target> and may have been mutated by the cherry-pick, node_modules is almost certainly stale — always start with npm install. Then run, in this order: npm run build, npm run l10n, npm run prettier-fix, npm run lint. Always run npm run l10n regardless of whether the cherry-pick obviously touches user-facing strings: dependency bumps can alter embedded error messages, and the target release branch may carry pre-existing l10n drift that the CI l10n:check will fail on. If the bundle changes, commit the regenerated bundle as a separate chore: regenerate l10n bundle commit on the backport branch before the Phase F push.
  3. Pull translations from the source's base branch — only when the user opted into validation in step 1, the cherry-pick changed l10n/bundle.l10n.json (English bundle), and the source PR is merged. After the original PR merged, a localization bot typically commits translated strings to the source's base (e.g. main) — those translations apply equally to the backport and should not be re-translated by hand. Pull only the affected keys, never wholesale-replace language files: the source base may have other strings the target branch must not gain. Procedure:
    • Determine the set of changed keys in the English bundle on the backport branch versus the target. Compare keys (top-level JSON object keys) between git show origin/<target>:l10n/bundle.l10n.json and the current l10n/bundle.l10n.json. Record:
      • Added keys — present in current, absent in target.
      • Modified keys — present in both but with different values (rare, but possible if the English text changed).
      • Removed keys are irrelevant for translation pulling (already gone from the English bundle, will be dropped from language files by npm run l10n).
    • Do the same comparison for package.nls.json (its translations live in package.nls.<lang>.json).
    • For each language file (l10n/bundle.l10n.<lang>.json and package.nls.<lang>.json, every <lang> present in the repo), read the source-base version with git show origin/<source-base>:<file>, then for each added/modified key copy that key's translated value into the local language file. Leave all other keys in the local file untouched. Preserve the existing line endings and key order of the local file: translation pipelines often write CRLF and use a non-obvious collation order, and re-sorting or re-serializing produces a massive cosmetic diff that reviewers will reject. Insert each new key adjacent to the nearest preceding key (in source-base order) that already exists locally; serialize with JSON.stringify(obj, null, 2), then convert \n back to \r\n if the local file used CRLF. If the source-base version is missing a key (translation bot hasn't run yet), skip it — npm run l10n will leave the English fallback.
    • Re-run npm run l10n to refresh the English bundle (the language files are not modified by this script in current builds; it only normalizes l10n/bundle.l10n.json).
    • Stage only the language files that actually changed (git add l10n/bundle.l10n.*.json package.nls.*.json) and commit as chore: pull updated translations from <source-base>. Do not stage l10n/bundle.l10n.json or package.nls.json here — those belong to the earlier chore: regenerate l10n bundle commit.
    • If the source PR is not merged (open or closed without merging), skip this step — translations don't exist yet.
  4. On failure: surface the errors and stop. Treat fixes as a new round of conflict resolution — only modify what's needed; never silently pile on unrelated changes. Once green, continue.
  5. If the user opts to skip, note this in the PR body so reviewers know CI is the first validation gate.
Show full SKILL.md (1,211 more words)Show less
Phase F — Push & open the PR
  1. git push -u origin <branch> — never --force or --force-with-lease. If the push fails, surface the full git error. If it is a permission or branch-protection error (e.g. protected-branch hook, missing write access), advise the user to check repository settings; do not retry with force flags. Proceed to Phase G failure cleanup.
  2. Write the PR body to a file first, then pass it with --body-file. Prefer the editor's file-creation tool (cross-platform); if you use a shell heredoc, write to the OS temp directory outside the repo so it can't be accidentally staged or committed — e.g. "${TMPDIR:-/tmp}/backport-body.md" on macOS/Linux or "$env:TEMP\backport-body.md" on Windows PowerShell — and delete it once the PR is created. Then run gh pr create --base <target> --head <branch> --title "[<target>] <original-title>" --body-file <path>. Always use --body-file; never --body "…". An inline multi-line body gets mangled — the shell eats backticks/$/quotes and any literal \n sequences are printed verbatim in the PR description. Authoring rules for the body file:
    • Real newlines only. Type actual line breaks; never write the two characters \n to mean a newline.
    • Do not hard-wrap sentences. Keep each paragraph or bullet on a single line and separate blocks with one blank line. In PR descriptions and comments (unlike rendered .md files in a repo) GitHub honors a single newline as a hard line break, so column-wrapped prose shows up broken mid-sentence; hard-wrapping also makes the body diff noisily and read awkwardly in plaintext previews. If you reuse the original PR description, re-flow it first — strip any existing column wrapping so each paragraph is one continuous line.
    • No task-list checkboxes (- [ ] / - [x]). GitHub turns them into a "N tasks done / Progress 100%" bar on the PR list, and pre-checked boxes falsely imply a reviewer checklist is already complete. Use plain - bullets for the validation summary and everything else.
    • Title: must start with the target branch in square brackets, e.g. [rel/0.34] Fix tree refresh race. Use the exact target branch name (including any rel/ prefix) and keep the rest identical to the original PR title (or first commit subject for non-PR sources).
    • Contents: Backport of #<n> (or Backport of <branch> / SHA list for non-PR sources); the original PR description (when applicable); a Conflicts resolved section listing each file + a one-line description, when applicable.
  3. gh pr view --web to open it in the browser.
Phase G — Cleanup
  • On success: git checkout <originalBranch>. If a stash was created in A.3, git stash pop <stashRef>. Print the new PR URL.
  • On failure or user-requested abort: leave the backport branch and stash intact. Print the stash ref (if any) and the recovery commands (git checkout <originalBranch> && git stash pop <stashRef>).

Constraints

  • Refuse the source's own base branch as the target (a backport onto the same base is a no-op). Any other existing branch on origin is allowed. main is allowed only when it is not the source's base; if the source already targets main, refuse main per the rule above.
  • Never use --force / --force-with-lease.
  • Preserve original commit messages during cherry-pick.
  • Do not modify files outside what is required for conflict resolution or to fix validation failures introduced by the cherry-pick.
  • Never silently overwrite an existing local or remote branch.
  • Never auto-resolve ambiguous conflicts; always ask.
  • Never restore the autostash on failure — leave it for the user to inspect.
  • Branch prefix: use backport/ for local runs. Use the copilot/ prefix only when running as the GitHub.com cloud agent (it cannot push other prefixes). Never use copilot/ for a local run.
  • Branch slug: replace every / in the target with - when building the branch name; the final name has exactly one / (right after backport/copilot). Compute the slug, don't hand-copy the target branch.
  • PR body: always pass it via --body-file, never inline --body. No literal \n, no hard-wrapped sentences, no task-list checkboxes (- [ ] / - [x]).

Reporting

When done, summarize:

  • Source, target, backport branch name, commits cherry-picked.
  • Any conflicts encountered and how they were resolved.
  • Whether local validation ran and its result (or that the user opted to skip).
  • The new PR URL.
  • Whether the original branch and stash were restored.

Running as the GitHub cloud agent

When this skill runs inside the GitHub Copilot cloud agent (e.g. invoked by @copilot on a merged PR or assigned to a backport issue), the environment differs from a local VS Code workspace. Adjust the workflow as follows:

  • No interactive prompts. You cannot pause to ask the user. Resolve everything from the request body and repository state up front; if a required input is missing or ambiguous (target branch, source PR), stop and report rather than guess.
  • Do not abort on gh auth status failure (Phase A step 1 override). In the cloud agent, git push auth comes from the platform's credential helper and the PR is opened by the platform — neither depends on gh. A failing gh auth status (e.g. GITHUB_TOKEN reported invalid) must not stop the backport. Proceed with all git work (fetch, branch, cherry-pick, push); if the token really is unusable, git push will fail later with its own clear error — that is strictly better than abandoning a completed cherry-pick at pre-flight. Only PR-metadata commands (gh pr edit) need gh: if it is unauthenticated, first retry once as GH_TOKEN="$GITHUB_TOKEN" gh pr edit …; if that still fails, set the base/title/body via the REST API (gh api -X PATCH repos/{owner}/{repo}/pulls/{number} -f base=<target> -f title="[<target>] …", or curl with the token), and if even that is impossible, leave the PR open and state explicitly in the body which fields — especially the base branch — still need to be set manually so it does not silently target main.
  • Branch naming: use copilot/backport-<id>-to-<target-slug> instead of backport/.... This copilot/ prefix applies only here, in the GitHub.com cloud agent, because the cloud agent can only push branches starting with copilot/; a local run must use the backport/ prefix from Phase C. The <target-slug> rule is unchanged — replace every / with -, so rel/0.34 yields copilot/backport-<id>-to-rel-0.34 (one / only, right after copilot).
  • Skip Phase A.3 stash logic — the cloud agent runs in a fresh ephemeral checkout; there is no user working tree to preserve.
  • Apply the Phase D cloud-agent override described above (commit conflict markers as WIP: and mark the PR draft instead of asking, aborting, or squash-and-retry).
  • Skip Phase E (local validation) — the cloud agent's GitHub Actions environment runs CI as the validation gate; do not run npm install / build / lint to save time and avoid burning Actions minutes.
  • Skip Phase F's gh pr create. The cloud agent platform opens the PR for the task automatically. Write the body to a file and use gh pr edit --base <target> --title "[<target>] <original-title>" --body-file <path> to set the base branch, title, and body — never inline --body "…", and follow the same Phase F body-authoring rules (real newlines, no literal \n, no hard-wrapped sentences, no task-list checkboxes). The title must be prefixed with the target branch in square brackets — e.g. [rel/0.34] <original-title>. When conflicts remain unresolved, mark the PR as draft (the platform may open it ready by default; use gh pr ready --undo if available, otherwise note the WIP state explicitly in the PR body).
  • Skip Phase G's stash restore and original-branch checkout — there's nothing local to restore.

All other constraints (no --force, refuse the source's own base, preserve commit messages, never silently overwrite existing branches) apply unchanged.

© microsoft, 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/backport of microsoft/vscode-cosmosdb.

Open the folder on GitHubat commit fb4fbb4

Compare with similar skills

Backport 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.

Backport compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Backport this skillmicrosoft/vscode-cosmosdb200—~5kAutomated safety check: PassMIT
Azure Cosmos DB Pymicrosoft/skills3.1k—~2.8kAutomated safety check: PassMIT
Azure Cosmos Pymicrosoft/skills3.1k1 repos~2.3kAutomated safety check: PassMIT
Azure Data Tables Pymicrosoft/skills3.1k1 repos~2.1kAutomated safety check: PassMIT
Microsoft Skill CreatorMicrosoftDocs/mcp1.9k3 repos~2.1kAutomated safety check: PassCC-BY-4.0
Workthreadsspecstoryai/getspecstory1.3k—~1.3kAutomated safety check: NotesApache-2.0

Similar skills

  • Azure Cosmos DB Py

    microsoft/skills

    Official

    Build Azure Cosmos DB NoSQL services with Python/FastAPI following production-grade patterns.

    3.1k GitHub stars~2.8k tokensUpdated yesterday
    DatabasesAuto-check passed
  • Azure Cosmos Py

    microsoft/skills

    Official

    Azure Cosmos DB SDK for Python (NoSQL API). An agent skill from microsoft/skills.

    3.1k GitHub starsUsed in 1 repo~2.3k tokens
    DatabasesAuto-check passed
  • Azure Data Tables Py

    microsoft/skills

    Official

    Azure Tables SDK for Python (Storage and Cosmos DB). An agent skill from microsoft/skills.

    3.1k GitHub starsUsed in 1 repo~2.1k tokens
    DatabasesAuto-check passed
  • Microsoft Skill Creator

    MicrosoftDocs/mcp

    Official

    Create agent skills for Microsoft technologies using official documentation.

    1.9k GitHub starsUsed in 3 repos~2.1k tokens
    Agent WorkflowsAuto-check passed
  • Workthreads

    specstoryai/getspecstory

    SpecStory Workthreads - a weekly work-thread rollup across a team's repos from SpecStory coding histories (any agent - Claude Code, Codex, Cursor, Gemini, and more).

    1.3k GitHub stars~1.3k tokensUpdated yesterday
    DevelopmentAuto-check: notes
  • Git Worktree Manager

    microsoft/WindowsAppSDK

    Official

    Creates and manages Git worktrees with PowerShell scripts so separate issues and Copilot sessions each get an isolated branch, build and test environment.

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

More from microsoft/vscode-cosmosdb

  • Accessibility Aria Expert

    microsoft/vscode-cosmosdb

    Official

    Detects and fixes accessibility issues in React/Fluent UI webviews.

    200 GitHub stars~3.2k tokensUpdated yesterday
    Auto-check passed
  • Telemetry Best Practices

    microsoft/vscode-cosmosdb

    Official

    Reviews and authors telemetry code in this extension. An agent skill from microsoft/vscode-cosmosdb.

    200 GitHub stars~3.6k tokensUpdated yesterday
    Auto-check passed
  • Cosmosdb Nosql Query Generation

    microsoft/vscode-cosmosdb

    Official

    Generate, explain, edit, and fix Azure Cosmos DB for NoSQL (SQL API) queries.

    200 GitHub stars~4k tokensUpdated yesterday
    Auto-check: warnings
  • Cosmosdb Best Practices

    microsoft/vscode-cosmosdb

    Official

    Azure Cosmos DB performance optimization and best practices guidelines for NoSQL, partitioning, queries, and SDK usage.

    200 GitHub stars~4.3k tokensUpdated yesterday
    Auto-check passed
  • Cosmosdb Nosql Query Editor

    microsoft/vscode-cosmosdb

    Official

    Drive the active Azure Cosmos DB for NoSQL Query Editor in VS Code from natural language.

    200 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check: warnings

Categories

Questions about Backport

What does Backport do?

Backport changes (current branch, a PR, a branch, or specific commits/SHAs) onto a target branch (typically a release branch like rel/). Backport is an agent skill from microsoft/vscode-cosmosdb, published by the product's own GitHub organization. Backport changes (current branch, a PR, a branch, or specific commits/SHAs) onto a target branch (typically a release branch like rel/).

When should I use Backport?

Backport fits situations like: the user says backport this; backport PR ..; cherry-pick to <branch; asks to port commits to another branch.

How do I install Backport in Claude Code?

Run `npx skills add microsoft/vscode-cosmosdb --skill backport -a claude-code`. Or copy the skill folder (.github/skills/backport in microsoft/vscode-cosmosdb) into .claude/skills/backport in your project. Claude Code loads it when a task matches its description.

How do I install Backport in Codex?

Run `npx skills add microsoft/vscode-cosmosdb --skill backport -a codex`. Or copy the skill folder (.github/skills/backport in microsoft/vscode-cosmosdb) into .agents/skills/backport in your project. Codex loads it when a task matches its description.

Can I use Backport 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 microsoft/vscode-cosmosdb --skill backport -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/backport, .gemini/skills/backport, .github/skills/backport and .opencode/skills/backport in your project.

What does Backport need to run?

Going by SKILL.md and its folder, Backport needs the command-line tools its instructions call (git, gh and npm) and credentials named GITHUB_TOKEN and GH_TOKEN. Our summary lists: Node.js.

Does Backport access the network?

SKILL.md contains no URLs. Its commands use git, gh and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Backport 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 Backport use?

Backport 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 Backport use?

About 5k tokens (SKILL.md is roughly 20k 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 Backport?

Skills that share tags, products or a category with Backport: Azure Cosmos DB Py (microsoft/skills, 3.1k stars), Azure Cosmos Py (microsoft/skills, 3.1k stars), Azure Data Tables Py (microsoft/skills, 3.1k stars) and Microsoft Skill Creator (MicrosoftDocs/mcp, 1.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Backport?

microsoft (a GitHub organization, an official publisher) maintains it in microsoft/vscode-cosmosdb, which has 200 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 6, 2026.

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