Pre-Release PR Triage
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.
Turns the open issues and pull requests of the linkedin-mcp-server repository into a read-only priority list for maintainers.
$ npx skills add stickerdaniel/linkedin-mcp-server --skill 1-triage-issues -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install stickerdaniel/linkedin-mcp-server 1-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/stickerdaniel/linkedin-mcp-server.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/1-triage-issues .claude/skills/1-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 "1-triage-issues" agent skill from https://github.com/stickerdaniel/linkedin-mcp-server/tree/main/.agents/skills/1-triage-issues into .claude/skills/1-triage-issues/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "1-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/stickerdaniel/linkedin-mcp-server/tree/main/.agents/skills/1-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 stickerdaniel/linkedin-mcp-server --skill 1-triage-issues -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install stickerdaniel/linkedin-mcp-server 1-triage-issues --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/stickerdaniel/linkedin-mcp-server.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/1-triage-issues .agents/skills/1-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 "1-triage-issues" agent skill from https://github.com/stickerdaniel/linkedin-mcp-server/tree/main/.agents/skills/1-triage-issues into .agents/skills/1-triage-issues/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "1-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 stickerdaniel/linkedin-mcp-server --skill 1-triage-issues -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install stickerdaniel/linkedin-mcp-server 1-triage-issues --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/stickerdaniel/linkedin-mcp-server.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/1-triage-issues .cursor/skills/1-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 "1-triage-issues" agent skill from https://github.com/stickerdaniel/linkedin-mcp-server/tree/main/.agents/skills/1-triage-issues into .cursor/skills/1-triage-issues/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "1-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/stickerdaniel/linkedin-mcp-server.git --path .agents/skills/1-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 stickerdaniel/linkedin-mcp-server --skill 1-triage-issues -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install stickerdaniel/linkedin-mcp-server 1-triage-issues --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/stickerdaniel/linkedin-mcp-server.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/1-triage-issues .gemini/skills/1-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 "1-triage-issues" agent skill from https://github.com/stickerdaniel/linkedin-mcp-server/tree/main/.agents/skills/1-triage-issues into .gemini/skills/1-triage-issues/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "1-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 stickerdaniel/linkedin-mcp-server 1-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 stickerdaniel/linkedin-mcp-server --skill 1-triage-issues -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/stickerdaniel/linkedin-mcp-server.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/1-triage-issues .github/skills/1-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 "1-triage-issues" agent skill from https://github.com/stickerdaniel/linkedin-mcp-server/tree/main/.agents/skills/1-triage-issues into .github/skills/1-triage-issues/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "1-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 stickerdaniel/linkedin-mcp-server --skill 1-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 stickerdaniel/linkedin-mcp-server 1-triage-issues --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/stickerdaniel/linkedin-mcp-server.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/1-triage-issues .opencode/skills/1-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 "1-triage-issues" agent skill from https://github.com/stickerdaniel/linkedin-mcp-server/tree/main/.agents/skills/1-triage-issues into .opencode/skills/1-triage-issues/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "1-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.
1-triage-issuesTurns the open issues and pull requests of the linkedin-mcp-server repository into a read-only priority list for maintainers.
The skill reads the live state of the repository and ranks work without changing anything: no checkout, labels, comments, closures or reproduction. Reproduction belongs to a separate repro skill and PR verification to another. An optional argument filters by label name or free text. The agent gathers issues and PRs with the GitHub CLI, builds a map from each issue to the PRs that reference it by scanning bodies for closing keywords and plain issue numbers, and reads every issue body and its comments, including linked canonical issues.
Before any ranking, each open issue gets a packet classification. Missing material evidence leads to a needs-more-info recommendation naming the missing fields and keeps the issue off the reproduction shortlist. New evidence is read, and the label is only recommended for removal if the gap is closed. Duplicates are noted against the canonical issue, with a duplicate comment and a separate close each needing your explicit yes. Evaluable issues then get four scoring signals with evidence cited inline. The excerpt is cut off at that step.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 01c2d5e. 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:
ghFrom 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.
Issue and PR Triage loads about 1.9k tokens when it runs. Until then it costs about 28 tokens; SKILL.md has 724 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 stickerdaniel/linkedin-mcp-server at commit 01c2d5e, republished under its Apache-2.0 licence (© stickerdaniel). 724 words, ~1,883 tokens.
.claude/skills/1-triage-issues/SKILL.md (or your agent's skills folder).Turn the live state of stickerdaniel/linkedin-mcp-server into a maintainer priority list. Read-only. No checkout, no labels, no comments, no closure, no reproduction.
Reproduction belongs in /2-repro-issue. PR verification belongs in /3-verify-pr-fix.
$ARGUMENTS is optional. If set, treat as a label name (bug, enhancement) or freetext filter. Otherwise scan everything open.
REPO=stickerdaniel/linkedin-mcp-server
# Issues (gh calls the reactions field `reactionGroups`, not `reactions`)
gh issue list --repo $REPO --state open --limit 200 \
--json number,title,labels,createdAt,updatedAt,author,comments,reactionGroups,body
# PRs
gh pr list --repo $REPO --state open --limit 100 \
--json number,title,labels,createdAt,updatedAt,author,mergeable,mergeStateStatus,statusCheckRollup,additions,deletions,changedFiles,reviewDecision,isDraft,headRepositoryOwner
# Cross-link issues ↔ PRs via body references
gh search prs --repo $REPO --state open --json number,body,title --limit 100Build a map issue_number → [referencing_pr_numbers] by scanning PR bodies for Closes #, Fixes #, Resolves #, plain #N.
If $ARGUMENTS is given, filter both lists before scoring.
Read each issue body and its comments, including linked canonical issues.
Before severity, age, reach, or contributor ranking, classify every open issue.
| Packet state | Maintainer action |
|---|---|
| Material evidence missing | Recommend needs more info with the specific missing fields. Exclude it from the reproduction shortlist. Existing labels alone do not prove completeness. |
| Evidence supplied after a request | Read the new evidence. Recommend removing needs more info only when it resolves the material gap. A new comment does not automatically clear the label. |
| Same underlying report as a canonical issue | Note unique reviewed evidence for the canonical issue. Recommend a Duplicate of #N comment and a separate close, each with an explicit yes. Do not post or close here. |
| Evaluable bug or feature | Continue to scoring. Completeness is not a promise of implementation. |
| Source evidence supports a narrower claim than the reporter's explanation | State that narrower finding. Ask for targeted missing evidence only if the next decision needs it. |
This step is complete when every scanned issue is either evaluable, missing-evidence with a field list, or a named canonical duplicate. Incomplete packets never enter the reproduction shortlist.
For every evaluable open issue, compute four signals. Cite the evidence inline.
5 = data loss / broken-for-all-users / security; 4 = core tool unavailable (e.g. get_person_profile returning empty); 3 = degraded output for a subset (locale, edge-case profile); 2 = annoyance / cosmetic; 1 = question / docs. Read the body + labels (bug, critical, security, regression).+1 reactions, references from other issues.createdAt → days old; updatedAt → days since last activity. Stale-but-high-severity ranks higher than fresh-but-cosmetic.For every open PR, on top of its linked-issue score:
mergeable: MERGEABLE + mergeStateStatus: CLEAN + statusCheckRollup all green → ✓. Otherwise note what blocks (CI red, conflicts, requested changes, draft).additions + deletions and changedFiles. Flag scope creep. Cross-check gh pr diff <N> --name-only.gh pr diff <N> | grep -E "['\"](Connect|Follow|Message|Pending|1st|2nd|3rd)['\"]" (matches both Python-style 'Connect' and JS/Go-style "Connect"). Any string match on locale-dependent button text is a red flag per the AGENTS.md LinkedIn Page Rules. Also flag class-name selectors (.entity-result__item). Minimal generic selectors only.PERSON_SECTIONS / COMPANY_SECTIONS in linkedin/fields.py, check that each entry still maps to exactly one URL.docs/linkedin-architecture.md? Most owners use tests/linkedin/test_<owner>.py; fields, identifiers, and link_metadata use tests/test_fields.py, tests/test_identifiers.py, and tests/test_link_metadata.py. Facade-only changes belong in tests/linkedin/test_facade_*.py. Mandatory for new tool surfaces, strongly preferred for bug fixes.gh search prs --repo $REPO --author <login> --state merged --json number,createdAt,mergedAt,additions,deletions --limit 20
gh search prs --repo $REPO --author <login> --state closed --json number,closedAt,state --limit 10For very large or architecturally-loaded PRs (changes spanning canonical page workflow owners or the generated graph in docs/linkedin-architecture.md, client/, or session/auth code), spawn an Explore subagent to deep-dive how the PR integrates with the codebase and report integration risk. Treat linkedin/extractor.py as the thin facade, not the default workflow owner. Use this sparingly: only for PRs over ~200 LOC or PRs touching core paths.
Two ranked tables, a missing-evidence list, and a short verdict.
## Issues: top 10 evaluable
| # | Issue | Severity | Reach | Age | PR? | Why this rank |
|---|-------|----------|-------|-----|-----|---------------|
| 1 | #366 | 4 | 8 | 12d | #366 ready | Core tool broken, contributor inactive |
## Needs more info (not a reproduction shortlist)
| Issue | Missing fields |
|-------|----------------|
| #986 | UI language, region, product, redacted compose capture |
## PRs: production-readiness ranking
| # | PR | Linked issue | Mergeable | Scope | Locale-safe | Tests | Contributor | Verdict |
|---|----|--------------|-----------|-------|-------------|-------|-------------|---------|
| 1 | #386 | #385 | ✓ | +120/-40, 3 files | ✓ | ✓ | 5 prior merged | Ready to merge |
## Recommended order this week
1. Merge #386. Clean fix, ready.
2. Request the missing fields on #986. Do not send it to /2-repro-issue yet.
3. Investigate #389 from packet and source (→ `/2-repro-issue 389`).End with one paragraph naming the next concrete action, and which downstream skill applies. Only evaluable items go to /2-repro-issue. /3-verify-pr-fix is for candidate PRs.
© stickerdaniel, 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/1-triage-issues of stickerdaniel/linkedin-mcp-server.
Open the folder on GitHubat commit 01c2d5e
Issue and PR Triage 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 |
|---|---|---|---|---|---|---|
| Issue and PR Triage this skillstickerdaniel/linkedin-mcp-server | 3.8k | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Pre-Release PR Triagejamiepine/voicebox | 57k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Ouroboros Maintainer TriageQ00/ouroboros | 6.2k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Qwen Code Issue and PR TriageQwenLM/qwen-code | 28k | — | ~1.8k | Automated safety check: Pass | Apache-2.0 | |
| GitHub Project Triagesteipete/agent-scripts | 7.3k | — | ~4k | Automated safety check: Pass | MIT | |
| Open Source Maintainer Assistantslopus/happy | 24k | — | ~1.9k | Automated safety check: Pass | MIT |
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.
Q00/ouroboros
Triages and works through GitHub issues and pull requests in the Q00/ouroboros repo as a maintainer, within a stated review boundary and clear limits on what it may change.
QwenLM/qwen-code
Gatekeeps GitHub issues and pull requests for Qwen Code maintainers through staged static reviews that post a comment after each stage, under strict safety rules.
steipete/agent-scripts
Produces maintainer-facing triage cards for a project's GitHub issues and pull requests, each with its URL, risk, test state, blockers and a next action.
slopus/happy
Helps maintain the slopus/happy open source project by triaging issues, drafting closing comments, finding duplicates and checking fixes, with approval before anything is posted.
prisma/orm
Triages open pull requests from external contributors to prisma/orm, producing a per-PR verdict with evidence, without closing, commenting on or approving anything.
stickerdaniel/linkedin-mcp-server
Investigates a reported LinkedIn-MCP issue by matching the reporter's tool call to the exact source file and tests, without applying a fix.
stickerdaniel/linkedin-mcp-server
Reviews a candidate pull request's diff and tests against its linked issue, with an optional live comparison against a previously captured baseline, without editing, merging or pushing.
stickerdaniel/linkedin-mcp-server
Searches git repositories cloned locally under a sandbox folder to answer questions with cited links and complete code snippets.
stickerdaniel/linkedin-mcp-server
Collects every review comment on a pull request, checks each against the real code, fixes the valid ones, pushes, and replies on and resolves each thread.
stickerdaniel/linkedin-mcp-server
Turns a bug report or feature idea into a properly sourced GitHub issue or comment, only after searching for a matching issue first.
stickerdaniel/linkedin-mcp-server
Rules for using the bundled LinkedIn MCP server for profile, company, job, post, feed and inbox work, with explicit authorization required for messages and connection requests.
Categories
Turns the open issues and pull requests of the linkedin-mcp-server repository into a read-only priority list for maintainers. The skill reads the live state of the repository and ranks work without changing anything: no checkout, labels, comments, closures or reproduction. Reproduction belongs to a separate repro skill and PR verification to another.
Issue and PR Triage fits situations like: scanning open issues to decide what to tackle first; working out which pull requests are production-ready; finding issues that lack the evidence needed to reproduce them; spotting duplicate reports of the same underlying bug.
Run `npx skills add stickerdaniel/linkedin-mcp-server --skill 1-triage-issues -a claude-code`. Or copy the skill folder (.agents/skills/1-triage-issues in stickerdaniel/linkedin-mcp-server) into .claude/skills/1-triage-issues in your project. Claude Code loads it when a task matches its description.
Run `npx skills add stickerdaniel/linkedin-mcp-server --skill 1-triage-issues -a codex`. Or copy the skill folder (.agents/skills/1-triage-issues in stickerdaniel/linkedin-mcp-server) into .agents/skills/1-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 stickerdaniel/linkedin-mcp-server --skill 1-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/1-triage-issues, .gemini/skills/1-triage-issues, .github/skills/1-triage-issues and .opencode/skills/1-triage-issues in your project.
Going by SKILL.md and its folder, Issue and PR Triage needs the command-line tools its instructions call (gh). Our summary lists: The GitHub CLI (`gh`) with access to the repository.
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.
Issue and PR Triage 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 1.9k tokens (SKILL.md is roughly 7.5k 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 Issue and PR Triage: Pre-Release PR Triage (jamiepine/voicebox, 57k stars), Ouroboros Maintainer Triage (Q00/ouroboros, 6.2k stars), Qwen Code Issue and PR Triage (QwenLM/qwen-code, 28k stars) and GitHub Project Triage (steipete/agent-scripts, 7.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
stickerdaniel (a GitHub user) maintains it in stickerdaniel/linkedin-mcp-server, which has 3,787 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 9, 2026.
Source: stickerdaniel/linkedin-mcp-server on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.