
Worktrees
- 1 installs
- 838 repo stars
- Updated August 4, 2026
- getstream/stream-chat-react
Creates and manages git worktrees for isolated plan execution, keeping all plan work out of the main repo checkout and rebasing rather than merging.
About
A skill for setting up and maintaining dedicated git worktrees so plan work stays isolated from the main checkout. A developer uses it to create, sync, rebase, and clean up worktrees for a plan branch.
- Convention-based worktree path and feature branch per plan
- Sync via rebase, never merge, and only between phases
Worktrees by the numbers
- 1 all-time installs (skills.sh)
- Ranked #524 of 733 Git & Pull Requests skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/getstream/stream-chat-react --skill worktreesAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1 |
|---|---|
| repo stars | ★ 838 |
| Last updated | August 4, 2026 |
| Repository | getstream/stream-chat-react ↗ |
What it does
Creates and manages git worktrees for isolated plan execution, keeping all plan work out of the main repo checkout and rebasing rather than merging.
Files
Git Worktrees for Plans
Rule: All plan work happens in a dedicated worktree. Never do plan tasks in the main repo checkout.
Create Worktree for a Plan
From the main repo directory:
# Convention: ../<repo-name>-worktrees/<plan-name>
git worktree add ../stream-chat-react-worktrees/<plan-name> -b <plan-branch-name>
# Example
git worktree add ../stream-chat-react-worktrees/gallery-redesign -b feat/gallery-redesign- Worktree path:
../stream-chat-react-worktrees/<short-descriptive-name> - Branch:
feat/<descriptive-name>(repo conventions) - Base: current branch when creating
Then in the plan file (specs/<plan-name>/plan.md) include a Worktree section with path, branch, base branch. Agent must cd into the worktree before any work.
cd ../stream-chat-react-worktrees/<plan-name>
yarn installSync with Base Branch (Rebase, Never Merge)
From the worktree:
cd ../stream-chat-react-worktrees/<plan-name>
git fetch origin
git rebase origin/<base-branch>If conflicts: resolve → git add <files> → git rebase --continue. Do not git rebase --abort unless stuck. Then yarn install, yarn types, yarn test.
When to sync: Before a new phase, before final integration, when base changed. Not mid-task.
Conflict rules: Prefer base for files outside plan scope; prefer worktree for files the plan owns. After resolve, run yarn types and yarn test.
Preview Branch (from main/master)
Keep a branch derived from main (or master) continuously updated with the worktree branch so others can preview by checking out that branch. Name: agent/<branch-name> (e.g. agent/feat/gallery-redesign).
Create once (from main repo):
git fetch origin
git checkout -b agent/<branch-name> origin/main # e.g. agent/feat/gallery-redesign
git push -u origin agent/<branch-name>Update preview after commits in the worktree (run from main repo):
cd /path/to/main/repo
git fetch origin
git checkout agent/<branch-name>
git merge feat/<plan-branch-name>
git push origin agent/<branch-name>- Do this after each meaningful milestone or when someone needs to preview.
- Document in
specs/<plan-name>/plan.md: Preview branch:agent/<branch-name>— checkout to preview.
Lifecycle
List worktrees: git worktree list
Remove after plan is merged (from main repo):
cd /path/to/main/repo
git worktree remove ../stream-chat-react-worktrees/<plan-name>
git branch -d feat/<plan-branch-name> # optional if merged- Never delete a worktree with uncommitted changes (commit or stash first).
- Avoid
git worktree remove --forceunless no work will be lost. - One worktree per plan; do not push from worktree without explicit approval.
For plan structure and task template, see the make-plans skill.
Remote
Never push to remote.