Skip to content

Recipes

Worked examples for common chrysippus configurations and invocations. Each recipe is a short "I want X; here's how" pattern. For the authoritative config model see the Configuration page; for subagent invocation see the Subagents page.

Activation and flavor

Activate a persona

Slash command:

/chrysippus:shakespeare

Or natural-language trigger:

speak like Shakespeare

Either produces a 3-line announcement: active flavor, other flavors + switch syntax, stop syntax.

Activate with a specific flavor

Slash command with argument:

/chrysippus:shakespeare sonnet

Or natural-language:

speak like Shakespeare in sonnet flavor

Switch flavor mid-session

No config edit needed. Just say:

tavern flavor

Works for any flavor that belongs to the currently-active persona. The skill switches and persists.

Stop a persona

stop shakespeare

Or "end bard mode", "speak plainly" for a one-off pause without deactivating.

List installed personas

/chrysippus:personas

Shows every persona with its flavors, and which (if any) is active.

Configuration

I want Shakespeare for prose, but plain-English commits

This is the default. No config changes needed. The defaults keep commits, PR descriptions, code comments, safety warnings, and errors in plain English while the chat prose switches register.

I want the full Bardic experience — commits, PRs, everything

Edit .claude/skills/shakespeare/shakespeare.config:

flavor: courtly

preserve:
  commits:         false
  pr_descriptions: false
  code_comments:   false
  safety_warnings: true   # ← leave this on
  errors_verbatim: false

Then reload mid-session:

reload shakespeare config

Heads up: on a shared repo, your reviewers will see Bardic commit messages. Fine for personal repos; jarring in a team context.

I want pirate commits for my solo side project

Same pattern as above. Edit .claude/skills/pirate/pirate.config:

flavor: scurvy-dog
preserve:
  commits:         false
  pr_descriptions: false
  code_comments:   true    # keep comments readable by others
  safety_warnings: true
  errors_verbatim: true

Reload:

reload pirate config

Result: commit messages like plunder(parse): haul up the null-guard, matey while code comments stay plain.

I want drunk pirate for fun but not a dangerous destructive prompt

This is already the default. safety_warnings: true is strongly recommended for the drunk flavor specifically. If you flip it to false, destructive-op confirmations render as a drunken slur — easy to misclick. The config file carries an inline warning about this combo.

flavor: drunk
preserve:
  safety_warnings: true   # ← don't touch

I want toronto-mans but with in-character safety warnings

Not possible. safety_warnings is hard-locked to true in the toronto-mans skill. Any override you put in the config is ignored, and the skill tells you once that it was rejected. See Configuration → Hard-locks.

I want gen-alpha for fun but I'm over 30

tutorial flavor is your friend:

/chrysippus:gen-alpha tutorial

Every slang term gets a parenthetical gloss on first use: "this commit is cooked (= broken) ngl (= not gonna lie)".

Also useful for screen-sharing with a non-Gen-Alpha audience.

I want a professional voice but with the corporate-gen-alpha bit

/chrysippus:gen-alpha corporate

Formal punctuation and capitalization, slang slipped in for register- collision comedy: "Per my last review, the rizz of this PR is undeniable; however line 42 is, frankly, mid."

Reviews and audits

Run a PR review in Bardic register

@chrysippus:shakespeare-reviewer review my latest PR

Or with a branch name:

@chrysippus:shakespeare-reviewer review the feature/auth-refresh branch

Output: a verdict + findings list in Bardic voice, with severity markers (blocker / major / minor / nit) in plain English for scannability.

Run a pirate review from a cold start (no persona active)

@chrysippus:pirate-reviewer review the changes to src/auth/

The reviewer preloads the pirate skill — it does NOT inherit from whatever persona is active in your main session. Always pirate voice, every time.

Ask multiple reviewers in parallel for a gut check

Send three @-mentions in a single message:

Review my branch three ways:
@chrysippus:shakespeare-reviewer
@chrysippus:pirate-reviewer
@chrysippus:gen-alpha-reviewer

Each runs in parallel, returns its findings. Useful for a side-by-side comparison when you're just exploring. Burns context quickly; don't do this for every review.

Check if a response drifted off-register

@chrysippus:dramaturg audit this response for shakespeare-skill adherence:

"<paste the response in question>"

The dramaturg audits against SKILL.md rules and reports compliant / partial drift / major violation. Speaks plainly itself — no voice.

Check if a guardrail held (toronto-mans specifically)

@chrysippus:dramaturg audit this response for toronto-mans guardrails:

"<paste>"

Focus: did the response use any Patois expletives, fake-accent
respellings, or real-person references?

Same pattern as above, with the audit scope narrowed.

Mid-session controls

Suspend the active persona for one response

speak plainly

Next response renders in plain English. The persona resumes automatically on the turn after.

Deactivate the active persona entirely

stop shakespeare

Or "end bard mode", "end pirate mode", etc. Session reverts to plain English until you re-invoke a persona.

Switch between personas

Activating a new persona deactivates the old one. Most-recent-wins.

speak like Shakespeare
# (some work in Bardic)
talk like a pirate
# (from here, pirate voice; shakespeare no longer active)

Edit a config, see changes mid-session

# 1. Edit .claude/skills/pirate/pirate.config in your editor
# 2. Tell Claude:
reload pirate config

Without the reload, Claude keeps using the cached-at-activation values.

Project-level auto-activation

Make one persona auto-load for this project only

bash "${CLAUDE_PLUGIN_ROOT}/hooks/activate.sh" shakespeare

Writes .claude/personas/active in the project dir. The SessionStart hook reads it on every new Claude Code session and auto-activates shakespeare. One-time opt-in per project.

Check what's set

bash "${CLAUDE_PLUGIN_ROOT}/hooks/activate.sh" status

Disable auto-activation for this project

bash "${CLAUDE_PLUGIN_ROOT}/hooks/activate.sh" off

Hooks live in the plugin install directory under Claude Code's plugin store. See the Claude Code install page for more on the CLAUDE_PLUGIN_ROOT variable.