create-feature-branch
Create properly named feature branch from development with remote tracking, following WescoBar naming conventions and git best practices
Best use case
create-feature-branch is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Create properly named feature branch from development with remote tracking, following WescoBar naming conventions and git best practices
Teams using create-feature-branch should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/create-feature-branch/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How create-feature-branch Compares
| Feature / Agent | create-feature-branch | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Create properly named feature branch from development with remote tracking, following WescoBar naming conventions and git best practices
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Create Feature Branch
## Purpose
Create a feature branch with proper naming convention, sync with remote development branch, and set up remote tracking for WescoBar workflows.
## When to Use
- Conductor workflow Phase 2, Step 1 (Branch Setup)
- Before starting implementation of new feature
- When picking up GitHub issue
- As first step in feature development workflow
## Naming Convention
```
feature/issue-<NUMBER>-<short-description>
```
**Examples:**
- `feature/issue-137-dark-mode`
- `feature/issue-42-character-portraits`
- `feature/issue-89-gemini-caching`
**Rules:**
- Always start with `feature/`
- Include `issue-<NUMBER>` for GitHub issue linking
- Use kebab-case for description
- Keep description under 40 characters
- Use descriptive but concise naming
## Instructions
### Step 1: Validate Inputs
```bash
ISSUE_NUMBER=$1
ISSUE_TITLE=$2 # Optional: for auto-generating description
if [ -z "$ISSUE_NUMBER" ]; then
echo "❌ Error: Issue number required"
exit 1
fi
# Validate issue number is numeric
if ! [[ "$ISSUE_NUMBER" =~ ^[0-9]+$ ]]; then
echo "❌ Error: Issue number must be numeric"
exit 1
fi
```
### Step 2: Generate Branch Name
```bash
# Generate short description from issue title if provided
if [ -n "$ISSUE_TITLE" ]; then
# Convert to lowercase, replace spaces with hyphens, remove special chars
SHORT_DESC=$(echo "$ISSUE_TITLE" | \
tr '[:upper:]' '[:lower:]' | \
sed 's/[^a-z0-9 ]//g' | \
tr -s ' ' '-' | \
cut -d'-' -f1-5) # Keep first 5 words max
else
# Manual description required
echo "Enter short description (kebab-case):"
read SHORT_DESC
fi
BRANCH_NAME="feature/issue-${ISSUE_NUMBER}-${SHORT_DESC}"
echo "Branch name: $BRANCH_NAME"
```
### Step 3: Check if Branch Already Exists
```bash
# Check local branches
if git rev-parse --verify "$BRANCH_NAME" 2>/dev/null; then
echo "⚠️ Branch already exists locally: $BRANCH_NAME"
echo "Options:"
echo " 1. Checkout existing branch"
echo " 2. Create new branch with different name"
echo " 3. Delete and recreate"
read -p "Choose (1/2/3): " CHOICE
case $CHOICE in
1)
git checkout "$BRANCH_NAME"
echo "✅ Checked out existing branch"
exit 0
;;
2)
echo "Enter new description:"
read NEW_DESC
BRANCH_NAME="feature/issue-${ISSUE_NUMBER}-${NEW_DESC}"
;;
3)
git branch -D "$BRANCH_NAME"
echo "Deleted existing branch - will recreate"
;;
esac
fi
# Check remote branches
if git ls-remote --heads origin "$BRANCH_NAME" | grep -q "$BRANCH_NAME"; then
echo "⚠️ Branch exists on remote: $BRANCH_NAME"
echo "Fetching remote branch..."
git fetch origin "$BRANCH_NAME"
git checkout --track "origin/$BRANCH_NAME"
echo "✅ Checked out remote branch"
exit 0
fi
```
### Step 4: Sync with Development
```bash
echo "→ Syncing with development branch..."
# Checkout development
git checkout development
# Pull latest changes
if ! git pull origin development; then
echo "❌ Error: Failed to pull latest development"
echo "Resolve conflicts and try again"
exit 1
fi
echo "✅ Development branch up to date"
```
### Step 5: Create Feature Branch
```bash
echo "→ Creating feature branch: $BRANCH_NAME"
# Create and checkout new branch
if ! git checkout -b "$BRANCH_NAME"; then
echo "❌ Error: Failed to create branch"
exit 1
fi
echo "✅ Feature branch created"
```
### Step 6: Push to Remote with Tracking
```bash
echo "→ Pushing to remote with tracking..."
# Push with upstream tracking
if ! git push -u origin "$BRANCH_NAME"; then
echo "❌ Error: Failed to push to remote"
echo "Branch created locally but not on remote"
exit 1
fi
echo "✅ Branch pushed to remote with tracking"
```
### Step 7: Verify Setup
```bash
# Verify current branch
CURRENT_BRANCH=$(git branch --show-current)
if [ "$CURRENT_BRANCH" = "$BRANCH_NAME" ]; then
echo ""
echo "✅ Feature Branch Setup Complete"
echo " Branch: $BRANCH_NAME"
echo " Tracking: origin/$BRANCH_NAME"
echo " Base: development"
echo ""
echo "Ready for implementation!"
else
echo "⚠️ Warning: Not on expected branch"
echo " Expected: $BRANCH_NAME"
echo " Actual: $CURRENT_BRANCH"
fi
```
## Output Format
### Success
```json
{
"status": "success",
"branch": {
"name": "feature/issue-137-dark-mode",
"issue": 137,
"base": "development",
"remote": "origin/feature/issue-137-dark-mode",
"tracking": true
},
"message": "Feature branch created and pushed to remote"
}
```
### Branch Already Exists
```json
{
"status": "success",
"branch": {
"name": "feature/issue-137-dark-mode",
"existed": true,
"action": "checked_out"
},
"message": "Existing branch checked out"
}
```
## Integration with Conductor
Used in conductor Phase 2, Step 1:
```markdown
### Phase 2: Branch Setup and Implementation
**Step 1: Create Feature Branch**
**RESUMPTION CHECK**: If feature branch already exists, SKIP this step.
Use `create-feature-branch` skill:
- Input: issue_number, issue_title (from Phase 1)
- Output: branch_name, tracking status
Expected result:
- Branch created: `feature/issue-137-dark-mode`
- Checked out and ready
- Remote tracking set up
- Base: development (latest)
Record branch name for PR creation in Phase 4.
```
## Error Handling
### Development Branch Pull Fails
```bash
if ! git pull origin development; then
echo "❌ Merge conflicts in development branch"
echo "Action required:"
echo " 1. Resolve conflicts manually"
echo " 2. Run: git merge --continue"
echo " 3. Re-run create-feature-branch"
exit 1
fi
```
### Remote Push Fails (Network)
```bash
# Retry with exponential backoff (from CLAUDE.md)
for i in {1..4}; do
if git push -u origin "$BRANCH_NAME"; then
break
else
if [ $i -lt 4 ]; then
DELAY=$((2 ** i))
echo "⏳ Push failed, retrying in ${DELAY}s..."
sleep $DELAY
else
echo "❌ Push failed after 4 attempts"
exit 1
fi
fi
done
```
### Branch Name Too Long
```bash
if [ ${#BRANCH_NAME} -gt 80 ]; then
echo "⚠️ Branch name too long: ${#BRANCH_NAME} characters"
echo "Truncating description..."
SHORT_DESC=$(echo "$SHORT_DESC" | cut -c1-40)
BRANCH_NAME="feature/issue-${ISSUE_NUMBER}-${SHORT_DESC}"
fi
```
## Related Skills
- `check-resume-branch` - Check if branch exists for resumption
- `push-with-retry` - Retry logic for network failures
- `commit-with-validation` - Atomic commit before PR
## Best Practices
1. **Always sync development first** - Ensures latest base
2. **Use descriptive names** - But keep under 80 chars
3. **Set up remote tracking** - Enables `git push` without args
4. **Verify branch created** - Check `git branch --show-current`
5. **Handle existing branches** - Don't overwrite without confirmation
6. **Retry on network failures** - Use exponential backoff
## Notes
- Branch naming follows WescoBar convention
- Remote tracking simplifies push workflow
- Development is the base branch (not main/master)
- Branch name includes issue number for PR auto-linking
- Supports resumption by checking for existing branchesRelated Skills
Implementing Features
Execute specification-driven implementation with automatic quality gates, multi-agent orchestration, and progress tracking. Use when building features from specs, fixing bugs with test coverage, or refactoring with validation.
genomic-feature-annotation
This skill is used to perform genomic feature annotation and visualization for any file containing genomic region information using Homer (Hypergeometric Optimization of Motif EnRichment). It annotates regions such as promoters, exons, introns, intergenic regions, and TSS proximity, and generates visual summaries of feature distributions. ChIPseeker mode is also supported according to requirements.
full-stack-orchestration-full-stack-feature
Use when working with full stack orchestration full stack feature
feature-status
Count features marked as @failing and write to status JSON file. Used to determine when the autonomous coding loop should end.
feature-investigation
[Investigation] Use when the user asks to investigate, explore, understand, explain, or analyze how an existing feature or logic works. Triggers on keywords like "how does", "explain", "what is the logic", "investigate", "understand", "where is", "trace", "walk through", "show me how".
feature-implementation
[Implementation] Use when the user asks to implement a new feature, enhancement, add functionality, build something new, or create new capabilities. Triggers on keywords like "implement", "add feature", "build", "create new", "develop", "enhancement".
feature-engineering
モデルの性能を向上させるために、既存のデータから新しい特徴量を作成する。
feature-dev-workflow
Complete end-to-end feature development workflow from issue tracking through PR delivery. Use for implementing features, building new functionality, and adding capabilities. Includes requirements discovery, architecture planning, implementation, testing, code review, design audit, and comprehensive validation.
feature-design-assistant
Turn ideas into fully formed designs and specs through natural collaborative dialogue. Use when planning new features, designing architecture, or making significant changes to the codebase.
docker-2025-features
Latest Docker 2025 features including AI Assistant, Enhanced Container Isolation, and Moby 25
doc-sys: Create System Requirements (Layer 6)
Create System Requirements (SYS) - Layer 6 artifact defining functional requirements and quality attributes
create-prd
This skill should be used when the user asks to "创建PRD", "写产品需求文档", "生成PRD", "新建PRD", "create PRD", "write product requirements document", or mentions "产品需求文档", "PRD模板". Automatically generates comprehensive Chinese PRD documents following 2026 best practices.