shipwright-cli 1.10.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 (121) hide show
  1. package/README.md +221 -55
  2. package/completions/_shipwright +264 -32
  3. package/completions/shipwright.bash +118 -26
  4. package/completions/shipwright.fish +80 -2
  5. package/dashboard/server.ts +208 -0
  6. package/docs/strategy/01-market-research.md +619 -0
  7. package/docs/strategy/02-mission-and-brand.md +587 -0
  8. package/docs/strategy/03-gtm-and-roadmap.md +759 -0
  9. package/docs/strategy/QUICK-START.txt +289 -0
  10. package/docs/strategy/README.md +172 -0
  11. package/docs/tmux-research/TMUX-ARCHITECTURE.md +567 -0
  12. package/docs/tmux-research/TMUX-AUDIT.md +925 -0
  13. package/docs/tmux-research/TMUX-BEST-PRACTICES-2025-2026.md +829 -0
  14. package/docs/tmux-research/TMUX-QUICK-REFERENCE.md +543 -0
  15. package/docs/tmux-research/TMUX-RESEARCH-INDEX.md +438 -0
  16. package/package.json +4 -2
  17. package/scripts/lib/helpers.sh +7 -0
  18. package/scripts/sw +323 -2
  19. package/scripts/sw-activity.sh +500 -0
  20. package/scripts/sw-adaptive.sh +925 -0
  21. package/scripts/sw-adversarial.sh +1 -1
  22. package/scripts/sw-architecture-enforcer.sh +1 -1
  23. package/scripts/sw-auth.sh +613 -0
  24. package/scripts/sw-autonomous.sh +754 -0
  25. package/scripts/sw-changelog.sh +704 -0
  26. package/scripts/sw-checkpoint.sh +1 -1
  27. package/scripts/sw-ci.sh +602 -0
  28. package/scripts/sw-cleanup.sh +1 -1
  29. package/scripts/sw-code-review.sh +698 -0
  30. package/scripts/sw-connect.sh +1 -1
  31. package/scripts/sw-context.sh +605 -0
  32. package/scripts/sw-cost.sh +44 -3
  33. package/scripts/sw-daemon.sh +568 -138
  34. package/scripts/sw-dashboard.sh +1 -1
  35. package/scripts/sw-db.sh +1380 -0
  36. package/scripts/sw-decompose.sh +539 -0
  37. package/scripts/sw-deps.sh +551 -0
  38. package/scripts/sw-developer-simulation.sh +1 -1
  39. package/scripts/sw-discovery.sh +412 -0
  40. package/scripts/sw-docs-agent.sh +539 -0
  41. package/scripts/sw-docs.sh +1 -1
  42. package/scripts/sw-doctor.sh +107 -1
  43. package/scripts/sw-dora.sh +615 -0
  44. package/scripts/sw-durable.sh +710 -0
  45. package/scripts/sw-e2e-orchestrator.sh +535 -0
  46. package/scripts/sw-eventbus.sh +393 -0
  47. package/scripts/sw-feedback.sh +479 -0
  48. package/scripts/sw-fix.sh +1 -1
  49. package/scripts/sw-fleet-discover.sh +567 -0
  50. package/scripts/sw-fleet-viz.sh +404 -0
  51. package/scripts/sw-fleet.sh +8 -1
  52. package/scripts/sw-github-app.sh +596 -0
  53. package/scripts/sw-github-checks.sh +4 -4
  54. package/scripts/sw-github-deploy.sh +1 -1
  55. package/scripts/sw-github-graphql.sh +1 -1
  56. package/scripts/sw-guild.sh +569 -0
  57. package/scripts/sw-heartbeat.sh +1 -1
  58. package/scripts/sw-hygiene.sh +559 -0
  59. package/scripts/sw-incident.sh +656 -0
  60. package/scripts/sw-init.sh +237 -24
  61. package/scripts/sw-instrument.sh +699 -0
  62. package/scripts/sw-intelligence.sh +1 -1
  63. package/scripts/sw-jira.sh +1 -1
  64. package/scripts/sw-launchd.sh +363 -28
  65. package/scripts/sw-linear.sh +1 -1
  66. package/scripts/sw-logs.sh +1 -1
  67. package/scripts/sw-loop.sh +267 -21
  68. package/scripts/sw-memory.sh +18 -1
  69. package/scripts/sw-mission-control.sh +487 -0
  70. package/scripts/sw-model-router.sh +545 -0
  71. package/scripts/sw-otel.sh +596 -0
  72. package/scripts/sw-oversight.sh +764 -0
  73. package/scripts/sw-pipeline-composer.sh +1 -1
  74. package/scripts/sw-pipeline-vitals.sh +1 -1
  75. package/scripts/sw-pipeline.sh +947 -35
  76. package/scripts/sw-pm.sh +758 -0
  77. package/scripts/sw-pr-lifecycle.sh +522 -0
  78. package/scripts/sw-predictive.sh +8 -1
  79. package/scripts/sw-prep.sh +1 -1
  80. package/scripts/sw-ps.sh +1 -1
  81. package/scripts/sw-public-dashboard.sh +798 -0
  82. package/scripts/sw-quality.sh +595 -0
  83. package/scripts/sw-reaper.sh +1 -1
  84. package/scripts/sw-recruit.sh +2248 -0
  85. package/scripts/sw-regression.sh +642 -0
  86. package/scripts/sw-release-manager.sh +736 -0
  87. package/scripts/sw-release.sh +706 -0
  88. package/scripts/sw-remote.sh +1 -1
  89. package/scripts/sw-replay.sh +520 -0
  90. package/scripts/sw-retro.sh +691 -0
  91. package/scripts/sw-scale.sh +444 -0
  92. package/scripts/sw-security-audit.sh +505 -0
  93. package/scripts/sw-self-optimize.sh +1 -1
  94. package/scripts/sw-session.sh +1 -1
  95. package/scripts/sw-setup.sh +263 -127
  96. package/scripts/sw-standup.sh +712 -0
  97. package/scripts/sw-status.sh +44 -2
  98. package/scripts/sw-strategic.sh +806 -0
  99. package/scripts/sw-stream.sh +450 -0
  100. package/scripts/sw-swarm.sh +620 -0
  101. package/scripts/sw-team-stages.sh +511 -0
  102. package/scripts/sw-templates.sh +4 -4
  103. package/scripts/sw-testgen.sh +566 -0
  104. package/scripts/sw-tmux-pipeline.sh +554 -0
  105. package/scripts/sw-tmux-role-color.sh +58 -0
  106. package/scripts/sw-tmux-status.sh +128 -0
  107. package/scripts/sw-tmux.sh +1 -1
  108. package/scripts/sw-trace.sh +485 -0
  109. package/scripts/sw-tracker-github.sh +188 -0
  110. package/scripts/sw-tracker-jira.sh +172 -0
  111. package/scripts/sw-tracker-linear.sh +251 -0
  112. package/scripts/sw-tracker.sh +117 -2
  113. package/scripts/sw-triage.sh +627 -0
  114. package/scripts/sw-upgrade.sh +1 -1
  115. package/scripts/sw-ux.sh +677 -0
  116. package/scripts/sw-webhook.sh +627 -0
  117. package/scripts/sw-widgets.sh +530 -0
  118. package/scripts/sw-worktree.sh +1 -1
  119. package/templates/pipelines/autonomous.json +2 -2
  120. package/tmux/shipwright-overlay.conf +35 -17
  121. package/tmux/tmux.conf +23 -21
package/scripts/sw CHANGED
@@ -5,7 +5,7 @@
5
5
  # ╚═══════════════════════════════════════════════════════════════════════════╝
6
6
  set -euo pipefail
7
7
 
8
- VERSION="1.9.0"
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,12 +76,22 @@ 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"
91
+ echo -e " ${CYAN}mission-control|mc${RESET} Terminal-based pipeline mission control (drill-down, team tree, orchestration)"
71
92
  echo -e " ${CYAN}ps${RESET} Show running agent processes and status"
72
93
  echo -e " ${CYAN}logs${RESET} [team] [opts] View and search agent pane logs"
94
+ echo -e " ${CYAN}activity${RESET} [cmd] [opts] Live agent activity stream — watch Claude think"
73
95
  echo -e " ${CYAN}templates${RESET} [list|show] Manage team composition templates"
74
96
  echo -e " ${CYAN}doctor${RESET} Validate your setup and check for issues"
75
97
  echo -e " ${CYAN}cleanup${RESET} [--force] Clean up orphaned team sessions"
@@ -79,26 +101,74 @@ show_help() {
79
101
  echo -e " ${CYAN}pipeline${RESET} <cmd> ${BOLD}Full delivery pipeline${RESET} — idea to production"
80
102
  echo -e " ${CYAN}worktree${RESET} <cmd> Manage git worktrees for agent isolation"
81
103
  echo -e " ${CYAN}prep${RESET} [options] ${BOLD}Repo preparation${RESET} — generate .claude/ configs for agents"
104
+ echo -e " ${CYAN}hygiene${RESET} <cmd> ${BOLD}Repo hygiene${RESET} — dead code, structure, deps, cleanup"
82
105
  echo -e " ${CYAN}daemon${RESET} <cmd> ${BOLD}Issue watcher${RESET} — auto-process GitHub issues"
106
+ echo -e " ${CYAN}autonomous|auto${RESET} <cmd> ${BOLD}Autonomous loop${RESET} — AI-building-AI: analyze, create, build, learn"
83
107
  echo -e " ${CYAN}memory${RESET} <cmd> ${BOLD}Persistent memory${RESET} — learn from every pipeline run"
108
+ echo -e " ${CYAN}guild${RESET} <cmd> ${BOLD}Knowledge guilds${RESET} — cross-team learning, shared patterns"
109
+ echo -e " ${CYAN}instrument${RESET} <cmd> ${BOLD}Pipeline instrumentation${RESET} — record predicted vs actual metrics"
84
110
  echo -e " ${CYAN}cost${RESET} <cmd> ${BOLD}Cost intelligence${RESET} — track tokens, budgets, model routing"
111
+ echo -e " ${CYAN}adaptive${RESET} <cmd> ${BOLD}Adaptive tuning${RESET} — data-driven pipeline defaults from historical runs"
112
+ echo -e " ${CYAN}regression${RESET} <cmd> ${BOLD}Regression detection${RESET} — detect regressions after merge"
113
+ echo -e " ${CYAN}incident${RESET} <cmd> ${BOLD}Incident commander${RESET} — detect failures, triage, remediate"
114
+ echo -e " ${CYAN}db${RESET} <cmd> ${BOLD}SQLite persistence${RESET} — events, runs, developers, metrics"
115
+ echo -e " ${CYAN}deps${RESET} <cmd> ${BOLD}Dependency updates${RESET} — scan, classify, test, merge Dependabot/Renovate PRs"
85
116
  echo -e " ${CYAN}fleet${RESET} <cmd> ${BOLD}Multi-repo fleet${RESET} — orchestrate daemons across repos"
117
+ echo -e " ${CYAN}fleet-viz${RESET} <cmd> ${BOLD}Fleet visualization${RESET} — cross-repo insights and queue"
86
118
  echo -e " ${CYAN}fix${RESET} \"goal\" [opts] ${BOLD}Bulk fix${RESET} — apply a fix across multiple repos"
87
119
  echo -e " ${CYAN}dashboard${RESET} <cmd> ${BOLD}Fleet Command${RESET} — real-time WebSocket dashboard"
120
+ echo -e " ${CYAN}public-dashboard${RESET} <cmd> ${BOLD}Public dashboard${RESET} — shareable pipeline progress (static HTML)"
121
+ echo -e " ${CYAN}share${RESET} [...] ${BOLD}Share pipeline${RESET} — alias for ${DIM}public-dashboard share${RESET}"
88
122
  echo -e " ${CYAN}jira${RESET} <cmd> ${BOLD}Jira sync${RESET} — bidirectional issue sync with Jira"
89
123
  echo -e " ${CYAN}linear${RESET} <cmd> ${BOLD}Linear sync${RESET} — bidirectional issue sync with Linear"
124
+ echo -e " ${CYAN}model${RESET} <cmd> ${BOLD}Model router${RESET} — intelligent model routing and cost optimization"
90
125
  echo -e " ${CYAN}tracker${RESET} <cmd> ${BOLD}Issue tracker${RESET} — configure Linear/Jira integration"
91
126
  echo -e " ${CYAN}heartbeat${RESET} <cmd> ${BOLD}Agent heartbeat${RESET} — write/check/list/clear heartbeats"
127
+ echo -e " ${CYAN}standup${RESET} <cmd> ${BOLD}Daily standups${RESET} — gather status, summarize work, report blockers"
92
128
  echo -e " ${CYAN}checkpoint${RESET} <cmd> ${BOLD}Checkpoints${RESET} — save/restore agent state mid-stage"
129
+ echo -e " ${CYAN}durable${RESET} <cmd> ${BOLD}Durable workflow${RESET} — event log, checkpoints, locks, exactly-once"
130
+ echo -e " ${CYAN}webhook${RESET} <cmd> ${BOLD}GitHub webhooks${RESET} — instant issue processing, no polling"
131
+ echo -e " ${CYAN}decompose${RESET} <cmd> ${BOLD}Issue decomposer${RESET} — analyze complexity, auto-create subtasks"
132
+ echo -e " ${CYAN}discovery${RESET} <cmd> ${BOLD}Cross-pipeline learning${RESET} — real-time knowledge sharing"
93
133
  echo -e " ${CYAN}connect${RESET} <cmd> ${BOLD}Team connect${RESET} — sync local state to team dashboard"
94
134
  echo -e " ${CYAN}remote${RESET} <cmd> ${BOLD}Remote machines${RESET} — register and manage distributed workers"
95
135
  echo -e " ${CYAN}launchd${RESET} <cmd> ${BOLD}Process supervision${RESET} — auto-start daemon + dashboard on boot"
136
+ echo -e " ${CYAN}auth${RESET} <cmd> ${BOLD}GitHub authentication${RESET} — OAuth login, token management, multi-user"
96
137
  echo -e " ${CYAN}docs${RESET} <cmd> ${BOLD}Documentation keeper${RESET} — auto-sync docs from source"
138
+ echo -e " ${CYAN}changelog${RESET} <cmd> ${BOLD}Changelog engine${RESET} — auto-generate release notes and migration guides"
139
+ echo -e " ${CYAN}docs-agent${RESET} <cmd> ${BOLD}Autonomous docs agent${RESET} — scan gaps, sync, coverage, API ref"
140
+ echo -e " ${CYAN}release${RESET} <cmd> ${BOLD}Release automation${RESET} — bump versions, changelog, tags, releases"
141
+ echo -e " ${CYAN}release-manager|rm${RESET} ${BOLD}Autonomous release pipeline${RESET} — readiness checks, RC flow, rollback"
142
+ echo -e " ${CYAN}replay${RESET} <cmd> ${BOLD}Pipeline DVR${RESET} — list, show, narrative, diff, export, compare runs"
143
+ echo -e " ${CYAN}scale${RESET} <cmd> ${BOLD}Dynamic team scaling${RESET} — scale agents up/down during pipeline"
144
+ echo -e " ${CYAN}swarm${RESET} <cmd> ${BOLD}Agent swarm manager${RESET} — registry, spawning, scaling, health, topology"
145
+ echo -e " ${CYAN}dora${RESET} <cmd> ${BOLD}DORA metrics${RESET} — deploy frequency, lead time, CFR, MTTR dashboard"
146
+ echo -e " ${CYAN}retro${RESET} <cmd> ${BOLD}Sprint retrospective${RESET} — analyze sprints, identify improvements, create actions"
97
147
  echo -e " ${CYAN}tmux${RESET} <cmd> ${BOLD}tmux health${RESET} — doctor, install plugins, fix issues"
98
148
  echo -e " ${CYAN}vitals${RESET} ${BOLD}Pipeline vitals${RESET} — real-time health scoring and dashboard"
149
+ echo -e " ${CYAN}stream${RESET} ${BOLD}Terminal streaming${RESET} — live agent output to dashboard or CLI"
99
150
  echo -e " ${CYAN}github${RESET} ${BOLD}GitHub context${RESET} — repo metadata, security, blame"
100
151
  echo -e " ${CYAN}checks${RESET} ${BOLD}GitHub checks${RESET} — CI check runs and status"
152
+ echo -e " ${CYAN}ci${RESET} ${BOLD}CI/CD orchestration${RESET} — workflow generation, matrix, caching, secrets"
101
153
  echo -e " ${CYAN}deploys${RESET} ${BOLD}Deployments${RESET} — deployment history and environments"
154
+ echo -e " ${CYAN}github-app${RESET} ${BOLD}GitHub App management${RESET} — JWT, tokens, webhooks, manifest"
155
+ echo -e " ${CYAN}pr${RESET} ${BOLD}PR lifecycle${RESET} — auto-review, merge, cleanup, feedback"
156
+ echo -e " ${CYAN}context${RESET} ${BOLD}Context engine${RESET} — gather context for pipeline stages"
157
+ echo -e " ${CYAN}trace${RESET} ${BOLD}E2E traceability${RESET} — issue to commit to PR to deploy"
158
+ echo -e " ${CYAN}widgets${RESET} ${BOLD}Status widgets${RESET} — embeddable badges, Slack messages, markdown"
159
+ echo -e " ${CYAN}eventbus${RESET} ${BOLD}Event bus${RESET} — real-time inter-component communication"
160
+ echo -e " ${CYAN}otel${RESET} ${BOLD}OpenTelemetry observability${RESET} — Prometheus metrics, traces, OTLP export"
161
+ echo -e " ${CYAN}triage${RESET} ${BOLD}Issue labeling & prioritization${RESET} — auto-analyze, label, score, team sizing"
162
+ echo -e " ${CYAN}quality${RESET} ${BOLD}Quality validation${RESET} — ruthless gates, adversarial audits, completion detection"
163
+ echo -e " ${CYAN}oversight${RESET} ${BOLD}Quality oversight board${RESET} — multi-agent review council, voting, architecture governance"
164
+ echo -e " ${CYAN}code-review${RESET} ${BOLD}Autonomous code review${RESET} — clean code, SOLID, architecture boundaries, complexity"
165
+ echo -e " ${CYAN}pm${RESET} ${BOLD}Autonomous PM agent${RESET} — intelligent team sizing, composition, orchestration"
166
+ echo -e " ${CYAN}strategic${RESET} ${BOLD}Strategic intelligence${RESET} — analyze strategy, metrics, create improvement issues"
167
+ echo -e " ${CYAN}team-stages${RESET} ${BOLD}Multi-agent stage execution${RESET} — compose teams, delegate tasks, tally votes"
168
+ echo -e " ${CYAN}ux${RESET} ${BOLD}Premium UX layer${RESET} — themes, animations, shortcuts, accessibility"
169
+ echo -e " ${CYAN}recruit${RESET} ${BOLD}Agent recruitment${RESET} — skill matching, role definitions, performance evaluation"
170
+ echo -e " ${CYAN}testgen${RESET} ${BOLD}Test generation${RESET} — analyze coverage, generate tests, maintain thresholds"
171
+ echo -e " ${CYAN}security-audit|audit${RESET} ${BOLD}Security auditing${RESET} — secrets, licenses, vulnerabilities, SBOM, compliance"
102
172
  echo -e " ${CYAN}init${RESET} ${BOLD}Quick tmux setup${RESET} — one command, no prompts"
103
173
  echo -e " ${CYAN}setup${RESET} ${BOLD}Guided setup${RESET} — prerequisites, init, doctor, quick start"
104
174
  echo -e " ${CYAN}help${RESET} Show this help message"
@@ -154,6 +224,7 @@ show_help() {
154
224
  echo -e " ${DIM}shipwright daemon test${RESET} # Run daemon test suite"
155
225
  echo -e " ${DIM}shipwright prep test${RESET} # Run prep test suite"
156
226
  echo -e " ${DIM}shipwright pipeline test${RESET} # Run pipeline test suite"
227
+ echo -e " ${DIM}shipwright e2e${RESET} <cmd> ${BOLD}Test orchestration${RESET} — smoke/integration/regression"
157
228
  echo ""
158
229
  echo -e "${BOLD}AUDIT & QUALITY${RESET} ${DIM}(loop guardrails)${RESET}"
159
230
  echo -e " ${DIM}shipwright loop \"goal\" --audit${RESET} # Self-reflection each iteration"
@@ -181,13 +252,107 @@ show_help() {
181
252
  echo -e "${DIM}Docs: https://sethdford.github.io/shipwright | GitHub: https://github.com/sethdford/shipwright${RESET}"
182
253
  }
183
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
+
184
335
  # ─── Command Router ──────────────────────────────────────────────────────────
185
336
 
186
337
  main() {
187
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
+
188
346
  shift 2>/dev/null || true
189
347
 
190
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
+
191
356
  session)
192
357
  check_tmux
193
358
  check_in_tmux
@@ -197,6 +362,9 @@ main() {
197
362
  check_tmux
198
363
  exec "$SCRIPT_DIR/sw-status.sh" "$@"
199
364
  ;;
365
+ mission-control|mc)
366
+ exec "$SCRIPT_DIR/sw-mission-control.sh" "$@"
367
+ ;;
200
368
  ps)
201
369
  check_tmux
202
370
  exec "$SCRIPT_DIR/sw-ps.sh" "$@"
@@ -204,6 +372,9 @@ main() {
204
372
  logs)
205
373
  exec "$SCRIPT_DIR/sw-logs.sh" "$@"
206
374
  ;;
375
+ activity)
376
+ exec "$SCRIPT_DIR/sw-activity.sh" "$@"
377
+ ;;
207
378
  templates)
208
379
  exec "$SCRIPT_DIR/sw-templates.sh" "$@"
209
380
  ;;
@@ -233,18 +404,48 @@ main() {
233
404
  prep)
234
405
  exec "$SCRIPT_DIR/sw-prep.sh" "$@"
235
406
  ;;
407
+ hygiene)
408
+ exec "$SCRIPT_DIR/sw-hygiene.sh" "$@"
409
+ ;;
236
410
  daemon)
237
411
  exec "$SCRIPT_DIR/sw-daemon.sh" "$@"
238
412
  ;;
413
+ autonomous|auto)
414
+ exec "$SCRIPT_DIR/sw-autonomous.sh" "$@"
415
+ ;;
239
416
  memory)
240
417
  exec "$SCRIPT_DIR/sw-memory.sh" "$@"
241
418
  ;;
419
+ guild)
420
+ exec "$SCRIPT_DIR/sw-guild.sh" "$@"
421
+ ;;
422
+ instrument)
423
+ exec "$SCRIPT_DIR/sw-instrument.sh" "$@"
424
+ ;;
242
425
  cost)
243
426
  exec "$SCRIPT_DIR/sw-cost.sh" "$@"
244
427
  ;;
428
+ adaptive)
429
+ exec "$SCRIPT_DIR/sw-adaptive.sh" "$@"
430
+ ;;
431
+ regression)
432
+ exec "$SCRIPT_DIR/sw-regression.sh" "$@"
433
+ ;;
434
+ incident)
435
+ exec "$SCRIPT_DIR/sw-incident.sh" "$@"
436
+ ;;
437
+ db)
438
+ exec "$SCRIPT_DIR/sw-db.sh" "$@"
439
+ ;;
440
+ deps)
441
+ exec "$SCRIPT_DIR/sw-deps.sh" "$@"
442
+ ;;
245
443
  fleet)
246
444
  exec "$SCRIPT_DIR/sw-fleet.sh" "$@"
247
445
  ;;
446
+ fleet-viz)
447
+ exec "$SCRIPT_DIR/sw-fleet-viz.sh" "$@"
448
+ ;;
248
449
  fix)
249
450
  exec "$SCRIPT_DIR/sw-fix.sh" "$@"
250
451
  ;;
@@ -257,21 +458,36 @@ main() {
257
458
  dashboard|dash)
258
459
  exec "$SCRIPT_DIR/sw-dashboard.sh" "$@"
259
460
  ;;
461
+ public-dashboard|share)
462
+ exec "$SCRIPT_DIR/sw-public-dashboard.sh" "$@"
463
+ ;;
260
464
  jira)
261
465
  exec "$SCRIPT_DIR/sw-jira.sh" "$@"
262
466
  ;;
263
467
  linear)
264
468
  exec "$SCRIPT_DIR/sw-linear.sh" "$@"
265
469
  ;;
470
+ model)
471
+ exec "$SCRIPT_DIR/sw-model-router.sh" "$@"
472
+ ;;
266
473
  tracker)
267
474
  exec "$SCRIPT_DIR/sw-tracker.sh" "$@"
268
475
  ;;
269
476
  heartbeat)
270
477
  exec "$SCRIPT_DIR/sw-heartbeat.sh" "$@"
271
478
  ;;
479
+ standup)
480
+ exec "$SCRIPT_DIR/sw-standup.sh" "$@"
481
+ ;;
272
482
  checkpoint)
273
483
  exec "$SCRIPT_DIR/sw-checkpoint.sh" "$@"
274
484
  ;;
485
+ durable)
486
+ exec "$SCRIPT_DIR/sw-durable.sh" "$@"
487
+ ;;
488
+ webhook)
489
+ exec "$SCRIPT_DIR/sw-webhook.sh" "$@"
490
+ ;;
275
491
  connect)
276
492
  exec "$SCRIPT_DIR/sw-connect.sh" "$@"
277
493
  ;;
@@ -281,6 +497,9 @@ main() {
281
497
  launchd)
282
498
  exec "$SCRIPT_DIR/sw-launchd.sh" "$@"
283
499
  ;;
500
+ auth)
501
+ exec "$SCRIPT_DIR/sw-auth.sh" "$@"
502
+ ;;
284
503
  intelligence|intel)
285
504
  exec "$SCRIPT_DIR/sw-intelligence.sh" "$@"
286
505
  ;;
@@ -296,27 +515,129 @@ main() {
296
515
  simulation)
297
516
  exec "$SCRIPT_DIR/sw-developer-simulation.sh" "$@"
298
517
  ;;
518
+ strategic|strategy)
519
+ exec "$SCRIPT_DIR/sw-strategic.sh" "$@"
520
+ ;;
299
521
  architecture)
300
522
  exec "$SCRIPT_DIR/sw-architecture-enforcer.sh" "$@"
301
523
  ;;
302
524
  vitals)
303
525
  exec "$SCRIPT_DIR/sw-pipeline-vitals.sh" "$@"
304
526
  ;;
527
+ stream)
528
+ exec "$SCRIPT_DIR/sw-stream.sh" "$@"
529
+ ;;
305
530
  docs)
306
531
  exec "$SCRIPT_DIR/sw-docs.sh" "$@"
307
532
  ;;
533
+ changelog)
534
+ exec "$SCRIPT_DIR/sw-changelog.sh" "$@"
535
+ ;;
536
+ docs-agent)
537
+ exec "$SCRIPT_DIR/sw-docs-agent.sh" "$@"
538
+ ;;
539
+ release)
540
+ exec "$SCRIPT_DIR/sw-release.sh" "$@"
541
+ ;;
542
+ release-manager|rm)
543
+ exec "$SCRIPT_DIR/sw-release-manager.sh" "$@"
544
+ ;;
545
+ replay)
546
+ exec "$SCRIPT_DIR/sw-replay.sh" "$@"
547
+ ;;
548
+ scale)
549
+ exec "$SCRIPT_DIR/sw-scale.sh" "$@"
550
+ ;;
551
+ swarm)
552
+ exec "$SCRIPT_DIR/sw-swarm.sh" "$@"
553
+ ;;
554
+ dora)
555
+ exec "$SCRIPT_DIR/sw-dora.sh" "$@"
556
+ ;;
557
+ retro)
558
+ exec "$SCRIPT_DIR/sw-retro.sh" "$@"
559
+ ;;
308
560
  tmux)
309
561
  exec "$SCRIPT_DIR/sw-tmux.sh" "$@"
310
562
  ;;
563
+ tmux-pipeline)
564
+ exec "$SCRIPT_DIR/sw-tmux-pipeline.sh" "$@"
565
+ ;;
311
566
  github|gh-context)
312
567
  exec "$SCRIPT_DIR/sw-github-graphql.sh" "$@"
313
568
  ;;
314
569
  checks)
315
570
  exec "$SCRIPT_DIR/sw-github-checks.sh" "$@"
316
571
  ;;
572
+ ci)
573
+ exec "$SCRIPT_DIR/sw-ci.sh" "$@"
574
+ ;;
317
575
  deploys|deployments)
318
576
  exec "$SCRIPT_DIR/sw-github-deploy.sh" "$@"
319
577
  ;;
578
+ github-app)
579
+ exec "$SCRIPT_DIR/sw-github-app.sh" "$@"
580
+ ;;
581
+ decompose)
582
+ exec "$SCRIPT_DIR/sw-decompose.sh" "$@"
583
+ ;;
584
+ discovery)
585
+ exec "$SCRIPT_DIR/sw-discovery.sh" "$@"
586
+ ;;
587
+ context)
588
+ exec "$SCRIPT_DIR/sw-context.sh" "$@"
589
+ ;;
590
+ trace)
591
+ exec "$SCRIPT_DIR/sw-trace.sh" "$@"
592
+ ;;
593
+ pr)
594
+ exec "$SCRIPT_DIR/sw-pr-lifecycle.sh" "$@"
595
+ ;;
596
+ widgets)
597
+ exec "$SCRIPT_DIR/sw-widgets.sh" "$@"
598
+ ;;
599
+ feedback)
600
+ exec "$SCRIPT_DIR/sw-feedback.sh" "$@"
601
+ ;;
602
+ eventbus)
603
+ exec "$SCRIPT_DIR/sw-eventbus.sh" "$@"
604
+ ;;
605
+ otel)
606
+ exec "$SCRIPT_DIR/sw-otel.sh" "$@"
607
+ ;;
608
+ triage)
609
+ exec "$SCRIPT_DIR/sw-triage.sh" "$@"
610
+ ;;
611
+ quality)
612
+ exec "$SCRIPT_DIR/sw-quality.sh" "$@"
613
+ ;;
614
+ oversight)
615
+ exec "$SCRIPT_DIR/sw-oversight.sh" "$@"
616
+ ;;
617
+ code-review)
618
+ exec "$SCRIPT_DIR/sw-code-review.sh" "$@"
619
+ ;;
620
+ pm)
621
+ exec "$SCRIPT_DIR/sw-pm.sh" "$@"
622
+ ;;
623
+ team-stages)
624
+ exec "$SCRIPT_DIR/sw-team-stages.sh" "$@"
625
+ ;;
626
+ ux)
627
+ exec "$SCRIPT_DIR/sw-ux.sh" "$@"
628
+ ;;
629
+ recruit)
630
+ exec "$SCRIPT_DIR/sw-recruit.sh" "$@"
631
+ ;;
632
+ testgen)
633
+ exec "$SCRIPT_DIR/sw-testgen.sh" "$@"
634
+ ;;
635
+ e2e)
636
+ exec "$SCRIPT_DIR/sw-e2e-orchestrator.sh" "$@"
637
+ ;;
638
+ security-audit|audit)
639
+ exec "$SCRIPT_DIR/sw-security-audit.sh" "$@"
640
+ ;;
320
641
  help|--help|-h)
321
642
  show_help
322
643
  ;;