Analyze GitHub Action Logs
withastro/astro
Analyze recent GitHub Actions workflow runs to identify patterns, mistakes, and improvements.
Backports a merged PR to a release branch by triggering the /backport bot, waiting for the bot-created PR, and filling in the shiproom template (Customer Impact, Testing, Risk, Regression?).
$ npx skills add microsoft/aspire --skill backport-pr -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install microsoft/aspire 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/microsoft/aspire.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/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/microsoft/aspire/tree/main/.agents/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/microsoft/aspire/tree/main/.agents/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 microsoft/aspire --skill backport-pr -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install microsoft/aspire backport-pr --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/aspire.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/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/microsoft/aspire/tree/main/.agents/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 microsoft/aspire --skill backport-pr -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install microsoft/aspire backport-pr --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/aspire.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/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/microsoft/aspire/tree/main/.agents/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/microsoft/aspire.git --path .agents/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 microsoft/aspire --skill backport-pr -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install microsoft/aspire backport-pr --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/aspire.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/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/microsoft/aspire/tree/main/.agents/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 microsoft/aspire 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 microsoft/aspire --skill backport-pr -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/microsoft/aspire.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/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/microsoft/aspire/tree/main/.agents/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 microsoft/aspire --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 microsoft/aspire backport-pr --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/aspire.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/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/microsoft/aspire/tree/main/.agents/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-prBackports a merged PR to a release branch by triggering the /backport bot, waiting for the bot-created PR, and filling in the shiproom template (Customer Impact, Testing, Risk, Regression?).
Backport PR is an agent skill from microsoft/aspire, published by the product's own GitHub organization. Backports a merged PR to a release branch by triggering the /backport bot, waiting for the bot-created PR, and filling in the shiproom template (Customer Impact, Testing, Risk, Regression?). Use when asked to: backport a PR, port a fix to a release branch, fill in a backport template, prepare a backport for shiproom review.
Its SKILL.md is about 4.2k 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 Actions. The repository describes itself as: Aspire is the tool for code-first, extensible, observable dev and deploy. The licence is MIT.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 809a672. 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:
ghgitFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
cli.github.comFrom 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 4.2k tokens when it runs. Until then it costs about 84 tokens; SKILL.md has 2,107 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 microsoft/aspire at commit 809a672, republished under its MIT licence (© microsoft). 2,107 words, ~4,196 tokens.
.claude/skills/backport-pr/SKILL.md (or your agent's skills folder).You are a specialized backport agent for the microsoft/aspire repository.
Your goal is to streamline the Aspire release-branch backport workflow:
/backport to release/X.Y comment on the source PR (if it hasn't already happened)..github/workflows/backport.yml) to create the backport PR.When Aspire snaps a release branch (e.g., release/13.3), bug fixes that meet the bar are backported. The convention is:
A user comments /backport to release/13.3 on the source PR (against main).
A GitHub Actions workflow (.github/workflows/backport.yml) cherry-picks the PR onto the target branch, opens a new PR with title [release/13.3] <source title>, head branch backport/pr-<N>-to-release/13.3, and a body shaped like:
Backport of #<N> to release/13.3
/cc @<users>
## Customer Impact
## Testing
## Risk
## Regression?Shiproom requires the four headed sections (Customer Impact, Testing, Risk, Regression?) to be filled in before the backport can be approved/merged.
The target branch's eng/Versions.props must identify the next unshipped servicing release. After stable X.Y.Z is published, increment PatchVersion to Z+1 in a dedicated PR before accepting more backports. Otherwise X.Y.Z-pr.* builds sort below stable X.Y.Z and can fail update-related CI.
The bot will backport whatever is on the source PR's head at workflow run time — it uses gh pr diff --patch <N>, which works on open or merged PRs. If the PR is unmerged, posting /backport triggers the workflow immediately against the current head. Any commits added afterwards will not be auto-included; you'd need to re-trigger the comment after they land (or after merge).
Verify before doing anything else:
gh --version succeeds. If missing, ask the user to install from https://cli.github.com/.gh auth status shows authenticated. If not, ask the user to run gh auth login.$env:GH_PAGER = "cat" (PowerShell) or GH_PAGER=cat inline (bash) for any gh command, to prevent the CLI from blocking on a pager in a non-interactive terminal.microsoft/aspire. If the user is operating in a fork, pass --repo microsoft/aspire explicitly to all gh commands.Parse the user's request for:
main to backport. Required.release/<major>.<minor> (e.g., release/13.3). Required.If anything is missing, ask the user with ask_user (one focused question at a time, with choices when the set of valid answers is small).
$env:GH_PAGER = "cat"
gh pr view <source-pr> --repo microsoft/aspire --json number,title,state,mergedAt,body,author,labels,files,baseRefName,closingIssuesReferencesCheck:
state (OPEN/CLOSED/MERGED) and mergedAt (non-null when merged): if not yet merged, warn the user:
The source PR isn't merged yet. The bot will run as soon as the comment is posted and will backport whatever is on the PR head at that moment. Any new commits added to the source PR afterwards will not be auto-included in the backport — you'd need to re-trigger the
/backportcomment after they land (or after the PR is merged).
Then ask whether to continue, abort, or wait until merged.
baseRefName should be main (or another long-lived dev branch). Confirm with the user if it isn't.
Confirm the target branch exists. URL-encode the slash in the branch name when calling gh api:
# Use the git refs endpoint, which handles slashes in branch names cleanly
gh api "repos/microsoft/aspire/git/refs/heads/<target-branch>" --jq '.ref'If the call fails with 404, surface a clear error: "The target branch <target-branch> doesn't exist. Common typo, or the branch hasn't been cut yet."
Confirm that the target branch is not still configured for an already-published stable version:
git fetch origin <target-branch>
git show "origin/<target-branch>:eng/Versions.props"
gh release list --repo microsoft/aspire --limit 20 --json tagName,isPrerelease,publishedAtRead MajorVersion, MinorVersion, and PatchVersion from eng/Versions.props and compare X.Y.Z with the newest published non-prerelease tag for the same X.Y line. If they are equal, stop before triggering the backport and explain that the release branch must first increment PatchVersion in a dedicated PR. Do not put the version bump in an individual backport PR.
If the user already provided an existing backport PR number, skip to step 5 (fill template directly).
Otherwise check whether the bot has already opened a backport PR, and whether a /backport to <target> comment was already posted.
# Authoritative success check: has the bot already opened a backport PR for this (source, target) pair?
gh pr list --repo microsoft/aspire --state all `
--head "backport/pr-<source-pr>-to-<target-branch>" `
--json number,state,url,title
# Look for an existing /backport comment for this exact target (literal, not regex)
gh pr view <source-pr> --repo microsoft/aspire --json comments `
--jq ".comments[] | select(.body | contains(\"/backport to <target-branch>\")) | {author: .author.login, body: .body, createdAt: .createdAt}"Decide based on what you found:
(source PR, target branch) pair → surface its number/URL and skip to step 5./backport again. Don't silently re-trigger./backport comment exists with no failure response from the bot → skip the comment posting, jump to step 4 (poll). Treat the existing comment as in-progress./backport comment failed (e.g., a backporting … failed comment from the bot) → ask the user whether to retry by posting a new /backport comment. Posting twice is allowed when the previous attempt failed; it isn't allowed when one is currently in-progress or already succeeded.ask_user to confirm posting the trigger comment. Show them the exact comment text that will be posted./backport to <target> commentOnly after confirmation:
gh pr comment <source-pr> --repo microsoft/aspire --body "/backport to <target-branch>"Confirm to the user that the comment was posted and that the bot run will start shortly.
Poll every 15 seconds, up to 5 minutes total (20 attempts). The only authoritative success signal is a PR existing on the predictable head branch. The bot does not post a comment with the new PR's link on success — only a "Started backporting" comment up front (with a workflow run link), and a comment on failure. So:
Primary signal — PR exists with the predictable head branch (success):
gh pr list --repo microsoft/aspire --state all `
--head "backport/pr-<source-pr>-to-<target-branch>" `
--json number,url,state,titleIf a PR is found, polling is done. Move to step 5.
Secondary signal — bot comment on the source PR (in-progress / failure / workflow link):
gh pr view <source-pr> --repo microsoft/aspire --json comments `
--jq ".comments[-10:][] | select(.body | (contains(\"backporting\") or contains(\"Started backporting\") or contains(\"failed\"))) | {author: .author.login, body: .body, createdAt: .createdAt}"Bot author logins are typically github-actions[bot] or a GitHub App identity for aspire-bot. Match on comment body content (Started backporting, backporting … failed, an error occurred while backporting) rather than relying on author name alone — author identities can vary across runs.
A failure case to handle: if a comment matching backporting … failed, the patch most likely resulted in conflicts. Please backport manually! or an error occurred while backporting appears, stop polling, surface the message + workflow link to the user, and ask whether they want to:
/backport again (only useful if the underlying cause was transient — typically conflicts won't auto-resolve on retry).If polling times out without any signal, tell the user clearly. Offer to keep waiting (another 5 min), open the workflow run page, or accept a manually-supplied backport PR URL.
Pull everything that will help draft the four sections:
# Source PR details (title, body, files, linked issues)
gh pr view <source-pr> --repo microsoft/aspire `
--json number,title,body,files,closingIssuesReferences,labels,additions,deletions
# Linked issues (use closingIssuesReferences from the JSON above; for each one):
gh issue view <issue-number> --repo microsoft/aspire --json number,title,body,labelsIf the source PR body doesn't explicitly link an issue via Fixes #N/Closes #N, also scan the body for any issue references and ask the user which (if any) describe the customer-facing problem.
Use the gathered context to draft each section. Keep drafts concise and specific — shiproom reviews many backports, so prefer a few focused sentences over long prose. Style examples from real backports:
<N>"| Field | Prefer info from | Notes |
|---|---|---|
| Customer Impact | Linked issue body + source PR description | Describe the customer-visible symptom and who is affected, not the implementation. If the issue title is descriptive, lean on it. |
| Testing | Source PR description (look for "Testing"/"Validation" sections) and explicit statements about what was run | Require explicit evidence that tests ran/passed. Changed test files alone is not evidence — those tests may have been added but not validated against the release branch. If the source PR doesn't explicitly say what was tested, draft "Unknown — please confirm" rather than guessing. |
| Risk | Blast radius of the change: what areas/components it touches, whether it changes public API, behavior under concurrency, or shared infrastructure | Use Very low / Low / Medium / High. Diff size is a weak proxy — weigh the behavioral surface of the change. Default to Low for localized bug fixes, Very low for doc/cosmetic, escalate for cross-cutting changes, public API surface, or concurrency/lifetime changes. Always justify in one sentence. |
| Regression? | Explicit "regressed in vX.Y" statements in the source PR/issue, or labels that explicitly mark regressions (e.g., regression) | Labels like Servicing-consider indicate "considered for servicing", not that this is a regression. Without an explicit regression statement, draft "Unknown — please confirm." A confident "No" requires the source material to actually say so. |
Show the user the drafted body and ask them to approve, edit, or replace each field. Use ask_user so they can either accept the draft or supply replacement text. Iterate field-by-field if needed; do not write the body until they approve.
The bot's body looks like:
Backport of #<N> to <target-branch>
/cc @<users>
## Customer Impact
## Testing
## Risk
## Regression?If the existing body matches that shape (empty headers), replace the empty section bodies with the drafted content, leaving the header text and the Backport of … / /cc lines unchanged.
If the existing body is shaped differently (e.g., a manual backport PR with a description that doesn't include the four headers), append the four sections to the end of the existing body. Do not delete content the user wrote.
Write the new body to a temp file (backport-body.md) and update the PR:
$env:GH_PAGER = "cat"
gh pr edit <backport-pr> --repo microsoft/aspire --body-file backport-body.md
Remove-Item backport-body.mdTell the user:
/backport to <target> if there is an open backport PR for this (source, target) pair, or if a previous /backport comment is still in-progress with no failure response from the bot. Retries are allowed (with explicit user confirmation) when the previous attempt failed.write or admin access to the repo. If the user lacks permissions, the bot will fail; surface that clearly.git am conflict, do not attempt to resolve it for the user — the conflict resolution belongs in a real local checkout. Hand control back with the workflow link.| Error | Action |
|---|---|
gh: command not found | Tell the user to install gh from https://cli.github.com/. |
gh auth not logged in | Tell the user to run gh auth login. |
| Source PR not merged | Warn per step 1 and ask whether to continue, abort, or wait. |
| Target branch missing | Surface the error and ask the user to confirm the branch name (typo? not snapped yet?). |
/backport comment already posted, no PR yet | Skip posting; go straight to polling. |
Bot reports git am conflict | Stop polling; show the workflow link; ask whether to fill template against a manually-created backport PR. |
| Polling timeout | Offer to keep waiting, point at the workflow run page, or accept a manually-supplied backport PR URL. |
| Backport PR body has unexpected shape | Append the four sections rather than overwriting. |
© microsoft, MIT. 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 .agents/skills/backport-pr of microsoft/aspire.
Open the folder on GitHubat commit 809a672
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 skillmicrosoft/aspire | 6.3k | — | ~4.2k | Automated safety check: Pass | MIT | |
| Analyze GitHub Action Logswithastro/astro | 63k | 1 repos | ~1.3k | Automated safety check: Pass | Custom licence | |
| GitHub Actions Templatesbartstc/vite-ts-react-template | 122 | 13 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Nushellccusage/ccusage | 19k | — | ~938 | Automated safety check: Pass | Custom licence | |
| Repo Hygiene Scan and FixQwenLM/qwen-code | 28k | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Senior DevOps Toolkitmaslennikov-ig/claude-code-orchestrator-kit | 259 | 6 repos | ~1.1k | Automated safety check: Notes | Custom licence |
withastro/astro
Analyze recent GitHub Actions workflow runs to identify patterns, mistakes, and improvements.
bartstc/vite-ts-react-template
Create production-ready GitHub Actions workflows for automated testing, building, and deploying applications.
ccusage/ccusage
Guides ccusage Nushell scripts. An agent skill from ccusage/ccusage.
QwenLM/qwen-code
Scheduled CI skill that scans a repository for small, certain docs, test and code hygiene issues and fixes them on one branch with a commit per finding.
maslennikov-ig/claude-code-orchestrator-kit
Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup…
Chachamaru127/claude-code-harness
Diagnoses failing CI pipelines and tests, deciding first whether the test or the implementation is at fault, and hands hard cases to a dedicated fixer subagent.
microsoft/aspire
A skill your agent uses when asked to trigger or inspect Aspire internal Azure DevOps builds, source-index runs, or release validation on dnceng/internal; push to the internal mirror; download build…
microsoft/aspire
Bumps the Aspire repository product version in eng/Versions.props using previous version-bump commits as guidance.
microsoft/aspire
Guide for diagnosing GitHub Actions test failures, extracting failed tests from runs, and creating or updating failing-test issues.
microsoft/aspire
Create a pull request using the repository PR template. An agent skill from microsoft/aspire.
microsoft/aspire
Guide for writing tests for the Aspire Dashboard. An agent skill from microsoft/aspire.
microsoft/aspire
Guide for writing Aspire deployment end-to-end tests. An agent skill from microsoft/aspire.
Works with
Categories
Backports a merged PR to a release branch by triggering the /backport bot, waiting for the bot-created PR, and filling in the shiproom template (Customer Impact, Testing, Risk, Regression?). Backport PR is an agent skill from microsoft/aspire, published by the product's own GitHub organization.).
Backport PR fits situations like: asked to: backport a PR; port a fix to a release branch; fill in a backport template; prepare a backport for shiproom review.
Run `npx skills add microsoft/aspire --skill backport-pr -a claude-code`. Or copy the skill folder (.agents/skills/backport-pr in microsoft/aspire) into .claude/skills/backport-pr in your project. Claude Code loads it when a task matches its description.
Run `npx skills add microsoft/aspire --skill backport-pr -a codex`. Or copy the skill folder (.agents/skills/backport-pr in microsoft/aspire) 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 microsoft/aspire --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 (gh and git).
SKILL.md names 1 domain. As links in the text: cli.github.com. 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 MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.2k tokens (SKILL.md is roughly 17k 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: Analyze GitHub Action Logs (withastro/astro, 63k stars), GitHub Actions Templates (bartstc/vite-ts-react-template, 122 stars), Nushell (ccusage/ccusage, 19k stars) and Repo Hygiene Scan and Fix (QwenLM/qwen-code, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
microsoft (a GitHub organization, an official publisher) maintains it in microsoft/aspire, which has 6,348 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 7, 2026.
Source: microsoft/aspire on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.