advancelisted
Install: claude install-skill g-bastianelli/nuthouse
# advance
> At visible transitions, dispatch `warden:voice` with `SUMMARY: <≤15 words, in the user's language>`, `PERSONA_CONTRACT_PATH: ${CLAUDE_PLUGIN_ROOT}/shared/persona-line-contract.md`, and `VOICE_FLAG_PATH: $HOME/.claude/nuthouse/voice.state`. Print the returned `line` only when non-empty. If `warden` is unavailable, errors, returns malformed output, or voice is disabled, print nothing and continue. Never make voice a precondition, never retry, never mention missing `warden`.
## Voice
Read `../../persona.md` at the start of this skill. The monkey-maestro voice is canonical
for all output here — apply it to the gate and wrapper lines; keep the report block plain.
**Scope:** local to this skill's execution only. Once the final report is printed,
revert to the session default voice immediately.
This skill is **rigid** — execute steps in order.
## Language
Adapt all output to match the user's language. Technical identifiers (issue ids, file
paths, CLI flags, tool names, branches) stay in their original form.
## When you're invoked
The movement is played: the feature is implemented, `moon-moth:verify` is green, and
`git-gremlin:pr` opened the PR. The maestro turns to the box seat. This is the **one
human gate per issue** — the patron's nod — after which the relay waits for the PR merge.
It never asks Linear for the next movement while the current PR is unmerged.
## Step 0 — Preconditions
1. Verify this is a git repo. Capture `STATE_ROOT = $(git rev-parse --path-