Git Flow Status

Display comprehensive Git Flow status including branch type, sync status, changes, and merge targets

Prompt
# Git Flow Status

Display comprehensive Git Flow repository status

## Current Repository State

- Current branch: !`git branch --show-current`
- Git status: !`git status --porcelain`
- Branch list: !`git branch -a | grep -E '(feature|release|hotfix|develop|main)' | head -20`
- Latest tags: !`git tag --sort=-version:refname | head -5`
- Recent commits: !`git log --oneline --graph --all -10`
- Remote status: !`git remote -v`

## Task

Provide a comprehensive Git Flow status report:

### 1. Branch Analysis

Determine current branch type and state:

```bash
CURRENT_BRANCH=$(git branch --show-current)

# Detect branch type
if [[ $CURRENT_BRANCH == "main" ]]; then
  BRANCH_TYPE="🏠 Production"
  ICON="🏠"
  STATUS_COLOR="red"
elif [[ $CURRENT_BRANCH == "develop" ]]; then
  BRANCH_TYPE="πŸ”€ Integration"
  ICON="πŸ”€"
  STATUS_COLOR="blue"
elif [[ $CURRENT_BRANCH == feature/* ]]; then
  BRANCH_TYPE="🌿 Feature"
  ICON="🌿"
  STATUS_COLOR="green"
elif [[ $CURRENT_BRANCH == release/* ]]; then
  BRANCH_TYPE="πŸš€ Release"
  ICON="πŸš€"
  STATUS_COLOR="yellow"
elif [[ $CURRENT_BRANCH == hotfix/* ]]; then
  BRANCH_TYPE="πŸ”₯ Hotfix"
  ICON="πŸ”₯"
  STATUS_COLOR="red"
else
  BRANCH_TYPE="πŸ“ Other"
  ICON="πŸ“"
  STATUS_COLOR="gray"
fi
```

### 2. Comprehensive Status Display

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🌿 GIT FLOW STATUS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

πŸ“ CURRENT BRANCH
   $ICON $CURRENT_BRANCH
   Type: $BRANCH_TYPE
   Base: [origin branch]
   Target: [merge destination]

πŸ“Š REPOSITORY INFO
   Remote: origin ($REMOTE_URL)
   Latest tag: v1.2.0
   Total branches: 12
   Active features: 3
   Active releases: 0
   Active hotfixes: 0

πŸ”„ SYNC STATUS
   Commits ahead: ↑ 2
   Commits behind: ↓ 1
   Status: ⚠️  Branch diverged from remote

   Recommendations:
   - Pull latest changes: git pull
   - Push your commits: git push

πŸ“ WORKING DIRECTORY
   Modified: ● 3 files
   Added: ✚ 5 files
   Deleted: βœ– 1 file
   Untracked: ? 2 files
   Total changes: 11 files

   Status: ⚠️  Uncommitted changes

πŸ“ˆ COMMIT HISTORY
   Commits on branch: 5
   Commits since base: 7
   Last commit: 2 hours ago
   Author: John Doe <[email protected]>

🎯 MERGE TARGET
   Will merge to: develop
   Merge status: βœ“ Ready (no conflicts)

   Estimated files affected: 12
   Estimated lines changed: +245 -87

🏷️  VERSION INFO
   Current production: v1.2.0 (on main)
   Last release: 3 days ago
   Next suggested: v1.3.0 (based on commits)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

### 3. Branch-Specific Information

**For Feature Branches:**
```
🌿 FEATURE BRANCH: feature/user-authentication

Branch info:
  Created: 2 days ago
  Base branch: develop
  Merge target: develop

Progress:
  Commits: 5
  Files changed: 12
  Lines added: 245
  Lines removed: 87

Status:
  βœ“ No merge conflicts with develop
  βœ“ Branch is up to date with remote
  ⚠️  3 uncommitted changes
  ⚠️  Tests not run recently

Next steps:
  1. Commit your changes
  2. Run tests: npm test
  3. Push to remote: git push
  4. When ready: /finish
```

**For Release Branches:**
```
πŸš€ RELEASE BRANCH: release/v1.3.0

Release info:
  Version: v1.3.0
  Created: 1 day ago
  Base branch: develop
  Merge targets: main, develop

Release contents:
  Features: 5
  Bug fixes: 3
  Performance: 1
  Total commits: 15

Version analysis:
  Current: v1.2.0
  Proposed: v1.3.0
  Increment: MINOR (new features)

Checklist:
  βœ“ CHANGELOG.md updated
  βœ“ Version in package.json
  ⚠️  Tests not run
  βœ— No tag created yet

Next steps:
  1. Run final tests: npm test
  2. Review CHANGELOG.md
  3. Create PR: gh pr create
  4. Get approvals
  5. Finish release: /finish
```

**For Hotfix Branches:**
```
πŸ”₯ HOTFIX BRANCH: hotfix/critical-security-patch

Hotfix info:
  Issue: critical-security-patch
  Created: 2 hours ago
  Base branch: main
  Merge targets: main, develop
  Severity: CRITICAL

Version info:
  Current production: v1.2.0
  Hotfix version: v1.2.1
  Increment: PATCH

Status:
  βœ“ Fix implemented
  βœ“ Tests passing
  ⚠️  Not yet deployed
  ⚠️  2 uncommitted changes

⚠️  URGENT: This is a critical production hotfix!

Next steps:
  1. Commit remaining changes
  2. Final testing
  3. Create emergency PR
  4. Get fast-track approval
  5. Finish and deploy: /finish
  6. Monitor production
```

**For Main Branch:**
```
🏠 MAIN BRANCH (Production)

Production info:
  Latest tag: v1.2.0
  Released: 3 days ago
  Last commit: 3 days ago
  Status: βœ“ Clean and stable

Active work:
  Feature branches: 3
  Release branches: 0
  Hotfix branches: 0

Recent releases:
  v1.2.0 - 3 days ago
  v1.1.5 - 1 week ago
  v1.1.4 - 2 weeks ago

⚠️  WARNING: You are on the production branch!

Avoid committing directly to main.
Use feature/release/hotfix branches instead.

To start new work:
  /feature <name>    - New feature
  /release <version> - New release
  /hotfix <name>     - Emergency fix
```

**For Develop Branch:**
```
πŸ”€ DEVELOP BRANCH (Integration)

Integration info:
  Ahead of main: 12 commits
  Last merge: 1 day ago
  Status: βœ“ Stable

Merged features:
  feature/user-authentication (2 days ago)
  feature/payment-gateway (1 week ago)
  feature/dashboard-redesign (2 weeks ago)

Active features:
  feature/notifications (in progress)
  feature/api-v2 (in progress)
  feature/mobile-app (in progress)

Next release:
  Suggested version: v1.3.0
  Estimated features: 5
  Estimated timeline: 1 week

To start new work:
  /feature <name> - Create new feature
```

### 4. All Git Flow Branches

List all active Git Flow branches:

```
πŸ“‹ ACTIVE BRANCHES

🌿 Features (3):
  feature/notifications        (2 commits, 1 day old)
  feature/api-v2              (8 commits, 1 week old)
  feature/mobile-app          (15 commits, 2 weeks old)

πŸš€ Releases (0):
  No active releases

πŸ”₯ Hotfixes (0):
  No active hotfixes

🏠 Main branches:
  main    (production, v1.2.0)
  develop (integration, +12 commits ahead)

πŸ“¦ Stale branches (older than 30 days):
  feature/old-experiment       (45 days old)
  feature/deprecated-feature   (60 days old)

  Cleanup suggestion: /clean-branches
```

### 5. Recommendations

Provide actionable recommendations based on status:

```
πŸ’‘ RECOMMENDATIONS

Priority Actions:
  1. ⚠️  Commit your 3 uncommitted changes
  2. ⚠️  Push 2 unpushed commits to remote
  3. ⚠️  Pull 1 commit from remote (behind)
  4. ℹ️  Run tests before finishing

Branch Hygiene:
  - 2 stale branches can be deleted
  - feature/mobile-app is 2 weeks old (consider splitting)
  - No merge conflicts detected βœ“

Next Steps:
  1. Commit changes: git add . && git commit
  2. Pull updates: git pull
  3. Push commits: git push
  4. Run tests: npm test
  5. Finish when ready: /finish
```

### 6. Error States

**Not in Git Repository:**
```
❌ Not in a git repository

Initialize git repository:
  git init
  git remote add origin <url>

Or navigate to a git repository.
```

**No Git Flow Structure:**
```
⚠️  Git Flow structure not detected

Missing branches:
  - develop (integration branch)
  - main (production branch)

Initialize Git Flow:
  git flow init

Or create branches manually:
  git checkout -b develop
  git checkout -b main
```

**Remote Not Configured:**
```
⚠️  No remote repository configured

Add remote:
  git remote add origin <repository-url>

Verify remote:
  git remote -v
```

### 7. Quick Stats

```
πŸ“Š QUICK STATS

Commits:
  Today: 3
  This week: 12
  This month: 45

Branches:
  Features: 3 active
  Releases: 0 active
  Hotfixes: 0 active
  Other: 5

Contributors:
  Active this week: 4
  Total: 8

Repository:
  Total commits: 1,234
  Total tags: 25
  Latest: v1.2.0
  Age: 6 months
```

### 8. Workflow Suggestions

Based on current state, suggest next commands:

```
🎯 SUGGESTED NEXT COMMANDS

For current branch (feature/user-authentication):
  /finish           - Complete and merge feature
  /flow-status      - Refresh this status

To start new work:
  /feature <name>   - New feature branch
  /release <version> - New release
  /hotfix <name>    - Emergency fix

Repository maintenance:
  /clean-branches   - Clean up old branches
  git fetch --prune - Remove stale remote refs
```

## Related Commands

- `/feature <name>` - Create feature branch
- `/release <version>` - Create release branch
- `/hotfix <name>` - Create hotfix branch
- `/finish` - Complete current branch

## Best Practices

**Regular Status Checks:**
- βœ… Run /flow-status daily
- βœ… Check before starting new work
- βœ… Verify before finishing branches
- βœ… Monitor for stale branches

**Status Indicators:**
- βœ“ Green: Good to proceed
- ⚠️ Yellow: Attention needed
- βœ— Red: Action required
- ℹ️ Blue: Informational