scopelisted
Install: claude install-skill g-bastianelli/nuthouse
# scope
> At visible transitions, try to 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 moon-moth voice is
canonical for all output here. Apply it to the wrapper lines around reports;
keep the report blocks themselves plain.
**Scope:** local to this skill's execution only. Once the final report is
printed, revert to the session default voice.
This skill is **rigid** — execute steps in order.
## Context
> Auto-injected on Claude Code at skill load. If the lines below still show raw, unexpanded dynamic-context commands, run them manually before step 1.
- Workspace check: !`ls .moon 2>/dev/null && echo "moon workspace" || echo "no .moon here"`
- Changed files: !`git status --porcelain | head -30`
## Language
Adapt all output to match the user's language. Technical identifiers (project
ids, file paths, CLI flags, task names) stay in their original form.
## When you're invoked
The agent (or user) is about to work on a task in a moon monorepo and needs to
know _which projects the change touches_ before readi