원클릭으로
git-worktree-vibe-flow
// Mandatory worktree development SOP (GitHub PR). Always follow for branch/worktree/commit/push/PR lifecycle and parallel vibe coding.
// Mandatory worktree development SOP (GitHub PR). Always follow for branch/worktree/commit/push/PR lifecycle and parallel vibe coding.
| name | git-worktree-vibe-flow |
| slug | git-worktree-vibe-flow |
| version | 1.0.0 |
| description | Mandatory worktree development SOP (GitHub PR). Always follow for branch/worktree/commit/push/PR lifecycle and parallel vibe coding. |
Operate with a stable control worktree (repo root) + one task worktree per task.
Defaults:
git reset --hard, git push --force, interactive rebase..env*/secret files.<repo_parent>/.worktrees/<repoName>/<branchPath>.feature/<slug> or fix/<slug>vibe/<YYYYMMDD>-<slug>slug: lowercase letters/digits/hyphen, keep short.Every session start (from control worktree):
git fetch --prune originorigin/HEAD: git rev-parse --abbrev-ref origin/HEAD (e.g. origin/main)git switch <base>git pull --ff-only origin <base>If control worktree is dirty: do not develop there; create/reuse a task worktree instead.
Create a new worktree when tasks can progress independently or the current worktree is not clean. Avoid parallel worktrees if tasks touch the same core files.
git worktree list --porcelain (find branch refs/heads/<branch>)<repo_parent>/.worktrees/<repoName>/git worktree add -b <branch> <worktreePath> origin/<base>git status + git branch --show-currentGoal: keep ONE canonical local secret/config in repo root; each worktree symlinks to it (no copying).
Whitelist (repo-root files only):
.env.env.local.env.*.local (e.g. .env.development.local).envrc (direnv)config.local.*, settings.local.*, *.local.json, *.local.yml, *.local.yaml, *.local.toml.npmrc (treat as sensitive; never print; never commit)Rules:
Never link build outputs or dependency dirs (do NOT share across branches):
node_modules/, .venv/, dist/, build/, .next/, target/, out/.Always install dependencies inside the task worktree.
Prefer existing lockfiles/tools (do not migrate by default):
pnpm-lock.yaml -> pnpm install; package-lock.json -> npm ci; yarn.lock -> yarn install --frozen-lockfileuv.lock -> uv sync; poetry.lock -> poetry install; else venv + pip per repo docsAlways remind about global-cache acceleration (recommendation, not an automatic migration):
In task worktree:
.env*, .npmrc, *.local.*.git log -10 --pretty=format:%s).git push -u origin <branch>gh pr create --base <base> --head <branch> --title <title> --body <body>If gh is not available:
PR body should include:
After PR is created:
gh pr view <pr> --json merged,mergedAt,state,headRefName,baseRefName,urlWhen PR is merged:
git push origin --delete <branch> (note if rejected, continue).git worktree remove <worktreePath>git branch -d <branch>git worktree pruneIf PR is closed/unmerged:
git worktree list --porcelain and reuse it..gitignore if missing; do not proceed until clean.