rhiza-maffay · git:20260923.a1b3fbe · 2026-09-23 · sha256 898d903046415553
rhiza-maffay git:20260923.a1b3fbeA
Immutable. This exact content is served forever at /api/v1/blob/898d903046415553.
---
name: rhiza-maffay
description: Print one bonmot from a random Peter Maffay song — a pick-me-up for a long refactor. Takes an optional theme keyword. Needs no repo and no git, so it works anywhere.
---
> **Portable copy of `plugin/skills/maffay/SKILL.md`, generated by
> `plugin/scripts/build_bundle.py`. Edit the source and run `make bundle` —
> an edit here is overwritten.**
>
> - **`${RHIZA_ROOT}`** is your `rhiza-claude` checkout. Export it, or
> substitute the path wherever it appears. Any remark below about the
> variable being empty in a source checkout is Claude Code's spelling of the
> same idea — `${RHIZA_ROOT}` replaces it, and the repo-relative fallbacks do
> not apply, because you are working in the *user's* repo, not in this one.
> - **`/rhiza:<name>`** names another skill in this bundle, `rhiza-<name>`.
> Invoke it however your client invokes skills.
> - **Tools.** `Read`, `Edit` and `Write` read and write files; `Grep` and
> `Glob` search; `Bash` is a shell in the user's repo. Use your equivalents.
> - **`AskUserQuestion`** is a multiple-choice question put to the user. With no
> such tool, ask in plain text, number the options, and **wait for a reply**:
> where the procedure says nothing is created without an explicit selection,
> that holds however the question was asked.
> - **Arguments:** [theme keyword e.g. mut] (optional; omit for the whole catalogue).
> The text below writes `$ARGUMENTS` for what the user passed;
> substitute it yourself if your client does not.
> - **Runs:** `uv`. Nothing here enforces that list, where the
> plugin's frontmatter did — your client has to permit them.
You are running `/maffay`. Goal: print **one** bonmot from a random Peter Maffay song.
That is the whole command. It reads nothing, writes nothing, and needs no repo — so it
works anywhere, including outside a rhiza-managed project.
**Do not pick the song yourself.** Asked to choose "at random" you will reach for
*Über sieben Brücken* and *Nessaja* almost every time, and by the third run the command
feels broken. The bundled script owns the choice, and `random.choice` over the
catalogue is uniform where you are not. Run it and relay the output verbatim.
Argument (optional): `$ARGUMENTS` — a theme keyword (`mut`, `sommer`, `nessaja`,
`liebe`, …) or part of a song title, matched case-insensitively. Anything else is
still passed through: the script reports the known themes itself on a miss, which is
more useful than you guessing what the user meant.
## 1. Draw one
`${RHIZA_ROOT}/plugin` resolves at runtime (**keep the quotes**); in a source
checkout it's empty, so fall back to the repo-relative path.
```bash
uv run --python 3.12 --no-project python "${RHIZA_ROOT}/plugin/scripts/maffay.py" --theme "$ARGUMENTS"
```
Drop `--theme` entirely when `$ARGUMENTS` is empty — an empty theme is not the same
as no theme, and passing `--theme ""` matches everything by accident rather than by
intent.
Exit **1** means the theme matched nothing. The script has already printed the known
themes; show that and stop. Do **not** retry without the filter and pass the result
off as what they asked for, and do **not** invent a song to fill the gap.
`--seed N` makes a draw reproducible and `--list` prints the whole catalogue; both are
there for demos and tests. `--json` gives the same entry as one object if you need the
fields.
## 2. Report
Relay the three lines as printed. Two things not to blur:
- **The quoted line is the song's title line** — the hook, and the only quoted text.
Do not extend it into a verse from memory. A title is not a protectable work; the
lyric body is, and this command deliberately does not ship one.
- **`Für uns:` is this repo's gloss, not Maffay's words.** Keep the label. If you drop
it the joke reads as a lyric, which is exactly the confusion the format prevents.
One bonmot per invocation. If the user wants another, run it again.