Azure Pipelines Log Downloader
ansible/ansible
Downloads Azure Pipelines CI logs for an Ansible pull request or build so the agent can analyze test failures, after asking you first.
Backport commits from an existing GitHub Pull Request to a target branch and open a new backport PR.
$ npx skills add rundeck/rundeck --skill backport-pr -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install rundeck/rundeck backport-pr --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/rundeck/rundeck.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/backport-pr .claude/skills/backport-pr && rm -rf skills-srcUse ~/.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/
Install the "backport-pr" agent skill from https://github.com/rundeck/rundeck/tree/main/.claude/skills/backport-pr into .claude/skills/backport-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "backport-pr", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/rundeck/rundeck/tree/main/.claude/skills/backport-prType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add rundeck/rundeck --skill backport-pr -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install rundeck/rundeck backport-pr --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rundeck/rundeck.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/backport-pr .agents/skills/backport-pr && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "backport-pr" agent skill from https://github.com/rundeck/rundeck/tree/main/.claude/skills/backport-pr into .agents/skills/backport-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "backport-pr", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rundeck/rundeck --skill backport-pr -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install rundeck/rundeck backport-pr --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rundeck/rundeck.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/backport-pr .cursor/skills/backport-pr && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "backport-pr" agent skill from https://github.com/rundeck/rundeck/tree/main/.claude/skills/backport-pr into .cursor/skills/backport-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "backport-pr", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/rundeck/rundeck.git --path .claude/skills/backport-pr--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add rundeck/rundeck --skill backport-pr -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install rundeck/rundeck backport-pr --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rundeck/rundeck.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/backport-pr .gemini/skills/backport-pr && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "backport-pr" agent skill from https://github.com/rundeck/rundeck/tree/main/.claude/skills/backport-pr into .gemini/skills/backport-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "backport-pr", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install rundeck/rundeck backport-prInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add rundeck/rundeck --skill backport-pr -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/rundeck/rundeck.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/backport-pr .github/skills/backport-pr && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "backport-pr" agent skill from https://github.com/rundeck/rundeck/tree/main/.claude/skills/backport-pr into .github/skills/backport-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "backport-pr", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rundeck/rundeck --skill backport-pr -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install rundeck/rundeck backport-pr --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rundeck/rundeck.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/backport-pr .opencode/skills/backport-pr && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "backport-pr" agent skill from https://github.com/rundeck/rundeck/tree/main/.claude/skills/backport-pr into .opencode/skills/backport-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "backport-pr", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
backport-prBackport commits from an existing GitHub Pull Request to a target branch and open a new backport PR.
Backport PR is an agent skill from rundeck/rundeck. Backport commits from an existing GitHub Pull Request to a target branch and open a new backport PR. Use when the user asks to backport a PR, cherry-pick a merged PR into a release/maintenance branch, port a fix to an older version, or mentions "backport".
Its SKILL.md is about 3k 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 DevOps & Cloud. It works with GitHub. The repository describes itself as: Enable Self-Service Operations: Give specific users access to your existing tools, services, and scripts. The licence is Apache-2.0.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit d526b7c. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
gitghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Backport PR loads about 3k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 1,008 words of instructions outside code blocks.
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.
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.
The full file from rundeck/rundeck at commit d526b7c, republished under its Apache-2.0 licence (© rundeck). 1,008 words, ~2,986 tokens.
.claude/skills/backport-pr/SKILL.md (or your agent's skills folder).Purpose: Given an existing GitHub Pull Request number, cherry-pick its commit(s) onto a target branch (e.g. release/5.x, maintenance/4.x) and open a new backport PR referencing the original.
When to use:
main to a release branch<branch>"Before starting, verify:
gh CLI installed and authenticated:gh auth statusorigin pointing at the GitHub repo.origin remote (needed to open the backport PR).If any check fails, stop and report the issue to the user before proceeding.
The skill takes one required input:
1234).Accept it from the invocation argument or prompt for it:
Enter the PR number to backport:The target branch is always prompted (see Step 4).
Copy this checklist and track progress:
Backport Progress:
- [ ] Step 1: Validate environment
- [ ] Step 2: Fetch PR metadata
- [ ] Step 3: Determine commits to cherry-pick (merge strategy)
- [ ] Step 4: Prompt for target branch
- [ ] Step 5: Create backport branch
- [ ] Step 6: Cherry-pick commit(s)
- [ ] Step 7: Push backport branch
- [ ] Step 8: Open backport PR
- [ ] Step 9: Final summarygh auth status
git rev-parse --is-inside-work-tree
git status --shortgh auth status fails → tell the user to run gh auth login and stop.git status --short shows any output → ask the user to commit or stash first and stop.Also capture the remote repo slug for later PR operations:
gh repo view --json nameWithOwner -q .nameWithOwnergh pr view <pr-number> --json number,title,state,mergedAt,mergeCommit,commits,baseRefName,headRefName,url,authorExtract and store:
number → $PR_NUMBERtitle → $PR_TITLEstate → must be MERGED (warn if not; allow override)mergeCommit.oid → $MERGE_SHA (null indicates a rebase-merged PR; present for squash or merge-commit)commits[*].oid → $PR_COMMITS (ordered list)baseRefName → $ORIGINAL_BASE (usually main)headRefName → $ORIGINAL_HEAD (original source branch)url → $PR_URLDisplay a short summary to the user:
PR #<number>: <title>
Author: <author.login>
State: <state>
Base: <baseRefName>
Head: <headRefName>
Commits: <len(commits)>
Merge SHA: <mergeCommit.oid or "none (likely rebase-merged)">If state is not MERGED, ask:
This PR is not yet merged. Backport anyway? (yes/no)Fetch the latest refs first:
git fetch origin --tagsAuto-detect which commit(s) to cherry-pick based on how the PR was merged:
Squash merge — mergeCommit.oid points to a commit on $ORIGINAL_BASE whose
parent count is 1 AND whose commit message typically contains (#<pr-number>).
Check with:
git cat-file -p <MERGE_SHA> | head -20
# parents count:
git rev-list --parents -n 1 <MERGE_SHA> | awk '{print NF-1}'1 → squash. Cherry-pick strategy: git cherry-pick <MERGE_SHA>.CP_MODE=squash, CP_ARGS="<MERGE_SHA>".Merge commit — mergeCommit.oid has 2 parents.
git cherry-pick -m 1 <MERGE_SHA>.CP_MODE=merge, CP_ARGS="-m 1 <MERGE_SHA>".Rebase merge — mergeCommit.oid is null OR the commits appear individually on
$ORIGINAL_BASE (no merge/squash commit). Also falls here if PR is not merged yet.
$PR_COMMITS in order.CP_MODE=rebase, CP_ARGS="<sha1> <sha2> ...".Always confirm the detected plan with the user before proceeding:
Detected merge strategy: <CP_MODE>
Will cherry-pick: <CP_ARGS>
Proceed? (yes/no/override)If override, offer the three modes explicitly and let the user pick.
Ask the user (always — do not guess):
Enter the target branch to backport into (e.g. release/5.x, maintenance/4.x):Store as $TARGET_BRANCH.
Verify the target exists on origin:
git ls-remote --heads origin <TARGET_BRANCH>If empty → error out with: Target branch '<TARGET_BRANCH>' not found on origin.
Fetch the target:
git fetch origin <TARGET_BRANCH>Compute branch name: backport/<target-sanitized>/pr-<pr-number>
Where <target-sanitized> replaces / with - (e.g. release/5.x → release-5.x).
Examples:
release/5.x, PR 1234 → backport/release-5.x/pr-1234maintenance/4.x, PR 987 → backport/maintenance-4.x/pr-987Show the user:
Backport branch name: backport/<target-sanitized>/pr-<pr-number>
Accept this name or provide an override? (accept/override)Create the branch from the target:
git checkout -b backport/<target-sanitized>/pr-<pr-number> origin/<TARGET_BRANCH>If the local branch already exists → ask:
Branch already exists. (delete-and-recreate/use-existing/abort)Execute according to CP_MODE:
squash / merge:
git cherry-pick $CP_ARGSrebase (multiple commits): iterate in order:
git cherry-pick <sha1>
git cherry-pick <sha2>
...For each cherry-pick, check exit code:
Success (exit 0) → continue to next commit (if any).
Conflict (exit non-zero) → pause and prompt the user:
⚠️ Cherry-pick conflict on <sha>
Conflicted files:
<git diff --name-only --diff-filter=U output>
Options:
1. Pause — I'll resolve the conflict manually, then you continue
2. Abort — run `git cherry-pick --abort` and delete the backport branch
3. Skip — run `git cherry-pick --skip` and move on (rebase mode only)
Choose (1-3):git statusgit cherry-pick --continuegit cherry-pick --abort
# Switch to a safe branch before deleting the backport branch.
# Use the local target branch if it exists; otherwise create it tracking origin.
git show-ref --verify --quiet refs/heads/<TARGET_BRANCH> \
&& git checkout <TARGET_BRANCH> \
|| git checkout -b <TARGET_BRANCH> --track origin/<TARGET_BRANCH>
git branch -D backport/<target-sanitized>/pr-<pr-number>git cherry-pick --skipAfter all commits are applied, verify:
git log --oneline origin/<TARGET_BRANCH>..HEADShow the list of new commits to the user for confirmation.
git push -u origin backport/<target-sanitized>/pr-<pr-number>If push fails:
force-push (--force-with-lease) / rename / abort.Use gh CLI directly so the title format matches the project convention requested:
Title format:
[<TARGET_BRANCH>] Merge pull request <PR_NUMBER> from <ORIGINAL_HEAD>Example: [release/5.x] Merge pull request 1234 from feature/fix-logging
Body template:
Backport of #<PR_NUMBER> to `<TARGET_BRANCH>`.
**Original PR:** <PR_URL>
**Original title:** <PR_TITLE>
**Original base:** `<ORIGINAL_BASE>`
**Original head:** `<ORIGINAL_HEAD>`
**Merge strategy detected:** <CP_MODE>
## Commits cherry-picked
<bulleted list of `<short-sha> <subject>` from `git log --oneline origin/<TARGET_BRANCH>..HEAD`>
## Test plan
- [ ] Verify the backport builds on `<TARGET_BRANCH>`
- [ ] Re-run the original PR's tests against this branchCreate the PR:
gh pr create \
--base "<TARGET_BRANCH>" \
--head "backport/<target-sanitized>/pr-<PR_NUMBER>" \
--title "[<TARGET_BRANCH>] Merge pull request <PR_NUMBER> from <ORIGINAL_HEAD>" \
--body "<body content built above>"Pass the body via a heredoc when invoking from the Shell tool:
gh pr create --base "<TARGET_BRANCH>" \
--head "backport/<target-sanitized>/pr-<PR_NUMBER>" \
--title "[<TARGET_BRANCH>] Merge pull request <PR_NUMBER> from <ORIGINAL_HEAD>" \
--body "$(cat <<'EOF'
Backport of #<PR_NUMBER> to `<TARGET_BRANCH>`.
...
EOF
)"Capture the returned PR URL.
Alternative: The user may instead invoke
/sdlc-workflow:open-prafter Step 7 to use the standard PR-opening skill. That path produces a[KEY] <description>title (derived from the Jira ticket key in the branch name) rather than the backport-specific title above. Only use that alternative if the project PR-title convention is explicitly preferred for backports.
Present a compact summary to the user:
Backport Complete
Original PR: #<PR_NUMBER> — <PR_TITLE>
<PR_URL>
Target branch: <TARGET_BRANCH>
Backport branch: backport/<target-sanitized>/pr-<PR_NUMBER>
Strategy: <CP_MODE>
Commits applied: <count>
Backport PR: <new PR URL>
Next steps:
1. Wait for CI to pass on the backport PR.
2. Request review from the original PR's author/owners.
3. Merge using the project's standard flow for release branches.gh pr view returns 404The PR number does not exist or is in a different repo. Ask the user to verify the PR number.
mergeCommit.oid is null but PR is MERGEDLikely a rebase-merged PR. Use CP_MODE=rebase and cherry-pick the individual commits.
The change is already present on the target branch. Offer:
1. Skip this commit (git cherry-pick --skip)
2. Keep as empty commit (git commit --allow-empty)
3. AbortThe target branch is too far diverged. Abort the cherry-pick, report to the user, and suggest manual backport.
Only occurs if the branch existed remotely. Ask the user to choose:
--force-with-lease (safe force push)backport/... branch; the PR is what updates the target branch.git push --force. Use --force-with-lease if force is needed.Author: by default.
Do not pass --no-commit or rewrite authors unless the user explicitly asks.backport/<target-sanitized>/pr-<pr-number>
pushed to origin./sdlc-workflow:open-pr — alternative generic PR-opening skill (different title format)© rundeck, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/backport-pr of rundeck/rundeck.
Open the folder on GitHubat commit d526b7c
Backport PR 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Backport PR this skillrundeck/rundeck | 6.3k | — | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Azure Pipelines Log Downloaderansible/ansible | 71k | — | ~825 | Automated safety check: Pass | GPL-3.0 | |
| Nushellccusage/ccusage | 19k | — | ~938 | Automated safety check: Pass | Custom licence | |
| Make GitHub Actions Workflowdotnet/efcore | 15k | — | ~2.1k | Automated safety check: Pass | MIT | |
| AI News RadarLearnPrompt/ai-news-radar | 1.8k | — | ~2.5k | Automated safety check: Notes | MIT | |
| Megatron-LM CI/CD GuideNVIDIA/Megatron-LM | 18k | — | ~1.8k | Automated safety check: Pass | Apache-2.0 |
ansible/ansible
Downloads Azure Pipelines CI logs for an Ansible pull request or build so the agent can analyze test failures, after asking you first.
ccusage/ccusage
Guides ccusage Nushell scripts. An agent skill from ccusage/ccusage.
dotnet/efcore
Create GitHub Actions workflows for CI, automation, or PR management.
LearnPrompt/ai-news-radar
A skill your agent uses when working on AI News Radar, 24 小时 AI 更新雷达, AI 更新雷达, 伯乐Skill, or Scout Skill: finding high-signal AI/tech sources, adding RSS/OPML/GitHub feeds, checking source health…
NVIDIA/Megatron-LM
Explains Megatron-LM's CI pipeline, PR scope labels, triggering the internal GitLab CI with a dry run first, and investigating CI failures.
openclaw/openclaw
A skill your agent uses for all ClawSweeper work: OpenClaw issue/PR sweep reports, repair jobs, cloud fix PRs, @clawsweeper maintainer mention commands, trusted ClawSweeper-reviewed…
rundeck/rundeck
Verify if a CVE affects the project and remediate it. An agent skill from rundeck/rundeck.
rundeck/rundeck
Generate standardized CONTEXT.md files for features. An agent skill from rundeck/rundeck.
rundeck/rundeck
Internationalize Vue component templates by replacing all hardcoded strings with $t() calls and adding translations to i18n.ts or enUS.js.
rundeck/rundeck
Guide a new contributor through the rundeck OSS repo. An agent skill from rundeck/rundeck.
rundeck/rundeck
Write Vue component unit tests. An agent skill from rundeck/rundeck.
rundeck/rundeck
Create REST API endpoints with proper OpenAPI annotations, API versioning, and testing following Rundeck standards.
Works with
Categories
Backport commits from an existing GitHub Pull Request to a target branch and open a new backport PR. Backport PR is an agent skill from rundeck/rundeck. Backport commits from an existing GitHub Pull Request to a target branch and open a new backport PR.
Backport PR fits situations like: the user asks to backport a PR; cherry-pick a merged PR into a release/maintenance branch; port a fix to an older version; mentions backport.
Run `npx skills add rundeck/rundeck --skill backport-pr -a claude-code`. Or copy the skill folder (.claude/skills/backport-pr in rundeck/rundeck) into .claude/skills/backport-pr in your project. Claude Code loads it when a task matches its description.
Run `npx skills add rundeck/rundeck --skill backport-pr -a codex`. Or copy the skill folder (.claude/skills/backport-pr in rundeck/rundeck) into .agents/skills/backport-pr in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add rundeck/rundeck --skill backport-pr -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-pr, .gemini/skills/backport-pr, .github/skills/backport-pr and .opencode/skills/backport-pr in your project.
Going by SKILL.md and its folder, Backport PR needs the command-line tools its instructions call (git and gh).
SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
Backport PR is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Backport PR: Azure Pipelines Log Downloader (ansible/ansible, 71k stars), Nushell (ccusage/ccusage, 19k stars), Make GitHub Actions Workflow (dotnet/efcore, 15k stars) and AI News Radar (LearnPrompt/ai-news-radar, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
rundeck (a GitHub organization) maintains it in rundeck/rundeck, which has 6,330 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 9, 2026.
Source: rundeck/rundeck on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.