Creates isolated Git worktrees for Rails feature development in a sibling directory with automatic symlinking of master.key and environment credentials.
From git-workflowsnpx claudepluginhub aviflombaum/claude-code-in-avinyc --plugin git-workflowsThis skill uses the workspace's default tool permissions.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Create isolated git worktrees for feature development with automatic Rails credential symlinking.
Worktrees are created in a sibling directory to keep the project root clean:
parent/
project/ # main repo
project-worktrees/ # worktree container
25-01-22-feature/ # individual worktree
The container directory is ../<project-name>-worktrees/ relative to the project root.
Format: YY-MM-DD-feature-description
Examples:
25-01-22-add-password-reset25-01-22-fix-api-timeout25-01-22-refactor-auth-moduleIf no feature name provided, ask:
What feature are you working on? (e.g., "add password reset", "fix checkout bug")
# Get project info
PROJECT_ROOT=$(pwd)
PROJECT_NAME=$(basename "$PROJECT_ROOT")
WORKTREES_DIR="../${PROJECT_NAME}-worktrees"
# Format branch name: YY-MM-DD-feature-description
DATE=$(date +%y-%m-%d)
BRANCH_NAME="${DATE}-<feature-slug>"
# Create worktrees directory if needed
mkdir -p "$WORKTREES_DIR"
# Create worktree with new branch
git worktree add "$WORKTREES_DIR/$BRANCH_NAME" -b "$BRANCH_NAME"
Rails credentials must be symlinked so the worktree can decrypt secrets:
WORKTREE_PATH="$WORKTREES_DIR/$BRANCH_NAME"
# master.key
ln -sf "$PROJECT_ROOT/config/master.key" "$WORKTREE_PATH/config/master.key"
# development.key (if exists)
if [ -f "$PROJECT_ROOT/config/credentials/development.key" ]; then
mkdir -p "$WORKTREE_PATH/config/credentials"
ln -sf "$PROJECT_ROOT/config/credentials/development.key" "$WORKTREE_PATH/config/credentials/development.key"
fi
# test.key (if exists)
if [ -f "$PROJECT_ROOT/config/credentials/test.key" ]; then
mkdir -p "$WORKTREE_PATH/config/credentials"
ln -sf "$PROJECT_ROOT/config/credentials/test.key" "$WORKTREE_PATH/config/credentials/test.key"
fi
Use full absolute paths for symlinks.
Worktree created:
Branch: 25-01-22-add-password-reset
Location: ../project-worktrees/25-01-22-add-password-reset
Rails credentials symlinked:
- config/master.key
- config/credentials/development.key
- config/credentials/test.key
To start working:
cd ../project-worktrees/25-01-22-add-password-reset
List worktrees:
git worktree list
Remove worktree:
git worktree remove ../project-worktrees/25-01-22-feature-name
Prune stale worktrees:
git worktree prune
User: create a worktree for adding stripe webhooks
Creating worktree...
Project: vc-matcher-app
Feature: adding stripe webhooks
Branch: 25-01-22-add-stripe-webhooks
$ mkdir -p ../vc-matcher-app-worktrees
$ git worktree add ../vc-matcher-app-worktrees/25-01-22-add-stripe-webhooks -b 25-01-22-add-stripe-webhooks
Symlinking Rails credentials...
$ ln -sf /Users/avi/Development/code/project/config/master.key ../vc-matcher-app-worktrees/25-01-22-add-stripe-webhooks/config/master.key
[additional symlinks...]
Done! Worktree ready at:
../vc-matcher-app-worktrees/25-01-22-add-stripe-webhooks
bundle install in new worktree if Gemfile differs