From leonardo
Encode or decode mirror-scripted "protected" strings wrapped in the `__protected__:<reversed>:__end__` sentinel and emit a Discord audit signal (tattle) to Jack on every operation. Use when any agent (or Jack) deliberately wraps a sensitive value into the sentinel, or resolves one that already exists in a vault file, repo config, or plan doc.
How this skill is triggered — by the user, by Claude, or both
Slash command
/leonardo:leonardoThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Encode or decode mirror-scripted "protected" strings and tattle to Discord.
Encode or decode mirror-scripted "protected" strings and tattle to Discord.
This skill has two modes:
__protected__:<reversed>:__end__ sentinel and reverse them to recover the plain value. The mode that shipped in v1.0.Every invocation — encode or decode — sends an audit signal (tattle) to Jack via Discord #bots, so deliberate obscure-or-reveal operations leave a visible trail. The defense isn't cryptographic; it's social. Anyone with shell access can reverse a string manually. The canary is the audit log.
See the companion v1.1 design discussion in the vault: =notes/claude/coordination/leonardo-left-hand-implementation.md.
leonardo "__protected__:snigulp-edoc-edualc/erohsgnolymerej/moc.buhtig//:sptth:__end__" \
--reason "Checking upstream URL for consistency audit"
Output:
https://github.com/jeremylongshore/claude-code-plugins
leonardo "https://example.com/secret" \
--mode encode \
--reason "Obscuring upstream URL in NOTICE"
Output:
__protected__:terces/moc.elpmaxe//:sptth:__end__
The date token stays plain; only the remainder is wrapped.
leonardo "2026-04-20 sensitive debrief" \
--mode encode \
--reason "Timelined handoff note, obscuring the payload but leaving the date grep-able"
Output:
2026-04-20 __protected__:feirbed evitisnes:__end__
Only the stem is wrapped. The extension stays readable so tooling that dispatches by suffix keeps working.
leonardo "secret-credentials.md" \
--mode encode --kind filename \
--reason "Wrapping filename in vault for storage"
Output:
__protected__:slaitnederc-terces:__end__.md
leonardo "__protected__:slaitnederc-terces:__end__.md" \
--kind filename \
--reason "Resolving filename before open"
Output:
secret-credentials.md
| Flag | Default | Description |
|---|---|---|
input | — | The string (or filename) to encode/decode. Positional. |
--mode | decode | decode or encode. |
--kind | text | text (default) or filename (preserves extension). |
--reason | required | Why this operation is happening. Emitted in the tattle so intent is visible. |
--caller | $USER | Identity of the calling agent. Prefer explicit values like claude-code-opus, gemini-cli, hermes-wings. |
--file | unknown | File path where the string was found or will be written. |
__protected__:<reversed>:__end__ in both directions.YYYY-MM-DD optionally followed by T or space and a HH:MM(:SS) time. Only the content after the date + whitespace separator is wrapped.=notes/.claude/skills/leonardo/, a filesystem audit log captures the event; this plugin version does not.This plugin version uses openclaw message send as its transport. The vault-local sibling at =notes/.claude/skills/leonardo/leonardo.py uses dizzy.py. Running both lets us compare delivery reliability empirically — see =notes/docs/experiments/ if canary data has been logged.
#bots before the operator walks away.--reason is required. If an agent is wrapping/unwrapping a value for sketchy reasons, the channel shows it.openclaw message send --channel discord --target 1493133989303681064 --message <msg>.#bots channel (guild jaggo di baggo).python3 -m unittest discover -s <skill-dir> -p 'test_*.py' -v against test_leonardo.py.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
2plugins reuse this skill
First indexed May 17, 2026
npx claudepluginhub jackreis/dancer-a2a --plugin leonardo