← ClaudeAtlas

pickup-tasklisted

Claim the next ready task from the configured tracker (Linear / GitHub Issues / Notion), create a git worktree, and inject relevant learnings.
firatcand/forge · ★ 7 · AI & Automation · score 74
Install: claude install-skill firatcand/forge
# /pickup-task > **Status queries always hit the tracker. `plans/phases.yaml` is a stale cache.** See your project `CLAUDE.md` §Source of truth. ## Args - `[phase]` — default: current active phase - `[type-filter]` — optional, filter by owner_type ## Steps 1. **Query the tracker — never `plans/phases.yaml` — for status or dependencies.** Use the Tracker interface (`mcp__linear-server__list_issues` for Linear, `gh issue list` for GitHub, `ntn` for Notion) to find active issues in the current cycle that are: - Status: Todo (or Backlog with no blockers) - All `blocked_by` issues are Done — verify via `relations.blockedBy` (issue prose like `Depends on: forge#N` is unreliable) `phases.yaml` is a local execution snapshot derived from the tracker — every status, dependency, or blocker field in it can be stale. The tracker is authoritative for all execution metadata; see your project `CLAUDE.md` §Source of truth. 2. If multiple match, list and ask user to pick. If one, auto-pick. 3. Set Linear issue status → "In Progress" 4. Compute branch name: `feat/{LINEAR-ID}-{kebab-case-title}` 5. Create the worktree + hydrate gitignored project meta via the CLI verb: ```bash forge orchestrate ensure-worktree --task "${LINEAR_ID}" --json ``` The verb (`src/cli/orchestrate/ensure-worktree.ts`) owns: - Task-ID sanitization (same rules as `src/core/workspace.ts#sanitizeIssueId`) - Repo-root resolution via `git rev-parse --git-common-dir` so the worktree land