initlisted
Install: claude install-skill submtd/shipyard
# Initialising stow in a repo
This scaffolds the **baseline files** layer only: a `.stow.json` config and
the managed sections of `.gitignore` it describes. It does not touch CI
(that's `rigging`'s job) or the git lifecycle — branch protection, PR/issue
templates, CODEOWNERS, the changelog gate (that's `keel`'s job).
## 1. Confirm the repo root and check for an existing config
`git rev-parse --show-toplevel`. Do everything below relative to that path.
Before proposing anything, check whether `.stow.json` already exists and, if
so, whether it loads:
python3 -c "import sys; sys.path.insert(0, '${CLAUDE_PLUGIN_ROOT}'); from stow.config import load_config; from pathlib import Path; print(load_config(Path('.')))"
(`${CLAUDE_PLUGIN_ROOT}` is this plugin's root directory; the `stow` package
sits at its top level.)
This has three possible outcomes, and they are not the same thing:
- **No `.stow.json`** (prints `None`) — proceed with the normal
fresh-scaffold flow: sections 2-3 below.
- **`.stow.json` exists and loads** (prints a `Config(...)`) — skip straight
to section 4. That file is the durable record of which stacks this repo
has opted into; use it as-is. Do NOT run section 3's `propose_config` in
this case — there is nothing to propose, the config on disk already is the
answer.
- **`.stow.json` exists but raises `ConfigError`** — it's present but invalid
(unparseable JSON, wrong shape, an unknown stack id, or a non-object stack
value). Leave it alone, t