PR Screenshots
github/awesome-copilot
Embed before/after screenshots and annotated images in pull request descriptions.
Respond to pull request review comments on GitHub or Azure DevOps Services.
$ npx skills add microsoft/PromptKit --skill respond-to-pr-comments -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install microsoft/PromptKit respond-to-pr-comments --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/PromptKit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/respond-to-pr-comments .claude/skills/respond-to-pr-comments && 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 "respond-to-pr-comments" agent skill from https://github.com/microsoft/PromptKit/tree/main/.github/skills/respond-to-pr-comments into .claude/skills/respond-to-pr-comments/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "respond-to-pr-comments", 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/PromptKit/tree/main/.github/skills/respond-to-pr-commentsType 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/PromptKit --skill respond-to-pr-comments -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install microsoft/PromptKit respond-to-pr-comments --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/PromptKit.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/respond-to-pr-comments .agents/skills/respond-to-pr-comments && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "respond-to-pr-comments" agent skill from https://github.com/microsoft/PromptKit/tree/main/.github/skills/respond-to-pr-comments into .agents/skills/respond-to-pr-comments/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "respond-to-pr-comments", 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/PromptKit --skill respond-to-pr-comments -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install microsoft/PromptKit respond-to-pr-comments --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/PromptKit.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/respond-to-pr-comments .cursor/skills/respond-to-pr-comments && 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 "respond-to-pr-comments" agent skill from https://github.com/microsoft/PromptKit/tree/main/.github/skills/respond-to-pr-comments into .cursor/skills/respond-to-pr-comments/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "respond-to-pr-comments", 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/PromptKit.git --path .github/skills/respond-to-pr-comments--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/PromptKit --skill respond-to-pr-comments -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install microsoft/PromptKit respond-to-pr-comments --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/PromptKit.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/respond-to-pr-comments .gemini/skills/respond-to-pr-comments && 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 "respond-to-pr-comments" agent skill from https://github.com/microsoft/PromptKit/tree/main/.github/skills/respond-to-pr-comments into .gemini/skills/respond-to-pr-comments/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "respond-to-pr-comments", 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/PromptKit respond-to-pr-commentsInstalls 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/PromptKit --skill respond-to-pr-comments -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/microsoft/PromptKit.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/respond-to-pr-comments .github/skills/respond-to-pr-comments && 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 "respond-to-pr-comments" agent skill from https://github.com/microsoft/PromptKit/tree/main/.github/skills/respond-to-pr-comments into .github/skills/respond-to-pr-comments/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "respond-to-pr-comments", 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/PromptKit --skill respond-to-pr-comments -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/PromptKit respond-to-pr-comments --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/PromptKit.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/respond-to-pr-comments .opencode/skills/respond-to-pr-comments && 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 "respond-to-pr-comments" agent skill from https://github.com/microsoft/PromptKit/tree/main/.github/skills/respond-to-pr-comments into .opencode/skills/respond-to-pr-comments/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "respond-to-pr-comments", 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.
respond-to-pr-commentsRespond to pull request review comments on GitHub or Azure DevOps Services.
Respond To PR Comments is an agent skill from microsoft/PromptKit, published by the product's own GitHub organization. Respond to pull request review comments on GitHub or Azure DevOps Services. Reads review threads, validates each, proposes fixes or explanations, applies changes with user confirmation, and updates thread status via the platform's API. Use when the user wants to address PR feedback or resolve review threads.
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 Development, covering Prompt engineering and Pull requests. It works with Azure DevOps and GitHub. The repository describes itself as: Agentic prompts are the most important code you're not engineering. PromptKit fixes that — composable, version-controlled prompt components (personas, protocols, formats… The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 074dc8d. 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:
azghgitFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
dev.azure.comgithub.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.
Respond To PR Comments loads about 4.2k tokens when it runs. Until then it costs about 83 tokens; SKILL.md has 1,746 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/PromptKit at commit 074dc8d, republished under its MIT licence (© microsoft). 1,746 words, ~4,248 tokens.
.claude/skills/respond-to-pr-comments/SKILL.md (or your agent's skills folder).<!-- Generated by PromptKit — edit with care -->
You are a senior systems engineer responding to PR review feedback. The PR may live on GitHub or Azure DevOps Services. Workflow is identical; only API calls differ. Always use the source platform's native status vocabulary in output — do NOT translate ADO statuses to GitHub terms or vice versa.
az login + az rest --resource 499b84ac-1321-427f-aa17-267ca6975798 (the Azure DevOps resource
GUID) on every call — without --resource, az attaches the wrong
audience and you get 401/403.ado:<n> (e.g., ado:123)
→ unambiguous ADO. Strip the ado: prefix; carry the numeric
prId only — never the literal ado:<n> string. Skip remote
inspection in step 3.github.com/... → GitHub;
dev.azure.com/{org}/{project}/_git/{repo}/pullrequest/{n} or
{org}.visualstudio.com/... → ADO.git remote -v (handle SSH: git@github.com,
git@ssh.dev.azure.com:v3/..., {org}@vs-ssh.visualstudio.com:v3/...).
Prefer current branch's upstream when multiple remotes exist.Before any API call, record the values needed to build URIs:
owner, repo, pr_number.org, project, repoName, prId (and later repoId,
resolved via the API in Step 2).Source them as follows:
#42 or 42 for GitHub, 123 or ado:123
for ADO) — derive the rest from the selected upstream remote. The
ado: prefix has already been stripped in step 1; carry only the
numeric prId (123), not the literal ado:123. Strip a leading
# from GitHub ids similarly. Recognise:https://github.com/{owner}/{repo}(.git)?git@github.com:{owner}/{repo}(.git)?https://dev.azure.com/{org}/{project}/_git/{repo}git@ssh.dev.azure.com:v3/{org}/{project}/{repo}https://{org}.visualstudio.com/{project}/_git/{repo}{org}@vs-ssh.visualstudio.com:v3/{org}/{project}/{repo}If any required field cannot be determined unambiguously, prompt the user. Do NOT invent values.
Record per-thread IDs (needed to post replies and update status).
Use gh api graphql with cursor pagination. The GitHub API
paginates review threads and comments — always check hasNextPage
for both reviewThreads and the inner comments connection
within each thread, and continue fetching until both are exhausted
(PRs with many reviewers easily exceed 100 comments):
query($owner: String!, $repo: String!, $prNumber: Int!, $cursor: String) {
repository(owner: $owner, name: $repo) {
pullRequest(number: $prNumber) {
reviewThreads(first: 100, after: $cursor) {
pageInfo {
hasNextPage
endCursor
}
nodes {
id
isResolved
isOutdated
path
line
startLine
diffSide
comments(first: 100) {
pageInfo {
hasNextPage
endCursor
}
nodes {
id
databaseId
author { login }
body
createdAt
}
}
}
}
}
}
}For each thread, record:
thread_id: the GraphQL id (required for resolveReviewThread)isResolved / isOutdated,
not a single API field): open (unresolved + not outdated),
outdated (code has changed), or resolvedFor each comment within the thread, record:
comment_id: the databaseId (required for in_reply_to when
posting a reply)Inner comment pagination. The query above fetches the first 100
comments per thread. For any thread whose
comments.pageInfo.hasNextPage is true, issue a follow-up query
keyed by the thread id, paging comments(first: 100, after: $commentCursor) until exhausted, e.g.:
query($threadId: ID!, $commentCursor: String) {
node(id: $threadId) {
... on PullRequestReviewThread {
comments(first: 100, after: $commentCursor) {
pageInfo { hasNextPage endCursor }
nodes { id databaseId author { login } body createdAt }
}
}
}
}Run az login once. Then:
repoId (use URL-encoded {projectEnc} / {repoNameEnc}
per the encoding note above; {org} and GUIDs need no encoding):az rest --resource 499b84ac-1321-427f-aa17-267ca6975798 --method GET \
--uri "https://dev.azure.com/{org}/{projectEnc}/_apis/git/repositories/{repoNameEnc}?api-version=7.1"$top/$skip
pagination and comments are embedded inline. Treat the response
defensively: if a continuationToken field appears in the body or
an x-ms-continuationtoken header is returned, follow it (passing
?continuationToken=<token>) until no further token is returned.az rest --resource 499b84ac-1321-427f-aa17-267ca6975798 --method GET \
--uri "https://dev.azure.com/{org}/{projectEnc}/_apis/git/repositories/{repoId}/pullRequests/{prId}/threads?api-version=7.1"az rest --resource 499b84ac-1321-427f-aa17-267ca6975798 --method GET \
--uri "https://dev.azure.com/{org}/{projectEnc}/_apis/git/repositories/{repoId}/pullRequests/{prId}/iterations?api-version=7.1"For each ADO thread, record:
id: the thread id (integer; required for status updates and
posting replies)status: one of active, pending, fixed, wontFix,
closed, byDesign, unknown (exact API enum values —
case-sensitive; note wontFix and byDesign are camelCase.
ADO uses fixed, NOT resolved.)threadContext: file path (filePath), line range
(rightFileStart / rightFileEnd), and side. May be null for
PR-wide threads or system threads.pullRequestThreadContext.iterationContext:
firstComparingIteration, secondComparingIteration — used as
a signal for outdated detection (not definitive).properties and comments[*].commentType — used to identify
system threads (see Step 3).For each comment within the thread, record:
id: the comment id (use as parentCommentId when posting a reply)content (the comment body)commentTypeSkip resolved (count). Flag outdated — ask before processing.
Group open by file path.
Skip system threads(count separately, do NOT process):
all comments are commentType: "system", OR properties contains
a system CodeReviewThreadType (MergeAttempt, VoteUpdate,
ReviewersUpdate, RefUpdate, StatusUpdate).
Process active by default.
Flag pending — ask the user (author marked it awaiting something).
Skip fixed/wontFix/closed/byDesign/unknown unless
user opts in.
Detect potentially outdated (no native status — flag, do
NOT assert). Skip this entirely for PR-wide threads (when
threadContext is null) — there is no file/line to verify.
For file-anchored threads, decide the source of truth for "current file contents":
GET .../pullRequests/{prId}/iterations/{latestIteration}/changes?api-version=7.1)
and items
(GET .../items?path={filePath}&versionDescriptor.version={sourceBranch}&versionDescriptor.versionType=branch&api-version=7.1).HEAD
matches the PR source-branch tip at latestIteration (compare
the iteration's commit SHA against git rev-parse HEAD).With a verified source, flag when any holds:
threadContext.filePath no longer exists in the latest
iteration; line range outside file's current line count;
iterationContext.secondComparingIteration older than latest
AND file/lines changed since.
Surviving threads with threadContext: null are PR-wide
threads — process, but group separately in the report.
If thread count > 20, process in batches of 10 with progress summaries between batches.
Compare feedback across reviewers on the same code area (same file within 10 lines, or same function/concept). Present both positions neutrally; ask the user to decide.
Read current code at the thread location. Determine response:
| Reviewer Feedback | Response Type |
|---|---|
| Bug, missing check, incorrect behavior | Fix |
| "Why" / design-choice question | Explain |
| Suggested refactor / alternative | Both |
| Documentation / comment changes | Fix |
| Style / convention issue | Fix |
| Concern with no specific ask | Explain |
For each thread, produce:
Show:
Ask the user to confirm before proceeding to Step 7.
Execute with mandatory user confirmation at every step.
Code fixes — for each approved fix:
Apply this fix? (yes / skip / edit).Commit & push — after all fixes are applied:
Commit and push? (yes / no).Replies — for each approved explanation:
Post this reply? (yes / skip / edit).GitHub:
cat > reply.json <<'EOF'
{ "body": "<reply text>", "in_reply_to": <comment_database_id> }
EOF
gh api repos/{owner}/{repo}/pulls/{pr_number}/comments \
--method POST --input reply.jsonADO (uses content + parentCommentId + commentType: "text"
— NOT GitHub's body / in_reply_to). Always include
parentCommentId — for PR-wide threads, reply to the latest text
comment (or the first comment if the thread has only one). Do NOT
omit parentCommentId; that posts an unparented top-level remark
and breaks the contract used for status/threading downstream.
Always write the reply body to a temp file and pass --body @file
— never inline as --body '...'. Real reply text contains
apostrophes, newlines, and backslashes that break shell quoting in
both bash and PowerShell.
cat > reply.json <<'EOF'
{ "content": "<reply text>", "parentCommentId": <comment_id>, "commentType": "text" }
EOF
az rest --resource 499b84ac-1321-427f-aa17-267ca6975798 --method POST \
--uri "https://dev.azure.com/{org}/{projectEnc}/_apis/git/repositories/{repoId}/pullRequests/{prId}/threads/{threadId}/comments?api-version=7.1" \
--headers "Content-Type=application/json" \
--body @reply.jsonUpdate thread status — always confirm each transition with the user before executing:
| Intent | GitHub | ADO |
|---|---|---|
| Fix applied | resolve | fixed |
| Explanation posted, close discussion | resolve | closed |
| Explanation posted, leave for reply | (no change) | leave active |
| Concern noted, won't act | (no change) | wontFix |
| Intentional design | (no change) | byDesign |
GitHub — resolve:
gh api graphql -f query='mutation($threadId: ID!) {
resolveReviewThread(input: {threadId: $threadId}) { thread { isResolved } }
}' -F threadId="<thread_id>"ADO — PATCH with exact case-sensitive enum value (wontFix
and byDesign are camelCase; the body is a fixed small JSON
literal with no user content, so inlining --body '...' is safe
here):
az rest --resource 499b84ac-1321-427f-aa17-267ca6975798 --method PATCH \
--uri "https://dev.azure.com/{org}/{projectEnc}/_apis/git/repositories/{repoId}/pullRequests/{prId}/threads/{threadId}?api-version=7.1" \
--headers "Content-Type=application/json" \
--body '{ "status": "fixed" }'Present:
resolved, ADO fixed / closed /
wontFix / byDesign; outdated or potentially outdated; ADO
system threads).hasNextPage for both
reviewThreads and inner comments; PRs with many reviewers
easily exceed 100 comments.az rest 401/403 — usually missing --resource, expired
az login, or insufficient project permissions. Tell the user
which to check; do NOT recommend a PAT.© 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 .github/skills/respond-to-pr-comments of microsoft/PromptKit.
Open the folder on GitHubat commit 074dc8d
Respond To PR Comments 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 |
|---|---|---|---|---|---|---|
| Respond To PR Comments this skillmicrosoft/PromptKit | 110 | — | ~4.2k | Automated safety check: Pass | MIT | |
| PR Screenshotsgithub/awesome-copilot | 40k | — | ~1.2k | Automated safety check: Pass | MIT | |
| ONNX Runtime CI Managementmicrosoft/onnxruntime | 22k | — | ~4.1k | Automated safety check: Pass | MIT | |
| PR Babysitteropeninterpreter/openinterpreter | 69k | 3 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Check PRonyx-dot-app/onyx | 32k | 2 repos | ~2.3k | Automated safety check: Pass | MIT | |
| Contributor-First PR MergeHKUDS/OpenHarness | 16k | 1 repos | ~847 | Automated safety check: Pass | MIT |
github/awesome-copilot
Embed before/after screenshots and annotated images in pull request descriptions.
microsoft/onnxruntime
Triggers, re-runs and unblocks the CI checks on an ONNX Runtime pull request, after diagnosing whether a failure is transient or needs a code change.
openinterpreter/openinterpreter
Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.
onyx-dot-app/onyx
Checks a GitHub, GitLab, or Perforce (p4) pull request (or merge request, or shelved changelist) for unresolved review comments, failing status checks, and incomplete PR descriptions.
HKUDS/OpenHarness
Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.
cline/cline
Opens a GitHub pull request from your current branch with the gh CLI, after reviewing the commits and diff and gathering the details the PR needs.
microsoft/PromptKit
Ingest the official MITRE CWE database and generate per-domain security audit taxonomies for PromptKit.
microsoft/PromptKit
PromptKit composition engine. An agent skill from microsoft/PromptKit.
Works with
Categories
Respond to pull request review comments on GitHub or Azure DevOps Services. Respond To PR Comments is an agent skill from microsoft/PromptKit, published by the product's own GitHub organization. Respond to pull request review comments on GitHub or Azure DevOps Services.
Respond To PR Comments fits situations like: the user wants to address PR feedback; resolve review threads.
Run `npx skills add microsoft/PromptKit --skill respond-to-pr-comments -a claude-code`. Or copy the skill folder (.github/skills/respond-to-pr-comments in microsoft/PromptKit) into .claude/skills/respond-to-pr-comments in your project. Claude Code loads it when a task matches its description.
Run `npx skills add microsoft/PromptKit --skill respond-to-pr-comments -a codex`. Or copy the skill folder (.github/skills/respond-to-pr-comments in microsoft/PromptKit) into .agents/skills/respond-to-pr-comments 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/PromptKit --skill respond-to-pr-comments -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/respond-to-pr-comments, .gemini/skills/respond-to-pr-comments, .github/skills/respond-to-pr-comments and .opencode/skills/respond-to-pr-comments in your project.
Going by SKILL.md and its folder, Respond To PR Comments needs the command-line tools its instructions call (az, gh and git).
SKILL.md names 2 domains. In commands or code: dev.azure.com and github.com; the agent is likely to contact these when it follows the instructions. 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.
Respond To PR Comments 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 Respond To PR Comments: PR Screenshots (github/awesome-copilot, 40k stars), ONNX Runtime CI Management (microsoft/onnxruntime, 22k stars), PR Babysitter (openinterpreter/openinterpreter, 69k stars) and Check PR (onyx-dot-app/onyx, 32k 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/PromptKit, which has 110 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on September 18, 2026.
Source: microsoft/PromptKit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.