← ClaudeAtlas

project-worktreeslisted

Use when creating, entering, debugging or removing a git worktree under `.claude/worktrees/`, when a worktree URL returns 404 or 502, or when writing tooling that resolves a worktree's hostname, database or container name.
ubermuda/loupe · ★ 2 · AI & Automation · score 65
Install: claude install-skill ubermuda/loupe
# Git Worktrees ## Overview Every worktree is a full application of its own, with its own URL, database and compiled CSS. Only nginx and Mailpit are duplicated. php-fpm, Postgres and the Mercure hub are shared with the main stack. Mercure sits behind a compose profile and stays off until someone runs `just mercure-up`, so a worktree working on site-review push must start it, and then shares that one hub with every other worktree. This works because the main checkout is mounted at `/var/www/html` and worktrees live inside it, so a worktree's files sit at the same path in its own nginx sidecar and in the shared php-fpm. Only the document root differs. A worktree is served through its own `public/index.php`, so Symfony boots with the worktree as its project directory and reads that worktree's `.env` chain, over HTTP and on the CLI alike. ## Quick reference | Command | Does | |---|---| | `just worktree-up NAME` | Provision (or repair) a worktree, from anywhere. Idempotent. | | `just worktrees` | Every worktree with its URL, database and sidecar status | | `just worktree-down <name>` | Remove worktree + sidecar + both databases | | `just worktree-prune` | Clean up sidecars/databases orphaned by `git worktree remove` | | `just worktree-tailwind` | Tailwind watch mode for the current worktree. Rarely needed: the `tailwind-worktrees` service already rebuilds every worktree. | Each worktree gets `https://<slug>.loupe.dev.localhost`, dev DB `app_wt_<slug>`, test DB `app_test_<slu