Loading...
Loading...
git worktrees, git worktree setup, git worktree configuration, branching work syncing branches
npx skill4agent add editframe/skills monorepo-setup-worktrees| Scope | Services | Containers | Create time |
|---|---|---|---|
| Elements runner + dev-projects only | 2 | ~28s |
| Elements + telecine core (web, hasura, valkey, maintenance) | 8 | ~1:30 |
| Elements + telecine core + render pipeline (workers, scheduler) | ~22 | ~2:30 |
elementswebrenderscripts/worktree <command>worktree create <branch> [scope] # Create new worktree (default: web)
worktree list # List all worktrees
worktree status [branch] # Health check
worktree pause <branch> # Stop containers
worktree resume <branch> # Start containers
worktree remove <branch> [--force] # Full cleanup
worktree upgrade <branch> <scope> # Escalate scope (elements→web→render)
worktree merge <branch> # Merge branch into main (feature → main)
worktree pull # Fetch upstream, update local main, sync main → all worktrees
worktree prune [--dry-run] # Remove worktrees whose branches are fully merged into main
worktree smoke <branch> # One-shot render verification
worktree logs [branch] [options] # View logs
worktree doctor [branch] [--skills] # Diagnose issues
worktree editor-deps [branch] # Install host-side node_modules for editor tooling
worktree deps [--workspace=...] # Show dependency graph~/Editframe/
monorepo -> worktrees/main/monorepo (symlink for convenience)
worktrees/
main/
.worktree-scope # scope for main (e.g. "render")
monorepo/ # primary monorepo checkout [main]
telecine -> ../telecine # symlink
elements -> ../elements # symlink
telecine/ # primary telecine clone [main]
elements/ # primary elements clone [main]
<branch>/
.worktree-scope # scope for this branch
monorepo/ # monorepo worktree [branch]
telecine/ # telecine git worktree [branch]
elements/ # elements git worktree [branch]worktrees/main/maingit checkoutgit switchworktree creategit checkout <branch>scripts/worktree.tscmdCreatemainmaincmdMergemaingit checkout~/Editframe/monorepoworktrees/main/monorepocdmy-feature~/Editframe/worktrees/my-feature/monorepo/~/Editframe/worktrees/my-feature/monorepo/git -C ~/Editframe/worktrees/my-feature/monorepo <command>workdir~/Editframe/worktrees/my-feature/elements/scripts/<script>~/Editframe/worktrees/my-feature/telecine/scripts/<script>worktrees/main/git worktree list | grep my-featureEDITFRAME_DIR$(dirname $(dirname $(dirname $(git rev-parse --show-toplevel))))editframe-postgrestelecine-<branch>editframe-traefikHost<branch>.localhosttelecine-runnerelements-runnertelecine-templatetelecine-maintelecine/scripts/startcksumtelecine/scripts/worktree-configWORKTREE_IDWORKTREE_DATABASEWORKTREE_DOMAINWORKTREE_DOCKER_PROJECT_NAMEelements/scripts/worktree-config.worktree-scoperenderdevtelecine/scripts/start.worktree-scopeCOMPOSE_PROFILESnpm installup -d runnernpm installup -dworktree pullworktree pullorigin/mainpackage.jsonpackage-lock.jsonVERSION.tsworktree prune # remove all fully-merged worktrees
worktree prune --dry-run # preview what would be removedprunecreate (elements, 28s) → upgrade (web, 63s) → upgrade (render)
↓ ↓
pause/resume pause/resume
↓
removeroot: elements/dev-projects//dev-projects/video.htmlhttp://<branch>.localhost:4321/video.htmlcanvas-demo.htmlhttp://<branch>.localhost:4321/canvas-demo.htmldev-projects/elements/dev-projects/worktree createDEV_PROJECTS_HOSTelements/.envdocker-compose.yaml/packages/dev-projectsworktree smoke <branch>webrenderelementswebrendertelecine/scripts/smoke-test.tsEF_HOST=http://web:3000EF_TOKENhttp://<branch>.localhost:3000webworktree smokescheduler-goworktree smokescripts/build-runner-imagesnode_modulesnode_modulesworktree createnpm install --ignore-scriptsworktree editor-deps <branch>worktree doctorworktree doctordocker rm -fworktree createworktree remove --force <branch>scripts/update-template-db