labels
Label a GitHub pull request or issue with the repo's existing labels.
Skill by s0up4200
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/s0up4200-labels
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/labels
What's inside
- Skill name
labels- Description
- Label a GitHub pull request or issue with the repo's existing labels. Use when the user types "/labels", or says "label this PR", "add labels", "tag the PR", "what labels should this get", "label the issue", or asks for labels on a PR/issue number, URL, or the current branch. Also use right after opening a PR when it has no labels yet. Creates a new label only after the user approves it.
- License
- MIT
- Instructions
- 78 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Labels
Pick the labels a pull request or issue should carry, from the labels the repository already has, and apply them. Creating a new label is a repo-wide decision with a long tail — every future contributor sees it — so that step always stops and asks.
Requires the `gh` CLI, authenticated, with write access. Without write access the edit returns 403; report the labels you would have applied so the user can hand them to a maintainer, rather than retrying.
## 1. Resolve the target
The user may give a number (`/labels 412`), a URL, or nothing. With nothing, take the current branch's PR — `gh pr view --json number -q .number`. If that fails there is no PR for this branch; ask which number they mean rather than labelling a nearby PR because it looked close.
Pull requests and issues share one numbering space and one API:
```bash
gh api repos/{owner}/{repo}/issues/<N> --jq '{title,body,labels:[.labels[].name],is_pr:(.pull_request!=null)}'
```
`is_pr` decides which command applies labels in step 5. `gh api` fills `{owner}` and `{repo}` from the current repo — pass `-R owner/repo` for a different one.
## 2. Read what the repo already uses
```bash
gh label list --limit 200 --json name,description,color
```
The `description` field is the repo's own definition of each label — trust it over what the name suggests. `area/parsing` in one repo may be `component: parser` in another; this list is the vocabulary you have. When the descriptions are thin, `gh pr list --state merged --limit 30 --json number,title,labels` shows which labels are actually in use, which are dead, and whether the repo pairs a type label with an area label or uses one per PR.
## 3. Read the change itself
For a PR, the title and body say the intent; the diff says the truth. Both matter — a PR titled "small fix" that touches the auth middleware is a security-relevant change.
```bash
gh pr diff <N> --name-only
```
Paths carry most of the signal: `docs/` means documentation, `.github/workflows/` means CI, `web/` vs `internal/` splits frontend from backend. Read the actual diff only when the paths leave the type ambiguous.
For an issue, the body is all there is. A stack trace or "this used to work" means a bug; "it would be nice if" means a feature request.
## 4. Choose labels
Aim for the smallest set that helps someone filtering the issue tracker. Most PRs land on one type label plus one area label. More than about four on one item is usually a sign of guessing.
Pick from what `gh label list` returned, spelled exactly as it appears there — a name the repo does not have is rejected, not created.
Leave alone labels a person or a workflow owns:
- Process and triage labels (`needs-triage`, `blocked`, `wontfix`, `duplicate`, `good first issue`) reflect a maintainer decision, not a property of the diff.
- Automation labels (`dependencies`, `stale`, release-drafter and semver labels) are applied by bots. Adding them by hand fights the bot or fires the wrong release note.
- `breaking change` and security labels change what happens downstream. Apply one only when the diff plainly shows it, or, for the breaking label, when the PR body has a filled-in Breaking change section (qui CI fails such a PR without the label). Say why in your report.
Never remove a label that is already there. Someone put it there deliberately, and a stale label costs far less than undoing a maintainer's triage. If one looks clearly wrong, mention it and let the user remove it.
## 5. Apply
Both commands add to the existing labels rather than replacing them:
```bash
gh pr edit <N> --add-label "bug,area/parser" # is_pr true
gh issue edit <N> --add-label "bug,area/parser" # is_pr false
```
Then report what was added and, in a few words each, why. Skip labels already present and say so rather than re-adding them.
## 6. New labels — ask first
If nothing in the list fits, ask before creating. A new label is justified when it names a category that will recur and no existing label covers it. It is not justified for a one-off PR — that is what the title is for.
Use AskUserQuestion with the proposed name, description, and what it would cover, and offer the closest existing label as the alternative. On approval:
```bash
gh label create "area/scheduler" --description "Job scheduling and cron" --color "0e8a16"
```
Follow the repo's existing naming shape — if labels read `area/x`, do not add `component: y`. A vocabulary with two conventions is worse than one with a slightly imprecise word.
A repo with no labels at all is the one case worth proposing several at once: offer a small starter set (type plus area) for approval instead of creating them one at a time.From s0up4200/skills, MIT.
More from s0up4200/skills
- 0.570score
branch-cleanup
s0up4200
Find dead local git branches and worktrees in the current repo, write a plan with a SHA backup, and hand the user a cleanup script to run.
SkillAFreshness: AClaude Code +9 - 0.570score
focus
s0up4200
Give an overview of large chained work on GitHub (tracking issues with sub-issues and blocked-by dependencies) and recommend where the user should put their…
SkillAFreshness: AClaude Code +9 - 0.567score
findability
s0up4200
Retro over the last N coding-agent sessions in a repo (Claude Code and Codex).
SkillAFreshness: AClaude Code +9 - 0.565score
github-resolution-audit
s0up4200
Use when auditing GitHub Issues or Discussions for open feature requests that may have shipped, bugs that may already be fixed, stale reports, or duplicates…
SkillAFreshness: AClaude Code +9 - 0.565score
file-issue
s0up4200
Draft and file a GitHub issue in an upstream repository soup does not maintain.
SkillAFreshness: AClaude Code +9 - 0.561score
codeowners
s0up4200
Create or update the CODEOWNERS file of a GitHub repository from the commit history and the maintainer's decisions.
SkillAFreshness: AClaude Code +9 - 0.561score
challenge-request
s0up4200
Challenge a feature request from Discord or GitHub, and give a verdict of yes, not now, already possible, no, or need more info.
SkillAFreshness: AClaude Code +9 - 0.544score
diagnosing-bugs
s0up4200
Diagnosis loop for hard bugs and performance regressions.
SkillAFreshness: AClaude Code +9 - 0.544score
code-review
s0up4200
Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes: Standards (does the code follow this repo's documented coding…
SkillAFreshness: AClaude Code +9 - 0.539score
domain-modeling
s0up4200
Build and sharpen a project's domain model.
SkillAFreshness: AClaude Code +9 - 0.539score
codebase-design
s0up4200
Shared vocabulary for designing deep modules.
SkillAFreshness: AClaude Code +9 - 0.533score
ask-matt
s0up4200
Ask which skill or flow fits your situation.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 13, 2026 (15 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/s0up4200/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from s0up4200
- 0.570score
branch-cleanup
s0up4200
Find dead local git branches and worktrees in the current repo, write a plan with a SHA backup, and hand the user a cleanup script to run.
SkillAFreshness: AClaude Code +9 - 0.570score
focus
s0up4200
Give an overview of large chained work on GitHub (tracking issues with sub-issues and blocked-by dependencies) and recommend where the user should put their…
SkillAFreshness: AClaude Code +9 - 0.567score
findability
s0up4200
Retro over the last N coding-agent sessions in a repo (Claude Code and Codex).
SkillAFreshness: AClaude Code +9 - 0.565score
github-resolution-audit
s0up4200
Use when auditing GitHub Issues or Discussions for open feature requests that may have shipped, bugs that may already be fixed, stale reports, or duplicates…
SkillAFreshness: AClaude Code +9 - 0.565score
file-issue
s0up4200
Draft and file a GitHub issue in an upstream repository soup does not maintain.
SkillAFreshness: AClaude Code +9 - 0.561score
challenge-request
s0up4200
Challenge a feature request from Discord or GitHub, and give a verdict of yes, not now, already possible, no, or need more info.
SkillAFreshness: AClaude Code +9
Cite this page
labels skill. Agent Mart. https://agentmart.dev/skills/s0up4200-labels (last updated 2026-10-24)