Repository navigation
Expand file tree
/
Copy path.workmux.yaml
More file actions
76 lines (62 loc) · 3.13 KB
/
Copy path.workmux.yaml
File metadata and controls
76 lines (62 loc) · 3.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# Workmux Configuration for Ushadow Project
# This config optimizes git worktree + tmux workflow for parallel environment development
# Main branch to merge into (auto-detected from git, but can override)
main_branch: "main"
# Where worktrees are created (relative to project root or absolute path)
# Using parent directory pattern for cleaner organization
worktree_dir: "../"
# Prefix for tmux window names (helps identify workmux windows)
window_prefix: "ushadow-"
# Default merge strategy: merge | rebase | squash
# Rebase recommended for cleaner history
merge_strategy: "rebase"
# How to name worktree directories: full (branch name) | basename (last component)
worktree_naming: "full"
# Commands to run after worktree creation (before tmux window opens)
post_create:
# Setup VSCode colors for environment identification
- "uv run --with pyyaml python3 -c \"from setup.vscode_utils.colors import setup_colors_for_directory; from pathlib import Path; setup_colors_for_directory(Path('.'), '$(basename $(pwd))')\" || true"
# Generate secrets if needed
- "bash scripts/generate-secrets.sh || true"
# Commands to run before merging (aborts merge if any fail)
pre_merge:
# Update ticket status to done when merging
- "kanban-cli move-to-done \"$WM_WORKTREE_PATH\" || true"
# Ensure tests pass before merging
# - "make test" # Uncomment when test suite is ready
# Commands to run before removing worktree
pre_remove:
# Stop any running containers for this environment
- "ENV_NAME=$(basename $(pwd)) bash scripts/stop-env.sh || true"
# File operations (applied after worktree creation)
files:
# Copy these files/patterns to each worktree (separate configs per env)
copy:
- ".env" # Each environment gets its own .env with unique ports
- ".vscode/settings.json" # VSCode colors set per environment
# Symlink these files/patterns (shared across worktrees)
symlink:
- "node_modules" # Share node_modules to save disk space
- ".venv" # Share Python virtual environment
- "ushadow/frontend/node_modules" # Share frontend deps
# Tmux pane layout (how the window is organized)
panes:
# Main pane - ready for commands or agent interaction
- command: "echo '🚀 Ushadow Environment: $(basename $(pwd))' && echo '' && echo 'Quick commands:' && echo ' ./dev.sh - Start in dev mode' && echo ' ./go.sh - Start in prod mode' && echo ' make test - Run tests' && echo ' code . - Open in VSCode' && echo '' && $SHELL"
focus: true
# Agent status icons (shown in tmux status bar)
status_icons:
working: '🤖' # Agent actively processing
waiting: '💬' # Agent waiting for input
done: '✅' # Agent task completed
error: '❌' # Agent encountered error
# Auto-format tmux status line to show agent status
status_format: true
# LLM-based branch name generation (when using --auto-name flag)
auto_name:
# Use fast, cheap model for branch name generation
model: 'gemini-2.0-flash-lite'
system_prompt: |
Generate a short, descriptive git branch name (2-4 words, kebab-case).
Focus on the feature/fix being worked on.
Examples: "fix-auth-bug", "add-tailscale-wizard", "refactor-docker-setup"