| name | ship-factory-setup |
| description | One-time bootstrap for a ship-factory checkout on a new machine. Runs a prerequisite doctor (git, gh, jq, node, agent CLI + gh auth), generates the gitignored dashboard/config.json from the committed template, and clones + registers the user's recently-pushed GitHub repos so they're runnable from the board. Use when the user says "set up ship-factory", "bootstrap ship-factory", "/ship-factory-setup", clones this repo fresh, or the board has no repos / no config.json yet. Idempotent — safe to re-run to pick up new repos. |
ship-factory setup
Bootstrap this checkout so the board and driver work on the current machine. The repo
ships no machine-specific config — dashboard/config.json (org, local checkout paths,
repo list) is a generated, gitignored artifact. This skill generates it.
Steps
-
Run the setup command from the repo root:
bin/setup.sh
Variants:
bin/setup.sh 3 — widen discovery to the last 3 months.
bin/setup.sh --no-discover — doctor + empty config only; add repos later.
SF_CHECKOUTS=/custom/path bin/setup.sh — put clones somewhere other than ~/.ship-factory/checkouts.
-
Read the doctor output. If it exits non-zero, a prerequisite is missing — relay the
exact ✗ line to the user (e.g. gh not authenticated → gh auth login) and stop; do not
try to work around it. A ! warning (no agent CLI) is non-fatal — mock mode still works.
-
Confirm the result. On success the script prints how many repos are now registered and
the follow-up commands. Report those to the user:
- open the board:
bin/board-open.sh
- always-on board (macOS):
bin/board-install.sh
- add more repos later:
bin/sync-repos.sh [MONTHS]
Notes
- Never commit
dashboard/config.json — it's gitignored on purpose. To change the shipped
defaults (mode, router, push/automerge), edit dashboard/config.example.json instead.
- The command is idempotent: existing config entries and clones are kept; only new repos are added.