compose-checklisted
Install: claude install-skill chipi/agentic-ai-homelab
# compose-check
Catch a broken compose stack *before* `docker compose up`, not after. Validates
syntax, interpolation, and env wiring — strictly **read-only**. This skill never
runs `up`, `down`, `pull`, or anything that mutates a stack or shared state.
## When this applies
Editing a `docker-compose*.yml` / `compose.ya?ml`, or about to deploy one, or
asked to "check / validate the compose stack." Cheap; run it whenever in doubt.
## Check each stack
1. **Find stacks** — `docker-compose.yml`, `docker-compose.*.yml`, `compose.yml`,
`compose.yaml` (skip dated backups like `*.yml.<date>`). If none, say so.
2. **Validate structure, then classify** — for each file:
```bash
docker compose -f <file> config -q
```
A fresh checkout usually has no `.env` (gitignored, present only on the deploy
host), so separate "not ready" from "broken":
- **exit 0** → structure + interpolation valid → **PASS**
- **fails *only* with `env file ... not found`** → the YAML is fine, the stack
just needs an `.env` absent from this checkout → **ENV-MISSING** (warn, name
the exact path). Not a defect.
- **any other error** (YAML parse, `additional property`, bad interpolation,
`required variable is missing`) → **FAIL** — surface the message.
3. **Undefined interpolation** — grep for `${VAR}` used *without* a default or
required marker (`${VAR:-default}` / `${VAR:?msg}`). Any bare `${VAR}` not set
in the environment or an `.env` becomes an empty string at run