compose-email
The compose-email command generates professional emails using the What-Why-How framework, which structures messages with an opening statement of purpose, contextual background, and clear calls-to-action. Use this tool when drafting communications to colleagues, stakeholders, or leadership, as it gathers recipient type and email purpose to tailor tone and technical jargon appropriately, then applies best practices for subject lines, paragraph length, and formatting before delivering a complete draft.
mkdir -p ~/.claude/commands && curl -fsSL https://raw.githubusercontent.com/softaworks/agent-toolkit/HEAD/commands/compose-email.md -o ~/.claude/commands/compose-email.mdcompose-email.md
# Draft Professional Email
Generate a professional, well-structured email using communication best practices for software developers.
## Arguments
`$ARGUMENTS` - Optional context, topic, or existing draft to refine
## Workflow
### Step 1: Gather Context
If `$ARGUMENTS` is empty or insufficient, use AskUserQuestion to gather:
**Question 1: Recipient Type** (header: "Audience")
- Technical peer (developer, engineer)
- Non-technical stakeholder (PM, executive, customer)
- Cross-functional team (mixed audience)
- Manager or leadership
**Question 2: Email Purpose** (header: "Purpose")
- Status update or progress report
- Request (review, approval, resources)
- Information sharing (FYI, announcement)
- Escalation or raising concern
- Following up on prior conversation
**Question 3: Urgency** (header: "Urgency")
- Urgent - needs response today
- Standard - within 1-2 days
- Low priority - for awareness only
### Step 2: Apply Communication Framework
Use the **What-Why-How** structure:
1. **WHAT** (Opening - 1-2 sentences)
- Lead with the key message or request
- State the purpose immediately
- No throat-clearing ("I hope this email finds you well...")
2. **WHY** (Context - 2-3 sentences)
- Provide necessary background
- Explain relevance to the recipient
- Include only essential context
3. **HOW** (Action - clear next steps)
- Specific call-to-action
- Clear deadline if applicable
- Who needs to do what
### Step 3: Apply Email Best Practices
**Subject Line:**
- Specific and scannable (5-8 words ideal)
- Include action needed: "[Action Required]", "[FYI]", "[Decision Needed]"
- Include deadline if urgent: "[Due Friday]"
**Body Structure:**
- Bullets for multiple points (3-5 max)
- Bold key information
- One topic per email
- Short paragraphs (2-3 sentences max)
**Tone Calibration by Audience:**
| Audience | Tone | Jargon Level |
| --- | --- | --- |
| Technical peer | Direct, precise | High (use technical terms) |
| Non-technical | Business-focused | Low (translate jargon) |
| Cross-functional | Balanced | Medium (explain as needed) |
| Leadership | Concise, impact-focused | Low (focus on outcomes) |
### Step 4: Generate Draft
Produce a complete email with:
```markdown
## Email Draft
**Subject:** [Clear, specific subject line]
---
[Opening - WHAT: Key message/request]
[Context - WHY: Background and relevance]
[Body - Details as needed, use bullets for lists]
[Closing - HOW: Clear call-to-action]
[Sign-off]
```
### Step 5: Offer Refinements
After presenting the draft, offer:
1. **Tone adjustment** - Make more/less formal
2. **Length adjustment** - Expand or condense
3. **Jargon translation** - Adjust technical language level
4. **Format change** - Different structure for different medium (Slack, Teams)
## Example Usage
```bash
# With context
/soft-skills:draft-email Need to ask team lead for deadline extension on API migration
# Refine existing draft
/soft-skills:draft-email "Hi team, wanted to let you know about the deployment..."
# Start fresh
/soft-skills:draft-email
```
## Output
Present the draft in a clear format showing:
1. **Subject line** with rationale
2. **Email body** with WHAT/WHY/HOW sections labeled
3. **Refinement options** for iteration
## Anti-Patterns to Avoid
- Generic subjects ("Quick question", "Update", "FYI")
- Burying the request at the end
- Wall of text without structure
- Missing clear call-to-action
- Over-apologizing or excessive hedging
- CC'ing unnecessarilyAdd a skill to the project with validation and README generation
Sync root README.md with current skills inventory from skills/ directory
Use this agent when you need to visualize UI concepts through ASCII mockups before implementation. Examples: <example>Context: User has an idea for a dashboard layout with data tables and charts. user: 'I want to create a dashboard that shows user analytics with a sidebar navigation, main content area with charts, and a data table below' assistant: 'I'll use the ascii-ui-mockup-generator agent to create multiple ASCII mockup variations for your dashboard concept.' <commentary>The user wants to visualize a UI concept, so use the ascii-ui-mockup-generator to create multiple ASCII representations they can choose from.</commentary></example> <example>Context: User is designing a form layout with multiple input fields. user: 'I need a contact form with name, email, message fields and a submit button' assistant: 'Let me use the ascii-ui-mockup-generator to create several ASCII mockup options for your contact form layout.' <commentary>Since the user needs to visualize form layouts, use the ascii-ui-mockup-generator to provide multiple ASCII design options.</commentary></example>
codebase-pattern-finder is a useful subagent_type for finding similar implementations, usage examples, or existing patterns that can be modeled after. It will give you concrete code examples based on what you're looking for! It's sorta like codebase-locator, but it will not only tell you the location of files, it will also give you code details!
PROACTIVELY use when reviewing communication drafts or preparing difficult conversations. Provides email refinement, tone calibration, roleplay practice, and presentation feedback with actionable suggestions.
Default agent for handling complex, multi-step tasks with automatic delegation capabilities
Mermaid diagram specialist for creating flowcharts, sequence diagrams, ERDs,
Expert UI/UX design critic and advisor who provides research-backed, opinionated feedback on interfaces. Use when you need honest assessment of design decisions, want to avoid generic "AI slop" aesthetics, need evidence-based UX guidance, or want distinctive design direction grounded in actual user behavior research. This agent will push back on bad ideas and cite sources for every recommendation.