pickup

A ticket-flow step that checks whether a work item is ready, claims it, and gives it an isolated Git worktree, a separate working directory linked to a branch. It then moves the item from Backlog to In Progress and finds or creates a plan document.

In plain words
What is it for?
Use it to pick up a ticket, create or adopt its worktree, lock its branch, and prepare a development plan.
Why use it?
It keeps ticket ownership, branch assignment, and development workspace setup together. This reduces the chance of starting work on an unready ticket or editing the wrong branch.

Skill for Claude CodeCodex

Part of the ticket-flow plugin — 13 skills, 2 hooks shipped together

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.

agentmods
npx agentmods add skills/keefar/ticket-flow/pickup
Any agent
npx skills add keefar/ticket-flow --skill pickup
Clone the repo
git clone --depth 1 https://github.com/keefar/ticket-flow

Made for: Claude Code, Codex.

Or install ticket-flow, the plugin that ships this one along with the rest of its 13 skills, 2 hooks.

Per session 109 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,693 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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 $0.00109 $0.03693
Opus 5 $0.00055 $0.01847
Sonnet 5 $0.00022 $0.00739
Haiku 4.5 $0.00011 $0.00369

Measured 2d ago against content hash 39b8d009f9dc, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

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 2d ago.

The scan reads SKILL.md. This mod also ships 2 executable files (detect-worktree.sh, tests/test_detect-worktree.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.

skills/pickup/SKILL.md · 196 lines

How it starts

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

/ticket-flow:pickup — Phase 1 of Ticket-Flow

Args: <kanban-id> (required) · <branch-suffix> (optional, default = slug from title) · --here (optional — adopt the current worktree + branch instead of creating one; ignores <branch-suffix>)

Examples:

  • /ticket-flow:pickup 92 → branch change/92-sidebar-drawer
  • /ticket-flow:pickup 94 multipoint → branch feature/94-multipoint
  • /ticket-flow:pickup 94 --here → inside an orca/worktrunk card on branch chris/multipoint: no new worktree, that branch becomes the ticket's branch

What it does

  1. Validates that the item is in Backlog and DoR is met
  2. Creates a worktree (EnterWorktree — no manual fallback, see step 4) — or, with --here, adopts the worktree you are already in (external tool owns it; /finish will leave it in place)
  3. Sets a branch: lock in the bd notes
  4. Moves item Backlog → In Progress
  5. Looks for or scaffolds a plan doc under docs/superpowers/plans/

Steps

0. Where am I? — auto-adopt an external worktree

Before anything else, find out whether this session already sits in a worktree that some other tool prepared (orca card, Conductor workspace, wt switch --create, bead-workflow-skills /work-on, a manual git worktree add). Creating a nested tf worktree there would be wrong in every case, so pickup adopts it — --here is implied, no flag needed:

eval "$("${CLAUDE_PLUGIN_ROOT}/skills/pickup/detect-worktree.sh")"   # IN_GIT LINKED WORKTREE MAIN_REPO BRANCH DEFAULT TF_OWNED MANAGER
if [[ "$LINKED" == "1" ]]; then
  if [[ "$TF_OWNED" == "1" ]]; then
    echo "STOP: you are inside a tf worktree ($WORKTREE) — it is bound to another ticket; run pickup from the main checkout ($MAIN_REPO)"; exit 1
  fi
  # external worktree: adopt it unless its branch is already locked to another ticket
  OTHER="$(bd list --json 2>/dev/null | jq -r --arg b "$BRANCH" '.[] | select((.notes // "") | test("(^|\\n)branch: " + $b + "$")) | .id' | head -1)"
  [[ -n "$OTHER" && "$OTHER" != "$BD_ID" ]] && { echo "STOP: branch $BRANCH is already locked to $OTHER"; exit 1; }
  HERE=1; echo "↳ adopting ${MANAGER:-external} worktree $WORKTREE (branch $BRANCH) — no new worktree will be created"
fi

Read the full file on GitHub · 196 lines

Files

What ships with it

2 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. 2d ago First seen · 196 lines · 0 tokens per session scan A 39b8d009f9dc

Subscribe to this mod's changes

pickup is a skill published in the GitHub repository keefar/ticket-flow (4 stars, last pushed 7d ago), licensed MIT. It adds 109 tokens to every session and 3,693 once invoked, about $0.0005 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

project-discuss

⚠️ 本 skill 与 brainstorming / writing-plans / executing-plans 等流程 skill 正交、可并行触发,不互斥。 已调用流程 skill 不等于可以跳过本 skill;只要涉及项目讨论/决策/查询,都需要额外激活本 skill。 项目讨论管理协议。管理讨论上下文、决策记录、查询行为。 触发:用户讨论项目方向/设计/技术选型/需求分析/功能规划时; 用户问"我们讨论到哪了"/"XX 确定了吗"; 用户想修改已确定的内容;用户提供外部文档; 用户询问项目现状/架构/实现细节/历史决策(含 debug 揭示架构问题时); 当 bug…

hxt9805/cadence · 216 tokens

cadence-bootstrap

Use when starting any conversation in a cadence-managed project (project root contains cadence/INDEX.md or cadence/ACTIVE.md). Establishes cadence workflow conventions — 记 / 整 / 查 三阶段记录协议, ACTIVE.md / INDEX.md state contract, domain-neutral adaptive recording fidelity, session start behaviors, and subagent dispatch…

hxt9805/cadence · 117 tokens

cadence-resume

继续之前某次 session 的讨论上下文(v0.4:Step 6 archive cleanup B1 修复 + contenthashes 判据 + 派 retriever 替代 auditor)。用户说 '继续上次'/'resume' 或跑 /cadence-resume 时触发。.

hxt9805/cadence · 65 tokens

cadence-handoff

整理当前 session 讨论内容到 cadence 档案(v0.4:触发整 阶段(ε 整合)兜底 + 写 sha1 书签式 snapshot,15-30 行)。用户说 'handoff'/'整理 session'/'换新 session' 或跑 /cadence-handoff 时触发。.

hxt9805/cadence · 77 tokens

cadence-init

初始化 cadence 工作流目录结构。支持两种模式:新项目(极简模板 + TBD 占位) 和已有项目(通用发现 + 领域适配扫描 + 来源不一致清单)。适用于软件、研究、 写作、学习、运营及其他项目。当用户说"初始化 cadence"、 "开始用 cadence"、或跑 /cadence-init slash command 时触发。.

hxt9805/cadence · 89 tokens

polish

Polish a completed code change with a bounded independent review protocol. Use after implementation and before final approval or PR to review intent, acceptance criteria, non-goals, diff, relevant files, verification, and previously rejected findings.

takubii/smithy · 48 tokens