Writes drafts in the user's voice using voice.md for tone and style. Activates during /triage, /crm, or any "draft an email/message" request. Never sends without confirmation.
npx claudepluginhub weorbitant/orbitant-os --plugin orbitant-chief-of-staffThis skill uses the workspace's default tool permissions.
This skill writes emails, Slack messages, meeting follow-ups, and other communications in the user's personal voice. It reads `voice.md` to extract tone, formality levels, length preferences, signature, and phrase patterns, then applies them to every draft. No message is ever sent without explicit user confirmation — every output is a draft that the user reviews first.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
This skill writes emails, Slack messages, meeting follow-ups, and other communications in the user's personal voice. It reads voice.md to extract tone, formality levels, length preferences, signature, and phrase patterns, then applies them to every draft. No message is ever sent without explicit user confirmation — every output is a draft that the user reviews first.
This skill is called as a subroutine whenever a chief-of-staff command needs to produce written communication:
/triage — drafting response emails for triaged inbox items/crm — composing outreach messages, follow-ups, and relationship touches/prep — writing pre-meeting notes or post-meeting follow-upsIt does NOT run standalone. Other commands invoke it when they need to generate a draft.
./voice.md (project root)~/.claude/voice.md (global)Use the first file found. Parse these sections:
Do NOT block the calling command. Instead:
~/.claude/voice.md from the template to personalize."Determine the correct formality level for each draft using this cascade:
If the recipient has a file in contacts/*.md, read their tier and communication_style fields. These take priority — the user has explicitly defined how to communicate with this person.
If no contact profile exists, infer from context:
| Signal | Formality Level |
|---|---|
| Email to external person | Client |
| Email to investor or board member | Board |
| Slack message in internal channel | Team |
| Slack DM to a colleague | Team |
| Formal report or update to stakeholders | Board |
| Reply to a casual internal thread | Team |
If the audience is ambiguous, default to Client — more formal is always safer than too casual. The user can ask to dial it down.
Once the level is determined, pull the matching section from voice.md's Formality Levels (Clients, Team, or Board) and apply those specific style rules to the draft. Each level may differ in greeting style, sentence structure, sign-off, and overall register.
Respect the limits defined in voice.md's Length Preferences table. If the table says "Email: 3-5 sentences", keep to that range. If a draft requires more content, break it into clearly structured sections rather than writing a wall of text.
Match the greeting and closing to the formality level. Client and Board levels use the patterns defined in voice.md. Team level is more relaxed — first names, shorter greetings, lighter closings.
When drafting a reply (not a fresh message):
Present every draft using this structure:
## Draft — [Channel] to [Recipient]
**Formality:** [Client/Team/Board]
**Context:** [one-line summary of why this draft exists]
---
[Draft content here, including signature if email]
---
> This is a draft. Reply with "send" to confirm, or edit and reply with the changes.
For batch drafts (e.g., multiple triage responses), present each draft sequentially with the same format. Number them for easy reference: "Draft 1 of 3", "Draft 2 of 3", etc.
When running inside a Cowork session without filesystem access:
voice.md content has been pasted into the conversation or shared in context, extract and use it. Apply the exact same drafting rules.