setuplisted
Install: claude install-skill fastedd27/spire-skills
<!-- ENGINE FILE — one source, two cuts. Installation-specific values (path
roots, hooks, governance rule names, reference docs) are referenced
generically as `cfg:<key>` and resolved by the config layer:
`config/house-config.md` (house cut) or `config/house-config.example.md`
(public example). Shared pipeline vocabulary lives in
`shared/pipeline-conventions.md`. This file states NO installation-specific
value anywhere — everything it writes is read from the example config or
the plugin manifest at runtime, or confirmed by the operator. -->
# Setup — first-run onboarding for the config layer (optional)
**Running with no config file is fully supported** — every key falls back to its documented "Omit →" default and the pipeline runs in safe zero-config mode. This helper is optional convenience: it gets an operator from nothing to a minimal, correct `house-config.md` in one short conversation, or reports on the config they already have. It is invoked explicitly by name, and only by the operator — **no skill in this plugin detects a missing config and invokes setup on its own; the three pipeline skills' config-load step never routes here.**
## Invariants (binding — read before running)
- **I1 — No half-states.** The config is written as ONE whole-file write or not at all. Any abort, at any step, leaves no file behind. There is no partially-written config, ever.
- **I2 — Never overwrite.** An existing `house-config.md` at either discovery loc