Inflate a single memory file in-place. Preserve every technical element
exactly. Flourish only the prose.
Steps
- Resolve the target path (first arg). If the file does not exist, say so
plainly and stop.
- Refuse to operate on files outside the current working tree or on files
ending in
.original.md (they are already backups).
- Read the file.
- If
<file>.original.md already exists, warn the user and ask whether to
overwrite the backup. Do not proceed without explicit approval.
- Copy the file verbatim to
<file>.original.md.
- Rewrite only the prose of the file into Early Modern English. Leave
every other zone exactly as it was.
- Write the rewritten version back to the original path.
- Report to the user:
- original line count, new line count, rough percentage inflation,
- the path to the backup,
- one line reminder: "To restore:
mv <file>.original.md <file>".
Protected zones — copy through unchanged
- Fenced code blocks (
...), indented code blocks, inline code (backticks).
- YAML frontmatter between leading
--- fences.
- Markdown headings (
#, ##, ...). Only the heading line is protected.
- URLs, file paths, CLI commands and their arguments, flags.
- Error messages, stack traces, identifiers, function and type names,
API names, environment variable names.
- Tables containing data. Pipe-delimited rows pass through untouched.
- HTML/XML tags.
- Dates, times, version numbers, semver ranges, hashes.
- Numeric values of any kind.
- Placeholders inside
{{ }}, ${ }, <...> angle brackets.
Zones to inflate
Prose paragraphs between headings, list items that are sentences (not
command lists), and plain-English body text. Apply the rules from
skills/shakespeare/SKILL.md (level: full by default; honour a trailing
--level=<lite|full|bard|prose> argument if passed).
Example
Input NOTES.md:
# Database pool
We reuse connections instead of opening a new one per request. This
avoids the TCP handshake and lets the server stay responsive under load.
See `src/db/pool.ts:17`.
After /shakespeare-expand NOTES.md:
# Database pool
Hark, gentle reader! We keep a ready stable of open connections, that
each request may borrow one at need rather than forge a new passage
through the TCP handshake's tedious ceremony. Thus doth our server
remain nimble, e'en when the load groweth heavy upon its shoulders.
See `src/db/pool.ts:17`.
(Note: the heading, the path, and the code span are untouched.)
Auto-Clarity
- Security-relevant notes (CVE IDs, threat models, incident reports): refuse
to inflate. State plainly and stop.
- If the file is mostly code or mostly tables, report that no prose was
found to inflate and do not create a backup.
1---2name: shakespeare-expand3description: Inflate a memory file (CLAUDE.md, AGENTS.md, notes, todo lists) from plain English into ornate Early Modern English prose, while keeping every code block, URL, path, command, identifier, heading, date, and table untouched. A human-readable backup is written to `<file>.original.md`. Trigger: /shakespeare-expand <filepath> or "expand memory file".4---56Inflate a single memory file in-place. Preserve every technical element7exactly. Flourish only the prose.89## Steps10111. Resolve the target path (first arg). If the file does not exist, say so12 plainly and stop.132. Refuse to operate on files outside the current working tree or on files14 ending in `.original.md` (they are already backups).153. Read the file.164. If `<file>.original.md` already exists, warn the user and ask whether to17 overwrite the backup. Do not proceed without explicit approval.185. Copy the file verbatim to `<file>.original.md`.196. Rewrite only the **prose** of the file into Early Modern English. Leave20 every other zone exactly as it was.217. Write the rewritten version back to the original path.228. Report to the user:23 - original line count, new line count, rough percentage inflation,24 - the path to the backup,25 - one line reminder: "To restore: `mv <file>.original.md <file>`".2627## Protected zones — copy through unchanged2829- Fenced code blocks (``` ... ```), indented code blocks, inline code (backticks).30- YAML frontmatter between leading `---` fences.31- Markdown headings (`#`, `##`, ...). Only the heading *line* is protected.32- URLs, file paths, CLI commands and their arguments, flags.33- Error messages, stack traces, identifiers, function and type names,34 API names, environment variable names.35- Tables containing data. Pipe-delimited rows pass through untouched.36- HTML/XML tags.37- Dates, times, version numbers, semver ranges, hashes.38- Numeric values of any kind.39- Placeholders inside `{{ }}`, `${ }`, `<...>` angle brackets.4041## Zones to inflate4243Prose paragraphs between headings, list items that are sentences (not44command lists), and plain-English body text. Apply the rules from45`skills/shakespeare/SKILL.md` (level: `full` by default; honour a trailing46`--level=<lite|full|bard|prose>` argument if passed).4748## Example4950Input `NOTES.md`:51```52# Database pool5354We reuse connections instead of opening a new one per request. This55avoids the TCP handshake and lets the server stay responsive under load.5657See `src/db/pool.ts:17`.58```5960After `/shakespeare-expand NOTES.md`:61```62# Database pool6364Hark, gentle reader! We keep a ready stable of open connections, that65each request may borrow one at need rather than forge a new passage66through the TCP handshake's tedious ceremony. Thus doth our server67remain nimble, e'en when the load groweth heavy upon its shoulders.6869See `src/db/pool.ts:17`.70```7172(Note: the heading, the path, and the code span are untouched.)7374## Auto-Clarity7576- Security-relevant notes (CVE IDs, threat models, incident reports): refuse77 to inflate. State plainly and stop.78- If the file is mostly code or mostly tables, report that no prose was79 found to inflate and do not create a backup.