← ClaudeAtlas

git-issue-startlisted

Take a GitHub issue from open to a checked-out branch - resolve it, assign it to you, mark it in progress if the repo has such a label, derive a conventional branch name from its `type: *` label, branch off the detected base. Use for "start issue 42", "work on #42", "/git-issue-start 42", "let's do 42", "pick up that issue", "take the oauth issue", "I'll take this one", or whenever the user points at a tracked issue and signals they are about to write code for it. Resolves an issue named by title instead of number via `gh issue list --search`. Boundary with `git-branch-create`: that skill owns branch naming and base detection and is the right call when there is no issue; this one is the issue-to-branch bridge and delegates naming to it. Assigns and branches immediately without asking for confirmation.
pivoshenko/pivoshenko.ai · ★ 6 · AI & Automation · score 81
Install: claude install-skill pivoshenko/pivoshenko.ai
# Start Issue Issue -> assign -> branch -> checked out. No confirm. ## Flow 1. Resolve the issue: - Number given -> `gh issue view <n> --json number,title,labels,state,assignees,body` - Title or topic given ("the oauth issue") -> `gh issue list --search "<terms>" --state open --json number,title --limit 10`, then view the match. Exactly one hit -> take it. Several -> list them, ask which. None -> stop, say so. Why -> guessing an issue number assigns the wrong person to the wrong work and it is invisible until someone reads the tracker 2. `state == CLOSED` -> stop. Surface number, title, and that it is closed. Never reopen here 3. Assigned to someone else -> stop and ask before taking it. Own login from `gh api user -q .login`; already yours -> proceed, assignment step is a no-op. Why -> an assignee is a claim by a person, and silently overwriting it is how two people ship the same fix 4. Dirty tree -> stop. Tell the user to stash or commit first. Same reasoning as `git-branch-create` step 2: `checkout -b` carries staged and unstaged changes into the new branch silently 5. Assign to self: `gh issue edit <n> --add-assignee @me` 6. In-progress label, only if one already exists. Fetch the repo's labels once per run per canon label resolution: ```bash gh label list --limit 200 --json name -q '.[].name' ``` Chain, first existing name wins: `status: in progress` -> `status: in-progress` -> `in progress` -> `in-progress` -> `wip`. Whole chain missing -> skip the