git clone https://github.com/sethdford/shipwright.git
cd shipwright
./install.sh
shipwright doctor # verify everything worksscripts/— CLI scripts (bash). Theswrouter dispatches tosw-*.shsubcommands.scripts/lib/— Shared libraries (helpers, compat, pipeline modules, daemon modules)tmux/— tmux config and agent overlaytmux/templates/— Team composition templates (JSON)templates/pipelines/— Pipeline templatesdashboard/— Real-time WebSocket dashboard (Bun/TypeScript)claude-code/— Claude Code settings, hooks, and agent instructionscompletions/— Shell completions (bash, zsh, fish)website/— Documentation site (Astro/Starlight)
# Run all tests
npm test
# Run a specific test suite
bash scripts/sw-pipeline-test.sh
# Run smoke tests
npm run test:smoke
# Lint shell scripts
shellcheck scripts/sw-*.shEvery scripts/sw-<feature>.sh should have a corresponding scripts/sw-<feature>-test.sh. Tests use a custom bash harness with:
setup_env/cleanup_envfor temp directory sandboxing- Mock binaries (git, gh, claude, tmux) in
$TEMP_DIR/bin run_test "name" functionfor test executionassert_*helpers for assertions
- All scripts use
set -euo pipefailand ERR traps - Colors and output helpers come from
scripts/lib/helpers.sh - Platform detection from
scripts/lib/compat.sh - Exit codes: 0 = success, 1 = error, 2 = check failed
Follow conventional commits:
fix:— Bug fixesfeat:— New featuresdocs:— Documentation changeschore:— Maintenance, CI, releasesrefactor:— Code changes that don't fix bugs or add features
Label a GitHub issue with shipwright and the autonomous pipeline processes it automatically. You can also create issues for Shipwright to process:
- Create an issue
- Add the
shipwrightlabel - The pipeline handles: triage → plan → build → test → review → PR
MIT