← ClaudeAtlas

initlisted

Use to set up baseline files in a repository via stow - detects the repo's stack, proposes a .stow.json, and manages a .gitignore section per opted-in stack, merging with any hand-written entries instead of overwriting them.
submtd/shipyard · ★ 1 · Data & Documents · score 74
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