git-workflow-manager
Manage git worktrees with GitFlow conventions for parallel development. This skill should be used when creating, managing, or cleaning up git worktrees, following standard GitFlow branch naming (feature/, fix/, hotfix/). 100% generic and reusable across all projects.
What this skill does
# Git Workflow Manager Skill
## Purpose
Manage git worktrees following GitFlow conventions, enabling parallel development workflows. Create, list, switch between, and clean up worktrees with standardized naming and directory structure. Pure Git implementation, works with any project.
## When to Use This Skill
Use this skill when:
- Need to work on multiple features/fixes in parallel
- Want to preserve working state while switching tasks
- Team members need separate worktrees for different features
- Need to quickly switch between features without stashing
- Want to maintain clean branch organization with GitFlow
## GitFlow Branch Conventions
### Branch Types
**1. Feature Branches**
- **Pattern:** `feature/{feature-name}`
- **Purpose:** New features, enhancements
- **Base:** Usually `main` or `develop`
- **Example:** `feature/email-notifications`, `feature/user-dashboard`
**2. Fix Branches**
- **Pattern:** `fix/{fix-name}` or `bugfix/{fix-name}`
- **Purpose:** Bug fixes
- **Base:** Usually `main` or `develop`
- **Example:** `fix/login-timeout`, `bugfix/form-validation`
**3. Hotfix Branches**
- **Pattern:** `hotfix/{hotfix-name}`
- **Purpose:** Critical production fixes
- **Base:** `main`
- **Example:** `hotfix/security-patch`, `hotfix/data-corruption`
**4. Release Branches** (optional)
- **Pattern:** `release/{version}`
- **Purpose:** Preparing releases
- **Base:** `develop`
- **Example:** `release/1.2.0`, `release/v2.0.0-beta`
### Naming Conventions
**Good Names:**
- Descriptive: `feature/email-notifications` ✅
- Kebab-case: `feature/user-profile-page` ✅
- Concise: `fix/timeout-error` ✅
**Bad Names:**
- Too generic: `feature/new-stuff` ❌
- Spaces: `feature/email notifications` ❌
- Too long: `feature/implement-email-notifications-with-microsoft-graph-for-form-submissions` ❌
## Worktree Directory Structure
### Standard Location
Worktrees are created in a sibling directory to the main repository:
```
project-root/ ← Main repository
project-root-worktrees/ ← Worktree parent directory
├── feature/
│ ├── email-notifications/ ← Worktree for feature/email-notifications
│ └── user-dashboard/ ← Worktree for feature/user-dashboard
├── fix/
│ └── login-timeout/ ← Worktree for fix/login-timeout
└── hotfix/
└── security-patch/ ← Worktree for hotfix/security-patch
```
**Rationale:**
- ✅ Keeps worktrees separate from main repo
- ✅ Easy to find and manage
- ✅ Mirrors branch structure visually
- ✅ Works across all projects (generic)
### Path Calculation
Given repository at `/path/to/my-project`:
- Main repo: `/path/to/my-project`
- Worktrees: `/path/to/my-project-worktrees`
Example:
- Main: `/d/bovis-creation-forms`
- Worktrees: `/d/bovis-creation-forms-worktrees`
## Worktree Operations
### Creating a Worktree
**Command:**
```bash
# Usage: create-worktree <type> <name> [base-branch]
# Types: feature, fix, hotfix, release
# Name: descriptive name (kebab-case)
# Base: main, develop, etc. (default: main)
```
**Examples:**
```bash
# Create feature worktree
create-worktree feature email-notifications
# Result:
# - Branch: feature/email-notifications
# - Worktree: ../my-project-worktrees/feature/email-notifications/
# Create fix worktree from develop
create-worktree fix login-timeout develop
# Result:
# - Branch: fix/login-timeout (from develop)
# - Worktree: ../my-project-worktrees/fix/login-timeout/
```
**Steps Performed:**
1. Determine repository name
2. Calculate worktree parent path
3. Create worktree directory structure
4. Create git branch: `{type}/{name}`
5. Create worktree linked to branch
6. Output worktree path
**Script:** `scripts/create_worktree.sh`
### Listing Worktrees
**Command:**
```bash
# List all worktrees
list-worktrees
# Output:
# Main: /d/bovis-creation-forms [main]
# Worktrees:
# 1. feature/email-notifications → ../bovis-creation-forms-worktrees/feature/email-notifications
# 2. fix/login-timeout → ../bovis-creation-forms-worktrees/fix/login-timeout
```
**Information Displayed:**
- Branch name
- Worktree path
- Commit hash (optional)
- Status (clean/dirty)
**Script:** `scripts/list_worktrees.sh`
### Switching to Worktree
**Manual Switch:**
```bash
# Option 1: Change directory
cd ../project-worktrees/feature/email-notifications
# Option 2: Open in new terminal/IDE
code ../project-worktrees/feature/email-notifications
```
**Note:** Worktrees are independent directories. No special "switch" command needed, just `cd` to the path.
### Removing Worktrees
**When to Remove:**
- Feature/fix is complete and merged
- Branch is no longer needed
- Want to clean up disk space
**Command:**
```bash
# Remove specific worktree
remove-worktree feature/email-notifications
# Or use git directly
git worktree remove ../project-worktrees/feature/email-notifications
```
**Script:** Part of `scripts/cleanup_worktrees.sh`
### Cleaning Up Stale Worktrees
**What are Stale Worktrees?**
- Worktrees whose branches have been merged and deleted
- Worktrees manually deleted from filesystem but still registered
**Command:**
```bash
# Clean up stale worktrees
cleanup-worktrees
# Options:
# --merged: Remove worktrees for merged branches
# --stale: Remove worktree registrations for deleted directories
# --dry-run: Show what would be removed
```
**Steps Performed:**
1. List all worktrees
2. Check which branches are merged into main
3. Ask for confirmation
4. Remove worktree and delete directory
5. Prune git worktree list
**Script:** `scripts/cleanup_worktrees.sh`
## Git Worktree Basics
### What is a Worktree?
A git worktree is a linked working tree that allows you to have multiple branches checked out simultaneously.
**Without Worktrees:**
```
project/ ← Only one branch at a time
(on main) ← Must switch branches, stash changes
```
**With Worktrees:**
```
project/ ← Main worktree (main branch)
project-worktrees/
feature/
email-notif/ ← feature/email-notifications branch
fix/
login-timeout/ ← fix/login-timeout branch
```
Each worktree is independent, allowing simultaneous work.
### Benefits of Worktrees
✅ **Parallel Development:** Work on multiple features simultaneously
✅ **No Stashing:** Each worktree has its own working directory
✅ **Fast Switching:** Just `cd` to different directory
✅ **Isolated Builds:** Build artifacts don't interfere
✅ **Team Collaboration:** Easy to share specific feature states
### Git Worktree Commands
**Core Commands Used:**
```bash
# Create worktree
git worktree add <path> -b <branch>
# List worktrees
git worktree list
# Remove worktree
git worktree remove <path>
# Prune stale worktree entries
git worktree prune
```
## Integration with Feature Implementation Workflow
### Typical Workflow
1. **Start Feature:**
```bash
# Create worktree
create-worktree feature email-notifications
cd ../bovis-worktrees/feature/email-notifications
```
2. **Implement:**
```bash
# Make changes, commit
git add .
git commit -m "Implement email service"
git push -u origin feature/email-notifications
```
3. **Complete:**
```bash
# Create PR, get merged
# Switch back to main worktree
cd /d/bovis-creation-forms
# Clean up
cleanup-worktrees --merged
```
### Multiple Parallel Features
**Scenario:** Working on 3 features simultaneously
```bash
# Developer A
create-worktree feature email-notifications
cd ../proj-worktrees/feature/email-notifications
# [work on feature A]
# Developer A (or B)
create-worktree feature user-dashboard
cd ../proj-worktrees/feature/user-dashboard
# [work on feature B]
# Developer C
create-worktree fix login-timeout
cd ../proj-worktrees/fix/login-timeout
# [work on fix]
```
All three can progress independently without conflicts.
## Best Practices
### 1. One Feature Per Worktree
Don't mix multiple features in one worktree. Keep focused.
### 2. Regular Cleanup
Clean up merged worktrees regularly to avoid clutter:
```bash
# Weekly cleanup
cleanRelated in Code Review
gstack
IncludedFast headless browser for QA testing and site dogfooding. Navigate pages, interact with elements, verify state, diff before/after, take annotated screenshots, test responsive layouts, forms, uploads, dialogs, and capture bug evidence. Use when asked to open or test a site, verify a deployment, dogfood a user flow, or file a bug with screenshots. (gstack)
startup-due-diligence
IncludedLegal due diligence review for seed-stage and Series A startups (US, Delaware C-Corp focus). Supports both investor and founder perspectives. Capabilities include: (1) Interactive document review and issue spotting; (2) Document request list generation; (3) Cap table and SAFE/convertible note analysis; (4) Red flag identification with severity ratings; (5) Diligence report generation. TRIGGERS: due diligence, DD, startup investment, cap table review, Series A, seed round, investor diligence, legal review startup, SAFE analysis, convertible note, 409A, founder vesting.
interview-master
IncludedThis skill should be used when the user asks to "generate interview questions", "prepare for interview", "optimize resume", "conduct mock interview", "analyze git commits for resume", "generate resume from code", "review my resume", or mentions interview preparation, career assistance, or extracting project experience from git history. Provides comprehensive interview and career development guidance for both job seekers and interviewers.
fix-issue
IncludedFixes GitHub issues using parallel analysis agents for root cause investigation, code exploration, and regression detection. Reads issue context from gh CLI, searches codebase and memory for related patterns, generates a fix with tests, and links the resolution back to the issue via PR. Includes prevention analysis to avoid recurrence. Use when debugging errors, resolving regressions, fixing bugs, or triaging issues.
sf-apex
IncludedGenerates and reviews Salesforce Apex code with 150-point scoring. TRIGGER when: user writes, reviews, or fixes Apex classes, triggers, test classes, batch/queueable/schedulable jobs, or touches .cls/.trigger files. DO NOT TRIGGER when: LWC JavaScript (use sf-lwc), Flow XML (use sf-flow), SOQL-only queries (use sf-soql), or non-Salesforce code.
swift-development
IncludedComprehensive Swift development for building, testing, and deploying iOS/macOS applications. Use when Claude needs to: (1) Build Swift packages or Xcode projects from command line, (2) Run tests with XCTest or Swift Testing framework, (3) Manage iOS simulators with simctl, (4) Handle code signing, provisioning profiles, and app distribution, (5) Format or lint Swift code with SwiftFormat/SwiftLint, (6) Work with Swift Package Manager (SPM), (7) Implement Swift 6 concurrency patterns (async/await, actors, Sendable), (8) Create SwiftUI views with MVVM architecture, (9) Set up Core Data or SwiftData persistence, or any other Swift/iOS/macOS development tasks.