pr-pickup

pr-pickup is a skill for Claude Code from HsuanYuLee/polaris. It costs 248 tokens per session (2,531 once invoked), scanned A, original, MIT.

A Slack handoff workflow for pull requests. A pull request is a proposed code change for review; this workflow takes its link from Slack, sends the work to be fixed, and reports the result back in the Slack thread.

In plain words
What is it for?
Use it when someone shares a pull request in Slack and asks for it to be handled, picked up, or fixed, including requests identified from a Slack thread.
Why use it?
It removes the manual copying of pull-request links and conversation context between Slack and the work session. It keeps the workflow focused on coordination rather than reading review comments or editing code itself.

Skill for Claude Code

Written for Claude Code: installed under .claude/.

Good fit Use it when someone shares a pull request in Slack and asks for it to be handled, picked up, or fixed, including requests identified from a Slack thread.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/hsuanyulee/polaris/pr-pickup
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add HsuanYuLee/polaris --skill pr-pickup
Clone the repo
git clone --depth 1 https://github.com/HsuanYuLee/polaris

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for pr-pickup

README.md
[![agentmods](https://agentmods.dev/badge/skills/hsuanyulee/polaris/pr-pickup/github.svg)](https://agentmods.dev/skills/hsuanyulee/polaris/pr-pickup)
Your own site
<a href="https://agentmods.dev/skills/hsuanyulee/polaris/pr-pickup"><img src="https://agentmods.dev/badge/skills/hsuanyulee/polaris/pr-pickup/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for pr-pickup

Your own site · 80×15
<a href="https://agentmods.dev/skills/hsuanyulee/polaris/pr-pickup"><img src="https://agentmods.dev/badge/skills/hsuanyulee/polaris/pr-pickup.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 248 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,531 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00248 $0.02531
Opus 5.5 $0.00099 $0.01012
Sonnet 5.5 $0.00050 $0.00506
Haiku 4.5 $0.00025 $0.00253

Measured 1mo ago against content hash 605d5361566c, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

pr-pickup scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

The scan reads SKILL.md. This mod also ships 2 executable files (scripts/resolve-pr-pickup-input.sh, scripts/selftests/resolve-pr-pickup-input-selftest.sh), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/pr-pickup/SKILL.md · 229 lines

How it starts

The opening of the file, as written. The whole thing — 229 lines — stays where its author put it; the contents beside it link to each section on GitHub.

pr-pickup

從 Slack 訊息擷取 PR review 請求,把 PR 交出去修,完工後回 Slack thread 告知結果。

職責邊界:pr-pickup 只做協作傳遞(intake → 交付出去 → broadcast)。不讀 review comments、不改 code、不回覆 GitHub review。修 PR 這件事本身不歸它——那多半不用立案(改的是既有 assertion 底下的做法),直接修;若連成功的定義都要改,那是 refinement 的事。 它的 shared authority 應收斂在 intake artifact,而不是 prose 解析。Slack/PR 輸入的 canonical 解析結果由 $SKILL_DIR/scripts/resolve-pr-pickup-input.sh 定義;skill 只消費該 artifact,不能再手工 各寫一套 PR URL / thread context 判斷。

前置:這條線在哪個 org

resolve-pr-pickup-input.sh 讀 Slack thread 的時候要 --org,因為它要在那一串裡找出屬於 那個 org 的 PR URL。那個值問 request-pr-review 帶的那支命令,它列出這台機器上被宣告 的每一個 org:

bash "$SKILL_DIR/../request-pr-review/scripts/resolve-pr-context.sh" orgs

只有一個就用它,不只一個就從那串訊息裡的 PR URL 判。這裡不寫任何設定鍵:org 是誰宣告 的、宣告在哪,由那支命令回答,這一支不認得任何一家公司。

以前這裡寫「讀 workspace config,本步驟需要的值:github.org、slack.channels.ai_notifications」 ——兩個鍵在任何一份 workspace-config.yaml 裡都不存在,$GITHUB_ORG 整支 skill 沒有人賦值, 而 slack.channels.ai_notifications 從頭到尾沒有任何一行讀它。

Bundled Authority

Script Role
$SKILL_DIR/scripts/resolve-pr-pickup-input.sh canonical intake resolver:統一解析 direct PR URL、Slack URL、Slack thread context、以及 thread-derived PR URLs

流程總覽

Step 0: 前置 config
Step 1: 解析 Slack 輸入 → PR URL + thread context
Step 2: 把 PR 交出去修 → 同步等待完成
Step 3: 根據結果組 Slack 回覆訊息
Step 4: 回 Slack thread

Step 1: 解析 Slack 輸入

先跑 shared intake resolver,而不是手工解析:

"$SKILL_DIR/scripts/resolve-pr-pickup-input.sh" \
  --input "$USER_INPUT" \
  --allow-empty-prs \
  --format json

若 resolver 回傳 needs_slack_thread_read=true,再依 references/slack-pr-input.md 讀取 Slack thread,然後用同一支 script 完成第二階段解析:

"$SKILL_DIR/scripts/resolve-pr-pickup-input.sh" \
  --input "$USER_INPUT" \
  --org "$ORG" \
  --slack-thread-file "$SLACK_THREAD_EXPORT" \
  --format json

後續 Step 2-4 一律只吃這個 intake artifact,不再自行從原始訊息重解析 PR URL / thread context。

1a. 輸入型態

輸入 處理
Slack URL(*.slack.com/archives/*) 讀取 Slack thread,提取 PR URL
直接的 PR URL + Slack context 提示 使用 PR URL,從提示中取得 Slack thread 資訊
純文字無 PR URL → Step 1c 錯誤處理

Read the full file on GitHub · 229 lines

Files

What ships with it

3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago Changed · +15 lines 605d5361566c
  2. 1mo ago First seen · 214 lines · 248 tokens per session scan A 7d63919a875f

Subscribe to this mod's changes

pr-pickup is a skill published in the GitHub repository HsuanYuLee/polaris (5 stars, last pushed 2d ago), licensed MIT. It adds 248 tokens to every session and 2,531 once invoked, about $0.0010 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

github-readme

Generate polished GitHub README.md files for Mick's repositories in his established voice and structure. Always trigger immediately when the user's message starts with "readme" or "gr". Also trigger on "write a readme", "generate readme", "readme for this repo", "document this repo", or any request to create or…

mickpletcher/AI-Skills · 98 tokens

github-repo-architect

Convert a repository idea into a complete GitHub repository architecture. Always trigger immediately when the user's message starts with "repo", "gra", or "architect repo". Also trigger on "build a repo structure", "design a GitHub repo", "scaffold this repository", "create repository architecture", "turn this idea…

mickpletcher/AI-Skills · 106 tokens

obsidian-workout-export

Export workout data to an Obsidian-formatted Markdown file. Always trigger immediately when the user types "owd". Also trigger on "export workout", "obsidian workout", "save workout to obsidian", or related requests to export workout data into Obsidian. Read the current conversation first before searching prior…

mickpletcher/AI-Skills · 87 tokens

commit-optimization

Use when configuring settings.json to reduce fuse-commit-pro's context token usage.

fusengine/agents · 20 tokens

Changelog Curator

Maintains and formats a CHANGELOG.md following Keep a Changelog conventions from git history or PR list.

Notysoty/openagentskills · 26 tokens

PR Description Writer

Writes clear, thorough pull request descriptions from a diff or list of changes.

Notysoty/openagentskills · 19 tokens