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 $0.00124 $0.01265
Sonnet 5 $0.00050 $0.00506
Haiku 4.5 $0.00025 $0.00253

Measured 5d ago against content hash 605d5361566c, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, 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 5d 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.orgslack.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. 5d ago Changed · +15 lines 605d5361566c
  2. 10d 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 today), licensed MIT. It adds 248 tokens to every session and 2,531 once invoked, about $0.0012 per session on Opus 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

repo-guidance

Navigate the Composio SDK monorepo, branch and PR workflow, repo layout, generated-file boundaries, changesets, and shared maintenance rules. Use when work spans multiple packages, when deciding where code belongs, when preparing a PR, or when the user asks about repository conventions rather than a specific SDK…

ComposioHQ/composio · 67 tokens

python-release

Handle Python SDK release, build, bump, packaging metadata, PyPI client pin, uv.lock, nox/build workflow, and publish verification changes. Use for Python release process work or dependency pin bumps; do not use for ordinary Python feature implementation.

ComposioHQ/composio · 53 tokens

git-workflow

A guide for handling Git repository work safely, including status checks, branches, commits, pushes, pull requests, and rebasing. Git is a version-control system that records code changes and coordinates work between developers.

laolaoshiren/claude-code-skills-zh · 73 tokens

changelog-gen

A changelog generator that turns Git history into a version-by-version record of project changes. A changelog is a readable summary of new features, fixes, breaking changes, documentation, and other updates.

laolaoshiren/claude-code-skills-zh · 19 tokens

i-have-adhd

Shape output for a reader with ADHD: lead with the next action, number multi-step work, restate state across turns, suppress tangents, give specific time estimates, make wins visible. Invoke with /i-have-adhd; stays on until "stop adhd mode".

ayghri/i-have-adhd · 62 tokens

resolve-pr-comments

Evaluate, fix, answer, and reply to GitHub pull request review comments and conversation comments. Handles both change requests (fix or skip) and reviewer questions (explain using reasoning recalled from past Claude Code transcripts). Use when the user asks to "resolve PR comments", "fix review comments", "address PR…

tobihagemann/turbo · 95 tokens