From Shipyard
Prove the local dev environment is healthy before starting work — the lightweight, NON-destructive "initialization phase" for an agent (or human) session, in any repo. It learns the project's setup (see the discovery contract) and then checks, and with repair mode fixes, the things that silently block a session: missing dependencies (a fresh clone or git worktree that didn't inherit installed packages), gitignored runtime/config files a worktree doesn't carry, a stale local env file missing keys a newer example added, dev infrastructure (Docker Compose / services) being down, a database not accepting connections, and pending schema migrations. Prefer the project's own setup/preflight script when it has one; otherwise derive the steps from what's detected. Use this skill whenever the user wants to "check my environment", "is my local set up", "get this worktree ready", "preflight", "why won't the app/DB/frontend start", "set up this repo", or before booting the app, running migrations, regenerating a client, or starting a dev server from a fresh checkout. It is the front-half counterpart to `shipyard:local-reset`: preflight is non-destructive (brings infra UP, installs deps, applies forward-only migrations — it NEVER drops a volume or wipes data), whereas local-reset tears the stack down and rebuilds. Reach for local-reset instead only when state is corrupted badly enough that a clean wipe is faster than a repair. Other Shipyard skills (`deliver-feature`, `code-audit`, `verify`) call this at their start.
How this skill is triggered — by the user, by Claude, or both
Slash command
/shipyard:preflightThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Initialization is its own phase. Before any real work in a checkout — especially a fresh
Initialization is its own phase. Before any real work in a checkout — especially a fresh clone or a git worktree — prove the harness is healthy from a known-good baseline.
Learn the repo per ${CLAUDE_PLUGIN_ROOT}/reference/discover-project.md, focusing on
the dev-infra, migrations, dependency, and runtime-files facts. The key
question: does the project ship its own setup/preflight script? (scripts/preflight.sh,
bin/setup, make dev, just setup, a documented "local setup" sequence). If it does,
prefer it — drive that script and interpret its result, rather than re-deriving the
steps. This skill only hand-rolls the checks when the project has none.
This is the opposite end of shipyard:local-reset:
| preflight | local-reset | |
|---|---|---|
| Direction | brings the stack up to ready | tears the stack down, rebuilds |
| Data | never dropped | drops volumes / wipes the DB |
| Heaviest action | start infra, install deps, forward-only migrate | compose down -v / drop schema |
| When | start of (almost) every session | only when local state is corrupted |
Preflight never drops a volume or deletes data. If it finds migration drift it can't
reconcile forward (the DB is on a migration that no longer exists on the branch), that
is when to fall back to shipyard:local-reset.
Adapt each check to what discovery found; skip the ones the project doesn't have.
*.example (or copy from the main
checkout, located via git worktree list). Missing these is the classic "connection
string not initialized" / "config not found" startup crash.*.env.example is present in the local
env file. In repair mode, append missing keys from the example (example values are
local non-secret fixtures). This is the papercut where a new service adds a required var
that older local env files don't have, so the stack errors before doing anything.node_modules,
restored NuGet, a built target/, a populated venv, vendored modules). Worktrees and
fresh clones don't share these. In repair mode, run the deterministic install
(npm ci, dotnet restore, cargo fetch, pip install -r, bundle install, …) —
prefer the lockfile-respecting form so the tree stays clean.docker compose up -d).local-reset) clears them.| Symptom | Likely cause | Fix |
|---|---|---|
| runtime/config file missing | fresh clone / worktree didn't inherit gitignored files | repair copies from the main checkout or seeds from *.example |
| env file missing key(s) | a new service added a required var to the example | repair appends them |
| deps missing | fresh clone / worktree | repair runs the deterministic install |
| infra not running | dev services down | repair brings the stack up |
| service up but not accepting | container still starting or wedged | check its logs; if wedged → shipyard:local-reset |
| migration apply failed | drift the forward update can't reconcile | fall back to shipyard:local-reset |
| install / build / test failed | a real toolchain or code problem | read the captured log; this is not an env papercut |
shipyard:local-reset.shipyard:local-reset.shipyard:code-audit (which itself preflights in check-only mode).npx claudepluginhub tracstarr/shipyard --plugin shipyardProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.