ffs-initlisted
Install: claude install-skill austinmao/feature-fix-swarm
# /ffs-init [--detect-only|--answers <file>|--yes|--update|--check|--force|--reset-declines|--skip-deps]
## Host dispatch contract
- Codex: invoke skills as `$skill`; use Codex collaboration roles and GPT-5.6 model tiers.
- Claude: invoke skills as `/skill`; use Claude Agent/Skill tools and Claude model aliases.
- Examples that name both hosts are routing contracts. Never send one host's command syntax to the other.
- A bare `/skill` in this shared source denotes the Claude form; Codex dispatches the same named skill as `$skill`.
Two phases: Phase 0 installs repo-scoped dependencies (below), then the
registry flow collects operator answers for the environment registry.
For the REGISTRY the skill DECIDES nothing and WRITES nothing:
`scripts/gsd/env-registry.sh` owns detection, validation, and the atomic
write. Every registry write in this skill's flow routes through
`env-registry.sh apply` — the skill itself never touches
`config/environments.yaml` or `.ffs-init.json`, in any mode, ever. Phase 0's
only writes are the ones `deps.sh install` makes (`node_modules/` from the
committed lockfile, pip packages from `requirements-dev.txt`) and, on an
explicit confirm, whatever `setup.sh` installs under its own manifest.
## Phase 0 — dependencies (runs first; `--skip-deps` skips it)
```bash
REPO_ROOT="$(git rev-parse --show-toplevel)"
bash "$REPO_ROOT/scripts/gsd/deps.sh" check
```
1. Run `deps.sh check` and relay its report. Exit 0 with nothing missing →
phase done, continue