Use for independent development with PR-based integration. Multiple Claude instances work autonomously, each creating PRs to main. Invoke with "/worktrees:peer <feature>" or when user mentions "peer workflow", "independent worktree", "autonomous development", "PR-based workflow", or "multi-instance development".
From worktreesnpx claudepluginhub aaronbassett/agent-foundry --plugin worktreesThis skill uses the workspace's default tool permissions.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Executes pre-written implementation plans: critically reviews, follows bite-sized steps exactly, runs verifications, tracks progress with checkpoints, uses git worktrees, stops on blockers.
Independent development with PR-based integration. Each instance works autonomously, creating PRs to main.
Instance A (worktree-a) Instance B (worktree-b)
├── Creates own worktree ├── Creates own worktree
├── Develops feature X ├── Develops feature Y
├── Creates PR to main ├── Creates PR to main
├── Gets PR merged ├── Gets PR merged
└── Cleans up worktree └── Cleans up worktree
↓ ↓
└──────── main ────────┘
(integration point)
For safe, methodical development in your worktree:
Understand the codebase before making changes:
# Understand project structure
ls -la src/
git log --oneline -10
# Find related code
grep -r "related-pattern" src/
Use Plan Mode for complex changes:
Implement with focused, atomic changes:
Push regularly to maintain progress:
git add <specific-files>
git commit -m "feat(<scope>): <description>"
git push -u origin <branch>
# Ensure .worktrees is gitignored (first time only)
grep -q "^\.worktrees" .gitignore 2>/dev/null || echo ".worktrees/" >> .gitignore
git add .gitignore && git commit -m "chore: add .worktrees to gitignore"
# Create uniquely named worktree
# Pattern: {instance-id}-{feature} or just {feature}
git worktree add -b feature/<id>-<feature> .worktrees/<id> main
cd .worktrees/<id>
Naming options for <id>:
inst-alpha, inst-42, agent-a$(date +%Y%m%d-%H%M)$(uuidgen | cut -c1-6)Work following the Explore-Plan-Code-Commit cycle:
# Make changes, commit atomically
git add src/feature/
git commit -m "feat(<scope>): add main functionality"
git add tests/feature/
git commit -m "test(<scope>): add unit tests"
# Push regularly
git push -u origin feature/<id>-<feature>
# Ensure up to date with main
git fetch origin main
git rebase origin/main
git push --force-with-lease
# Create PR
gh pr create \
--base main \
--title "feat(<scope>): <description>" \
--body "## Summary
<What this accomplishes>
## Changes
- <Change 1>
- <Change 2>
## Affected Areas
- \`src/<area>/\` - <description>
## Does NOT Modify
- <Other areas untouched>
## Testing
\`\`\`bash
npm test src/<area>/
\`\`\`
## Instance Context
- Instance: <id>
- Worktree: .worktrees/<id>
- Independent feature, no coordination needed"
# Monitor status
gh pr status
gh pr checks
# Respond to feedback
gh pr view --comments
# After approval
gh pr merge --squash --delete-branch
# Return to main project directory
cd ../.. # Exit .worktrees/<id> to project root
# Pull merged changes
git checkout main
git pull origin main
# Remove worktree
git worktree remove .worktrees/<id>
# Clean up
git branch -d feature/<id>-<feature> 2>/dev/null
git worktree prune
For complex changes or when touching shared areas:
When to use Plan Mode:
Use PR descriptions to communicate scope:
## Affected Areas
- `src/payments/**` - New payment module
- `src/config/payments.ts` - Payment configuration
## Does NOT Modify
- User authentication
- API routing (new routes only)
- Existing database tables
Informally claim areas during active development:
| Area | Active Instance |
|---|---|
| src/payments/ | Instance Alpha |
| src/dashboard/ | Instance Beta |
git fetch origin main
git rebase origin/main
# If conflicts, resolve:
# Edit conflicting files
git add <resolved-files>
git rebase --continue
git push --force-with-lease
If another PR merged first:
git fetch origin main
git rebase origin/main
# Resolve conflicts
git add .
git rebase --continue
git push --force-with-lease
git worktree list # Find orphaned worktree
git worktree remove .worktrees/<orphaned> --force
git worktree prune
git branch -D feature/<orphaned-branch>
git push origin --delete feature/<orphaned-branch>
gh pr close <number> --comment "Cleaning up abandoned PR"
git push origin --delete feature/<abandoned-branch>
git worktree remove .worktrees/<abandoned> --force
.worktrees/ is in .gitignore# Setup
git worktree add -b feature/inst-alpha-payments .worktrees/inst-alpha main
cd .worktrees/inst-alpha
# Development
mkdir -p src/payments tests/payments
# ... implement ...
git add src/payments/
git commit -m "feat(payments): add Stripe integration"
git push -u origin feature/inst-alpha-payments
# PR
gh pr create --base main --title "feat(payments): Add Stripe integration"
# After merge
cd ../..
git checkout main && git pull
git worktree remove .worktrees/inst-alpha
git worktree prune