en un clic
orbitant-voice-drafting
// 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.
// 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.
Content generation skill for the Orbitant engineering blog. Activates when creating a blog post in Spanish from raw input — a Knowledge Sharing transcript, Slack thread, meeting notes, workshop draft, or bullet outline. Produces a structured, SEO-optimised article that matches Orbitant's narrative, tone, and content cluster strategy. Trigger on: "crear blog post", "redactar artículo", "convierte esto en un post", "blog post para Orbitant", "write a blog post", "turn this into an article". Also trigger when the user shares a long transcript, KS notes, or a Slack discussion about a technical decision — even if they don't explicitly say "blog post". When in doubt, ask if they want this turned into a post.
Drafts structured, publication-ready release notes from git history. Activates when: creating releases, documenting version changes, drafting changelogs, or preparing release announcements. Use even when user just says "generate changelog", "what changed since last release", "help me write release notes", "prepare a release", or "I bumped the version". Also triggers after version bumps in plugin.json.
Scores items against quarterly rocks from rocks.yaml. Activates during triage, task ranking, meeting prep, and scheduling. Flags drift when time allocation mismatches stated priorities.
Checks MCP servers and config files before any chief-of-staff command. Ensures no command hard-fails — always proceeds with available sources. Auto-activates on every command.
Use at the end of a Claude Code session to capture project-specific friction as proposed CLAUDE.md edits. Triggered by /debrief (no args) to scan the full session, or /debrief <hint> to focus on a specific area (e.g., /debrief the API naming convention thing). Returning "session looks clean" with no proposals is a first-class outcome, not a fallback. Triggers on: "/debrief", "debrief the session", "wrap up this session", "what did we learn", "any rules to capture", "should we update CLAUDE.md".
Use when checking if a repo follows 12-factor app principles — config stored in env vars (not hardcoded), dependency lockfiles present, CI pipeline separation, structured logging to stdout, or dev/prod environment parity. Activates when someone asks about 12-factor compliance, deployment readiness, or config management practices in a Node.js or Python project. Also trigger when someone notices hardcoded localhost URLs, missing .env.example, or asks "is this deploy-ready?" — even without mentioning 12-factor explicitly.
| name | orbitant-voice-drafting |
| description | 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. |
| version | 1.0.0 |
| license | MIT |
| user-invocable | false |
| metadata | {"author":"orbitant","tags":"chief-of-staff, voice, drafting, writing, email, slack, communication"} |
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.