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.
Files changed (113) hide show
  1. package/README.md +160 -72
  2. package/completions/_shipwright +59 -7
  3. package/completions/shipwright.bash +24 -4
  4. package/completions/shipwright.fish +80 -2
  5. package/dashboard/server.ts +208 -0
  6. package/docs/tmux-research/TMUX-ARCHITECTURE.md +567 -0
  7. package/docs/tmux-research/TMUX-AUDIT.md +925 -0
  8. package/docs/tmux-research/TMUX-BEST-PRACTICES-2025-2026.md +829 -0
  9. package/docs/tmux-research/TMUX-QUICK-REFERENCE.md +543 -0
  10. package/docs/tmux-research/TMUX-RESEARCH-INDEX.md +438 -0
  11. package/package.json +2 -2
  12. package/scripts/lib/helpers.sh +7 -0
  13. package/scripts/sw +116 -2
  14. package/scripts/sw-activity.sh +1 -1
  15. package/scripts/sw-adaptive.sh +1 -1
  16. package/scripts/sw-adversarial.sh +1 -1
  17. package/scripts/sw-architecture-enforcer.sh +1 -1
  18. package/scripts/sw-auth.sh +1 -1
  19. package/scripts/sw-autonomous.sh +128 -38
  20. package/scripts/sw-changelog.sh +1 -1
  21. package/scripts/sw-checkpoint.sh +1 -1
  22. package/scripts/sw-ci.sh +1 -1
  23. package/scripts/sw-cleanup.sh +1 -1
  24. package/scripts/sw-code-review.sh +62 -1
  25. package/scripts/sw-connect.sh +1 -1
  26. package/scripts/sw-context.sh +1 -1
  27. package/scripts/sw-cost.sh +44 -3
  28. package/scripts/sw-daemon.sh +155 -27
  29. package/scripts/sw-dashboard.sh +1 -1
  30. package/scripts/sw-db.sh +958 -118
  31. package/scripts/sw-decompose.sh +1 -1
  32. package/scripts/sw-deps.sh +1 -1
  33. package/scripts/sw-developer-simulation.sh +1 -1
  34. package/scripts/sw-discovery.sh +1 -1
  35. package/scripts/sw-docs-agent.sh +1 -1
  36. package/scripts/sw-docs.sh +1 -1
  37. package/scripts/sw-doctor.sh +49 -1
  38. package/scripts/sw-dora.sh +1 -1
  39. package/scripts/sw-durable.sh +1 -1
  40. package/scripts/sw-e2e-orchestrator.sh +1 -1
  41. package/scripts/sw-eventbus.sh +1 -1
  42. package/scripts/sw-feedback.sh +23 -15
  43. package/scripts/sw-fix.sh +1 -1
  44. package/scripts/sw-fleet-discover.sh +1 -1
  45. package/scripts/sw-fleet-viz.sh +1 -1
  46. package/scripts/sw-fleet.sh +1 -1
  47. package/scripts/sw-github-app.sh +1 -1
  48. package/scripts/sw-github-checks.sh +4 -4
  49. package/scripts/sw-github-deploy.sh +1 -1
  50. package/scripts/sw-github-graphql.sh +1 -1
  51. package/scripts/sw-guild.sh +1 -1
  52. package/scripts/sw-heartbeat.sh +1 -1
  53. package/scripts/sw-hygiene.sh +1 -1
  54. package/scripts/sw-incident.sh +45 -6
  55. package/scripts/sw-init.sh +150 -24
  56. package/scripts/sw-instrument.sh +1 -1
  57. package/scripts/sw-intelligence.sh +1 -1
  58. package/scripts/sw-jira.sh +1 -1
  59. package/scripts/sw-launchd.sh +1 -1
  60. package/scripts/sw-linear.sh +1 -1
  61. package/scripts/sw-logs.sh +1 -1
  62. package/scripts/sw-loop.sh +204 -19
  63. package/scripts/sw-memory.sh +18 -1
  64. package/scripts/sw-mission-control.sh +1 -1
  65. package/scripts/sw-model-router.sh +1 -1
  66. package/scripts/sw-otel.sh +1 -1
  67. package/scripts/sw-oversight.sh +76 -1
  68. package/scripts/sw-pipeline-composer.sh +1 -1
  69. package/scripts/sw-pipeline-vitals.sh +1 -1
  70. package/scripts/sw-pipeline.sh +261 -12
  71. package/scripts/sw-pm.sh +70 -5
  72. package/scripts/sw-pr-lifecycle.sh +1 -1
  73. package/scripts/sw-predictive.sh +8 -1
  74. package/scripts/sw-prep.sh +1 -1
  75. package/scripts/sw-ps.sh +1 -1
  76. package/scripts/sw-public-dashboard.sh +1 -1
  77. package/scripts/sw-quality.sh +1 -1
  78. package/scripts/sw-reaper.sh +1 -1
  79. package/scripts/sw-recruit.sh +1853 -178
  80. package/scripts/sw-regression.sh +1 -1
  81. package/scripts/sw-release-manager.sh +1 -1
  82. package/scripts/sw-release.sh +1 -1
  83. package/scripts/sw-remote.sh +1 -1
  84. package/scripts/sw-replay.sh +1 -1
  85. package/scripts/sw-retro.sh +1 -1
  86. package/scripts/sw-scale.sh +1 -1
  87. package/scripts/sw-security-audit.sh +1 -1
  88. package/scripts/sw-self-optimize.sh +1 -1
  89. package/scripts/sw-session.sh +1 -1
  90. package/scripts/sw-setup.sh +263 -127
  91. package/scripts/sw-standup.sh +1 -1
  92. package/scripts/sw-status.sh +44 -2
  93. package/scripts/sw-strategic.sh +189 -41
  94. package/scripts/sw-stream.sh +1 -1
  95. package/scripts/sw-swarm.sh +42 -5
  96. package/scripts/sw-team-stages.sh +1 -1
  97. package/scripts/sw-templates.sh +4 -4
  98. package/scripts/sw-testgen.sh +66 -15
  99. package/scripts/sw-tmux-pipeline.sh +1 -1
  100. package/scripts/sw-tmux-role-color.sh +58 -0
  101. package/scripts/sw-tmux-status.sh +128 -0
  102. package/scripts/sw-tmux.sh +1 -1
  103. package/scripts/sw-trace.sh +1 -1
  104. package/scripts/sw-tracker.sh +1 -1
  105. package/scripts/sw-triage.sh +61 -37
  106. package/scripts/sw-upgrade.sh +1 -1
  107. package/scripts/sw-ux.sh +1 -1
  108. package/scripts/sw-webhook.sh +1 -1
  109. package/scripts/sw-widgets.sh +1 -1
  110. package/scripts/sw-worktree.sh +1 -1
  111. package/templates/pipelines/autonomous.json +2 -2
  112. package/tmux/shipwright-overlay.conf +35 -17
  113. package/tmux/tmux.conf +23 -21
package/tmux/tmux.conf CHANGED
@@ -36,6 +36,10 @@ set -g allow-passthrough on
36
36
  set -g extended-keys on
37
37
  set -as terminal-features 'xterm*:extkeys'
38
38
 
39
+ # Signal true color support to apps inside tmux.
40
+ # Without this, Claude Code falls back to 256-color ANSI palette (washed-out).
41
+ set-environment -g COLORTERM truecolor
42
+
39
43
  # ─── Mouse ──────────────────────────────────────────────────────────────
40
44
  set -g mouse on
41
45
  # Fix: tmux 3.4+ defaults MouseDown1Status to switch-client (sessions),
@@ -46,7 +50,8 @@ bind -T root DoubleClick1Status command-prompt -I "#W" "rename-window -- '%%'"
46
50
 
47
51
  # ─── Core Behavior ─────────────────────────────────────────────────────
48
52
  set -g base-index 1
49
- setw -g pane-base-index 1
53
+ # Claude Code expects 0-based pane indexing for agent team pane routing
54
+ setw -g pane-base-index 0
50
55
  set -g renumber-windows on
51
56
  set -sg escape-time 0
52
57
  set -g focus-events on
@@ -71,9 +76,9 @@ set -g history-limit 250000
71
76
  # ═══════════════════════════════════════════════════════════════════════════
72
77
 
73
78
  set -g status-position bottom
74
- set -g status-interval 1
79
+ set -g status-interval 3
75
80
  set -g status-justify left
76
- set -g status-style "bg=#1a1a2e,fg=#e4e4e7"
81
+ set -g status-style "bg=#1a1a2e,fg=#a1a1aa"
77
82
  set -g status-left-length 100
78
83
  set -g status-right-length 150
79
84
 
@@ -86,15 +91,18 @@ setw -g window-status-format "#{?#{m:claude-*,#W},#[fg=#7c3aed]#[bg=#252538] λ
86
91
  # Active window; team windows get λ icon in cyan
87
92
  setw -g window-status-current-format "#{?#{m:claude-*,#W},#[fg=#1e1e32]#[bg=#00d4ff]#[bold] λ #I:#W ,#[fg=#1e1e32]#[bg=#00d4ff]#[bold] #I:#W }#[fg=#00d4ff]#[bg=#1a1a2e]"
88
93
 
89
- # Right side: key hints when prefix is active, otherwise clock + date
90
- set -g status-right "#{?client_prefix,#[fg=#1e1e32]#[bg=#0066ff]#[bold] T team | split - split hjkl nav G zoom S sync x kill F fzf #[fg=#1e1e32]#[bg=#00d4ff]#[bold] ^a ,#[fg=#71717a]#[bg=#252538] #(whoami)@#h #[fg=#1e1e32]#[bg=#7c3aed]#[bold] %H:%M #[fg=#e4e4e7]#[bg=#0066ff]#[bold] %b %d #[fg=#1e1e32]#[bg=#00d4ff]#[bold] %a }"
94
+ # Right side: key hints when prefix is active, otherwise pipeline + agents + clock
95
+ # Pipeline widget: shows current stage (BUILD, TEST, etc.) with stage-colored badge
96
+ # Agent widget: shows active agent count as λN in purple
97
+ # Rule: dark text (#1e1e32) on bright backgrounds, muted text on dark backgrounds
98
+ set -g status-right-length 200
99
+ set -g status-right "#{?client_prefix,#[fg=#1e1e32]#[bg=#0066ff]#[bold] T team | split - split hjkl nav G zoom S sync x kill F fzf #[fg=#1e1e32]#[bg=#00d4ff]#[bold] ^a ,#(~/.shipwright/scripts/sw-tmux-status.sh agents 2>/dev/null)#(~/.shipwright/scripts/sw-tmux-status.sh pipeline 2>/dev/null)#[fg=#71717a]#[bg=#252538] #(whoami)@#h #[fg=#1e1e32]#[bg=#7c3aed]#[bold] %H:%M #[fg=#1e1e32]#[bg=#0066ff]#[bold] %b %d #[fg=#1e1e32]#[bg=#00d4ff]#[bold] %a }"
91
100
 
92
101
  # ═══════════════════════════════════════════════════════════════════════════
93
102
  # PANE STYLING
94
103
  # ═══════════════════════════════════════════════════════════════════════════
95
104
 
96
- set -g window-style 'bg=#1a1a2e,fg=#e4e4e7'
97
- set -g window-active-style 'bg=#1a1a2e,fg=#e4e4e7'
105
+ # window-style/window-active-style defined in shipwright-overlay.conf (with hooks)
98
106
  set -g pane-border-style "fg=#333355,bg=#1a1a2e"
99
107
  set -g pane-active-border-style "fg=#00d4ff,bg=#1a1a2e"
100
108
  # Heavy pane border lines for better visibility (tmux 3.2+)
@@ -112,13 +120,13 @@ set -gq popup-border-lines rounded
112
120
  # ═══════════════════════════════════════════════════════════════════════════
113
121
 
114
122
  set -g message-style "bg=#00d4ff,fg=#1e1e32,bold"
115
- set -g message-command-style "bg=#7c3aed,fg=#e4e4e7,bold"
123
+ set -g message-command-style "bg=#7c3aed,fg=#1e1e32,bold"
116
124
 
117
125
  # ═══════════════════════════════════════════════════════════════════════════
118
126
  # MODE STYLING (copy mode, etc.)
119
127
  # ═══════════════════════════════════════════════════════════════════════════
120
128
 
121
- setw -g mode-style "bg=#0066ff,fg=#e4e4e7,bold"
129
+ setw -g mode-style "bg=#0066ff,fg=#1e1e32,bold"
122
130
  setw -g clock-mode-colour "#00d4ff"
123
131
  setw -g clock-mode-style 24
124
132
 
@@ -130,7 +138,7 @@ unbind C-b
130
138
  set -g prefix C-a
131
139
  bind C-a send-prefix
132
140
 
133
- bind r source-file ~/.tmux.conf \; display-message "Config reloaded!"
141
+ bind r source-file ~/.tmux.conf \; source-file -q ~/.tmux/shipwright-overlay.conf \; display-message "Config reloaded!"
134
142
 
135
143
  bind | split-window -h -c "#{pane_current_path}"
136
144
  bind - split-window -v -c "#{pane_current_path}"
@@ -152,23 +160,17 @@ bind -r C-l select-window -t :+
152
160
 
153
161
  bind c new-window -c "#{pane_current_path}"
154
162
 
155
- bind x kill-pane
156
- bind X kill-window
163
+ # x/X bindings defined in shipwright-overlay.conf with confirm-before safety
164
+ # bind x → confirm-before kill-pane
165
+ # bind X → confirm-before kill-window
157
166
 
158
167
  setw -g mode-keys vi
159
168
  bind -T copy-mode-vi v send-keys -X begin-selection
160
169
  bind -T copy-mode-vi r send-keys -X rectangle-toggle
161
170
  bind p paste-buffer
162
171
 
163
- # System clipboard integration (macOS pbcopy, Linux xclip/xsel fallback)
164
- if-shell "command -v pbcopy" \
165
- "bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'pbcopy'" \
166
- "bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -selection clipboard 2>/dev/null || xsel --clipboard 2>/dev/null'"
167
-
168
- # Mouse drag also copies to system clipboard
169
- if-shell "command -v pbcopy" \
170
- "bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel 'pbcopy'" \
171
- "bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel 'xclip -selection clipboard 2>/dev/null || xsel --clipboard 2>/dev/null'"
172
+ # Clipboard handled by tmux-yank plugin (loaded via TPM below)
173
+ # tmux-yank uses OSC 52 + pbcopy/xclip automatically
172
174
 
173
175
  bind S setw synchronize-panes \; display-message "Sync #{?synchronize-panes,ON,OFF}"
174
176