Skip to content
Back to skills

796 Feature 0faf89d8

ASecurity

Create a new Git Flow feature branch from develop with proper naming and tracking

  • 9 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 31, 2026
toolsbashtestinggitapi

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned May 31, 2026

npx -y skills add tools-only/X-Skills --skill 796-feature_0faf89d8 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 796 Feature 0faf89d8?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 796 Feature 0faf89d8
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-796-feature-0faf89d8/badge)](https://www.skillsdirectory.com/skills/tools-only-796-feature-0faf89d8)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
allowed-tools: Bash(git:*)
argument-hint: <feature-name>
description: Create a new Git Flow feature branch from develop with proper naming and tracking
---

# Git Flow Feature Branch

Create new feature branch: **$ARGUMENTS**

## Current Repository State

- Current branch: !`git branch --show-current`
- Git status: !`git status --porcelain`
- Develop branch status: !`git log develop..origin/develop --oneline 2>/dev/null | head -5 || echo "No remote tracking for develop"`

## Task

Create a Git Flow feature branch following these steps:

### 1. Pre-Flight Validation

- **Check git repository**: Verify we're in a valid git repository
- **Validate feature name**: Ensure `$ARGUMENTS` is provided and follows naming conventions:
  - ✅ Valid: `user-authentication`, `payment-integration`, `dashboard-redesign`
  - ❌ Invalid: `feat1`, `My_Feature`, empty name
- **Check for uncommitted changes**:
  - If changes exist, warn user and ask to commit/stash first
  - OR offer to stash changes automatically
- **Verify develop branch exists**: Ensure `develop` branch is present

### 2. Create Feature Branch

Execute the following workflow:

```bash
# Switch to develop branch
git checkout develop

# Pull latest changes from remote
git pull origin develop

# Create feature branch with Git Flow naming convention
git checkout -b feature/$ARGUMENTS

# Set up remote tracking
git push -u origin feature/$ARGUMENTS
```

### 3. Provide Status Report

After successful creation, display:

```
✓ Switched to develop branch
✓ Pulled latest changes from origin/develop
✓ Created branch: feature/$ARGUMENTS
✓ Set up remote tracking: origin/feature/$ARGUMENTS
✓ Pushed branch to remote

🌿 Feature Branch Ready

Branch: feature/$ARGUMENTS
Base: develop
Status: Clean working directory

🎯 Next Steps:
1. Start implementing your feature
2. Make commits using conventional format:
   git commit -m "feat: your changes"
3. Push changes regularly: git push
4. When complete, use /finish to merge back to develop

💡 Git Flow Tips:
- Keep commits atomic and well-described
- Push frequently to avoid conflicts
- Use conventional commit format (feat:, fix:, etc.)
- Test thoroughly before finishing
```

### 4. Error Handling

Handle these scenarios gracefully:

**Uncommitted Changes:**
```
⚠️  You have uncommitted changes:
M  src/file1.js
M  src/file2.js

Options:
1. Commit changes first
2. Stash changes: git stash
3. Discard changes: git checkout .

What would you like to do? [1/2/3]
```

**Feature Name Not Provided:**
```
❌ Feature name is required

Usage: /feature <feature-name>

Examples:
  /feature user-profile-page
  /feature api-v2-integration
  /feature payment-gateway

Feature names should:
- Be descriptive and concise
- Use kebab-case (lowercase-with-hyphens)
- Describe what the feature does
```

**Branch Already Exists:**
```
❌ Branch feature/$ARGUMENTS already exists

Existing feature branches:
  feature/user-authentication
  feature/payment-gateway
  feature/$ARGUMENTS ← This one

Options:
1. Switch to existing branch: git checkout feature/$ARGUMENTS
2. Use a different feature name
3. Delete existing and recreate (destructive!)
```

**Develop Behind Remote:**
```
⚠️  Local develop is behind origin/develop by 5 commits

✓ Pulling latest changes...
✓ Develop is now up to date
✓ Ready to create feature branch
```

**No Develop Branch:**
```
❌ Develop branch not found

Git Flow requires a 'develop' branch. Create it with:
  git checkout -b develop
  git push -u origin develop

Or initialize Git Flow:
  git flow init
```

## Git Flow Context

This command is part of the Git Flow branching strategy:

- **main**: Production-ready code (protected)
- **develop**: Integration branch for features (protected)
- **feature/***: New features (you are here)
- **release/***: Release preparation
- **hotfix/***: Emergency production fixes

Feature branches:
- Branch from: `develop`
- Merge back to: `develop`
- Naming convention: `feature/<descriptive-name>`
- Lifecycle: Short to medium term

## Environment Variables

This command respects:
- `GIT_FLOW_DEVELOP_BRANCH`: Develop branch name (default: "develop")
- `GIT_FLOW_PREFIX_FEATURE`: Feature prefix (default: "feature/")

## Related Commands

- `/finish` - Complete and merge feature branch to develop
- `/flow-status` - Check current Git Flow status
- `/release <version>` - Create release branch from develop
- `/hotfix <name>` - Create hotfix branch from main

## Best Practices

**DO:**
- ✅ Use descriptive feature names
- ✅ Keep feature scope focused and small
- ✅ Push to remote regularly
- ✅ Test your changes before finishing
- ✅ Use conventional commit messages

**DON'T:**
- ❌ Create features directly from main
- ❌ Use generic names like "feature1"
- ❌ Let feature branches live too long
- ❌ Mix multiple unrelated features
- ❌ Skip testing before merging

Files in this skill

  • README.md838 B
  • skill.md4.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.