From ot
AI-drafted email reads to its sender like an email and to its recipient like a project. The drafting agent has the brief in conversation; when it composes, it paraphrases liberally, defends inferences the reader has never drawn, anchors timestamps to its own session, and turns asks into numbered lists. The recipient sees something that will take effort to handle and defers it.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ot:edit-emailThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
AI-drafted email reads to its sender like an email and to its recipient like a project. The drafting agent has the brief in conversation; when it composes, it paraphrases liberally, defends inferences the reader has never drawn, anchors timestamps to its own session, and turns asks into numbered lists. The recipient sees something that will take effort to handle and defers it.
AI-drafted email reads to its sender like an email and to its recipient like a project. The drafting agent has the brief in conversation; when it composes, it paraphrases liberally, defends inferences the reader has never drawn, anchors timestamps to its own session, and turns asks into numbered lists. The recipient sees something that will take effort to handle and defers it.
A general newspaper maxim in CLAUDE.md is not enough on its own: the drafting agent cannot see the scaffolding it has carried in from its brief. The fix is a cold reader who has only the email, applies the rulebook, and returns a polished draft plus queries.
The rules the drafting agent and the subeditor both work to are in email-rulebook.md alongside this file.
Every email this skill touches passes through ${CLAUDE_PLUGIN_ROOT}/skills/edit-email/like-human-do.md. This is not a flag and not optional; it runs on warm follow-ups, cold first-contacts, and everything between. Read it before you draft.
It is compose-time work, done by you the caller before you assemble the draft, because the thing it fixes (an ask wrapped in warmth, a business takeaway where a real shared moment belongs) lives in the structure of the email, and the subeditor, polishing prose, cannot remove it. The subeditor remains the backstop, not the cure.
to:, cc:, from:, subject:) and the body below.
1a. If the draft relies on prior correspondence (a reply, or a fresh message that picks up an unresolved ask from earlier mail), assemble a THREAD block of the relevant prior messages. One issue often spans several threads: include every thread the draft draws on, not only the one the headers say it replies to. Each message in the block carries its own from/date/subject and body. The subeditor cannot fetch mail; whatever the cold reader needs to judge whether the draft omits a fact the recipient is waiting on must be in this block. If the draft stands on its own, the THREAD value is (none).${CLAUDE_PLUGIN_ROOT}/skills/edit-email/editor-prompt.md; substitute $RULEBOOK_PATH with the rulebook path, $EMAIL with the draft text, $THREAD with the THREAD block (or (none)), $REGISTER with the register tag (general by default; director-to-staff when the caller invokes with --director), and $VOICE_GUIDE with the content of the named voice guide file ((none) when no voice flag is given; the content of voice-warm-proprietor.md when --Liansu is given). When --Liansu is given, use Opus as the agent model. Pass the result as the agent prompt.$VOICE_GUIDE is (none): the agent is a cold subeditor. It returns READING (paragraph-by-paragraph log of how the draft landed), POLISHED (mechanical fixes applied), and QUERIES (rule citations for things needing the brief).
When $VOICE_GUIDE has content: the agent is an impersonator. It returns READING (first-person friction notes as the named author), POLISHED (the email as the author would send it), and QUERIES (what the author would need to know to finalise it herself).${CLAUDE_PLUGIN_ROOT}/skills/edit-email/:
like-human-do.md — the standing compose-time pass: give don't grab, real connection point, person's voiceemail-rulebook.md — the ruleseditor-prompt.md — the subeditor prompt templatevoice-warm-proprietor.md — voice guide for --Liansu; derived from Liansu Yu's sent mail corpusThe drafting role belongs to the caller, which holds the brief and the user's surface phrasing. A subagent in the same context inherits the same blindness about which sentences are scaffolding and which are the email. A brand-new agent reading only the rulebook and the draft is the cleanest cold reader available.
Rulebook examples must come from outside any test fixture, otherwise the subeditor matches lexically rather than applying the rule. If a rule example appears in a draft to be tested, the example is contamination and must be rewritten before the test result is meaningful.
npx claudepluginhub smartlayer/ot --plugin otProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.