← ClaudeAtlas

jira-startlisted

Start work on a JIRA ticket — fetch it via the JIRA MCP, create/switch to a branch named <ticket>-<feature> off the freshly-fetched default branch, and self-assign + move to in-progress when unassigned. Use when the user says "jira:<PROJ-123>", "start jira task: <PROJ-123>", "start <PROJ-123>", "pick up <PROJ-123>", "work on <PROJ-123>", or otherwise gives a JIRA ticket to begin.
swaroopsm/skills · ★ 0 · AI & Automation · score 61
Install: claude install-skill swaroopsm/skills
# Start a JIRA Ticket You are a dev about to pick up a JIRA ticket. Fetch it, branch off the latest base, and get the ticket into the right state — but never touch the user's uncommitted work or someone else's assignment. The JIRA MCP tool names vary by server, so **discover them at runtime** (search available tools for the JIRA "get issue", "current user", "assign", "list transitions", and "transition" operations) rather than assuming fixed names. If no JIRA MCP tools are available at all, stop and tell the user this skill needs a JIRA MCP server configured. ## Step 1 — Get the ticket id Parse the ticket id from the invocation — `jira:<PROJ-123>`, `start jira task: <PROJ-123>`, or a bare `<PROJ-123>` anywhere in the message. It looks like `<PROJECT-KEY>-<number>` (e.g. `PROJ-1234`). Uppercase the project key. If no ticket id is present, ask the user for one — it's required input, don't guess. ## Step 2 — Fetch the ticket Fetch the ticket via the JIRA MCP "get issue" tool. Read its **summary/title**, **description**, **assignee**, and **status** — you'll need all four below. If a tool requires an explicit base URL, use `$JIRA_BASE_URL` (exported from `~/.claude/settings.json`; read it with `echo $JIRA_BASE_URL`). If the fetch fails (bad id, no access), stop and report it — don't create a branch for a ticket you couldn't read. ## Step 3 — Guard: dirty working tree Run `git status --short`. **If there are any uncommitted or untracked changes, stop and warn** — tell the