[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6RVPFK0CKT0VKM3NNY7JAHS":3,"skill-same:01M6RVPFK0CKT0VKM3NNY7JAHS":78},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":25,"publishedAt":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":13,"repositoryHtmlUrl":61,"repositoryHomepageUrl":6,"ownerHtmlUrl":62,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":63,"install":64,"resources":77},"01M6RVPFK0CKT0VKM3NNY7JAHS","mcp-server-patterns",null,"Build MCP servers with Node\u002FTypeScript SDK — tools, resources, prompts, Zod validation, stdio vs Streamable HTTP. Use Context7 or official MCP docs for latest API.","sakamoto-family-smile\u002Fagent_monorepo","sakamoto-family-smile","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F132812403?v=4","01M6RTAT3H8PMWX5SJ65KP3VYF","01M6RTAV321WB5RAHCWTZMX5CV",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fmcp-server-patterns\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"mcp server","server","mcp server patterns","patterns","MCP","node","build mcp","zod validation","for","with","resources","context7","build","use","zod","api","validation","http","official","sdk","2026-11-10 10:12:30",false,"---\nname: email-write\ndescription: Compose high-converting emails using proven copy frameworks (PAS, AIDA, BAB, FAB, 4Ps). Generates subject line variants with scores, responsive HTML templates with dark mode support, plain-text fallback, and preheader recommendations. Optimized for cold outreach, newsletters, product launches, promotions, and transactional emails. Adapts to user context from email-profile.md.\nuser_invocable: false\nallowed-tools:\n  - Read\n  - Write\n  - Grep\n  - Glob\n---\n\n# Email Write Sub-Skill\n\n## Purpose\n\nGenerate professional, high-converting email copy using proven copywriting frameworks. Produces subject line variants with scoring, responsive HTML templates with dark mode support, plain-text fallback, and preheader recommendations.\n\n## Activation\n\nThis sub-skill is invoked by the main `\u002Femail` skill when the user needs to compose a new email.\n\n## Workflow\n\n### 1. Gather Context\n\nFirst, check if `email-profile.md` exists in the project directory. If yes, load business type, tone preferences, and target audience from the profile.\n\nIf no profile exists or user provides new context, ask for:\n\n- **Email Purpose**: cold outreach, newsletter, product launch, promotional, re-engagement, welcome, feature announcement, etc.\n- **Recipient**: name, role, relationship (new lead, existing customer, subscriber, team member)\n- **Tone**: professional, friendly, casual, authoritative, empathetic, enthusiastic\n- **Business Type**: (from profile or ask) SaaS, e-commerce, service business, agency, creator, B2B, B2C\n- **Key Message**: what action should the recipient take?\n- **Additional Context**: product details, promotion details, deadline, personalization data\n\n### 2. Select Copy Framework\n\nBased on the email purpose, choose the appropriate framework from `~\u002F.claude\u002Fskills\u002Fads\u002Freferences\u002Fcopy-frameworks.md`:\n\n| Email Purpose | Recommended Framework | Why |\n|--------------|----------------------|-----|\n| Cold outreach | PAS | Empathy-driven, addresses pain points |\n| Product launch | AIDA | Builds excitement, drives action |\n| Newsletter | BAB or AIDA | Aspirational or engaging storytelling |\n| Feature announcement | FAB | Clear value proposition for features |\n| Promotional\u002Fsale | AIDA | Creates desire and urgency |\n| Re-engagement | PAS | Identifies problem of disengagement |\n| Welcome email | BAB | Shows transformation journey |\n| Case study | 4Ps | Proof-heavy, testimonial-driven |\n| Review request | PAS | Empathetic ask for feedback |\n| Appointment reminder | Direct | No framework needed |\n\nIf uncertain, default to **AIDA** for marketing emails or **PAS** for relationship emails.\n\n### 3. Generate Subject Lines\n\nCreate **3 subject line variants** using these strategies:\n\n1. **Curiosity-Driven**: Creates intrigue, open loop, question, teaser\n2. **Benefit-Driven**: Clear value proposition, outcome, result\n3. **Urgency-Driven**: Time-sensitive, scarcity, FOMO (but not spammy)\n\n**Subject Line Rules:**\n- Optimal length: 6-10 words \u002F 30-50 characters\n- Never use ALL CAPS\n- Maximum 1 exclamation mark per subject line\n- Avoid spam triggers: \"FREE!!!\", \"Act Now\", \"Limited Time Only\", \"Guaranteed\", \"Cash\", \"No obligation\"\n- Include personalization where possible (beyond first name: behavior, location, purchase history)\n- Use power words: exclusive, secret, insider, proven, breakthrough, transform, discover\n\n**Scoring Methodology (0-100):**\n\n| Criteria | Weight | Scoring |\n|----------|--------|---------|\n| Length | 20 | 100 if 30-50 chars, -10 per 5 chars over\u002Funder |\n| Power Words | 20 | +20 per power word (max 2) |\n| Personalization | 25 | +25 if personalized beyond first name |\n| Spam Triggers | -50 | -50 if contains spam word |\n| Clarity | 20 | 100 if benefit\u002Ftopic is clear |\n| Curiosity | 15 | +15 if creates open loop |\n\nMinimum passing score: 70\n\n### 4. Write Preheader Text\n\nGenerate preheader recommendation (30-80 characters):\n\n- Must complement (not repeat) the subject line\n- Include secondary value proposition or CTA preview\n- Avoid generic text like \"View this email in your browser\"\n\n**Example:**\n- Subject: \"Your personalized SEO roadmap is ready\"\n- Preheader: \"3 quick wins to boost your rankings this week\"\n\n### 5. Compose Email Body\n\nApply the chosen framework structure. Load full framework details from `~\u002F.claude\u002Fskills\u002Fads\u002Freferences\u002Fcopy-frameworks.md` before writing.\n\n**General Email Writing Rules:**\n\n- **Opening**: Hook in first sentence, address recipient by name if available\n- **Body**: Use short paragraphs (2-3 sentences max), bullet points for scannability\n- **Tone**: Match requested tone from profile or user input\n- **Personalization**: Use merge tags like `{{firstName}}`, `{{company}}`, `{{productName}}`\n- **CTA**: One primary CTA, clear and action-oriented (\"Get Your Free Audit\", \"Claim Your Spot\", \"Start Your Trial\")\n- **Social Proof**: Include if available (testimonial, stat, case study result)\n- **Signature**: Professional sign-off with name, title, company\n\n**Framework-Specific Structure:**\n\nLoad the full structure from `~\u002F.claude\u002Fskills\u002Fads\u002Freferences\u002Fcopy-frameworks.md` and apply. Each framework has:\n- Section breakdown (e.g., PAS: Problem → Agitate → Solve)\n- Transition phrases\n- Example templates\n\n### 6. Generate HTML Version\n\nCreate a responsive, dark-mode compatible HTML email using these specifications:\n\n**HTML Template Structure:**\n\n```html\n\u003C!DOCTYPE html>\n\u003Chtml lang=\"en\">\n\u003Chead>\n  \u003Cmeta charset=\"UTF-8\">\n  \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  \u003Cmeta name=\"color-scheme\" content=\"light dark\">\n  \u003Cmeta name=\"supported-color-schemes\" content=\"light dark\">\n  \u003Ctitle>{{emailSubject}}\u003C\u002Ftitle>\n  \u003Cstyle>\n    \u002F* Inline critical CSS *\u002F\n    body { margin: 0; padding: 0; font-family: Arial, Helvetica, sans-serif; }\n    table { border-collapse: collapse; }\n    .email-container { max-width: 600px; margin: 0 auto; }\n    .body-text { font-size: 16px; line-height: 1.6; color: #333333; }\n    .cta-button {\n      display: inline-block;\n      padding: 14px 28px;\n      background-color: #0066cc;\n      color: #ffffff;\n      text-decoration: none;\n      border-radius: 4px;\n      font-weight: bold;\n      min-height: 44px;\n      min-width: 44px;\n    }\n\n    \u002F* Dark mode styles *\u002F\n    @media (prefers-color-scheme: dark) {\n      body { background-color: #1a1a1a !important; }\n      .body-text { color: #e0e0e0 !important; }\n      .email-container { background-color: #2a2a2a !important; }\n    }\n\n    \u002F* Mobile responsive *\u002F\n    @media only screen and (max-width: 600px) {\n      .body-text { font-size: 14px !important; }\n      .headline { font-size: 22px !important; }\n      .cta-button { display: block !important; width: 100% !important; }\n    }\n  \u003C\u002Fstyle>\n\u003C\u002Fhead>\n\u003Cbody>\n  \u003C!-- Email content goes here -->\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n```\n\n**HTML Rules:**\n- Use table-based layout (not CSS Grid\u002FFlexbox for email client compatibility)\n- Max width: 600px\n- Inline critical CSS (some clients strip `\u003Cstyle>` tags)\n- Web-safe fonts with fallbacks: Arial, Helvetica, Georgia, Times New Roman\n- Minimum 14px body text, 22px headlines on mobile\n- CTA button: minimum 44x44px touch target, high contrast ratio (4.5:1)\n- Include `color-scheme: light dark` meta tag\n- Dark mode CSS using `@media (prefers-color-scheme: dark)`\n- Alt text on all images (describe content, not \"image\" or \"photo\")\n- Always include plain-text MIME part for accessibility\n\n**CTA Button Best Practices:**\n- One primary CTA per email (secondary CTAs okay as text links)\n- Use `\u003Ca>` tag with `role=\"button\"` for accessibility\n- Padding: 14px vertical, 28px horizontal minimum\n- Background color with 4.5:1 contrast ratio against text\n- Include fallback for dark mode (lighter background or inverted colors)\n\n### 7. Generate Plain-Text Version\n\nCreate a plain-text fallback with:\n- No HTML tags\n- Line breaks for readability (max 70 characters per line)\n- CTA as full URL on separate line\n- Signature block with contact info\n\n### 8. Output Format\n\nPresent the final email composition in this structure:\n\n```markdown\n## Email Composition\n\n**Framework**: [chosen framework name]\n**Purpose**: [email purpose]\n**Tone**: [tone]\n**Recipient Type**: [recipient type]\n\n---\n\n### Subject Line Options\n\n| # | Subject | Score | Type | Notes |\n|---|---------|-------|------|-------|\n| 1 | [subject line 1] | 87 | Curiosity | [why this works] |\n| 2 | [subject line 2] | 82 | Benefit | [why this works] |\n| 3 | [subject line 3] | 79 | Urgency | [why this works] |\n\n**Recommended**: #1 (highest score)\n\n**Preheader Text**: [30-80 char preheader recommendation]\n\n---\n\n### Email Body (Plain Text)\n\n[Full email body using framework structure]\n\n[Include merge tags like {{firstName}}, {{company}}]\n\n[CTA]\n\n[Signature]\n\n---\n\n### HTML Version\n\n```html\n[Complete HTML email code with inline CSS, dark mode support, responsive design]\n```\n\n---\n\n### Plain Text Version\n\n```\n[Plain text fallback with line breaks, CTA as full URL]\n```\n\n---\n\n### Email Metadata\n\n- **Word Count**: [body word count]\n- **Reading Time**: [estimated reading time]\n- **Character Count** (with spaces): [count]\n- **CTA Count**: [number of CTAs]\n\n---\n\n### Next Steps\n\n- [ ] Review and edit copy\n- [ ] Choose subject line variant\n- [ ] Test HTML rendering in email client preview tool\n- [ ] Send as draft via MCP (if available) or copy to email platform\n- [ ] A\u002FB test subject lines if sending to large list\n```\n\n## Quality Gates\n\nBefore delivering the email, verify:\n\n1. **Subject line scores**: At least one variant scores 70+\n2. **Preheader length**: 30-80 characters\n3. **Framework alignment**: Body follows chosen framework structure\n4. **CTA clarity**: Primary CTA is clear and action-oriented\n5. **Mobile readability**: Paragraphs are 2-3 sentences max\n6. **HTML validity**: Table-based layout, inline CSS, dark mode support\n7. **Accessibility**: Alt text on images, plain-text fallback included\n8. **Spam check**: No spam trigger words in subject or body\n9. **Personalization**: Merge tags used where appropriate\n10. **Tone match**: Email tone matches requested tone from profile\n\nIf any gate fails, revise before output.\n\n## Error Handling\n\n- If `~\u002F.claude\u002Fskills\u002Fads\u002Freferences\u002Fcopy-frameworks.md` is missing, warn user and use basic AIDA structure\n- If `email-profile.md` is missing, prompt user for context (don't fail)\n- If subject line scores are all below 70, generate new variants\n- If HTML template fails validation, fall back to plain-text only and warn user\n\n## Resources\n\n- `~\u002F.claude\u002Fskills\u002Fads\u002Freferences\u002Fcopy-frameworks.md` - Full framework structures and examples\n- `email-profile.md` - User's business context and preferences (optional)\n\n## Example Invocation\n\nUser: \"Write a cold outreach email to a SaaS founder about my SEO audit service\"\n\nAgent:\n1. Loads email-profile.md (if exists)\n2. Selects PAS framework (cold outreach)\n3. Generates 3 subject line variants with scores\n4. Writes email body following PAS structure\n5. Creates HTML template with dark mode\n6. Creates plain-text fallback\n7. Outputs full email composition with metadata and next steps\n\n## Notes\n\n- This sub-skill focuses on composition only (no sending\u002Fscheduling)\n- For sending emails, use `email-send` sub-skill or MCP email tools\n- For A\u002FB testing, generate multiple variants using different frameworks\n- Always adapt tone and complexity to recipient type (B2B vs B2C, technical vs non-technical)\n","# Email Write Sub-Skill\n\n## Purpose\n\nGenerate professional, high-converting email copy using proven copywriting frameworks. Produces subject line variants with scoring, responsive HTML templates with dark mode support, plain-text fallback, and preheader recommendations.\n\n## Activation\n\nThis sub-skill is invoked by the main `\u002Femail` skill when the user needs to compose a new email.\n\n## Workflow\n\n### 1. Gather Context\n\nFirst, check if `email-profile.md` exists in the project directory. If yes, load business type, tone preferences, and target audience from the profile.\n\nIf no profile exists or user provides new context, ask for:\n\n- **Email Purpose**: cold outreach, newsletter, product launch, promotional, re-engagement, welcome, feature announcement, etc.\n- **Recipient**: name, role, relationship (new lead, existing customer, subscriber, team member)\n- **Tone**: professional, friendly, casual, authoritative, empathetic, enthusiastic\n- **Business Type**: (from profile or ask) SaaS, e-commerce, service business, agency, creator, B2B, B2C\n- **Key Message**: what action should the recipient take?\n- **Additional Context**: product details, promotion details, deadline, personalization data\n\n### 2. Select Copy Framework\n\nBased on the email purpose, choose the appropriate framework from `~\u002F.claude\u002Fskills\u002Fads\u002Freferences\u002Fcopy-frameworks.md`:\n\n| Email Purpose | Recommended Framework | Why |\n|--------------|----------------------|-----|\n| Cold outreach | PAS | Empathy-driven, addresses pain points |\n| Product launch | AIDA | Builds excitement, drives action |\n| Newsletter | BAB or AIDA | Aspirational or engaging storytelling |\n| Feature announcement | FAB | Clear value proposition for features |\n| Promotional\u002Fsale | AIDA | Creates desire and urgency |\n| Re-engagement | PAS | Identifies problem of disengagement |\n| Welcome email | BAB | Shows transformation journey |\n| Case study | 4Ps | Proof-heavy, testimonial-driven |\n| Review request | PAS | Empathetic ask for feedback |\n| Appointment reminder | Direct | No framework needed |\n\nIf uncertain, default to **AIDA** for marketing emails or **PAS** for relationship emails.\n\n### 3. Generate Subject Lines\n\nCreate **3 subject line variants** using these strategies:\n\n1. **Curiosity-Driven**: Creates intrigue, open loop, question, teaser\n2. **Benefit-Driven**: Clear value proposition, outcome, result\n3. **Urgency-Driven**: Time-sensitive, scarcity, FOMO (but not spammy)\n\n**Subject Line Rules:**\n- Optimal length: 6-10 words \u002F 30-50 characters\n- Never use ALL CAPS\n- Maximum 1 exclamation mark per subject line\n- Avoid spam triggers: \"FREE!!!\", \"Act Now\", \"Limited Time Only\", \"Guaranteed\", \"Cash\", \"No obligation\"\n- Include personalization where possible (beyond first name: behavior, location, purchase history)\n- Use power words: exclusive, secret, insider, proven, breakthrough, transform, discover\n\n**Scoring Methodology (0-100):**\n\n| Criteria | Weight | Scoring |\n|----------|--------|---------|\n| Length | 20 | 100 if 30-50 chars, -10 per 5 chars over\u002Funder |\n| Power Words | 20 | +20 per power word (max 2) |\n| Personalization | 25 | +25 if personalized beyond first name |\n| Spam Triggers | -50 | -50 if contains spam word |\n| Clarity | 20 | 100 if benefit\u002Ftopic is clear |\n| Curiosity | 15 | +15 if creates open loop |\n\nMinimum passing score: 70\n\n### 4. Write Preheader Text\n\nGenerate preheader recommendation (30-80 characters):\n\n- Must complement (not repeat) the subject line\n- Include secondary value proposition or CTA preview\n- Avoid generic text like \"View this email in your browser\"\n\n**Example:**\n- Subject: \"Your personalized SEO roadmap is ready\"\n- Preheader: \"3 quick wins to boost your rankings this week\"\n\n### 5. Compose Email Body\n\nApply the chosen framework structure. Load full framework details from `~\u002F.claude\u002Fskills\u002Fads\u002Freferences\u002Fcopy-frameworks.md` before writing.\n\n**General Email Writing Rules:**\n\n- **Opening**: Hook in first sentence, address recipient by name if available\n- **Body**: Use short paragraphs (2-3 sentences max), bullet points for scannability\n- **Tone**: Match requested tone from profile or user input\n- **Personalization**: Use merge tags like `{{firstName}}`, `{{company}}`, `{{productName}}`\n- **CTA**: One primary CTA, clear and action-oriented (\"Get Your Free Audit\", \"Claim Your Spot\", \"Start Your Trial\")\n- **Social Proof**: Include if available (testimonial, stat, case study result)\n- **Signature**: Professional sign-off with name, title, company\n\n**Framework-Specific Structure:**\n\nLoad the full structure from `~\u002F.claude\u002Fskills\u002Fads\u002Freferences\u002Fcopy-frameworks.md` and apply. Each framework has:\n- Section breakdown (e.g., PAS: Problem → Agitate → Solve)\n- Transition phrases\n- Example templates\n\n### 6. Generate HTML Version\n\nCreate a responsive, dark-mode compatible HTML email using these specifications:\n\n**HTML Template Structure:**\n\n```html\n\u003C!DOCTYPE html>\n\u003Chtml lang=\"en\">\n\u003Chead>\n  \u003Cmeta charset=\"UTF-8\">\n  \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  \u003Cmeta name=\"color-scheme\" content=\"light dark\">\n  \u003Cmeta name=\"supported-color-schemes\" content=\"light dark\">\n  \u003Ctitle>{{emailSubject}}\u003C\u002Ftitle>\n  \u003Cstyle>\n    \u002F* Inline critical CSS *\u002F\n    body { margin: 0; padding: 0; font-family: Arial, Helvetica, sans-serif; }\n    table { border-collapse: collapse; }\n    .email-container { max-width: 600px; margin: 0 auto; }\n    .body-text { font-size: 16px; line-height: 1.6; color: #333333; }\n    .cta-button {\n      display: inline-block;\n      padding: 14px 28px;\n      background-color: #0066cc;\n      color: #ffffff;\n      text-decoration: none;\n      border-radius: 4px;\n      font-weight: bold;\n      min-height: 44px;\n      min-width: 44px;\n    }\n\n    \u002F* Dark mode styles *\u002F\n    @media (prefers-color-scheme: dark) {\n      body { background-color: #1a1a1a !important; }\n      .body-text { color: #e0e0e0 !important; }\n      .email-container { background-color: #2a2a2a !important; }\n    }\n\n    \u002F* Mobile responsive *\u002F\n    @media only screen and (max-width: 600px) {\n      .body-text { font-size: 14px !important; }\n      .headline { font-size: 22px !important; }\n      .cta-button { display: block !important; width: 100% !important; }\n    }\n  \u003C\u002Fstyle>\n\u003C\u002Fhead>\n\u003Cbody>\n  \u003C!-- Email content goes here -->\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n```\n\n**HTML Rules:**\n- Use table-based layout (not CSS Grid\u002FFlexbox for email client compatibility)\n- Max width: 600px\n- Inline critical CSS (some clients strip `\u003Cstyle>` tags)\n- Web-safe fonts with fallbacks: Arial, Helvetica, Georgia, Times New Roman\n- Minimum 14px body text, 22px headlines on mobile\n- CTA button: minimum 44x44px touch target, high contrast ratio (4.5:1)\n- Include `color-scheme: light dark` meta tag\n- Dark mode CSS using `@media (prefers-color-scheme: dark)`\n- Alt text on all images (describe content, not \"image\" or \"photo\")\n- Always include plain-text MIME part for accessibility\n\n**CTA Button Best Practices:**\n- One primary CTA per email (secondary CTAs okay as text links)\n- Use `\u003Ca>` tag with `role=\"button\"` for accessibility\n- Padding: 14px vertical, 28px horizontal minimum\n- Background color with 4.5:1 contrast ratio against text\n- Include fallback for dark mode (lighter background or inverted colors)\n\n### 7. Generate Plain-Text Version\n\nCreate a plain-text fallback with:\n- No HTML tags\n- Line breaks for readability (max 70 characters per line)\n- CTA as full URL on separate line\n- Signature block with contact info\n\n### 8. Output Format\n\nPresent the final email composition in this structure:\n\n```markdown\n## Email Composition\n\n**Framework**: [chosen framework name]\n**Purpose**: [email purpose]\n**Tone**: [tone]\n**Recipient Type**: [recipient type]\n\n---\n\n### Subject Line Options\n\n| # | Subject | Score | Type | Notes |\n|---|---------|-------|------|-------|\n| 1 | [subject line 1] | 87 | Curiosity | [why this works] |\n| 2 | [subject line 2] | 82 | Benefit | [why this works] |\n| 3 | [subject line 3] | 79 | Urgency | [why this works] |\n\n**Recommended**: #1 (highest score)\n\n**Preheader Text**: [30-80 char preheader recommendation]\n\n---\n\n### Email Body (Plain Text)\n\n[Full email body using framework structure]\n\n[Include merge tags like {{firstName}}, {{company}}]\n\n[CTA]\n\n[Signature]\n\n---\n\n### HTML Version\n\n```html\n[Complete HTML email code with inline CSS, dark mode support, responsive design]\n```\n\n---\n\n### Plain Text Version\n\n```\n[Plain text fallback with line breaks, CTA as full URL]\n```\n\n---\n\n### Email Metadata\n\n- **Word Count**: [body word count]\n- **Reading Time**: [estimated reading time]\n- **Character Count** (with spaces): [count]\n- **CTA Count**: [number of CTAs]\n\n---\n\n### Next Steps\n\n- [ ] Review and edit copy\n- [ ] Choose subject line variant\n- [ ] Test HTML rendering in email client preview tool\n- [ ] Send as draft via MCP (if available) or copy to email platform\n- [ ] A\u002FB test subject lines if sending to large list\n```\n\n## Quality Gates\n\nBefore delivering the email, verify:\n\n1. **Subject line scores**: At least one variant scores 70+\n2. **Preheader length**: 30-80 characters\n3. **Framework alignment**: Body follows chosen framework structure\n4. **CTA clarity**: Primary CTA is clear and action-oriented\n5. **Mobile readability**: Paragraphs are 2-3 sentences max\n6. **HTML validity**: Table-based layout, inline CSS, dark mode support\n7. **Accessibility**: Alt text on images, plain-text fallback included\n8. **Spam check**: No spam trigger words in subject or body\n9. **Personalization**: Merge tags used where appropriate\n10. **Tone match**: Email tone matches requested tone from profile\n\nIf any gate fails, revise before output.\n\n## Error Handling\n\n- If `~\u002F.claude\u002Fskills\u002Fads\u002Freferences\u002Fcopy-frameworks.md` is missing, warn user and use basic AIDA structure\n- If `email-profile.md` is missing, prompt user for context (don't fail)\n- If subject line scores are all below 70, generate new variants\n- If HTML template fails validation, fall back to plain-text only and warn user\n\n## Resources\n\n- `~\u002F.claude\u002Fskills\u002Fads\u002Freferences\u002Fcopy-frameworks.md` - Full framework structures and examples\n- `email-profile.md` - User's business context and preferences (optional)\n\n## Example Invocation\n\nUser: \"Write a cold outreach email to a SaaS founder about my SEO audit service\"\n\nAgent:\n1. Loads email-profile.md (if exists)\n2. Selects PAS framework (cold outreach)\n3. Generates 3 subject line variants with scores\n4. Writes email body following PAS structure\n5. Creates HTML template with dark mode\n6. Creates plain-text fallback\n7. Outputs full email composition with metadata and next steps\n\n## Notes\n\n- This sub-skill focuses on composition only (no sending\u002Fscheduling)\n- For sending emails, use `email-send` sub-skill or MCP email tools\n- For A\u002FB testing, generate multiple variants using different frameworks\n- Always adapt tone and complexity to recipient type (B2B vs B2C, technical vs non-technical)\n",{"name":51,"description":52,"allowed-tools":53,"user_invocable":47},"email-write","Compose high-converting emails using proven copy frameworks (PAS, AIDA, BAB, FAB, 4Ps). Generates subject line variants with scores, responsive HTML templates with dark mode support, plain-text fallback, and preheader recommendations. Optimized for cold outreach, newsletters, product launches, promotions, and transactional emails. Adapts to user context from email-profile.md.",[54,55,56,57],"Read","Write","Grep","Glob","main","60a901a00f46e71601f58727cb5661f8d3fb6d24",".claude\u002Fskills\u002Fecc\u002Fmcp-server-patterns","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile","2026-11-08 20:29:14",{"source":8,"skillName":51,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add sakamoto-family-smile\u002Fagent_monorepo --skill email-write",{"tool":70,"command":71},"bunx","bunx skills add sakamoto-family-smile\u002Fagent_monorepo --skill email-write",{"tool":73,"command":74},"pnpm","pnpm dlx skills add sakamoto-family-smile\u002Fagent_monorepo --skill email-write","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fmcp-server-patterns\u002FSKILL.md",true,[],[79,111,119,139,159,182],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":91,"publishedAt":46},"01M6RW50THEFSKK42YNR8XFZA1","remotion-video-creation","Best practices for Remotion - Video creation in React. 29 domain-specific rules covering 3D, animations, audio, captions, charts, transitions, and more.","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fremotion-video-creation\u002FSKILL.md",[85,88],{"categoryNo":86,"categoryName":87,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":89,"categoryName":90,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体",[92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,34],"Video","remotion video","remotion video creation","creation","Remotion","Charts","Captions","Audio","3D","Composition","Animation","best practices","more","animations","domain-specific","domain","three","Rules","Lottie",{"skillNo":112,"name":113,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":116,"publishedAt":46},"01M6VCJ23NPECPSZJKGY691F75","hotcook-recipes","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002Fhotcook-agent\u002Fdata\u002Fskills\u002Fhotcook-recipes\u002FSKILL.md",[],[117,118],"hotcook recipes","recipes",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":133,"publishedAt":46},"01M6VCHHE00X5XHSDRD1KH1BW2","code-helper","Code review and assistance skill","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002Fagent-system-2\u002Fskills\u002Fcode-helper\u002Fskill.md",[125,128],{"categoryNo":126,"categoryName":127,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":129,"categoryName":130,"taxonomyType":131,"taxonomyTypeDesc":132},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[134,135,136,137,138],"code helper","helper","code","code review","review",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":149,"publishedAt":46},"01M6VCH3Q31A20H6SQ1H0J7JB2","research-assistant","Web research assistant skill using Brave Search MCP","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002Fagent-system-1\u002Fskills\u002Fresearch-assistant\u002Fskill.md",[145,148],{"categoryNo":146,"categoryName":147,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},[150,151,152,30,153,154,155,156,157,158],"research assistant","research","assistant","web","search","brave search","web research","brave","web research assistant",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":167,"publishedAt":46},"01M6VCGZZGPNVJSCZ1JTMNZAHY","x-api","X\u002FTwitter API integration for posting tweets, threads, reading timelines, search, and analytics. Covers OAuth auth patterns, rate limits, and platform-native content posting. Use when the user wants to interact with X programmatically.","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fx-api\u002FSKILL.md",[165,166],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":129,"categoryName":130,"taxonomyType":131,"taxonomyTypeDesc":132},[168,41,35,169,170,171,34,172,173,174,175,176,29,177,178,39,179,180,154,181],"x api","when","limits","rate","threads","reading","native","posting","platform","api integration","twitter","auth","analytics","OAuth",{"skillNo":183,"name":184,"nameZh":6,"description":185,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":186,"categories":187,"keywords":189,"publishedAt":46},"01M6VCGVX6DGB1FKTA53QBBCQB","workspace-surface-audit","Audit the active repo, MCP servers, plugins, connectors, env surfaces, and harness setup, then recommend the highest-value ECC-native skills, hooks, agents, and operator workflows. Use when the user wants help setting up Claude Code or understanding what capabilities are actually available in their environment.","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fworkspace-surface-audit\u002FSKILL.md",[188],{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},[190,191,192,193,30,194,195,136,196,197,198,199,39,200,201,202,203,174,204,169],"workspace surface audit","workspace","audit","hooks","workflows","connectors","capabilities","harness","repo","environment","up","harness setup","active","env","value"]