[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CT886QDWDG5CY7SV3QVT95":3,"skill-same:01M6CT886QDWDG5CY7SV3QVT95":59},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":38,"commitSha":39,"skillDirectory":40,"forksCount":41,"repositoryHtmlUrl":42,"repositoryHomepageUrl":6,"ownerHtmlUrl":43,"ownerBlogUrl":6,"ownerDescription":44,"updatedAt":45,"install":46,"resources":58},"01M6CT886QDWDG5CY7SV3QVT95","email-lifecycle",null,"Designs email sequences, templates and send triggers for onboarding, transactional and retention emails. Use when planning product emails.","vibbs\u002Fcompany-os","vibbs","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F7379149?v=4","01M6CT6M03CAS1H7RA89F3965B","Vibbs Dod","01M6CT6M4MY60C9FFQ3AAR2RSK",6,"MIT","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Femail-lifecycle\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000005","邮件与沟通","SCENARIO","使用场景",[24,25,26,27,28,29,30,31],"email","lifecycle","email lifecycle","planning","product","onboarding","templates","use","2026-11-10 10:12:30",false,"---\nname: email-lifecycle\ndescription: Designs email sequences, templates and send triggers for onboarding, transactional and retention emails. Use when planning product emails.\nuser-invocable: true\n---\n\n# Email Lifecycle\n\n## Reference\n- **ID**: S-GRO-06\n- **Category**: Growth\n- **Inputs**: company.config.yaml (email section, tech_stack), PRDs, activation-onboarding output\n- **Outputs**: email strategy (standards\u002Femail\u002F), per-feature email templates and triggers\n- **Used by**: Growth Agent\n- **Tool scripts**: .\u002Ftools\u002Fartifact\u002Fvalidate.sh\n\n## Purpose\n\nDesign and document the complete email lifecycle for a SaaS product -- transactional emails, onboarding sequences, activation triggers, and retention campaigns. This skill produces a reusable email strategy and per-feature email specifications that ensure consistent, mobile-responsive, deliverable email communications.\n\n## When to Use\n\n- New product needs its email system designed from scratch\n- Feature requires transactional or marketing email touchpoints\n- Onboarding sequence needs to be created or improved\n- Activation or retention email campaigns are being planned\n\n## Procedure\n\n### Step 0: Email Provider Check\n\nRead `email.provider` from `company.config.yaml`.\n\nIf not configured, pause and recommend a provider:\n- **Resend**: Simple API, React Email templates, free tier \u003C 3K emails\u002Fmonth. Best for developers.\n- **Postmark**: Excellent deliverability, transactional-only focus. Best for transactional emails.\n- **SendGrid**: Full-featured, good free tier. Best if you need marketing + transactional.\n- **Amazon SES**: Cheapest at scale, more setup. Best for high-volume senders.\n\nWalk the user through updating `company.config.yaml` with their choice before proceeding.\n\n### Step 1: Load Context\n\n1. Read `company.config.yaml` for:\n   - `email.provider` (Resend, Sendgrid, Postmark, SES, etc.)\n   - `email.from_address`\n   - `email.template_engine` (react-email, mjml, handlebars, jinja, plain-html)\n   - `tech_stack.language`\n   - `tech_stack.framework`\n2. Read activation-onboarding output in `artifacts\u002Fgrowth\u002F` if available -- map aha moments to email triggers.\n3. Read relevant PRDs to understand feature-specific email needs.\n\n### Step 2: Generate Email Strategy\n\nProduce `standards\u002Femail\u002Femail-strategy.md` covering the following sections.\n\n**Email Types & Purpose**:\n\n- **Transactional** (system-triggered, immediate):\n  - Welcome \u002F email verification\n  - Password reset\n  - Invoice \u002F payment receipt\n  - Account changes (plan change, settings update)\n  - Security alerts (new login, password changed)\n\n- **Onboarding Sequence** (time-based drip, 5-7 emails):\n  - Day 0: Welcome + single next step\n  - Day 1: Getting started guide (path to aha moment)\n  - Day 3: Feature highlight (show value they haven't discovered)\n  - Day 5: Social proof + use case inspiration\n  - Day 7: Check-in (need help?) + upgrade nudge if on free plan\n\n- **Activation** (behavior-triggered):\n  - Re-engage dormant users (no login in 7 days)\n  - Milestone celebrations (first project, 10th use, etc.)\n  - Upgrade prompts (hitting free tier limits)\n  - Feature announcement (new capability relevant to their usage)\n\n- **Retention** (periodic):\n  - Weekly\u002Fmonthly usage report\n  - Tips & tricks based on usage patterns\n  - What's new \u002F changelog digest\n\n**Template Structure** (every email):\n\n- Subject line: max 50 chars, personalized, action-oriented\n- Preheader: extends subject, max 90 chars\n- Body: hero image\u002Fheader -> content (2-3 short paragraphs) -> single CTA button -> footer\n- Footer: unsubscribe link (required), company info, preference center link\n- Mobile-responsive: single column, 14px+ body text, 44px+ tap targets\n\n**Send Trigger Architecture**:\n\n- Event-driven: user action -> event emitted -> email service receives -> template rendered -> sent\n- Queue-based: email jobs added to background queue (reference background-jobs skill)\n- Delay handling: scheduled sends use cron or delay queues\n- Deduplication: prevent duplicate sends (idempotency key per user+email type+timewindow)\n\n**Provider Patterns**:\n\n- Resend: API-first, React Email templates, webhook delivery tracking\n- Sendgrid: Dynamic templates, marketing + transactional, event webhook\n- Postmark: Transactional-focused, message streams, template API\n- SES: Raw sending, requires own template rendering, cheapest at scale\n\n### Step 3: Per-Feature Email Design\n\nFor each feature that has email touchpoints:\n\n1. **Identify email touchpoints** -- what emails does this feature trigger?\n2. **Design templates**: subject, preheader, body copy, CTA\n3. **Define send triggers**: which user event -> which email\n4. **Set timing**: immediate (transactional), delayed (drip), periodic (digest)\n5. **Handle preferences**: which emails can users opt out of? (transactional emails cannot be opted out of; marketing emails must have unsubscribe)\n\n### Step 4: Code Pipeline Integration\n\nProduce implementation guidance:\n\n- **Email template directory**: `src\u002Femails\u002F` (or `emails\u002F` at root)\n- **Per template_engine**:\n  - react-email: TypeScript components in src\u002Femails\u002F, preview with `email dev`\n  - mjml: MJML templates compiled to HTML, preview in browser\n  - handlebars: .hbs templates with variable interpolation\n  - jinja: .jinja2 templates for Python backends\n  - plain-html: static HTML with {{variable}} placeholders\n- **Send function pattern**: `sendEmail(type, recipient, data)` wrapper that abstracts the provider\n- **Queue integration**: email send jobs via configured queue (reference background-jobs skill)\n- **Preview workflow**: local rendering for visual QA before sending\n\n### Step 5: Testing Strategy\n\n- **Render test**: every template renders without errors with sample data\n- **Variable test**: all template variables have fallback defaults (no blank fields in sent emails)\n- **Mobile test**: email renders correctly on mobile viewport (320px)\n- **Deliverability**: SPF, DKIM, DMARC configuration guidance for the sending domain\n- **Unsubscribe test**: unsubscribe link works and preference is respected on subsequent sends\n\n### Step 6: Verify\n\n- All transactional email types are defined (welcome, password reset, invoice, security alerts)\n- Onboarding sequence is 5-7 emails with specific timing and content summaries\n- Every template is mobile-responsive\n- Unsubscribe link is present on all marketing\u002Fretention emails\n- Run `.\u002Ftools\u002Fartifact\u002Fvalidate.sh` on any produced artifacts\n\n## Quality Checklist\n\n- [ ] All transactional email types defined (welcome, password reset, invoice, security alerts)\n- [ ] Onboarding sequence has 5-7 emails with specific timing and content\n- [ ] Each email has: subject (\u003C50 chars), preheader (\u003C90 chars), single CTA, unsubscribe\n- [ ] Send triggers are event-driven with specific event names\n- [ ] Template engine matches configured tech stack\n- [ ] Queue integration pattern defined for async sends\n- [ ] Mobile-responsive template requirements specified\n- [ ] Deliverability basics covered (SPF, DKIM, DMARC)\n","# Email Lifecycle\n\n## Reference\n- **ID**: S-GRO-06\n- **Category**: Growth\n- **Inputs**: company.config.yaml (email section, tech_stack), PRDs, activation-onboarding output\n- **Outputs**: email strategy (standards\u002Femail\u002F), per-feature email templates and triggers\n- **Used by**: Growth Agent\n- **Tool scripts**: .\u002Ftools\u002Fartifact\u002Fvalidate.sh\n\n## Purpose\n\nDesign and document the complete email lifecycle for a SaaS product -- transactional emails, onboarding sequences, activation triggers, and retention campaigns. This skill produces a reusable email strategy and per-feature email specifications that ensure consistent, mobile-responsive, deliverable email communications.\n\n## When to Use\n\n- New product needs its email system designed from scratch\n- Feature requires transactional or marketing email touchpoints\n- Onboarding sequence needs to be created or improved\n- Activation or retention email campaigns are being planned\n\n## Procedure\n\n### Step 0: Email Provider Check\n\nRead `email.provider` from `company.config.yaml`.\n\nIf not configured, pause and recommend a provider:\n- **Resend**: Simple API, React Email templates, free tier \u003C 3K emails\u002Fmonth. Best for developers.\n- **Postmark**: Excellent deliverability, transactional-only focus. Best for transactional emails.\n- **SendGrid**: Full-featured, good free tier. Best if you need marketing + transactional.\n- **Amazon SES**: Cheapest at scale, more setup. Best for high-volume senders.\n\nWalk the user through updating `company.config.yaml` with their choice before proceeding.\n\n### Step 1: Load Context\n\n1. Read `company.config.yaml` for:\n   - `email.provider` (Resend, Sendgrid, Postmark, SES, etc.)\n   - `email.from_address`\n   - `email.template_engine` (react-email, mjml, handlebars, jinja, plain-html)\n   - `tech_stack.language`\n   - `tech_stack.framework`\n2. Read activation-onboarding output in `artifacts\u002Fgrowth\u002F` if available -- map aha moments to email triggers.\n3. Read relevant PRDs to understand feature-specific email needs.\n\n### Step 2: Generate Email Strategy\n\nProduce `standards\u002Femail\u002Femail-strategy.md` covering the following sections.\n\n**Email Types & Purpose**:\n\n- **Transactional** (system-triggered, immediate):\n  - Welcome \u002F email verification\n  - Password reset\n  - Invoice \u002F payment receipt\n  - Account changes (plan change, settings update)\n  - Security alerts (new login, password changed)\n\n- **Onboarding Sequence** (time-based drip, 5-7 emails):\n  - Day 0: Welcome + single next step\n  - Day 1: Getting started guide (path to aha moment)\n  - Day 3: Feature highlight (show value they haven't discovered)\n  - Day 5: Social proof + use case inspiration\n  - Day 7: Check-in (need help?) + upgrade nudge if on free plan\n\n- **Activation** (behavior-triggered):\n  - Re-engage dormant users (no login in 7 days)\n  - Milestone celebrations (first project, 10th use, etc.)\n  - Upgrade prompts (hitting free tier limits)\n  - Feature announcement (new capability relevant to their usage)\n\n- **Retention** (periodic):\n  - Weekly\u002Fmonthly usage report\n  - Tips & tricks based on usage patterns\n  - What's new \u002F changelog digest\n\n**Template Structure** (every email):\n\n- Subject line: max 50 chars, personalized, action-oriented\n- Preheader: extends subject, max 90 chars\n- Body: hero image\u002Fheader -> content (2-3 short paragraphs) -> single CTA button -> footer\n- Footer: unsubscribe link (required), company info, preference center link\n- Mobile-responsive: single column, 14px+ body text, 44px+ tap targets\n\n**Send Trigger Architecture**:\n\n- Event-driven: user action -> event emitted -> email service receives -> template rendered -> sent\n- Queue-based: email jobs added to background queue (reference background-jobs skill)\n- Delay handling: scheduled sends use cron or delay queues\n- Deduplication: prevent duplicate sends (idempotency key per user+email type+timewindow)\n\n**Provider Patterns**:\n\n- Resend: API-first, React Email templates, webhook delivery tracking\n- Sendgrid: Dynamic templates, marketing + transactional, event webhook\n- Postmark: Transactional-focused, message streams, template API\n- SES: Raw sending, requires own template rendering, cheapest at scale\n\n### Step 3: Per-Feature Email Design\n\nFor each feature that has email touchpoints:\n\n1. **Identify email touchpoints** -- what emails does this feature trigger?\n2. **Design templates**: subject, preheader, body copy, CTA\n3. **Define send triggers**: which user event -> which email\n4. **Set timing**: immediate (transactional), delayed (drip), periodic (digest)\n5. **Handle preferences**: which emails can users opt out of? (transactional emails cannot be opted out of; marketing emails must have unsubscribe)\n\n### Step 4: Code Pipeline Integration\n\nProduce implementation guidance:\n\n- **Email template directory**: `src\u002Femails\u002F` (or `emails\u002F` at root)\n- **Per template_engine**:\n  - react-email: TypeScript components in src\u002Femails\u002F, preview with `email dev`\n  - mjml: MJML templates compiled to HTML, preview in browser\n  - handlebars: .hbs templates with variable interpolation\n  - jinja: .jinja2 templates for Python backends\n  - plain-html: static HTML with {{variable}} placeholders\n- **Send function pattern**: `sendEmail(type, recipient, data)` wrapper that abstracts the provider\n- **Queue integration**: email send jobs via configured queue (reference background-jobs skill)\n- **Preview workflow**: local rendering for visual QA before sending\n\n### Step 5: Testing Strategy\n\n- **Render test**: every template renders without errors with sample data\n- **Variable test**: all template variables have fallback defaults (no blank fields in sent emails)\n- **Mobile test**: email renders correctly on mobile viewport (320px)\n- **Deliverability**: SPF, DKIM, DMARC configuration guidance for the sending domain\n- **Unsubscribe test**: unsubscribe link works and preference is respected on subsequent sends\n\n### Step 6: Verify\n\n- All transactional email types are defined (welcome, password reset, invoice, security alerts)\n- Onboarding sequence is 5-7 emails with specific timing and content summaries\n- Every template is mobile-responsive\n- Unsubscribe link is present on all marketing\u002Fretention emails\n- Run `.\u002Ftools\u002Fartifact\u002Fvalidate.sh` on any produced artifacts\n\n## Quality Checklist\n\n- [ ] All transactional email types defined (welcome, password reset, invoice, security alerts)\n- [ ] Onboarding sequence has 5-7 emails with specific timing and content\n- [ ] Each email has: subject (\u003C50 chars), preheader (\u003C90 chars), single CTA, unsubscribe\n- [ ] Send triggers are event-driven with specific event names\n- [ ] Template engine matches configured tech stack\n- [ ] Queue integration pattern defined for async sends\n- [ ] Mobile-responsive template requirements specified\n- [ ] Deliverability basics covered (SPF, DKIM, DMARC)\n",{"name":5,"description":7,"user-invocable":37},true,"main","e842fb6d0e04360c47db78bc2e2e2987314d64d4",".claude\u002Fskills\u002Femail-lifecycle",2,"https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os","https:\u002F\u002Fgithub.com\u002Fvibbs","Principal Engineer · Applied AI · building ArcAI @ GrowthArc","2026-10-21 02:08:08",{"source":8,"skillName":5,"commands":47,"prompt":57,"zipAvailable":37},[48,51,54],{"tool":49,"command":50},"npx","npx skills add vibbs\u002Fcompany-os --skill email-lifecycle",{"tool":52,"command":53},"bunx","bunx skills add vibbs\u002Fcompany-os --skill email-lifecycle",{"tool":55,"command":56},"pnpm","pnpm dlx skills add vibbs\u002Fcompany-os --skill email-lifecycle","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Femail-lifecycle\u002FSKILL.md",[],[60,69,77,87,103,119],{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":32},"01M6CTHBW1E64ECYGD105N4S5E","typo-field","Fixture skill with a misspelled top-level field.","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Ftypo-field\u002FSKILL.md",[],[67,68],"typo field","fixture skill",{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":32},"01M6CTHABTV8FKVDHFMMKPAV51","spaced-comments","Fixture skill with comments and spaces after block keys.","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Fspaced-comments\u002FSKILL.md",[],[76,68],"spaced comments",{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":32},"01M6CTH8MHC14KB65ZDHYBJW1N","crlf-comments","Fixture skill with Windows line endings.","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Fcrlf-comments\u002FSKILL.md",[],[84,85,86,68],"crlf comments","CRLF","windows",{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":32},"01M6CTH6TBKTDP9G8QB1Z2K0TY","claude-fields","Fixture skill using top-level fields Claude Code documents.","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Fclaude-fields\u002FSKILL.md",[],[94,95,96,97,98,99,68,100,101,102],"claude fields","explore","documents","src","grep","read","Bash","code","testing",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":112,"publishedAt":32},"01M6CTH46BGKXH80RWS876Y2CW","workflow-router","Maps an objective to the artifacts, stages and agents it needs. Use when deciding what happens next or which agents to involve.","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Fos\u002Fskills\u002Fworkflow-router\u002FSKILL.md",[109],{"categoryNo":110,"categoryName":111,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[113,114,115,116,117,31,118],"workflow","router","workflow router","next","maps","artifacts",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":32},"01M6CTH27653SRVP2FMEQN3J5B","weekly-review","Summarizes your week: what shipped, AI spend, support themes, security health and next priorities. Use at the end of each week.","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Fos\u002Fskills\u002Fweekly-review\u002FSKILL.md",[],[126,127,128,116,31,129,130,131,132],"weekly review","review","priorities","health","save","support","security"]