stage-provisionlisted
Install: claude install-skill m4ttstack/skills
# stage: provision
{{stage.fields}}
## Run state
Contracts v2 and v3 (authoritative text: the parameterized-skills skill's convention reference).
- First action: `rt runs stage-start --stage provision`
- Read consumed fields with `rt runs field get <key>` before
deriving or asking for them.
- Write each declared produce the moment it exists:
`rt runs field set <key> <value> --stage provision`
- Last action on success: `rt runs stage-done --stage provision`;
on failure: `rt runs stage-fail --stage provision --reason
"<what actually failed>"` before you report it.
Read `mode` with `rt runs field get mode` (unset means
`interactive`). If `mode` is `worker`, you were dispatched into a prepared
worktree: verify `git status` runs cleanly in `$PWD`, write `worktree`
($PWD) and `branch` (current branch), and finish -- no detection, no
acquisition.
## Domain rules
{{slot:domain}}
When nothing is inlined above, follow the generic path below.
Unbound (generic fallback): run
`rt worktree provision --repo <repo> --ticket <ticket> --json`. Pass
`--title "<ticket title>"` whenever a ticket title is known -- without it
the branch gets no slug.
- `ok`: `EnterWorktree` to `data.path`; write `branch` and `worktree`
(`data.path`). A cold create (`wasOnDeck:false`) can take minutes --
tell the user it's provisioning.
- error `branch-attached:<tree>`: the provision gate, scope `provision`,
below. Never pick a side yourself.
- `null` (daemon down) or an `unknown-repo` error: