<< All versions

Skill v1.0.0

currentLLM-judged scan95/100
jebel-quant/rhiza-claude/rhiza-maffay
──Details
PublishedOctober 23, 2026 at 02:33 PM
Content Hashsha256:898d903046415553...
Git SHAa1b3fbeefa65
──Files
Files (1 file, 3.9 KB)
SKILL.md3.9 KBactive
SKILL.md · 77 lines · 3.9 KB

version: "1.0.0" 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.

All versions