Skip to content
Back to skills

Worktree Wizard Integration

ASecurity

This skill should be used when the user asks to "set up worktree-wizard", "integrate worktree-wizard", "add worktree support", "create docker-compose for worktrees", "add wt labels", "configure hot-reload for Docker", "set up volume mounts", "isolate ports per worktree", "onboard project to worktree-wizard", or needs guidance on wt.base-port labels, WT_* env var patterns, slot-based port isolation, dev-mode Dockerfiles, or hot-reload configurations per framework.

  • 42 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 31, 2026
developmentpythonrustgojavarubybashsqlnextjsnodeexpress

Works with

  • cli
  • api

Security analysis

A100/100

Scanned May 31, 2026

npx -y skills add diegosouzapw/awesome-omni-skill --skill worktree-wizard-integration --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Worktree Wizard Integration?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Worktree Wizard Integration
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/diegosouzapw-worktree-wizard-integration/badge)](https://www.skillsdirectory.com/skills/diegosouzapw-worktree-wizard-integration)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: worktree-wizard-integration
description: This skill should be used when the user asks to "set up worktree-wizard", "integrate worktree-wizard", "add worktree support", "create docker-compose for worktrees", "add wt labels", "configure hot-reload for Docker", "set up volume mounts", "isolate ports per worktree", "onboard project to worktree-wizard", or needs guidance on wt.base-port labels, WT_* env var patterns, slot-based port isolation, dev-mode Dockerfiles, or hot-reload configurations per framework.
version: 0.1.0
---

# worktree-wizard Integration Knowledge

## Purpose

Provide the domain knowledge needed to correctly integrate worktree-wizard into any project. This includes docker-compose conventions, env var patterns, volume mount strategies, hot-reload configurations, and justfile setup.

## Core Conventions

### Port Isolation via Labels

Add a `wt.base-port` label to every service needing port isolation. worktree-wizard adds the slot number (1-9) to compute the host port per worktree.

```yaml
services:
  api:
    labels:
      wt.base-port: "8000"
    ports:
      - "${WT_API_PORT:-8000}:8000"   # host:container
```

**Rules:**
- Label value is the base port (slot 0 / main repo)
- Container-internal port never changes — only host port offsets
- Env var naming: `WT_{SERVICE_NAME_UPPER}_PORT` (hyphens/dots become underscores)
- Always provide `:-default` fallback so slot 0 works without env vars
- Services with multiple ports: use `wt.base-port` for the primary port only; additional ports use manual env var patterns

### Data Isolation

To opt in to data isolation for a service, add a `wt.data-dir` label. This creates isolated data directories per slot.

```yaml
  db:
    labels:
      wt.data-dir: "/var/lib/postgresql/data"
    volumes:
      - ${WT_DB_DATA:-./.docker-data/db}:/var/lib/postgresql/data
```

### Internal Networking

Services communicate by **service name** over Docker's internal network. Port offsets are irrelevant for inter-service communication:

```yaml
  backend:
    environment:
      - DATABASE_URL=postgresql://postgres:postgres@db:5432/app
```

Never use `localhost` or offset ports for service-to-service connections.

## Volume Mounts for Hot-Reload

Mount source code into the container so host edits are visible immediately:

```yaml
  backend:
    volumes:
      - ./backend:/app        # source code
```

For Node.js services, preserve container `node_modules` with an anonymous volume:

```yaml
  frontend:
    volumes:
      - ./frontend:/app
      - /app/node_modules     # prevents host node_modules from shadowing
```

## Hot-Reload per Framework

For per-framework Dockerfile patterns, dev commands, and configuration details, consult `references/stack-patterns.md`.

**Quick reference:**

| Framework | Dev Command | Watches |
|-----------|------------|---------|
| FastAPI | `uvicorn main:app --reload --host 0.0.0.0` | `*.py` |
| Django | `python manage.py runserver 0.0.0.0:8000` | `*.py` |
| Flask | `flask run --reload --host 0.0.0.0` | `*.py` |
| Express | `nodemon index.js` or `tsx watch` | `*.js/*.ts` |
| Vite | `vite --host 0.0.0.0 --port 3000` | `src/`, `index.html` |
| Next.js | `next dev --hostname 0.0.0.0 --port 3000` | `pages/`, `app/` |
| Go (Air) | `air` | `*.go` |
| Rust (cargo-watch) | `cargo watch -x run` | `*.rs` |
| Rails | `rails server -b 0.0.0.0` | `app/`, `config/` |
| Spring Boot | `./mvnw spring-boot:run` | `src/` (with devtools) |

## Justfile Setup

Import worktree.just from the project justfile:

```just
import "worktree-wizard/worktree.just"
```

Override config vars **before** the import if needed:

```just
wt-health-timeout := "90"
import "worktree-wizard/worktree.just"
```

## .wt-required-tools

List CLI tools the project needs beyond git/just/docker:

```
# .wt-required-tools
node
psql
```

## Post-Setup Hook

For custom logic after worktree creation (migrations, seed data):

```bash
#!/bin/bash
# scripts/wt-post-setup.sh
echo "Running migrations..."
docker compose exec -T db psql -U postgres -c "CREATE DATABASE app;" 2>/dev/null || true
```

Must be executable: `chmod +x scripts/wt-post-setup.sh`

## .gitignore Additions

Always add:
```
.worktrees/
.docker-data/
.env*.local
```

## Project Shapes

### Single Service
One backend or microservice with optional database:
- 1 app service + 0-2 infrastructure services (db, cache)
- Volume mount at project root: `./:/app` or `./src:/app/src`

### Monolith (Backend + Frontend)
Separate subdirectories for backend and frontend:
- Backend service: volume `./backend:/app`
- Frontend service: volume `./frontend:/app` + `/app/node_modules`
- Each gets its own `wt.base-port`
- Frontend references backend via service name internally, via `WT_BACKEND_PORT` for browser access

## Additional Resources

### Reference Files
- **`references/stack-patterns.md`** — Dockerfile templates, dev commands, and compose service blocks per framework (Python, Node, Go, Rust, Ruby, Java)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…