Help us improve
Share bugs, ideas, or general feedback.
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.
npx claudepluginhub jackreis/arbiter --plugin leonardoHow 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.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Creates, reads, edits, and analyzes .docx files using docx-js for new documents, pandoc for text extraction, Python scripts for XML unpacking/validation/changes, and LibreOffice for conversions.
Share bugs, ideas, or general feedback.
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.