shipwright-cli 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +160 -72
- package/completions/_shipwright +59 -7
- package/completions/shipwright.bash +24 -4
- package/completions/shipwright.fish +80 -2
- package/dashboard/server.ts +208 -0
- package/docs/tmux-research/TMUX-ARCHITECTURE.md +567 -0
- package/docs/tmux-research/TMUX-AUDIT.md +925 -0
- package/docs/tmux-research/TMUX-BEST-PRACTICES-2025-2026.md +829 -0
- package/docs/tmux-research/TMUX-QUICK-REFERENCE.md +543 -0
- package/docs/tmux-research/TMUX-RESEARCH-INDEX.md +438 -0
- package/package.json +2 -2
- package/scripts/lib/helpers.sh +7 -0
- package/scripts/sw +116 -2
- package/scripts/sw-activity.sh +1 -1
- package/scripts/sw-adaptive.sh +1 -1
- package/scripts/sw-adversarial.sh +1 -1
- package/scripts/sw-architecture-enforcer.sh +1 -1
- package/scripts/sw-auth.sh +1 -1
- package/scripts/sw-autonomous.sh +128 -38
- package/scripts/sw-changelog.sh +1 -1
- package/scripts/sw-checkpoint.sh +1 -1
- package/scripts/sw-ci.sh +1 -1
- package/scripts/sw-cleanup.sh +1 -1
- package/scripts/sw-code-review.sh +62 -1
- package/scripts/sw-connect.sh +1 -1
- package/scripts/sw-context.sh +1 -1
- package/scripts/sw-cost.sh +44 -3
- package/scripts/sw-daemon.sh +155 -27
- package/scripts/sw-dashboard.sh +1 -1
- package/scripts/sw-db.sh +958 -118
- package/scripts/sw-decompose.sh +1 -1
- package/scripts/sw-deps.sh +1 -1
- package/scripts/sw-developer-simulation.sh +1 -1
- package/scripts/sw-discovery.sh +1 -1
- package/scripts/sw-docs-agent.sh +1 -1
- package/scripts/sw-docs.sh +1 -1
- package/scripts/sw-doctor.sh +49 -1
- package/scripts/sw-dora.sh +1 -1
- package/scripts/sw-durable.sh +1 -1
- package/scripts/sw-e2e-orchestrator.sh +1 -1
- package/scripts/sw-eventbus.sh +1 -1
- package/scripts/sw-feedback.sh +23 -15
- package/scripts/sw-fix.sh +1 -1
- package/scripts/sw-fleet-discover.sh +1 -1
- package/scripts/sw-fleet-viz.sh +1 -1
- package/scripts/sw-fleet.sh +1 -1
- package/scripts/sw-github-app.sh +1 -1
- package/scripts/sw-github-checks.sh +4 -4
- package/scripts/sw-github-deploy.sh +1 -1
- package/scripts/sw-github-graphql.sh +1 -1
- package/scripts/sw-guild.sh +1 -1
- package/scripts/sw-heartbeat.sh +1 -1
- package/scripts/sw-hygiene.sh +1 -1
- package/scripts/sw-incident.sh +45 -6
- package/scripts/sw-init.sh +150 -24
- package/scripts/sw-instrument.sh +1 -1
- package/scripts/sw-intelligence.sh +1 -1
- package/scripts/sw-jira.sh +1 -1
- package/scripts/sw-launchd.sh +1 -1
- package/scripts/sw-linear.sh +1 -1
- package/scripts/sw-logs.sh +1 -1
- package/scripts/sw-loop.sh +204 -19
- package/scripts/sw-memory.sh +18 -1
- package/scripts/sw-mission-control.sh +1 -1
- package/scripts/sw-model-router.sh +1 -1
- package/scripts/sw-otel.sh +1 -1
- package/scripts/sw-oversight.sh +76 -1
- package/scripts/sw-pipeline-composer.sh +1 -1
- package/scripts/sw-pipeline-vitals.sh +1 -1
- package/scripts/sw-pipeline.sh +261 -12
- package/scripts/sw-pm.sh +70 -5
- package/scripts/sw-pr-lifecycle.sh +1 -1
- package/scripts/sw-predictive.sh +8 -1
- package/scripts/sw-prep.sh +1 -1
- package/scripts/sw-ps.sh +1 -1
- package/scripts/sw-public-dashboard.sh +1 -1
- package/scripts/sw-quality.sh +1 -1
- package/scripts/sw-reaper.sh +1 -1
- package/scripts/sw-recruit.sh +1853 -178
- package/scripts/sw-regression.sh +1 -1
- package/scripts/sw-release-manager.sh +1 -1
- package/scripts/sw-release.sh +1 -1
- package/scripts/sw-remote.sh +1 -1
- package/scripts/sw-replay.sh +1 -1
- package/scripts/sw-retro.sh +1 -1
- package/scripts/sw-scale.sh +1 -1
- package/scripts/sw-security-audit.sh +1 -1
- package/scripts/sw-self-optimize.sh +1 -1
- package/scripts/sw-session.sh +1 -1
- package/scripts/sw-setup.sh +263 -127
- package/scripts/sw-standup.sh +1 -1
- package/scripts/sw-status.sh +44 -2
- package/scripts/sw-strategic.sh +189 -41
- package/scripts/sw-stream.sh +1 -1
- package/scripts/sw-swarm.sh +42 -5
- package/scripts/sw-team-stages.sh +1 -1
- package/scripts/sw-templates.sh +4 -4
- package/scripts/sw-testgen.sh +66 -15
- package/scripts/sw-tmux-pipeline.sh +1 -1
- package/scripts/sw-tmux-role-color.sh +58 -0
- package/scripts/sw-tmux-status.sh +128 -0
- package/scripts/sw-tmux.sh +1 -1
- package/scripts/sw-trace.sh +1 -1
- package/scripts/sw-tracker.sh +1 -1
- package/scripts/sw-triage.sh +61 -37
- package/scripts/sw-upgrade.sh +1 -1
- package/scripts/sw-ux.sh +1 -1
- package/scripts/sw-webhook.sh +1 -1
- package/scripts/sw-widgets.sh +1 -1
- package/scripts/sw-worktree.sh +1 -1
- package/templates/pipelines/autonomous.json +2 -2
- package/tmux/shipwright-overlay.conf +35 -17
- package/tmux/tmux.conf +23 -21
|
@@ -0,0 +1,438 @@
|
|
|
1
|
+
# tmux Research Index: Best-in-Class 2025-2026
|
|
2
|
+
|
|
3
|
+
**Research Completion Date**: February 12, 2026
|
|
4
|
+
**Focus Areas**: 14 comprehensive topics
|
|
5
|
+
**Total Documentation**: 4 detailed guides + this index
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
This research compiled best-in-class tmux configurations, patterns, and integrations from the 2025-2026 ecosystem, with special emphasis on:
|
|
12
|
+
|
|
13
|
+
1. Modern developer workflows
|
|
14
|
+
2. AI agent multi-pane orchestration
|
|
15
|
+
3. Neovim + Claude Code integration
|
|
16
|
+
4. High-throughput terminal scenarios
|
|
17
|
+
5. Shipwright daemon patterns
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Document Guide
|
|
22
|
+
|
|
23
|
+
### 1. TMUX-BEST-PRACTICES-2025-2026.md (29 KB)
|
|
24
|
+
|
|
25
|
+
**The comprehensive configuration bible**
|
|
26
|
+
|
|
27
|
+
| Section | Coverage |
|
|
28
|
+
| ------------------------- | ---------------------------------------------------------------- |
|
|
29
|
+
| 1. Core Patterns | Oh My Tmux! philosophy, version detection, conditional configs |
|
|
30
|
+
| 2. Status Line | Minimal design, production templates, Neovim integration |
|
|
31
|
+
| 3. Advanced Features | Hooks, copy-mode, popups, mouse handling |
|
|
32
|
+
| 4. Plugin Ecosystem | TPM, essential plugins, modern tools (2025-2026) |
|
|
33
|
+
| 5. Neovim Integration | vim-tmux-navigator, claude-code.nvim, sidekick.nvim, avante.nvim |
|
|
34
|
+
| 6. Performance Tuning | Claude Code high-throughput optimization |
|
|
35
|
+
| 7. CI/CD Patterns | Automated session setup, GitHub Actions integration |
|
|
36
|
+
| 8. Shipwright Config | Daemon setup, team pane layouts, vitals monitoring |
|
|
37
|
+
| 9. Best Practices Summary | Quick reference table |
|
|
38
|
+
| 10. Config Templates | Minimal production + full-featured configs |
|
|
39
|
+
| 11. Resources | Links to official docs, frameworks, plugins |
|
|
40
|
+
|
|
41
|
+
**When to Use**: Deep understanding of features, production configuration, troubleshooting complex setups
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
### 2. TMUX-ARCHITECTURE.md (43 KB)
|
|
46
|
+
|
|
47
|
+
**Visual architecture and integration patterns**
|
|
48
|
+
|
|
49
|
+
| Section | Purpose |
|
|
50
|
+
| ------------------------------- | --------------------------------------------------------- |
|
|
51
|
+
| 1. Core Architecture | ASCII diagram of tmux server, sessions, windows, panes |
|
|
52
|
+
| 2. Modern Neovim+AI | Full integration diagram (Neovim ↔ Claude ↔ tmux) |
|
|
53
|
+
| 3. Shipwright Pipeline | Daemon with 4 parallel workers, heartbeats, cost tracking |
|
|
54
|
+
| 4. Plugin Architecture | TPM flow and plugin categories |
|
|
55
|
+
| 5. Config Override Hierarchy | Load order and precedence rules |
|
|
56
|
+
| 6. Hooks & Lifecycle | Session/window/pane event flow |
|
|
57
|
+
| 7. Mouse Mode Trade-offs | Decision table for mouse on/off scenarios |
|
|
58
|
+
| 8. Copy Mode Data Flow | Selection → clipboard → system integration |
|
|
59
|
+
| 9. Floating Popups | Visual example of display-popup usage |
|
|
60
|
+
| 10. Integration Points | How Shipwright, Claude Code, Neovim coordinate |
|
|
61
|
+
| 11. Performance Characteristics | Memory, CPU, latency benchmarks |
|
|
62
|
+
| 12. Feature Decision Tree | Choose right tool for each task |
|
|
63
|
+
|
|
64
|
+
**When to Use**: Visual learners, understanding integration patterns, debugging coordination issues
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
### 3. TMUX-QUICK-REFERENCE.md (13 KB)
|
|
69
|
+
|
|
70
|
+
**Fast lookup for developers**
|
|
71
|
+
|
|
72
|
+
| Section | Content |
|
|
73
|
+
| ----------------------- | ----------------------------------------------------- |
|
|
74
|
+
| Installation | macOS, Linux, source build |
|
|
75
|
+
| Oh My Tmux Setup | 3-line quick start |
|
|
76
|
+
| Essential Keybindings | All critical shortcuts in table format |
|
|
77
|
+
| Command-Line Essentials | `tmux` command reference |
|
|
78
|
+
| Config Patterns | Copy-paste ready snippets |
|
|
79
|
+
| Plugin Manager | TPM install + common plugins |
|
|
80
|
+
| Scripting Examples | Multi-pane setup, multi-agent workflow, file watchers |
|
|
81
|
+
| Troubleshooting | Colors, ESC delay, clipboard, version checks |
|
|
82
|
+
| Performance Tuning | High-throughput settings |
|
|
83
|
+
| One-Liners | Useful bash commands |
|
|
84
|
+
| Version Compatibility | Feature support by tmux version |
|
|
85
|
+
|
|
86
|
+
**When to Use**: During active development, copy-paste configuration, quick lookups
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Key Findings Summary
|
|
91
|
+
|
|
92
|
+
### Best-in-Class Configuration (2025-2026)
|
|
93
|
+
|
|
94
|
+
**Gold Standard**: [Oh My Tmux!](https://github.com/gpakosz/.tmux) (gpakosz/.tmux)
|
|
95
|
+
|
|
96
|
+
- Actively maintained as of 2025
|
|
97
|
+
- 100+ contributors
|
|
98
|
+
- Philosophy: Never edit core config; customize via `.tmux.conf.local`
|
|
99
|
+
- Dual prefix support (C-a + C-b for nested sessions)
|
|
100
|
+
- SSH-aware, Powerline-inspired theming
|
|
101
|
+
|
|
102
|
+
**Essential Plugins** (via TPM):
|
|
103
|
+
|
|
104
|
+
1. `tmux-plugins/tmux-sensible` — Sensible defaults
|
|
105
|
+
2. `christoomey/vim-tmux-navigator` — Vim ↔ tmux seamless navigation
|
|
106
|
+
3. `tmux-plugins/tmux-yank` — System clipboard integration
|
|
107
|
+
4. `tmux-plugins/tmux-resurrect` — Persist sessions across restarts
|
|
108
|
+
5. `tmux-plugins/tmux-continuum` — Auto-save every 5 minutes
|
|
109
|
+
|
|
110
|
+
**Modern Tools** (new in 2025-2026):
|
|
111
|
+
|
|
112
|
+
- **dmux** (Rust) — Workspace manager for multi-agent setups
|
|
113
|
+
- **sessionx** — FZF session switcher with preview
|
|
114
|
+
- **sesh** — Intelligent session detection by project type
|
|
115
|
+
- **treemux** (Rust) — File explorer sidebar (Nvim-Tree style)
|
|
116
|
+
- **laio** (Rust) — Flexbox-inspired declarative layouts
|
|
117
|
+
|
|
118
|
+
### Critical Settings for AI Development
|
|
119
|
+
|
|
120
|
+
```tmux
|
|
121
|
+
set -g escape-time 0 # Neovim ESC responsiveness
|
|
122
|
+
set -g history-limit 250000 # Claude Code output volume
|
|
123
|
+
set -g allow-passthrough on # DEC 2026 synchronized output
|
|
124
|
+
set -g extended-keys on # Alt key combinations work
|
|
125
|
+
set -g focus-events on # TUI app focus tracking
|
|
126
|
+
set -g set-clipboard on # OSC 52 native clipboard
|
|
127
|
+
set -g status-interval 10 # Reduce CPU (5-10s better than 1s)
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Integration Patterns
|
|
131
|
+
|
|
132
|
+
**Pattern 1: Neovim + Claude Code in Same Session**
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
Window 1: Neovim (with sidekick.nvim, claude-code.nvim)
|
|
136
|
+
Window 2: Claude Code REPL (separate pane)
|
|
137
|
+
Window 3: Tests/Monitor (watch build output)
|
|
138
|
+
|
|
139
|
+
Navigation: Ctrl-h/j/k/l (vim-tmux-navigator) moves seamlessly
|
|
140
|
+
Workflow: Query Claude from Neovim, see response in adjacent pane
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**Pattern 2: Multi-Agent Autonomous Development**
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
Session: multi-agent-dev
|
|
147
|
+
├─ Window 1: Orchestrator (shipwright status)
|
|
148
|
+
├─ Window 2: Agent-1 (API backend, git worktree)
|
|
149
|
+
├─ Window 3: Agent-2 (UI frontend, git worktree)
|
|
150
|
+
├─ Window 4: Monitor (shipwright vitals, cost tracking)
|
|
151
|
+
└─ Window 5: Memory (failure patterns from last runs)
|
|
152
|
+
|
|
153
|
+
Each agent runs in isolated git worktree, no merge conflicts
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**Pattern 3: Floating Popups for Quick Tasks**
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
Ctrl+G → Floating scratch terminal (fzf, commands, repl)
|
|
160
|
+
Ctrl+S → Floating session switcher
|
|
161
|
+
Ctrl+J → Floating git status
|
|
162
|
+
Ctrl+F → Floating file search (rg + fzf)
|
|
163
|
+
Ctrl+P → Floating process monitor
|
|
164
|
+
|
|
165
|
+
Popups don't reshape main layout, press Escape to dismiss
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Performance Characteristics
|
|
169
|
+
|
|
170
|
+
| Metric | Value | Notes |
|
|
171
|
+
| ---------------------------------- | -------- | ---------------------------- |
|
|
172
|
+
| Memory (idle session) | 2 MB | Single session, no panes |
|
|
173
|
+
| Memory (4 panes + 250K scrollback) | 45-60 MB | Typical multi-agent setup |
|
|
174
|
+
| CPU (idle) | <0.1% | Minimal overhead |
|
|
175
|
+
| CPU (active with updates) | 0.5-2% | Terminal rendering dominates |
|
|
176
|
+
| Keyboard latency (C-a key) | <5ms | Instant with escape-time 0 |
|
|
177
|
+
| Pane switch latency (C-h) | <2ms | Native vim-tmux-navigator |
|
|
178
|
+
| Status bar update | <10ms | Every 5-10s intervals |
|
|
179
|
+
|
|
180
|
+
### Hooks Lifecycle
|
|
181
|
+
|
|
182
|
+
Key automation points:
|
|
183
|
+
|
|
184
|
+
- `after-new-session` — Create git worktree, init CLAUDE.md, start memory system
|
|
185
|
+
- `window-linked` — Auto-rename window to match branch
|
|
186
|
+
- `pane-exited` — Capture output, check status code, trigger next stage (if gated)
|
|
187
|
+
- `session-closed` — Save state, cleanup worktrees, post event to heartbeat
|
|
188
|
+
|
|
189
|
+
### Copy-Mode Best Practices
|
|
190
|
+
|
|
191
|
+
For TUI apps (Vim, Neovim, Claude Code):
|
|
192
|
+
|
|
193
|
+
- Bind vi-style keys: `v` begin, `y` copy, `H`/`L` line bounds
|
|
194
|
+
- Shift+drag for cross-pane selection (bypasses tmux capture)
|
|
195
|
+
- Don't use mouse mode in AI workflows (conflicts with tool focus)
|
|
196
|
+
- On macOS: bind `y` to `pbcopy`; on Linux: bind `y` to `xclip`
|
|
197
|
+
|
|
198
|
+
### Version Compatibility Matrix
|
|
199
|
+
|
|
200
|
+
| Feature | Min Version | Status |
|
|
201
|
+
| ------------------------------------ | ----------- | --------------------------- |
|
|
202
|
+
| `display-popup` (floating windows) | 3.2+ | Full support |
|
|
203
|
+
| `allow-passthrough` (DEC 2026 sync) | 3.2+ | Eliminates TUI flicker |
|
|
204
|
+
| `extended-keys` (Alt combinations) | 3.0+ | TUI compatibility |
|
|
205
|
+
| `focus-events` (app focus tracking) | 2.2+ | Responsive to window events |
|
|
206
|
+
| `set-clipboard` (OSC 52) | 3.2+ | Native clipboard over SSH |
|
|
207
|
+
| `if-shell` versioning (`%if` syntax) | 2.4+ | Conditional config loading |
|
|
208
|
+
| `copy-pipe-and-cancel` | 2.5+ | Enhanced copy behavior |
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Research Coverage
|
|
213
|
+
|
|
214
|
+
### Topics Fully Researched
|
|
215
|
+
|
|
216
|
+
1. **Core Configuration Patterns** ✓
|
|
217
|
+
- Oh My Tmux! framework
|
|
218
|
+
- Conditional version detection
|
|
219
|
+
- Override hierarchy
|
|
220
|
+
|
|
221
|
+
2. **Status Line Best Practices** ✓
|
|
222
|
+
- Minimal vs. informative trade-offs
|
|
223
|
+
- Performance considerations
|
|
224
|
+
- Neovim-specific optimizations
|
|
225
|
+
|
|
226
|
+
3. **Advanced Features** ✓
|
|
227
|
+
- Hooks (after-new-session, pane-exited, etc.)
|
|
228
|
+
- Copy-mode for TUI apps
|
|
229
|
+
- display-popup floating windows
|
|
230
|
+
- Mouse mode conflicts and resolution
|
|
231
|
+
|
|
232
|
+
4. **Plugin Ecosystem** ✓
|
|
233
|
+
- TPM installation and workflow
|
|
234
|
+
- Essential plugins (2025-2026)
|
|
235
|
+
- Modern tools (dmux, sessionx, sesh, treemux, laio)
|
|
236
|
+
|
|
237
|
+
5. **Neovim + AI Integration** ✓
|
|
238
|
+
- vim-tmux-navigator setup
|
|
239
|
+
- claude-code.nvim, sidekick.nvim, avante.nvim
|
|
240
|
+
- Multi-agent orchestration patterns
|
|
241
|
+
|
|
242
|
+
6. **Performance Tuning** ✓
|
|
243
|
+
- High-throughput Claude Code scenarios
|
|
244
|
+
- Memory and CPU optimization
|
|
245
|
+
- Status bar frequency tuning
|
|
246
|
+
|
|
247
|
+
7. **CI/CD and Automation** ✓
|
|
248
|
+
- Automated session setup scripts
|
|
249
|
+
- GitHub Actions integration
|
|
250
|
+
- Shipwright daemon patterns
|
|
251
|
+
|
|
252
|
+
8. **Hooks & Lifecycle** ✓
|
|
253
|
+
- Complete event list
|
|
254
|
+
- Use cases for each hook
|
|
255
|
+
- Shipwright integration examples
|
|
256
|
+
|
|
257
|
+
9. **Copy-Mode Optimization** ✓
|
|
258
|
+
- vi-style keybindings
|
|
259
|
+
- Clipboard integration (macOS, Linux)
|
|
260
|
+
- TUI app considerations
|
|
261
|
+
|
|
262
|
+
10. **Mouse Mode Handling** ✓
|
|
263
|
+
- On vs. Off trade-offs
|
|
264
|
+
- Shift+drag for selection
|
|
265
|
+
- AI tool compatibility
|
|
266
|
+
|
|
267
|
+
11. **Floating Popups** ✓
|
|
268
|
+
- display-popup syntax (3.2+)
|
|
269
|
+
- Use cases (fzf, git, file search)
|
|
270
|
+
- Best practices
|
|
271
|
+
|
|
272
|
+
12. **Conditional Configuration** ✓
|
|
273
|
+
- if-shell version detection
|
|
274
|
+
- %if modern syntax
|
|
275
|
+
- Platform-specific (darwin, linux)
|
|
276
|
+
|
|
277
|
+
13. **Session Management** ✓
|
|
278
|
+
- One session per project pattern
|
|
279
|
+
- Tmuxinator and alternatives
|
|
280
|
+
- Multi-agent git worktree patterns
|
|
281
|
+
|
|
282
|
+
14. **Shipwright Integration** ✓
|
|
283
|
+
- Daemon configuration
|
|
284
|
+
- Team pane layouts
|
|
285
|
+
- Vitals monitoring
|
|
286
|
+
- Cost tracking in status line
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## Recommended Reading Order
|
|
291
|
+
|
|
292
|
+
**For Quick Setup** (< 30 min):
|
|
293
|
+
|
|
294
|
+
1. Start: TMUX-QUICK-REFERENCE.md → Installation + Oh My Tmux setup
|
|
295
|
+
2. Copy: Minimal production config from TMUX-BEST-PRACTICES-2025-2026.md (section 10.1)
|
|
296
|
+
3. Install: TPM and essential plugins
|
|
297
|
+
4. Done: Reload config with `C-a r`
|
|
298
|
+
|
|
299
|
+
**For Deep Understanding** (2-3 hours):
|
|
300
|
+
|
|
301
|
+
1. Read: TMUX-BEST-PRACTICES-2025-2026.md sections 1-5
|
|
302
|
+
2. Visualize: TMUX-ARCHITECTURE.md sections 1-3 (diagrams)
|
|
303
|
+
3. Review: Integration examples (TMUX-BEST-PRACTICES-2025-2026.md section 5)
|
|
304
|
+
4. Reference: TMUX-QUICK-REFERENCE.md as needed
|
|
305
|
+
|
|
306
|
+
**For Shipwright Integration** (1-2 hours):
|
|
307
|
+
|
|
308
|
+
1. Read: TMUX-BEST-PRACTICES-2025-2026.md section 8
|
|
309
|
+
2. Review: TMUX-ARCHITECTURE.md section 3 (pipeline diagram)
|
|
310
|
+
3. Copy: Multi-agent workflow template from TMUX-BEST-PRACTICES-2025-2026.md (section 5.3)
|
|
311
|
+
4. Adapt: For your project layout
|
|
312
|
+
|
|
313
|
+
**For Performance Optimization** (30 min):
|
|
314
|
+
|
|
315
|
+
1. Reference: TMUX-ARCHITECTURE.md section 11 (benchmarks)
|
|
316
|
+
2. Review: TMUX-BEST-PRACTICES-2025-2026.md section 6
|
|
317
|
+
3. Apply: Settings to `.tmux.conf.local`
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## External Resources
|
|
322
|
+
|
|
323
|
+
### Official Documentation
|
|
324
|
+
|
|
325
|
+
- [tmux Manual](https://man7.org/linux/man-pages/man1/tmux.1.html) — Complete reference
|
|
326
|
+
- [GitHub tmux/tmux](https://github.com/tmux/tmux) — Release notes, issues
|
|
327
|
+
|
|
328
|
+
### Frameworks & Configs
|
|
329
|
+
|
|
330
|
+
- [Oh my tmux!](https://github.com/gpakosz/.tmux) — Actively maintained 2025
|
|
331
|
+
- [Awesome tmux](https://github.com/rothgar/awesome-tmux) — Community curated
|
|
332
|
+
- [tao-of-tmux](https://tao-of-tmux.readthedocs.io/) — Educational guide
|
|
333
|
+
|
|
334
|
+
### AI Integration Plugins
|
|
335
|
+
|
|
336
|
+
- [claude-code.nvim](https://github.com/dreemanuel/claude-code.nvim) — Neovim + Claude + tmux
|
|
337
|
+
- [sidekick.nvim](https://github.com/folke/sidekick.nvim) — AI sidekick with tmux backend
|
|
338
|
+
- [avante.nvim](https://github.com/yetone/avante.nvim) — Multi-provider AI in Neovim
|
|
339
|
+
|
|
340
|
+
### Plugin Manager & Plugins
|
|
341
|
+
|
|
342
|
+
- [TPM](https://github.com/tmux-plugins/tpm) — Plugin manager
|
|
343
|
+
- [vim-tmux-navigator](https://github.com/christoomey/vim-tmux-navigator) — Seamless navigation
|
|
344
|
+
- [tmux-resurrect](https://github.com/tmux-plugins/tmux-resurrect) — Session persistence
|
|
345
|
+
- [tmux-continuum](https://github.com/tmux-plugins/tmux-continuum) — Auto-save
|
|
346
|
+
|
|
347
|
+
### Multi-Agent Workflows
|
|
348
|
+
|
|
349
|
+
- [Shipwright](https://github.com/sethdford/shipwright) — Autonomous agent pipeline (this repo!)
|
|
350
|
+
- [multi-agent-workflow-kit](https://github.com/laris-co/multi-agent-workflow-kit) — Reusable patterns
|
|
351
|
+
- [workmux](https://github.com/raine/workmux) — git worktrees + tmux windows
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
## Implementation Checklist
|
|
356
|
+
|
|
357
|
+
### Immediate Actions (< 1 hour)
|
|
358
|
+
|
|
359
|
+
- [ ] Install/upgrade tmux to 3.2+: `brew install tmux`
|
|
360
|
+
- [ ] Clone Oh My Tmux!: `git clone https://github.com/gpakosz/.tmux.git ~/.tmux`
|
|
361
|
+
- [ ] Create symlink: `ln -s -f ~/.tmux/.tmux.conf ~/.tmux.conf`
|
|
362
|
+
- [ ] Copy local config: `cp ~/.tmux/.tmux.conf.local ~/.tmux.conf.local`
|
|
363
|
+
- [ ] Install TPM: `git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm`
|
|
364
|
+
- [ ] Edit `.tmux.conf.local` with essential plugins
|
|
365
|
+
- [ ] Reload config: `tmux source-file ~/.tmux.conf`
|
|
366
|
+
- [ ] Test navigation: `Ctrl-h/j/k/l` (should work in vim + tmux)
|
|
367
|
+
|
|
368
|
+
### Short-term (1-2 weeks)
|
|
369
|
+
|
|
370
|
+
- [ ] Configure status line for your workflow
|
|
371
|
+
- [ ] Set up vim-tmux-navigator in Neovim
|
|
372
|
+
- [ ] Install Neovim AI plugin (sidekick.nvim or claude-code.nvim)
|
|
373
|
+
- [ ] Create tmux session template for your main project
|
|
374
|
+
- [ ] Test multi-pane setup (editor + tests + logs)
|
|
375
|
+
- [ ] Benchmark escape-time with `:set timeoutlen=100` in vim
|
|
376
|
+
|
|
377
|
+
### Medium-term (1 month)
|
|
378
|
+
|
|
379
|
+
- [ ] Adapt multi-agent workflow for Shipwright pipeline
|
|
380
|
+
- [ ] Set up git worktree pattern for parallel development
|
|
381
|
+
- [ ] Configure hooks for your workflow
|
|
382
|
+
- [ ] Implement floating popup bindings (fzf, git status)
|
|
383
|
+
- [ ] Set up automatic session resurrection
|
|
384
|
+
- [ ] Document your custom keybindings
|
|
385
|
+
|
|
386
|
+
### Long-term (ongoing)
|
|
387
|
+
|
|
388
|
+
- [ ] Monitor performance with `watch ps aux | grep tmux`
|
|
389
|
+
- [ ] Keep Oh My Tmux! updated (pull from upstream)
|
|
390
|
+
- [ ] Stay current with plugin updates (TPM: `C-a U`)
|
|
391
|
+
- [ ] Contribute improvements back to Shipwright
|
|
392
|
+
- [ ] Share your configuration with team
|
|
393
|
+
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
## FAQ
|
|
397
|
+
|
|
398
|
+
**Q: Do I need to use Oh My Tmux! or can I start from scratch?**
|
|
399
|
+
A: Oh My Tmux! is recommended for consistency and ease of updates. If you prefer minimal configs, use the templates from TMUX-QUICK-REFERENCE.md section "Minimal Production Config".
|
|
400
|
+
|
|
401
|
+
**Q: How do I integrate with existing Vim/Neovim config?**
|
|
402
|
+
A: Install `vim-tmux-navigator` plugin via your plugin manager, then add the keybindings from TMUX-BEST-PRACTICES-2025-2026.md section 5.1 to `.tmux.conf.local`.
|
|
403
|
+
|
|
404
|
+
**Q: Can I use this with Shipwright's daemon?**
|
|
405
|
+
A: Yes! See TMUX-BEST-PRACTICES-2025-2026.md section 8 for daemon-specific configuration, including vitals monitoring and cost tracking in the status line.
|
|
406
|
+
|
|
407
|
+
**Q: What's the minimum tmux version I need?**
|
|
408
|
+
A: tmux 3.0+ for modern features. For floating popups (display-popup), you need 3.2+. Older versions work but lack advanced features.
|
|
409
|
+
|
|
410
|
+
**Q: How do I handle mouse conflicts with AI tools?**
|
|
411
|
+
A: See TMUX-ARCHITECTURE.md section 7 and TMUX-BEST-PRACTICES-2025-2026.md section 3.4. Recommendation: keep mouse OFF for AI workflows, use Shift+drag when needed.
|
|
412
|
+
|
|
413
|
+
**Q: How much does tmux actually slow down my terminal?**
|
|
414
|
+
A: Very little. Most overhead is terminal rendering, not tmux logic. See TMUX-ARCHITECTURE.md section 11 for benchmarks.
|
|
415
|
+
|
|
416
|
+
**Q: Should I set up tmux before or after installing Claude Code?**
|
|
417
|
+
A: Either order works. Recommend setting up tmux first (basic config), then install Claude Code plugins. They complement each other.
|
|
418
|
+
|
|
419
|
+
---
|
|
420
|
+
|
|
421
|
+
## Notes
|
|
422
|
+
|
|
423
|
+
- All configuration snippets have been tested with tmux 3.2+ on macOS and Linux
|
|
424
|
+
- Plugin versions reflect active maintenance as of February 2026
|
|
425
|
+
- Shipwright integration examples assume Shipwright 1.x+ with daemon support
|
|
426
|
+
- Performance metrics are typical; actual numbers vary by system and workload
|
|
427
|
+
|
|
428
|
+
---
|
|
429
|
+
|
|
430
|
+
**Document Version**: 1.0
|
|
431
|
+
**Last Updated**: February 12, 2026
|
|
432
|
+
**Status**: Complete
|
|
433
|
+
|
|
434
|
+
For corrections, clarifications, or additions, refer to the source documents:
|
|
435
|
+
|
|
436
|
+
- TMUX-BEST-PRACTICES-2025-2026.md
|
|
437
|
+
- TMUX-ARCHITECTURE.md
|
|
438
|
+
- TMUX-QUICK-REFERENCE.md
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shipwright-cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Orchestrate autonomous Claude Code agent teams in tmux",
|
|
5
5
|
"bin": {
|
|
6
6
|
"shipwright": "./scripts/sw",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
],
|
|
30
30
|
"scripts": {
|
|
31
31
|
"postinstall": "node scripts/postinstall.mjs",
|
|
32
|
-
"test": "bash scripts/sw-
|
|
32
|
+
"test": "bash scripts/sw-activity-test.sh && bash scripts/sw-adaptive-test.sh && bash scripts/sw-adversarial-test.sh && bash scripts/sw-architecture-enforcer-test.sh && bash scripts/sw-auth-test.sh && bash scripts/sw-autonomous-test.sh && bash scripts/sw-changelog-test.sh && bash scripts/sw-checkpoint-test.sh && bash scripts/sw-ci-test.sh && bash scripts/sw-cleanup-test.sh && bash scripts/sw-code-review-test.sh && bash scripts/sw-connect-test.sh && bash scripts/sw-context-test.sh && bash scripts/sw-cost-test.sh && bash scripts/sw-daemon-test.sh && bash scripts/sw-dashboard-test.sh && bash scripts/sw-db-test.sh && bash scripts/sw-decompose-test.sh && bash scripts/sw-deps-test.sh && bash scripts/sw-developer-simulation-test.sh && bash scripts/sw-discovery-test.sh && bash scripts/sw-docs-agent-test.sh && bash scripts/sw-docs-test.sh && bash scripts/sw-doctor-test.sh && bash scripts/sw-dora-test.sh && bash scripts/sw-durable-test.sh && bash scripts/sw-e2e-orchestrator-test.sh && bash scripts/sw-eventbus-test.sh && bash scripts/sw-feedback-test.sh && bash scripts/sw-fix-test.sh && bash scripts/sw-fleet-discover-test.sh && bash scripts/sw-fleet-test.sh && bash scripts/sw-fleet-viz-test.sh && bash scripts/sw-frontier-test.sh && bash scripts/sw-github-app-test.sh && bash scripts/sw-github-checks-test.sh && bash scripts/sw-github-deploy-test.sh && bash scripts/sw-github-graphql-test.sh && bash scripts/sw-guild-test.sh && bash scripts/sw-heartbeat-test.sh && bash scripts/sw-hygiene-test.sh && bash scripts/sw-incident-test.sh && bash scripts/sw-init-test.sh && bash scripts/sw-instrument-test.sh && bash scripts/sw-intelligence-test.sh && bash scripts/sw-jira-test.sh && bash scripts/sw-launchd-test.sh && bash scripts/sw-linear-test.sh && bash scripts/sw-logs-test.sh && bash scripts/sw-loop-test.sh && bash scripts/sw-memory-test.sh && bash scripts/sw-mission-control-test.sh && bash scripts/sw-model-router-test.sh && bash scripts/sw-otel-test.sh && bash scripts/sw-oversight-test.sh && bash scripts/sw-patrol-meta-test.sh && bash scripts/sw-pipeline-composer-test.sh && bash scripts/sw-pipeline-test.sh && bash scripts/sw-pipeline-vitals-test.sh && bash scripts/sw-pm-test.sh && bash scripts/sw-pr-lifecycle-test.sh && bash scripts/sw-predictive-test.sh && bash scripts/sw-prep-test.sh && bash scripts/sw-ps-test.sh && bash scripts/sw-public-dashboard-test.sh && bash scripts/sw-quality-test.sh && bash scripts/sw-reaper-test.sh && bash scripts/sw-recruit-test.sh && bash scripts/sw-regression-test.sh && bash scripts/sw-release-manager-test.sh && bash scripts/sw-release-test.sh && bash scripts/sw-remote-test.sh && bash scripts/sw-replay-test.sh && bash scripts/sw-retro-test.sh && bash scripts/sw-scale-test.sh && bash scripts/sw-security-audit-test.sh && bash scripts/sw-self-optimize-test.sh && bash scripts/sw-session-test.sh && bash scripts/sw-setup-test.sh && bash scripts/sw-standup-test.sh && bash scripts/sw-status-test.sh && bash scripts/sw-strategic-test.sh && bash scripts/sw-stream-test.sh && bash scripts/sw-swarm-test.sh && bash scripts/sw-team-stages-test.sh && bash scripts/sw-templates-test.sh && bash scripts/sw-testgen-test.sh && bash scripts/sw-tmux-pipeline-test.sh && bash scripts/sw-tmux-test.sh && bash scripts/sw-trace-test.sh && bash scripts/sw-tracker-test.sh && bash scripts/sw-triage-test.sh && bash scripts/sw-upgrade-test.sh && bash scripts/sw-ux-test.sh && bash scripts/sw-webhook-test.sh && bash scripts/sw-widgets-test.sh && bash scripts/sw-worktree-test.sh && bash scripts/sw-e2e-smoke-test.sh",
|
|
33
33
|
"test:smoke": "bash scripts/sw-e2e-smoke-test.sh",
|
|
34
34
|
"test:integration": "bash scripts/sw-e2e-integration-test.sh"
|
|
35
35
|
},
|
package/scripts/lib/helpers.sh
CHANGED
|
@@ -56,6 +56,13 @@ EVENTS_FILE="${EVENTS_FILE:-${HOME}/.shipwright/events.jsonl}"
|
|
|
56
56
|
emit_event() {
|
|
57
57
|
local event_type="$1"
|
|
58
58
|
shift
|
|
59
|
+
|
|
60
|
+
# Try SQLite first (via sw-db.sh's db_add_event)
|
|
61
|
+
if type db_add_event &>/dev/null; then
|
|
62
|
+
db_add_event "$event_type" "$@" 2>/dev/null || true
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
# Always write to JSONL (dual-write period for backward compat)
|
|
59
66
|
local json_fields=""
|
|
60
67
|
for kv in "$@"; do
|
|
61
68
|
local key="${kv%%=*}"
|
package/scripts/sw
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
# ╚═══════════════════════════════════════════════════════════════════════════╝
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
|
|
8
|
-
VERSION="2.
|
|
8
|
+
VERSION="2.1.0"
|
|
9
9
|
|
|
10
10
|
# Resolve symlinks (required for npm global install where bin/ symlinks to node_modules/)
|
|
11
11
|
SOURCE="${BASH_SOURCE[0]}"
|
|
@@ -55,6 +55,18 @@ check_in_tmux() {
|
|
|
55
55
|
fi
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
ensure_repo_setup() {
|
|
59
|
+
if [[ ! -d ".claude" ]]; then
|
|
60
|
+
error "This repo hasn't been set up for Shipwright."
|
|
61
|
+
echo ""
|
|
62
|
+
echo -e " ${CYAN}${BOLD}Run one of:${RESET}"
|
|
63
|
+
echo -e " ${DIM}shipwright setup${RESET} — guided setup (recommended)"
|
|
64
|
+
echo -e " ${DIM}shipwright init${RESET} — quick setup (no prompts)"
|
|
65
|
+
echo ""
|
|
66
|
+
exit 1
|
|
67
|
+
fi
|
|
68
|
+
}
|
|
69
|
+
|
|
58
70
|
show_version() {
|
|
59
71
|
echo -e "${CYAN}${BOLD}shipwright${RESET} ${DIM}v${VERSION}${RESET} — Orchestrate AI Coding Teams ${DIM}(aliases: sw, cct)${RESET}"
|
|
60
72
|
}
|
|
@@ -64,8 +76,16 @@ show_help() {
|
|
|
64
76
|
echo ""
|
|
65
77
|
echo -e "${BOLD}USAGE${RESET}"
|
|
66
78
|
echo -e " ${CYAN}shipwright${RESET} <command> [options] ${DIM}(also: sw, cct)${RESET}"
|
|
79
|
+
echo -e " ${CYAN}shipwright${RESET} <group> <subcommand> [options]"
|
|
80
|
+
echo ""
|
|
81
|
+
echo -e "${BOLD}COMMAND GROUPS${RESET} ${DIM}(new grouped syntax)${RESET}"
|
|
82
|
+
echo -e " ${CYAN}agent${RESET} <subcmd> ${DIM}Agent management: recruit, swarm, standup, guild, oversight${RESET}"
|
|
83
|
+
echo -e " ${CYAN}quality${RESET} <subcmd> ${DIM}Quality & review: code-review, security-audit, testgen, hygiene${RESET}"
|
|
84
|
+
echo -e " ${CYAN}observe${RESET} <subcmd> ${DIM}Observability: vitals, dora, retro, stream, activity, replay${RESET}"
|
|
85
|
+
echo -e " ${CYAN}release${RESET} <subcmd> ${DIM}Release & deploy: release, release-manager, changelog, deploy${RESET}"
|
|
86
|
+
echo -e " ${CYAN}intel${RESET} <subcmd> ${DIM}Intelligence: predict, intelligence, strategic, optimize${RESET}"
|
|
67
87
|
echo ""
|
|
68
|
-
echo -e "${BOLD}COMMANDS${RESET}"
|
|
88
|
+
echo -e "${BOLD}CORE COMMANDS${RESET} ${DIM}(flat aliases for backwards compat)${RESET}"
|
|
69
89
|
echo -e " ${CYAN}session${RESET} [name] Create a new tmux window for a Claude team"
|
|
70
90
|
echo -e " ${CYAN}status${RESET} [--json] Show dashboard of running teams and agents"
|
|
71
91
|
echo -e " ${CYAN}mission-control|mc${RESET} Terminal-based pipeline mission control (drill-down, team tree, orchestration)"
|
|
@@ -232,13 +252,107 @@ show_help() {
|
|
|
232
252
|
echo -e "${DIM}Docs: https://sethdford.github.io/shipwright | GitHub: https://github.com/sethdford/shipwright${RESET}"
|
|
233
253
|
}
|
|
234
254
|
|
|
255
|
+
# ─── Command Group Routers ───────────────────────────────────────────────────
|
|
256
|
+
|
|
257
|
+
route_agent() {
|
|
258
|
+
local subcmd="${1:-help}"
|
|
259
|
+
shift 2>/dev/null || true
|
|
260
|
+
case "$subcmd" in
|
|
261
|
+
recruit) exec "$SCRIPT_DIR/sw-recruit.sh" "$@" ;;
|
|
262
|
+
swarm) exec "$SCRIPT_DIR/sw-swarm.sh" "$@" ;;
|
|
263
|
+
standup) exec "$SCRIPT_DIR/sw-standup.sh" "$@" ;;
|
|
264
|
+
guild) exec "$SCRIPT_DIR/sw-guild.sh" "$@" ;;
|
|
265
|
+
oversight) exec "$SCRIPT_DIR/sw-oversight.sh" "$@" ;;
|
|
266
|
+
help|*) echo "Usage: shipwright agent {recruit|swarm|standup|guild|oversight}"; exit 1 ;;
|
|
267
|
+
esac
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
route_quality() {
|
|
271
|
+
local subcmd="${1:-help}"
|
|
272
|
+
shift 2>/dev/null || true
|
|
273
|
+
case "$subcmd" in
|
|
274
|
+
code-review) exec "$SCRIPT_DIR/sw-code-review.sh" "$@" ;;
|
|
275
|
+
security-audit|audit) exec "$SCRIPT_DIR/sw-security-audit.sh" "$@" ;;
|
|
276
|
+
testgen) exec "$SCRIPT_DIR/sw-testgen.sh" "$@" ;;
|
|
277
|
+
hygiene) exec "$SCRIPT_DIR/sw-hygiene.sh" "$@" ;;
|
|
278
|
+
help|*) echo "Usage: shipwright quality {code-review|security-audit|testgen|hygiene}"; exit 1 ;;
|
|
279
|
+
esac
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
route_observe() {
|
|
283
|
+
local subcmd="${1:-help}"
|
|
284
|
+
shift 2>/dev/null || true
|
|
285
|
+
case "$subcmd" in
|
|
286
|
+
vitals) exec "$SCRIPT_DIR/sw-pipeline-vitals.sh" "$@" ;;
|
|
287
|
+
dora) exec "$SCRIPT_DIR/sw-dora.sh" "$@" ;;
|
|
288
|
+
retro) exec "$SCRIPT_DIR/sw-retro.sh" "$@" ;;
|
|
289
|
+
stream) exec "$SCRIPT_DIR/sw-stream.sh" "$@" ;;
|
|
290
|
+
activity) exec "$SCRIPT_DIR/sw-activity.sh" "$@" ;;
|
|
291
|
+
replay) exec "$SCRIPT_DIR/sw-replay.sh" "$@" ;;
|
|
292
|
+
status) exec "$SCRIPT_DIR/sw-status.sh" "$@" ;;
|
|
293
|
+
help|*) echo "Usage: shipwright observe {vitals|dora|retro|stream|activity|replay|status}"; exit 1 ;;
|
|
294
|
+
esac
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
route_release() {
|
|
298
|
+
local subcmd="${1:-help}"
|
|
299
|
+
shift 2>/dev/null || true
|
|
300
|
+
case "$subcmd" in
|
|
301
|
+
release) exec "$SCRIPT_DIR/sw-release.sh" "$@" ;;
|
|
302
|
+
release-manager) exec "$SCRIPT_DIR/sw-release-manager.sh" "$@" ;;
|
|
303
|
+
changelog) exec "$SCRIPT_DIR/sw-changelog.sh" "$@" ;;
|
|
304
|
+
deploy|deploys) exec "$SCRIPT_DIR/sw-github-deploy.sh" "$@" ;;
|
|
305
|
+
help|*) echo "Usage: shipwright release {release|release-manager|changelog|deploy}"; exit 1 ;;
|
|
306
|
+
esac
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
route_intel() {
|
|
310
|
+
local subcmd="${1:-help}"
|
|
311
|
+
shift 2>/dev/null || true
|
|
312
|
+
case "$subcmd" in
|
|
313
|
+
predict) exec "$SCRIPT_DIR/sw-predictive.sh" "$@" ;;
|
|
314
|
+
intelligence) exec "$SCRIPT_DIR/sw-intelligence.sh" "$@" ;;
|
|
315
|
+
strategic) exec "$SCRIPT_DIR/sw-strategic.sh" "$@" ;;
|
|
316
|
+
optimize) exec "$SCRIPT_DIR/sw-self-optimize.sh" "$@" ;;
|
|
317
|
+
help|*) echo "Usage: shipwright intel {predict|intelligence|strategic|optimize}"; exit 1 ;;
|
|
318
|
+
esac
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
# ─── Welcome message helper ──────────────────────────────────────────────────
|
|
322
|
+
show_welcome() {
|
|
323
|
+
echo ""
|
|
324
|
+
echo -e "${CYAN}${BOLD} Welcome to Shipwright v${VERSION}!${RESET}"
|
|
325
|
+
echo -e "${DIM} ════════════════════════════════════════════${RESET}"
|
|
326
|
+
echo ""
|
|
327
|
+
echo -e " It looks like this repo hasn't been set up yet."
|
|
328
|
+
echo ""
|
|
329
|
+
echo -e " ${CYAN}${BOLD}→${RESET} For guided setup (4 phases): ${DIM}shipwright setup${RESET}"
|
|
330
|
+
echo -e " ${CYAN}${BOLD}→${RESET} For quick setup (no prompts): ${DIM}shipwright init${RESET}"
|
|
331
|
+
echo -e " ${CYAN}${BOLD}→${RESET} For full help: ${DIM}shipwright help${RESET}"
|
|
332
|
+
echo ""
|
|
333
|
+
}
|
|
334
|
+
|
|
235
335
|
# ─── Command Router ──────────────────────────────────────────────────────────
|
|
236
336
|
|
|
237
337
|
main() {
|
|
238
338
|
local cmd="${1:-help}"
|
|
339
|
+
|
|
340
|
+
# Special case: if no arguments and .claude/ doesn't exist, show welcome
|
|
341
|
+
if [[ "$#" -eq 0 && ! -d ".claude" && ! -d "$(pwd)/.claude" ]]; then
|
|
342
|
+
show_welcome
|
|
343
|
+
return 0
|
|
344
|
+
fi
|
|
345
|
+
|
|
239
346
|
shift 2>/dev/null || true
|
|
240
347
|
|
|
241
348
|
case "$cmd" in
|
|
349
|
+
# Command groups
|
|
350
|
+
agent) route_agent "$@" ;;
|
|
351
|
+
quality) route_quality "$@" ;;
|
|
352
|
+
observe) route_observe "$@" ;;
|
|
353
|
+
release) route_release "$@" ;;
|
|
354
|
+
intel) route_intel "$@" ;;
|
|
355
|
+
|
|
242
356
|
session)
|
|
243
357
|
check_tmux
|
|
244
358
|
check_in_tmux
|
package/scripts/sw-activity.sh
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
|
|
8
8
|
|
|
9
|
-
VERSION="2.
|
|
9
|
+
VERSION="2.1.0"
|
|
10
10
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
11
11
|
|
|
12
12
|
# ─── Colors (matches Seth's tmux theme) ─────────────────────────────────────
|
package/scripts/sw-adaptive.sh
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
|
|
8
8
|
|
|
9
|
-
VERSION="2.
|
|
9
|
+
VERSION="2.1.0"
|
|
10
10
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
11
11
|
|
|
12
12
|
# ─── Colors (matches Seth's tmux theme) ─────────────────────────────────────
|