Setup Matt Pocock Skills
bestofjs/bestofjs
Configure this repo for the engineering skills — set up its issue tracker, triage label vocabulary, and domain doc layout.
Triages open GitHub issues by applying the correct labels. An agent skill from agent-substrate/substrate.
$ npx skills add agent-substrate/substrate --skill triage-issues -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install agent-substrate/substrate triage-issues --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/agent-substrate/substrate.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/triage-issues .claude/skills/triage-issues && 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 "triage-issues" agent skill from https://github.com/agent-substrate/substrate/tree/main/.agents/skills/triage-issues into .claude/skills/triage-issues/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "triage-issues", 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/agent-substrate/substrate/tree/main/.agents/skills/triage-issuesType 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 agent-substrate/substrate --skill triage-issues -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install agent-substrate/substrate triage-issues --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agent-substrate/substrate.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/triage-issues .agents/skills/triage-issues && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "triage-issues" agent skill from https://github.com/agent-substrate/substrate/tree/main/.agents/skills/triage-issues into .agents/skills/triage-issues/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "triage-issues", 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 agent-substrate/substrate --skill triage-issues -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install agent-substrate/substrate triage-issues --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agent-substrate/substrate.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/triage-issues .cursor/skills/triage-issues && 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 "triage-issues" agent skill from https://github.com/agent-substrate/substrate/tree/main/.agents/skills/triage-issues into .cursor/skills/triage-issues/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "triage-issues", 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/agent-substrate/substrate.git --path .agents/skills/triage-issues--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 agent-substrate/substrate --skill triage-issues -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install agent-substrate/substrate triage-issues --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agent-substrate/substrate.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/triage-issues .gemini/skills/triage-issues && 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 "triage-issues" agent skill from https://github.com/agent-substrate/substrate/tree/main/.agents/skills/triage-issues into .gemini/skills/triage-issues/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "triage-issues", 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 agent-substrate/substrate triage-issuesInstalls 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 agent-substrate/substrate --skill triage-issues -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/agent-substrate/substrate.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/triage-issues .github/skills/triage-issues && 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 "triage-issues" agent skill from https://github.com/agent-substrate/substrate/tree/main/.agents/skills/triage-issues into .github/skills/triage-issues/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "triage-issues", 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 agent-substrate/substrate --skill triage-issues -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install agent-substrate/substrate triage-issues --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agent-substrate/substrate.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/triage-issues .opencode/skills/triage-issues && 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 "triage-issues" agent skill from https://github.com/agent-substrate/substrate/tree/main/.agents/skills/triage-issues into .opencode/skills/triage-issues/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "triage-issues", 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.
triage-issuesTriages open GitHub issues by applying the correct labels. An agent skill from agent-substrate/substrate.
Triage Issues is an agent skill from agent-substrate/substrate. Triages open GitHub issues by applying the correct labels. Use when asked to triage issues, label issues, or organize the issue backlog. Processes unlabeled issues first, then reviews labeled issues for correctness. Proposes all changes for approval before applying anything, and writes an undo script for each run.
Its SKILL.md is about 2.9k 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 Issue triage. It works with GitHub. The repository describes itself as: Agent Substrate: the core system. The licence is Apache-2.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 0b91488. 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:
ghbashFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use 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.
Triage Issues loads about 2.9k tokens when it runs. Until then it costs about 82 tokens; SKILL.md has 1,296 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 agent-substrate/substrate at commit 0b91488, republished under its Apache-2.0 licence (© agent-substrate). 1,296 words, ~2,915 tokens.
.claude/skills/triage-issues/SKILL.md (or your agent's skills folder).Triage means: read each issue, decide the right labels from the taxonomy below, and
apply them with gh issue edit. Do not remove labels a human has already added unless
they are clearly wrong. Do not add priority labels unless the issue body or discussion
makes the priority obvious.
Two hard rules govern every run:
Every issue should have at least one kind/ label and at least one area/ label.
Priority and status labels are optional.
kind/ — what the issue is| Label | When to apply |
|---|---|
kind/bug | Something is broken or behaves incorrectly. The current behavior is wrong. |
kind/feature | A new capability that does not exist today. Includes enhancements to existing features. |
kind/cleanup | Code quality improvements that do not change behavior: refactors, naming, dead code removal, small inconsistencies. |
kind/docs | Documentation only — missing, outdated, or incorrect docs. |
kind/design | Design discussions, investigations, research, and open questions that must be resolved before implementation. Includes "Design discussion:", "Identify what X should be", "Measure/benchmark X", "Explore options". |
If any label in this taxonomy does not exist on the repo yet, include its creation in the proposal and create it during the apply step with:
gh label create "<label>" \
--repo agent-substrate/substrate \
--description "<short description matching the taxonomy table>" \
--color "c5def5"area/ — which part of the codebaseApply all areas that are touched. Most issues need one or two; a few need more.
| Label | Scope |
|---|---|
area/api | User-facing Substrate API (pkg/proto/ateapipb/, proto definitions, API semantics, versioning) |
area/api-machinery | API server internals: RPC handlers, storage layer, syncer, controllers (cmd/ateapi/, cmd/atecontroller/) |
area/network | Networking: atenet-router, Envoy, ext_proc, DNS, xDS, ingress (cmd/atenet/) |
area/node | Node agent and worker lifecycle: atelet, sandbox launch, OCI, cgroups (cmd/atelet/) |
area/gvisor | gVisor sandbox specifics: runsc integration, GPU in gVisor, gVisor OCI (cmd/ateom-gvisor/) |
area/microVM | Micro-VM sandbox specifics: cloud-hypervisor, kata, snapshot/restore (cmd/ateom-microvm/) |
area/storage | Snapshot storage, image cache, GCS/S3 backends, retention (internal/imagecache/, ActorSnapshot) |
area/scheduling | WorkerPool sizing, actor placement, HPA, resource allocation |
area/observability | Metrics, tracing, logging, OTLP, OTel SDK integration |
area/security | Auth, mTLS, RBAC, threat detection, credential management, PodCertificate |
area/identity | Actor identity, token issuance, JWT auth, ActorIdentity extension |
area/dev-infra | CI/CD, GitHub Actions, presubmit checks, tooling, proto generation |
area/tests | Test coverage, flaky tests, test infrastructure (not a bug in production code) |
area/cli | kubectl-ate CLI plugin |
area/demos | Demo applications in demos/ |
area/benchmarking | Performance benchmarks and capacity measurements (benchmarking/) |
area/reliability | Reliability, stability, error recovery, and uptime concerns |
prio/ — priorityOnly apply when the issue body or a maintainer comment makes the priority evident. Do not guess.
| Label | Meaning |
|---|---|
prio/P0 | Highest priority; required for next milestone or blocking ongoing work |
prio/P1 | Important but not blocking; should land in the near term |
prio/P2 | Real issue but not urgent; can wait |
Apply only when clearly appropriate. Never add wontfix, duplicate, or invalid
yourself — those are maintainer decisions.
| Label | When |
|---|---|
good first issue | Well-scoped, self-contained, does not require deep system knowledge |
help wanted | Maintainers actively want external contributions |
Work through these questions in order:
1. Is something broken?
If the current behavior is incorrect, it is kind/bug. Security holes and data
loss are bugs, not features.
2. Does it ask for new capability?
If the system would need to do something it cannot do today, it is kind/feature.
Apply kind/feature even if the issue is framed as "support X" or "add Y".
3. Is it a design question or investigation?
If the issue is asking how to do something, comparing approaches, measuring
capacity, or researching unknowns before any code is written, it is kind/design.
Keywords: "Design discussion", "Investigate", "Explore options", "Identify what",
"Measure", "Research".
The clearest way to distinguish kind/design from kind/feature:
kind/feature: you could open a PR today — the what and how are known.kind/design: a decision or investigation must happen first; a PR cannot be written yet.When in doubt, ask: "Could someone reasonably start coding this issue right now?"
If yes → kind/feature. If no → kind/design.
4. Is it a code quality improvement with no behavior change?
Refactoring, renaming, consolidating duplicated code, removing dead code → kind/cleanup.
5. Is it documentation only?
Docs fixes, missing API guide sections, README updates → kind/docs.
For area/ labels, use the component the issue is about, not where the fix will
necessarily land. A bug in actor scheduling reported via the API is area/api +
area/scheduling, not area/api-machinery.
Steps 1–3 are read-only. Nothing is written to GitHub until the user approves the proposal in Step 3.
List the repo's labels and compare against the taxonomy above:
gh label list --repo agent-substrate/substrate --limit 100 --json name --jq '.[].name'Do not create anything yet. If any taxonomy label is missing, list its creation in the proposal.
Fetch unlabeled issues first:
gh issue list --repo agent-substrate/substrate \
--state open --limit 500 \
--json number,title,labels,body \
--jq '[.[] | select(.labels | length == 0)]'Classify each one using the guide above. Then scan already-labeled issues for obvious gaps:
kind/ label but no area/ labelarea/ labels but no kind/ labelkind/design but are filed as kind/featureDo not propose changes to labels that look reasonable even if you might have chosen
differently. Only correct clear mismatches (for example, a bug filed as
kind/feature, or a design discussion with no kind/ label at all).
Only propose labels an issue does not already have, so the undo record in Step 4 removes exactly what this run added and nothing a human applied earlier.
Output a summary of every change you intend to make, then stop and wait. Do not apply anything in the same turn as the proposal.
## Proposed changes
Labels to create: kind/design, area/benchmarking
| Issue | Title (truncated) | Labels to add |
|---|---|---|
| #900 | Implement chain of authenticator... | kind/feature, area/identity, area/api-machinery |
| #874 | Design discussion: WorkerPool vs... | kind/design, area/scheduling |
### Uncertain (best guess included above, please confirm)
- #812 — could be kind/bug or kind/design: unclear whether the behavior is intended.
Reply to approve all, or list the issue numbers to change or skip.List every uncertain issue with the question you could not resolve from the text alone. Do not leave those out of the proposal — include your best guess and flag it.
If the user asks for corrections, update the proposal and confirm again. Apply only what the user approved.
Create any approved missing labels with the gh label create command above, then
apply labels to each approved issue:
gh issue edit <number> \
--repo agent-substrate/substrate \
--add-label "kind/bug,area/network"Use --add-label, not --label, so you don't overwrite existing labels.
As you apply, build an undo script at /tmp/triage-issues-undo-<YYYYMMDD-HHMMSS>.sh
containing one line per successfully applied change, reversing it:
#!/usr/bin/env bash
# Undo record for triage-issues run on 2026-09-04 14:03 UTC.
# Removes only the labels this run added; labels applied by humans are untouched.
set -euo pipefail
gh issue edit 900 --repo agent-substrate/substrate --remove-label "kind/feature,area/identity,area/api-machinery"
gh issue edit 874 --repo agent-substrate/substrate --remove-label "kind/design,area/scheduling"
# Label deletions must come last: deleting a label strips it from all issues.
# Only present if this run created the label.
gh label delete "kind/design" --repo agent-substrate/substrate --yesRules for the undo script:
--remove-label line per issue listing exactly the labels this run added.gh label delete only for labels this run created, and place those lines
after all --remove-label lines.chmod +x <script>.After applying, output a table of what was actually done:
| Issue | Title (truncated) | Labels applied |
|---|---|---|
| #900 | Implement chain of authenticator... | kind/feature, area/identity, area/api-machinery |Note any approved changes that failed to apply. Then point at the undo record:
To undo everything this run changed:
bash /tmp/triage-issues-undo-20260904-140312.shThese illustrate the taxonomy applied to real issues in this repo:
| Title pattern | kind/ | area/ |
|---|---|---|
| "X is broken / returns wrong value / panics" | bug | affected component |
| "Add support for X / Implement Y" | feature | affected component |
| "Design discussion: should X or Y" | design | affected component |
| "Identify what metrics to use for Z" | design | observability, scheduling |
| "Measure / benchmark X capacity" | design | benchmarking, affected component |
| "Consolidate / Reorganize / Rework X" | cleanup | affected component |
| "Update docs / Add doc for X" | docs | (omit area unless specific) |
| "E2E test flaky: TestFoo" | bug | tests, affected component |
| "Presubmit doesn't catch X" | bug | dev-infra |
area/ labels. Apply all that fit.kind/ label per issue is the norm. Applying two is unusual.prio/ labels to issues that don't clearly warrant one. Unlabeled
priority is better than a wrong priority label.© agent-substrate, 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 .agents/skills/triage-issues of agent-substrate/substrate.
Open the folder on GitHubat commit 0b91488
Triage Issues 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 |
|---|---|---|---|---|---|---|
| Triage Issues this skillagent-substrate/substrate | 4.5k | — | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| Setup Matt Pocock Skillsbestofjs/bestofjs | 3.1k | 20 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Windows App SDK Issue Triage Reportmicrosoft/WindowsAppSDK | 4.7k | — | ~3.4k | Automated safety check: Pass | Apache-2.0 | |
| Exposed Bug Fix WorkflowJetBrains/Exposed | 9.3k | — | ~3.8k | Automated safety check: Pass | Apache-2.0 | |
| Pre-Release PR Triagejamiepine/voicebox | 57k | — | ~3.1k | Automated safety check: Pass | MIT | |
| WinAppSDK Triage Meeting Prepmicrosoft/WindowsAppSDK | 4.7k | — | ~2.8k | Automated safety check: Pass | Apache-2.0 |
bestofjs/bestofjs
Configure this repo for the engineering skills — set up its issue tracker, triage label vocabulary, and domain doc layout.
microsoft/WindowsAppSDK
Generates GitHub Feature Area Status reports for the Windows App SDK repository, scoring issues so teams can see what needs attention in each area.
JetBrains/Exposed
Takes a GitHub or YouTrack issue for the Exposed project through reproduction, a failing test, a fix, validation and a pull request.
jamiepine/voicebox
Sorts a backlog of open pull requests into must-merge, candidate, superseded and deferred, writes a triage doc and works the merge loop before a release.
microsoft/WindowsAppSDK
Prepares the triage meeting summary for WinAppSDK Needs-Triage issues, with research-backed area suggestions, draft replies and a diff since the last triage.
a2ui-project/a2ui
Automates the triage of GitHub issues in the A2UI repository.
agent-substrate/substrate
Posts pull request review findings as GitHub draft (pending) inline comments for a human to edit and submit, instead of publishing them straight to the PR author.
agent-substrate/substrate
Detects flaky Go tests by analyzing GitHub Actions workflow runs across the last 7 days and all PRs — covering both the run-tests job (unit/integration) and the e2e-test job (gVisor and microVM…
agent-substrate/substrate
Reviews CRDs for compliance with Kubernetes API conventions.
agent-substrate/substrate
Generates a security status report based on docs/threats.json by spinning up sub-agents for each threat to compute a quality score.
agent-substrate/substrate
Generates or updates an AGENTS.md file
Works with
Categories
Triages open GitHub issues by applying the correct labels. An agent skill from agent-substrate/substrate. Triage Issues is an agent skill from agent-substrate/substrate. Triages open GitHub issues by applying the correct labels.
Triage Issues fits situations like: asked to triage issues; organize the issue backlog.
Run `npx skills add agent-substrate/substrate --skill triage-issues -a claude-code`. Or copy the skill folder (.agents/skills/triage-issues in agent-substrate/substrate) into .claude/skills/triage-issues in your project. Claude Code loads it when a task matches its description.
Run `npx skills add agent-substrate/substrate --skill triage-issues -a codex`. Or copy the skill folder (.agents/skills/triage-issues in agent-substrate/substrate) into .agents/skills/triage-issues 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 agent-substrate/substrate --skill triage-issues -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/triage-issues, .gemini/skills/triage-issues, .github/skills/triage-issues and .opencode/skills/triage-issues in your project.
Going by SKILL.md and its folder, Triage Issues needs the command-line tools its instructions call (gh and bash).
SKILL.md contains no URLs. Its commands use 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.
Triage Issues 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 2.9k 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 Triage Issues: Setup Matt Pocock Skills (bestofjs/bestofjs, 3.1k stars), Windows App SDK Issue Triage Report (microsoft/WindowsAppSDK, 4.7k stars), Exposed Bug Fix Workflow (JetBrains/Exposed, 9.3k stars) and Pre-Release PR Triage (jamiepine/voicebox, 57k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
agent-substrate (a GitHub organization) maintains it in agent-substrate/substrate, which has 4,459 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 7, 2026.
Source: agent-substrate/substrate on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.