# Branch From Issue

> Create a git branch named after a GitHub issue.

- Skill: `davila7/branch-from-issue` (Agent Skill)
- Install (CLI): `npx skillmds@latest add davila7/branch-from-issue`
- Raw SKILL.md: https://api.skillmd.com/api/skills/davila7/branch-from-issue/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: davila7 (https://skillmd.com/u/davila7)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/davila7/branch-from-issue

---


## Create branch from GitHub issue

### Step 1: Read the issue title

Run:
```
gh issue view $issue
```

Extract the issue title from the output. If the issue does not exist or `gh` is not authenticated, stop and report the error.

### Step 2: Slugify the title

Convert the issue title to a branch-safe slug:
1. Convert to lowercase
2. Replace spaces and punctuation with hyphens
3. Remove any characters that are not letters, digits, or hyphens
4. Collapse consecutive hyphens into one
5. Strip leading and trailing hyphens
6. Truncate to 40 characters maximum (truncate at a word boundary if possible)

Examples:
- "Fix login page crash on mobile" → `fix-login-page-crash-on-mobile`
- "Add support for OAuth 2.0 / PKCE flow" → `add-support-for-oauth-20-pkce-flow`
- "Update README with installation instructions" → `update-readme-with-installation`

### Step 3: Determine the branch prefix

If `$prefix` is not empty, use it as provided.

If `$prefix` is empty, use `feature` as the default prefix.

Valid examples: `feature`, `fix`, `chore`, `hotfix`. Accept any non-empty string the user provides.

### Step 4: Create the branch

Construct the full branch name: `$prefix/$issue-<slug>`

For example, if `$prefix` is `fix`, `$issue` is `142`, and the slug is `login-page-crash-on-mobile`:
```
fix/142-login-page-crash-on-mobile
```

Run:
```
git checkout -b $prefix/$issue-<slug>
```

If the branch already exists, report the conflict and stop. Do not force-create or checkout the existing branch automatically.

### Step 5: Confirm

Report the new branch name and confirm the current branch has switched:
```
git branch --show-current
```

Example output:
```
Created and switched to: fix/142-login-page-crash-on-mobile
```

