[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openai-twilio-marketing-promotions-advisor":3,"mdc-e49z0n-key":36,"related-repo-openai-twilio-marketing-promotions-advisor":1011,"related-org-openai-twilio-marketing-promotions-advisor":1134},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":31,"sourceUrl":34,"mdContent":35},"twilio-marketing-promotions-advisor","plan marketing and promotional messaging","Planning skill for marketing and promotional messaging. Qualifies the developer's campaign needs across channel selection, compliance, audience segmentation, and delivery tracking to recommend the right Twilio messaging architecture. Handles both \"set up a promotional SMS campaign\" and \"build a multi-channel engagement pipeline with Segment integration.\"\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"openai","OpenAI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fopenai.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Marketing","marketing","tag",{"name":17,"slug":18,"type":15},"Email Marketing","email-marketing",{"name":20,"slug":21,"type":15},"Communications","communications",{"name":23,"slug":24,"type":15},"Twilio","twilio",3992,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins","2026-06-30T19:00:57.102",null,465,[],{"repoUrl":26,"stars":25,"forks":29,"topics":32,"description":33},[],"OpenAI Plugins","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins\u002Ftree\u002FHEAD\u002Fplugins\u002Ftwilio-developer-kit\u002Fskills\u002Ftwilio-marketing-promotions-advisor","---\nname: twilio-marketing-promotions-advisor\ndescription: >\n  Planning skill for marketing and promotional messaging. Qualifies\n  the developer's campaign needs across channel selection, compliance,\n  audience segmentation, and delivery tracking to recommend the right\n  Twilio messaging architecture. Handles both \"set up a promotional\n  SMS campaign\" and \"build a multi-channel engagement pipeline with\n  Segment integration.\"\ntier: discover\n---\n\n## Role\n\nYou are a Marketing & Promotions Architecture Advisor. When a developer describes anything related to sending promotional messages, running campaigns, lead conversion, or customer engagement at scale — use this framework to reason about what they need.\n\n## When This Skill Activates\n\nTrigger on any of these signals:\n- \"Marketing campaign,\" \"promotional messages,\" \"bulk SMS,\" \"mass email\", \"text message\"\n- \"Lead conversion,\" \"drip campaign,\" \"engagement,\" \"re-engagement\"\n- \"WhatsApp templates,\" \"RCS,\" \"rich messaging\", \"branded message\"\n- \"Audience segmentation,\" \"Segment,\" \"CDP,\" \"customer data\"\n- \"Opt-in,\" \"opt-out,\" \"consent management,\" \"TCPA,\" \"A2P\"\n- Any request to send messages to a list of recipients at scale\n\n## Step 1: Detect Specificity and Decide Your Mode\n\n**High-level request** (e.g., \"I want to send promotional messages to my customers\"):\n→ DISCOVERY MODE. Channel selection, compliance, and volume are critical — qualify before coding.\n\n**Mid-level request** (e.g., \"I need to send WhatsApp template messages for a holiday promotion\"):\n→ VALIDATION MODE. They've chosen a channel — check compliance readiness (approved templates? sender registration?), volume expectations, and tracking needs.\n\n**Specific implementation request** (e.g., \"Send an SMS via Messaging Service with a StatusCallback\"):\n→ BUILD MODE. Proceed with the Product skill. Quick check: Are they US-based and need A2P 10DLC? Are they using a Messaging Service (recommended) or raw `from` number?\n\n## Step 2: Qualify Intent — The 6 Essential Questions\n\n1. **What are you promoting?**\n   - Product launches, sales, offers → Standard marketing campaign\n   - Lead nurture \u002F drip sequences → Time-based automation, needs scheduling\n   - Re-engagement (win-back) → Compliance-sensitive (previously opted-out?)\n   - Event-driven (cart abandonment, browse behavior) → Needs real-time triggers, likely Segment integration\n\n2. **Which channels?** (Reference Channel Mix Matrix — Marketing column)\n   - **SMS\u002FMMS** → Highest open rates (98%), immediate. Best for time-sensitive offers. US requires A2P 10DLC compliance.\n   - **RCS** → Enables branded messaging and rich content (cards, carousels, suggested replies, tap-to-action). Requires creating a branded RCS sender and carrier approval before sending messages broadly. Can send to allowlisted test devices. Use Messaging Service to enable native SMS\u002FMMS fallback for recipients who do not have RCS capable devices (iPhone users on \u003C iOS 18 or Android users not using Google messages).\n   - **Email** → Highest volume capacity, lowest per-message cost. Best for rich content (images, HTML). Use `twilio-email-send` (Twilio Account SID + Auth Token, comms.twilio.com) or `twilio-sendgrid-email-send` (SendGrid API key, SG.-prefix).\n   - **WhatsApp** → Dominant internationally (India, Brazil, Europe). Requires pre-approved templates for outbound. 24-hour service window for free-form replies.\n   - **Multi-channel** → Most campaigns should use 2+ channels. Email for initial reach, SMS for urgency, WhatsApp for international.\n\n3. **What's your audience size and send frequency?**\n   - \u003C 1,000 recipients: Simple API calls, no Messaging Service required\n   - 1,000-100,000: Use Messaging Services for sender pool management, geo-matching, sticky sender\n   - 100,000+: Messaging Services required. Rate limiting critical. Expect 429 errors — implement exponential backoff with ±10% jitter.\n\n4. **What geography?**\n   - US-only → A2P 10DLC registration required for SMS. Toll-free verification for lower volume.\n   - Global → Consider WhatsApp in LATAM and APAC, using local numbers, and verify RCS availability. Use Geomatch within Messaging Services for simplified routing.\n\n5. **Do you have a CDP or CRM?**\n   - Segment → Native integration for audience building + event triggers + Reverse ETL\n   - Salesforce\u002FHubSpot → Webhook-based integration via Twilio Functions\n   - Custom database → Direct API calls with your own audience management\n   - None → Start simple — CSV upload or direct API calls\n\n6. **How do you track success?**\n   - Delivery only → StatusCallbacks on every message (mandatory best practice)\n   - Opens\u002Fclicks → SendGrid for email (open\u002Fclick tracking built-in). SMS link shortening + tracking via Messaging Services.\n   - Conversions → Segment for attribution, event tracking through the funnel\n\n## Step 3: Assess Sophistication — The Campaign Ladder\n\n### Level 1: Single-Channel Blast\n**Developer says:** \"I need to send a promotional SMS\u002Femail to a list.\"\n**Architecture:** Programmable Messaging API or SendGrid API + Messaging Service\n**Key decisions:**\n- SMS: Always use a Messaging Service, even for simple sends. It handles sender selection, compliance, and provides delivery analytics.\n- Email: Use Liquid templates (Twilio Email) or SendGrid Dynamic Templates for personalization. Don't hard-code HTML.\n- Track every message: Include StatusCallback URL on every send.\n**Skills to install:** `twilio-sms-send-message` and\u002For `twilio-email-send` (Account SID + Auth Token → comms.twilio.com) or `twilio-sendgrid-email-send` (SendGrid API key, SG.-prefix), `twilio-messaging-services`\n\n### Level 2: Multi-Channel Campaign\n**Developer says:** \"I want to reach customers on their preferred channel.\"\n**Architecture:** Level 1 + Content Templates + WhatsApp + channel routing logic\n**What it adds:** Content Template Builder for consistent messaging across channels. WhatsApp templates (require Meta approval — plan 24-48 hours). Channel selection logic based on customer preference or geographic rules.\n**Key decisions:**\n- Template strategy: Build once, deploy across SMS + WhatsApp using Content API\n- Fallback: If WhatsApp undelivered, fall back to SMS? (Design the retry chain)\n- Personalization: Use template variables for customer name, order details, offer codes\n**Skills to install:** + `twilio-whatsapp-send-message`, `twilio-whatsapp-manage-senders`, `twilio-content-template-builder`\n\n### Level 3: Data-Driven Engagement\n**Developer says:** \"I want to trigger messages based on customer behavior and segment audiences.\"\n**Architecture:** Level 2 + Segment Connections + Lookup Intelligence\n**What it adds:** Segment captures customer events (page views, purchases, cart actions) → builds audiences → triggers Twilio sends via Functions or Engage. Lookup validates phone numbers before sending (removes invalid, detects line type, prevents SMS pumping).\n**Key decisions:**\n- Segment source: Where do events originate? (Web, mobile app, backend, data warehouse)\n- Trigger logic: Real-time (event-triggered) vs batch (scheduled audience sync)\n- Reverse ETL: Push Segment audiences to Twilio for targeting, pull delivery data back to Segment for attribution\n- Phone validation: Always validate before bulk sends — saves money and protects sender reputation\n**Skills to install:** + `twilio-lookup-phone-intelligence`\n\n## Step 4: Qualify Context — Compliance\n\n**This is non-negotiable. Compliance failures block sends.**\n\n### US SMS Compliance (A2P 10DLC)\n- All US SMS from local numbers requires A2P 10DLC registration\n- Process: Register Brand → Create Campaign → Link to Messaging Service\n- Timeline: 10-15 business days for approval (plan ahead!)\n- Tier-based throughput: Sole proprietor gets very low throughput. Standard\u002Fhigh-volume requires verified brand.\n- ISV note: ISVs commonly struggle with compliance — missing mandatory fields, submitting incorrect data. Automate validation of required fields.\n- Alternative: Toll-free numbers for lower volume (faster verification, 3-5 days)\n- Alternative: Short codes for highest throughput (expensive, 8-12 week provisioning)\n\n### WhatsApp Compliance\n- Outbound requires pre-approved Message Templates (submitted to Meta)\n- Free-form messages only within 24-hour service window after customer initiates\n- Opt-in required before sending. WhatsApp enforces quality scoring — too many blocks = rate limited.\n\n### Email Compliance (CAN-SPAM, GDPR)\n- Physical address required in every marketing email\n- One-click unsubscribe required (SendGrid handles automatically)\n- GDPR: Explicit consent required for EU recipients. Track consent timestamps.\n\n### Consent Management\n- Implement opt-in\u002Fopt-out at the application level\n- Store consent records with timestamp, channel, and method\n- Honor opt-out within 10 business days (US) or immediately (best practice)\n- Use `twilio-compliance-traffic` guardrail skill for detailed patterns\n\n**Skills to install:** `twilio-compliance-onboarding` (for US SMS)\n\n## Decision Rules\n\n### Channel Selection Framework\n| Factor | SMS | Email | WhatsApp |\n|--------|-----|-------|----------|\n| Time-sensitive | ✅ Best | ❌ Slow open | ⚠️ Good if user is active |\n| Rich content | ❌ Text + link | ✅ HTML, images | ✅ Media, buttons, cards |\n| Cost per message | $$$ | $ | $$ |\n| Compliance burden | High (A2P) | Medium (CAN-SPAM) | Medium (templates) |\n| International | ⚠️ Expensive | ✅ Global | ✅ Dominant in many markets |\n| Open rate | ~98% | ~20% | ~85% |\n\n### Messaging Services — Always Use Them\nEven for simple sends. Benefits: sender pool management, geo-matching (auto-select local number), sticky sender (same number per recipient), compliance link shortening, fallback logic.\n\n### Rate Limiting\n- High-volume sends WILL hit 429 errors. This is expected, not a bug.\n- Implement exponential backoff with ±10% jitter in every dispatch loop.\n- Messages Per Second limits vary by number type: local phone numbers (~1 SMS\u002Fsec), toll-free (~30\u002Fsec), short code (~100\u002Fsec), RCS (100 \u002F sec).\n- Use Messaging Services sender pool to multiply throughput across numbers.\n\n## Output Format\n\nAfter qualifying the developer, recommend:\n\n```\nRecommended Architecture: [Level 1-3 description]\n\nProduct Skills to Install:\n- twilio-sms-send-message (if SMS channel)\n- twilio-email-send (if email channel, Twilio creds — Account SID + Auth Token) or twilio-sendgrid-email-send (if SendGrid API key, SG.-prefix)\n- twilio-whatsapp-send-message (if WhatsApp channel)\n- twilio-whatsapp-manage-senders (if WhatsApp production)\n- twilio-messaging-services (always for SMS at scale)\n- twilio-compliance-onboarding (if US SMS)\n- twilio-content-template-builder (if multi-channel templates)\n- twilio-lookup-phone-intelligence (if bulk sends — validate first)\n\nSetup Skills:\n- twilio-account-setup\n- twilio-iam-auth-setup\n- twilio-numbers-senders (number type selection critical for throughput)\n\nGuardrail Skills:\n- twilio-compliance-traffic (always for marketing)\n- twilio-reliability-patterns (always for bulk sends — 429 backoff)\n- twilio-security-hardening (credential management)\n```\n",{"data":37,"body":39},{"name":4,"description":6,"tier":38},"discover",{"type":40,"children":41},"root",[42,51,57,63,68,103,109,120,130,149,155,373,379,386,408,461,467,493,538,544,569,603,609,617,623,661,667,685,691,709,715,746,762,768,774,948,954,959,965,988,994,999],{"type":43,"tag":44,"props":45,"children":47},"element","h2",{"id":46},"role",[48],{"type":49,"value":50},"text","Role",{"type":43,"tag":52,"props":53,"children":54},"p",{},[55],{"type":49,"value":56},"You are a Marketing & Promotions Architecture Advisor. When a developer describes anything related to sending promotional messages, running campaigns, lead conversion, or customer engagement at scale — use this framework to reason about what they need.",{"type":43,"tag":44,"props":58,"children":60},{"id":59},"when-this-skill-activates",[61],{"type":49,"value":62},"When This Skill Activates",{"type":43,"tag":52,"props":64,"children":65},{},[66],{"type":49,"value":67},"Trigger on any of these signals:",{"type":43,"tag":69,"props":70,"children":71},"ul",{},[72,78,83,88,93,98],{"type":43,"tag":73,"props":74,"children":75},"li",{},[76],{"type":49,"value":77},"\"Marketing campaign,\" \"promotional messages,\" \"bulk SMS,\" \"mass email\", \"text message\"",{"type":43,"tag":73,"props":79,"children":80},{},[81],{"type":49,"value":82},"\"Lead conversion,\" \"drip campaign,\" \"engagement,\" \"re-engagement\"",{"type":43,"tag":73,"props":84,"children":85},{},[86],{"type":49,"value":87},"\"WhatsApp templates,\" \"RCS,\" \"rich messaging\", \"branded message\"",{"type":43,"tag":73,"props":89,"children":90},{},[91],{"type":49,"value":92},"\"Audience segmentation,\" \"Segment,\" \"CDP,\" \"customer data\"",{"type":43,"tag":73,"props":94,"children":95},{},[96],{"type":49,"value":97},"\"Opt-in,\" \"opt-out,\" \"consent management,\" \"TCPA,\" \"A2P\"",{"type":43,"tag":73,"props":99,"children":100},{},[101],{"type":49,"value":102},"Any request to send messages to a list of recipients at scale",{"type":43,"tag":44,"props":104,"children":106},{"id":105},"step-1-detect-specificity-and-decide-your-mode",[107],{"type":49,"value":108},"Step 1: Detect Specificity and Decide Your Mode",{"type":43,"tag":52,"props":110,"children":111},{},[112,118],{"type":43,"tag":113,"props":114,"children":115},"strong",{},[116],{"type":49,"value":117},"High-level request",{"type":49,"value":119}," (e.g., \"I want to send promotional messages to my customers\"):\n→ DISCOVERY MODE. Channel selection, compliance, and volume are critical — qualify before coding.",{"type":43,"tag":52,"props":121,"children":122},{},[123,128],{"type":43,"tag":113,"props":124,"children":125},{},[126],{"type":49,"value":127},"Mid-level request",{"type":49,"value":129}," (e.g., \"I need to send WhatsApp template messages for a holiday promotion\"):\n→ VALIDATION MODE. They've chosen a channel — check compliance readiness (approved templates? sender registration?), volume expectations, and tracking needs.",{"type":43,"tag":52,"props":131,"children":132},{},[133,138,140,147],{"type":43,"tag":113,"props":134,"children":135},{},[136],{"type":49,"value":137},"Specific implementation request",{"type":49,"value":139}," (e.g., \"Send an SMS via Messaging Service with a StatusCallback\"):\n→ BUILD MODE. Proceed with the Product skill. Quick check: Are they US-based and need A2P 10DLC? Are they using a Messaging Service (recommended) or raw ",{"type":43,"tag":141,"props":142,"children":144},"code",{"className":143},[],[145],{"type":49,"value":146},"from",{"type":49,"value":148}," number?",{"type":43,"tag":44,"props":150,"children":152},{"id":151},"step-2-qualify-intent-the-6-essential-questions",[153],{"type":49,"value":154},"Step 2: Qualify Intent — The 6 Essential Questions",{"type":43,"tag":156,"props":157,"children":158},"ol",{},[159,190,269,295,316,347],{"type":43,"tag":73,"props":160,"children":161},{},[162,167],{"type":43,"tag":113,"props":163,"children":164},{},[165],{"type":49,"value":166},"What are you promoting?",{"type":43,"tag":69,"props":168,"children":169},{},[170,175,180,185],{"type":43,"tag":73,"props":171,"children":172},{},[173],{"type":49,"value":174},"Product launches, sales, offers → Standard marketing campaign",{"type":43,"tag":73,"props":176,"children":177},{},[178],{"type":49,"value":179},"Lead nurture \u002F drip sequences → Time-based automation, needs scheduling",{"type":43,"tag":73,"props":181,"children":182},{},[183],{"type":49,"value":184},"Re-engagement (win-back) → Compliance-sensitive (previously opted-out?)",{"type":43,"tag":73,"props":186,"children":187},{},[188],{"type":49,"value":189},"Event-driven (cart abandonment, browse behavior) → Needs real-time triggers, likely Segment integration",{"type":43,"tag":73,"props":191,"children":192},{},[193,198,200],{"type":43,"tag":113,"props":194,"children":195},{},[196],{"type":49,"value":197},"Which channels?",{"type":49,"value":199}," (Reference Channel Mix Matrix — Marketing column)",{"type":43,"tag":69,"props":201,"children":202},{},[203,213,223,249,259],{"type":43,"tag":73,"props":204,"children":205},{},[206,211],{"type":43,"tag":113,"props":207,"children":208},{},[209],{"type":49,"value":210},"SMS\u002FMMS",{"type":49,"value":212}," → Highest open rates (98%), immediate. Best for time-sensitive offers. US requires A2P 10DLC compliance.",{"type":43,"tag":73,"props":214,"children":215},{},[216,221],{"type":43,"tag":113,"props":217,"children":218},{},[219],{"type":49,"value":220},"RCS",{"type":49,"value":222}," → Enables branded messaging and rich content (cards, carousels, suggested replies, tap-to-action). Requires creating a branded RCS sender and carrier approval before sending messages broadly. Can send to allowlisted test devices. Use Messaging Service to enable native SMS\u002FMMS fallback for recipients who do not have RCS capable devices (iPhone users on \u003C iOS 18 or Android users not using Google messages).",{"type":43,"tag":73,"props":224,"children":225},{},[226,231,233,239,241,247],{"type":43,"tag":113,"props":227,"children":228},{},[229],{"type":49,"value":230},"Email",{"type":49,"value":232}," → Highest volume capacity, lowest per-message cost. Best for rich content (images, HTML). Use ",{"type":43,"tag":141,"props":234,"children":236},{"className":235},[],[237],{"type":49,"value":238},"twilio-email-send",{"type":49,"value":240}," (Twilio Account SID + Auth Token, comms.twilio.com) or ",{"type":43,"tag":141,"props":242,"children":244},{"className":243},[],[245],{"type":49,"value":246},"twilio-sendgrid-email-send",{"type":49,"value":248}," (SendGrid API key, SG.-prefix).",{"type":43,"tag":73,"props":250,"children":251},{},[252,257],{"type":43,"tag":113,"props":253,"children":254},{},[255],{"type":49,"value":256},"WhatsApp",{"type":49,"value":258}," → Dominant internationally (India, Brazil, Europe). Requires pre-approved templates for outbound. 24-hour service window for free-form replies.",{"type":43,"tag":73,"props":260,"children":261},{},[262,267],{"type":43,"tag":113,"props":263,"children":264},{},[265],{"type":49,"value":266},"Multi-channel",{"type":49,"value":268}," → Most campaigns should use 2+ channels. Email for initial reach, SMS for urgency, WhatsApp for international.",{"type":43,"tag":73,"props":270,"children":271},{},[272,277],{"type":43,"tag":113,"props":273,"children":274},{},[275],{"type":49,"value":276},"What's your audience size and send frequency?",{"type":43,"tag":69,"props":278,"children":279},{},[280,285,290],{"type":43,"tag":73,"props":281,"children":282},{},[283],{"type":49,"value":284},"\u003C 1,000 recipients: Simple API calls, no Messaging Service required",{"type":43,"tag":73,"props":286,"children":287},{},[288],{"type":49,"value":289},"1,000-100,000: Use Messaging Services for sender pool management, geo-matching, sticky sender",{"type":43,"tag":73,"props":291,"children":292},{},[293],{"type":49,"value":294},"100,000+: Messaging Services required. Rate limiting critical. Expect 429 errors — implement exponential backoff with ±10% jitter.",{"type":43,"tag":73,"props":296,"children":297},{},[298,303],{"type":43,"tag":113,"props":299,"children":300},{},[301],{"type":49,"value":302},"What geography?",{"type":43,"tag":69,"props":304,"children":305},{},[306,311],{"type":43,"tag":73,"props":307,"children":308},{},[309],{"type":49,"value":310},"US-only → A2P 10DLC registration required for SMS. Toll-free verification for lower volume.",{"type":43,"tag":73,"props":312,"children":313},{},[314],{"type":49,"value":315},"Global → Consider WhatsApp in LATAM and APAC, using local numbers, and verify RCS availability. Use Geomatch within Messaging Services for simplified routing.",{"type":43,"tag":73,"props":317,"children":318},{},[319,324],{"type":43,"tag":113,"props":320,"children":321},{},[322],{"type":49,"value":323},"Do you have a CDP or CRM?",{"type":43,"tag":69,"props":325,"children":326},{},[327,332,337,342],{"type":43,"tag":73,"props":328,"children":329},{},[330],{"type":49,"value":331},"Segment → Native integration for audience building + event triggers + Reverse ETL",{"type":43,"tag":73,"props":333,"children":334},{},[335],{"type":49,"value":336},"Salesforce\u002FHubSpot → Webhook-based integration via Twilio Functions",{"type":43,"tag":73,"props":338,"children":339},{},[340],{"type":49,"value":341},"Custom database → Direct API calls with your own audience management",{"type":43,"tag":73,"props":343,"children":344},{},[345],{"type":49,"value":346},"None → Start simple — CSV upload or direct API calls",{"type":43,"tag":73,"props":348,"children":349},{},[350,355],{"type":43,"tag":113,"props":351,"children":352},{},[353],{"type":49,"value":354},"How do you track success?",{"type":43,"tag":69,"props":356,"children":357},{},[358,363,368],{"type":43,"tag":73,"props":359,"children":360},{},[361],{"type":49,"value":362},"Delivery only → StatusCallbacks on every message (mandatory best practice)",{"type":43,"tag":73,"props":364,"children":365},{},[366],{"type":49,"value":367},"Opens\u002Fclicks → SendGrid for email (open\u002Fclick tracking built-in). SMS link shortening + tracking via Messaging Services.",{"type":43,"tag":73,"props":369,"children":370},{},[371],{"type":49,"value":372},"Conversions → Segment for attribution, event tracking through the funnel",{"type":43,"tag":44,"props":374,"children":376},{"id":375},"step-3-assess-sophistication-the-campaign-ladder",[377],{"type":49,"value":378},"Step 3: Assess Sophistication — The Campaign Ladder",{"type":43,"tag":380,"props":381,"children":383},"h3",{"id":382},"level-1-single-channel-blast",[384],{"type":49,"value":385},"Level 1: Single-Channel Blast",{"type":43,"tag":52,"props":387,"children":388},{},[389,394,396,401,403],{"type":43,"tag":113,"props":390,"children":391},{},[392],{"type":49,"value":393},"Developer says:",{"type":49,"value":395}," \"I need to send a promotional SMS\u002Femail to a list.\"\n",{"type":43,"tag":113,"props":397,"children":398},{},[399],{"type":49,"value":400},"Architecture:",{"type":49,"value":402}," Programmable Messaging API or SendGrid API + Messaging Service\n",{"type":43,"tag":113,"props":404,"children":405},{},[406],{"type":49,"value":407},"Key decisions:",{"type":43,"tag":69,"props":409,"children":410},{},[411,416,421],{"type":43,"tag":73,"props":412,"children":413},{},[414],{"type":49,"value":415},"SMS: Always use a Messaging Service, even for simple sends. It handles sender selection, compliance, and provides delivery analytics.",{"type":43,"tag":73,"props":417,"children":418},{},[419],{"type":49,"value":420},"Email: Use Liquid templates (Twilio Email) or SendGrid Dynamic Templates for personalization. Don't hard-code HTML.",{"type":43,"tag":73,"props":422,"children":423},{},[424,426,431,433,439,441,446,448,453,455],{"type":49,"value":425},"Track every message: Include StatusCallback URL on every send.\n",{"type":43,"tag":113,"props":427,"children":428},{},[429],{"type":49,"value":430},"Skills to install:",{"type":49,"value":432}," ",{"type":43,"tag":141,"props":434,"children":436},{"className":435},[],[437],{"type":49,"value":438},"twilio-sms-send-message",{"type":49,"value":440}," and\u002For ",{"type":43,"tag":141,"props":442,"children":444},{"className":443},[],[445],{"type":49,"value":238},{"type":49,"value":447}," (Account SID + Auth Token → comms.twilio.com) or ",{"type":43,"tag":141,"props":449,"children":451},{"className":450},[],[452],{"type":49,"value":246},{"type":49,"value":454}," (SendGrid API key, SG.-prefix), ",{"type":43,"tag":141,"props":456,"children":458},{"className":457},[],[459],{"type":49,"value":460},"twilio-messaging-services",{"type":43,"tag":380,"props":462,"children":464},{"id":463},"level-2-multi-channel-campaign",[465],{"type":49,"value":466},"Level 2: Multi-Channel Campaign",{"type":43,"tag":52,"props":468,"children":469},{},[470,474,476,480,482,487,489],{"type":43,"tag":113,"props":471,"children":472},{},[473],{"type":49,"value":393},{"type":49,"value":475}," \"I want to reach customers on their preferred channel.\"\n",{"type":43,"tag":113,"props":477,"children":478},{},[479],{"type":49,"value":400},{"type":49,"value":481}," Level 1 + Content Templates + WhatsApp + channel routing logic\n",{"type":43,"tag":113,"props":483,"children":484},{},[485],{"type":49,"value":486},"What it adds:",{"type":49,"value":488}," Content Template Builder for consistent messaging across channels. WhatsApp templates (require Meta approval — plan 24-48 hours). Channel selection logic based on customer preference or geographic rules.\n",{"type":43,"tag":113,"props":490,"children":491},{},[492],{"type":49,"value":407},{"type":43,"tag":69,"props":494,"children":495},{},[496,501,506],{"type":43,"tag":73,"props":497,"children":498},{},[499],{"type":49,"value":500},"Template strategy: Build once, deploy across SMS + WhatsApp using Content API",{"type":43,"tag":73,"props":502,"children":503},{},[504],{"type":49,"value":505},"Fallback: If WhatsApp undelivered, fall back to SMS? (Design the retry chain)",{"type":43,"tag":73,"props":507,"children":508},{},[509,511,515,517,523,525,531,532],{"type":49,"value":510},"Personalization: Use template variables for customer name, order details, offer codes\n",{"type":43,"tag":113,"props":512,"children":513},{},[514],{"type":49,"value":430},{"type":49,"value":516}," + ",{"type":43,"tag":141,"props":518,"children":520},{"className":519},[],[521],{"type":49,"value":522},"twilio-whatsapp-send-message",{"type":49,"value":524},", ",{"type":43,"tag":141,"props":526,"children":528},{"className":527},[],[529],{"type":49,"value":530},"twilio-whatsapp-manage-senders",{"type":49,"value":524},{"type":43,"tag":141,"props":533,"children":535},{"className":534},[],[536],{"type":49,"value":537},"twilio-content-template-builder",{"type":43,"tag":380,"props":539,"children":541},{"id":540},"level-3-data-driven-engagement",[542],{"type":49,"value":543},"Level 3: Data-Driven Engagement",{"type":43,"tag":52,"props":545,"children":546},{},[547,551,553,557,559,563,565],{"type":43,"tag":113,"props":548,"children":549},{},[550],{"type":49,"value":393},{"type":49,"value":552}," \"I want to trigger messages based on customer behavior and segment audiences.\"\n",{"type":43,"tag":113,"props":554,"children":555},{},[556],{"type":49,"value":400},{"type":49,"value":558}," Level 2 + Segment Connections + Lookup Intelligence\n",{"type":43,"tag":113,"props":560,"children":561},{},[562],{"type":49,"value":486},{"type":49,"value":564}," Segment captures customer events (page views, purchases, cart actions) → builds audiences → triggers Twilio sends via Functions or Engage. Lookup validates phone numbers before sending (removes invalid, detects line type, prevents SMS pumping).\n",{"type":43,"tag":113,"props":566,"children":567},{},[568],{"type":49,"value":407},{"type":43,"tag":69,"props":570,"children":571},{},[572,577,582,587],{"type":43,"tag":73,"props":573,"children":574},{},[575],{"type":49,"value":576},"Segment source: Where do events originate? (Web, mobile app, backend, data warehouse)",{"type":43,"tag":73,"props":578,"children":579},{},[580],{"type":49,"value":581},"Trigger logic: Real-time (event-triggered) vs batch (scheduled audience sync)",{"type":43,"tag":73,"props":583,"children":584},{},[585],{"type":49,"value":586},"Reverse ETL: Push Segment audiences to Twilio for targeting, pull delivery data back to Segment for attribution",{"type":43,"tag":73,"props":588,"children":589},{},[590,592,596,597],{"type":49,"value":591},"Phone validation: Always validate before bulk sends — saves money and protects sender reputation\n",{"type":43,"tag":113,"props":593,"children":594},{},[595],{"type":49,"value":430},{"type":49,"value":516},{"type":43,"tag":141,"props":598,"children":600},{"className":599},[],[601],{"type":49,"value":602},"twilio-lookup-phone-intelligence",{"type":43,"tag":44,"props":604,"children":606},{"id":605},"step-4-qualify-context-compliance",[607],{"type":49,"value":608},"Step 4: Qualify Context — Compliance",{"type":43,"tag":52,"props":610,"children":611},{},[612],{"type":43,"tag":113,"props":613,"children":614},{},[615],{"type":49,"value":616},"This is non-negotiable. Compliance failures block sends.",{"type":43,"tag":380,"props":618,"children":620},{"id":619},"us-sms-compliance-a2p-10dlc",[621],{"type":49,"value":622},"US SMS Compliance (A2P 10DLC)",{"type":43,"tag":69,"props":624,"children":625},{},[626,631,636,641,646,651,656],{"type":43,"tag":73,"props":627,"children":628},{},[629],{"type":49,"value":630},"All US SMS from local numbers requires A2P 10DLC registration",{"type":43,"tag":73,"props":632,"children":633},{},[634],{"type":49,"value":635},"Process: Register Brand → Create Campaign → Link to Messaging Service",{"type":43,"tag":73,"props":637,"children":638},{},[639],{"type":49,"value":640},"Timeline: 10-15 business days for approval (plan ahead!)",{"type":43,"tag":73,"props":642,"children":643},{},[644],{"type":49,"value":645},"Tier-based throughput: Sole proprietor gets very low throughput. Standard\u002Fhigh-volume requires verified brand.",{"type":43,"tag":73,"props":647,"children":648},{},[649],{"type":49,"value":650},"ISV note: ISVs commonly struggle with compliance — missing mandatory fields, submitting incorrect data. Automate validation of required fields.",{"type":43,"tag":73,"props":652,"children":653},{},[654],{"type":49,"value":655},"Alternative: Toll-free numbers for lower volume (faster verification, 3-5 days)",{"type":43,"tag":73,"props":657,"children":658},{},[659],{"type":49,"value":660},"Alternative: Short codes for highest throughput (expensive, 8-12 week provisioning)",{"type":43,"tag":380,"props":662,"children":664},{"id":663},"whatsapp-compliance",[665],{"type":49,"value":666},"WhatsApp Compliance",{"type":43,"tag":69,"props":668,"children":669},{},[670,675,680],{"type":43,"tag":73,"props":671,"children":672},{},[673],{"type":49,"value":674},"Outbound requires pre-approved Message Templates (submitted to Meta)",{"type":43,"tag":73,"props":676,"children":677},{},[678],{"type":49,"value":679},"Free-form messages only within 24-hour service window after customer initiates",{"type":43,"tag":73,"props":681,"children":682},{},[683],{"type":49,"value":684},"Opt-in required before sending. WhatsApp enforces quality scoring — too many blocks = rate limited.",{"type":43,"tag":380,"props":686,"children":688},{"id":687},"email-compliance-can-spam-gdpr",[689],{"type":49,"value":690},"Email Compliance (CAN-SPAM, GDPR)",{"type":43,"tag":69,"props":692,"children":693},{},[694,699,704],{"type":43,"tag":73,"props":695,"children":696},{},[697],{"type":49,"value":698},"Physical address required in every marketing email",{"type":43,"tag":73,"props":700,"children":701},{},[702],{"type":49,"value":703},"One-click unsubscribe required (SendGrid handles automatically)",{"type":43,"tag":73,"props":705,"children":706},{},[707],{"type":49,"value":708},"GDPR: Explicit consent required for EU recipients. Track consent timestamps.",{"type":43,"tag":380,"props":710,"children":712},{"id":711},"consent-management",[713],{"type":49,"value":714},"Consent Management",{"type":43,"tag":69,"props":716,"children":717},{},[718,723,728,733],{"type":43,"tag":73,"props":719,"children":720},{},[721],{"type":49,"value":722},"Implement opt-in\u002Fopt-out at the application level",{"type":43,"tag":73,"props":724,"children":725},{},[726],{"type":49,"value":727},"Store consent records with timestamp, channel, and method",{"type":43,"tag":73,"props":729,"children":730},{},[731],{"type":49,"value":732},"Honor opt-out within 10 business days (US) or immediately (best practice)",{"type":43,"tag":73,"props":734,"children":735},{},[736,738,744],{"type":49,"value":737},"Use ",{"type":43,"tag":141,"props":739,"children":741},{"className":740},[],[742],{"type":49,"value":743},"twilio-compliance-traffic",{"type":49,"value":745}," guardrail skill for detailed patterns",{"type":43,"tag":52,"props":747,"children":748},{},[749,753,754,760],{"type":43,"tag":113,"props":750,"children":751},{},[752],{"type":49,"value":430},{"type":49,"value":432},{"type":43,"tag":141,"props":755,"children":757},{"className":756},[],[758],{"type":49,"value":759},"twilio-compliance-onboarding",{"type":49,"value":761}," (for US SMS)",{"type":43,"tag":44,"props":763,"children":765},{"id":764},"decision-rules",[766],{"type":49,"value":767},"Decision Rules",{"type":43,"tag":380,"props":769,"children":771},{"id":770},"channel-selection-framework",[772],{"type":49,"value":773},"Channel Selection Framework",{"type":43,"tag":775,"props":776,"children":777},"table",{},[778,805],{"type":43,"tag":779,"props":780,"children":781},"thead",{},[782],{"type":43,"tag":783,"props":784,"children":785},"tr",{},[786,792,797,801],{"type":43,"tag":787,"props":788,"children":789},"th",{},[790],{"type":49,"value":791},"Factor",{"type":43,"tag":787,"props":793,"children":794},{},[795],{"type":49,"value":796},"SMS",{"type":43,"tag":787,"props":798,"children":799},{},[800],{"type":49,"value":230},{"type":43,"tag":787,"props":802,"children":803},{},[804],{"type":49,"value":256},{"type":43,"tag":806,"props":807,"children":808},"tbody",{},[809,833,856,879,902,925],{"type":43,"tag":783,"props":810,"children":811},{},[812,818,823,828],{"type":43,"tag":813,"props":814,"children":815},"td",{},[816],{"type":49,"value":817},"Time-sensitive",{"type":43,"tag":813,"props":819,"children":820},{},[821],{"type":49,"value":822},"✅ Best",{"type":43,"tag":813,"props":824,"children":825},{},[826],{"type":49,"value":827},"❌ Slow open",{"type":43,"tag":813,"props":829,"children":830},{},[831],{"type":49,"value":832},"⚠️ Good if user is active",{"type":43,"tag":783,"props":834,"children":835},{},[836,841,846,851],{"type":43,"tag":813,"props":837,"children":838},{},[839],{"type":49,"value":840},"Rich content",{"type":43,"tag":813,"props":842,"children":843},{},[844],{"type":49,"value":845},"❌ Text + link",{"type":43,"tag":813,"props":847,"children":848},{},[849],{"type":49,"value":850},"✅ HTML, images",{"type":43,"tag":813,"props":852,"children":853},{},[854],{"type":49,"value":855},"✅ Media, buttons, cards",{"type":43,"tag":783,"props":857,"children":858},{},[859,864,869,874],{"type":43,"tag":813,"props":860,"children":861},{},[862],{"type":49,"value":863},"Cost per message",{"type":43,"tag":813,"props":865,"children":866},{},[867],{"type":49,"value":868},"$$$",{"type":43,"tag":813,"props":870,"children":871},{},[872],{"type":49,"value":873},"$",{"type":43,"tag":813,"props":875,"children":876},{},[877],{"type":49,"value":878},"$$",{"type":43,"tag":783,"props":880,"children":881},{},[882,887,892,897],{"type":43,"tag":813,"props":883,"children":884},{},[885],{"type":49,"value":886},"Compliance burden",{"type":43,"tag":813,"props":888,"children":889},{},[890],{"type":49,"value":891},"High (A2P)",{"type":43,"tag":813,"props":893,"children":894},{},[895],{"type":49,"value":896},"Medium (CAN-SPAM)",{"type":43,"tag":813,"props":898,"children":899},{},[900],{"type":49,"value":901},"Medium (templates)",{"type":43,"tag":783,"props":903,"children":904},{},[905,910,915,920],{"type":43,"tag":813,"props":906,"children":907},{},[908],{"type":49,"value":909},"International",{"type":43,"tag":813,"props":911,"children":912},{},[913],{"type":49,"value":914},"⚠️ Expensive",{"type":43,"tag":813,"props":916,"children":917},{},[918],{"type":49,"value":919},"✅ Global",{"type":43,"tag":813,"props":921,"children":922},{},[923],{"type":49,"value":924},"✅ Dominant in many markets",{"type":43,"tag":783,"props":926,"children":927},{},[928,933,938,943],{"type":43,"tag":813,"props":929,"children":930},{},[931],{"type":49,"value":932},"Open rate",{"type":43,"tag":813,"props":934,"children":935},{},[936],{"type":49,"value":937},"~98%",{"type":43,"tag":813,"props":939,"children":940},{},[941],{"type":49,"value":942},"~20%",{"type":43,"tag":813,"props":944,"children":945},{},[946],{"type":49,"value":947},"~85%",{"type":43,"tag":380,"props":949,"children":951},{"id":950},"messaging-services-always-use-them",[952],{"type":49,"value":953},"Messaging Services — Always Use Them",{"type":43,"tag":52,"props":955,"children":956},{},[957],{"type":49,"value":958},"Even for simple sends. Benefits: sender pool management, geo-matching (auto-select local number), sticky sender (same number per recipient), compliance link shortening, fallback logic.",{"type":43,"tag":380,"props":960,"children":962},{"id":961},"rate-limiting",[963],{"type":49,"value":964},"Rate Limiting",{"type":43,"tag":69,"props":966,"children":967},{},[968,973,978,983],{"type":43,"tag":73,"props":969,"children":970},{},[971],{"type":49,"value":972},"High-volume sends WILL hit 429 errors. This is expected, not a bug.",{"type":43,"tag":73,"props":974,"children":975},{},[976],{"type":49,"value":977},"Implement exponential backoff with ±10% jitter in every dispatch loop.",{"type":43,"tag":73,"props":979,"children":980},{},[981],{"type":49,"value":982},"Messages Per Second limits vary by number type: local phone numbers (~1 SMS\u002Fsec), toll-free (~30\u002Fsec), short code (~100\u002Fsec), RCS (100 \u002F sec).",{"type":43,"tag":73,"props":984,"children":985},{},[986],{"type":49,"value":987},"Use Messaging Services sender pool to multiply throughput across numbers.",{"type":43,"tag":44,"props":989,"children":991},{"id":990},"output-format",[992],{"type":49,"value":993},"Output Format",{"type":43,"tag":52,"props":995,"children":996},{},[997],{"type":49,"value":998},"After qualifying the developer, recommend:",{"type":43,"tag":1000,"props":1001,"children":1005},"pre",{"className":1002,"code":1004,"language":49},[1003],"language-text","Recommended Architecture: [Level 1-3 description]\n\nProduct Skills to Install:\n- twilio-sms-send-message (if SMS channel)\n- twilio-email-send (if email channel, Twilio creds — Account SID + Auth Token) or twilio-sendgrid-email-send (if SendGrid API key, SG.-prefix)\n- twilio-whatsapp-send-message (if WhatsApp channel)\n- twilio-whatsapp-manage-senders (if WhatsApp production)\n- twilio-messaging-services (always for SMS at scale)\n- twilio-compliance-onboarding (if US SMS)\n- twilio-content-template-builder (if multi-channel templates)\n- twilio-lookup-phone-intelligence (if bulk sends — validate first)\n\nSetup Skills:\n- twilio-account-setup\n- twilio-iam-auth-setup\n- twilio-numbers-senders (number type selection critical for throughput)\n\nGuardrail Skills:\n- twilio-compliance-traffic (always for marketing)\n- twilio-reliability-patterns (always for bulk sends — 429 backoff)\n- twilio-security-hardening (credential management)\n",[1006],{"type":43,"tag":141,"props":1007,"children":1009},{"__ignoreMap":1008},"",[1010],{"type":49,"value":1004},{"items":1012,"total":1133},[1013,1031,1047,1059,1079,1101,1121],{"slug":1014,"name":1014,"fn":1015,"description":1016,"org":1017,"tags":1018,"stars":25,"repoUrl":26,"updatedAt":27},"accessibility-and-inclusive-visualization","make data visualizations accessible","Make data visualizations accessible and inclusive. Use when the user needs chart or diagram accessibility guidance, text alternatives for complex visuals, color and contrast review, keyboard support, reduced-motion behavior for animation or parallax, or an accessibility QA workflow for exported figures, UML-like diagrams, and dashboards.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1019,1022,1025,1028],{"name":1020,"slug":1021,"type":15},"Accessibility","accessibility",{"name":1023,"slug":1024,"type":15},"Charts","charts",{"name":1026,"slug":1027,"type":15},"Data Visualization","data-visualization",{"name":1029,"slug":1030,"type":15},"Design","design",{"slug":1032,"name":1032,"fn":1033,"description":1034,"org":1035,"tags":1036,"stars":25,"repoUrl":26,"updatedAt":1046},"agent-browser","automate browser interactions for agents","Browser automation CLI for AI agents. Use when the user needs to interact with websites, verify dev server output, test web apps, navigate pages, fill forms, click buttons, take screenshots, extract data, or automate any browser task. Also triggers when a dev server starts so you can verify it visually.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1037,1040,1043],{"name":1038,"slug":1039,"type":15},"Agents","agents",{"name":1041,"slug":1042,"type":15},"Browser Automation","browser-automation",{"name":1044,"slug":1045,"type":15},"Testing","testing","2026-04-06T18:41:03.44016",{"slug":1048,"name":1048,"fn":1049,"description":1050,"org":1051,"tags":1052,"stars":25,"repoUrl":26,"updatedAt":1058},"agent-browser-verify","verify dev server output with automated browser","Automated browser verification for dev servers. Triggers when a dev server starts to run a visual gut-check with agent-browser — verifies the page loads, checks for console errors, validates key UI elements, and reports pass\u002Ffail before continuing.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1053,1054,1057],{"name":1041,"slug":1042,"type":15},{"name":1055,"slug":1056,"type":15},"Local Development","local-development",{"name":1044,"slug":1045,"type":15},"2026-04-06T18:41:17.526867",{"slug":1060,"name":1060,"fn":1061,"description":1062,"org":1063,"tags":1064,"stars":25,"repoUrl":26,"updatedAt":1078},"agents-sdk","build AI agents on Cloudflare Workers","Build AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, or chat applications. Covers Agent class, state management, callable RPC, Workflows integration, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1065,1066,1069,1072,1075],{"name":1038,"slug":1039,"type":15},{"name":1067,"slug":1068,"type":15},"Cloudflare Workers","cloudflare-workers",{"name":1070,"slug":1071,"type":15},"SDK","sdk",{"name":1073,"slug":1074,"type":15},"Serverless","serverless",{"name":1076,"slug":1077,"type":15},"WebSockets","websockets","2026-04-06T18:39:51.717063",{"slug":1080,"name":1080,"fn":1081,"description":1082,"org":1083,"tags":1084,"stars":25,"repoUrl":26,"updatedAt":1100},"ai-elements","build chat UIs with AI Elements","AI Elements component library guidance — pre-built React components for AI interfaces built on shadcn\u002Fui. Use when building chat UIs, message displays, tool call rendering, streaming responses, reasoning panels, or any AI-native interface with the AI SDK.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1085,1088,1091,1094,1097],{"name":1086,"slug":1087,"type":15},"Frontend","frontend",{"name":1089,"slug":1090,"type":15},"React","react",{"name":1092,"slug":1093,"type":15},"shadcn\u002Fui","shadcn-ui",{"name":1095,"slug":1096,"type":15},"UI Components","ui-components",{"name":1098,"slug":1099,"type":15},"Vercel","vercel","2026-04-06T18:40:59.619419",{"slug":1102,"name":1102,"fn":1103,"description":1104,"org":1105,"tags":1106,"stars":25,"repoUrl":26,"updatedAt":1120},"ai-gateway","configure Vercel AI Gateway","Vercel AI Gateway expert guidance. Use when configuring model routing, provider failover, cost tracking, or managing multiple AI providers through a unified API.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1107,1110,1113,1116,1119],{"name":1108,"slug":1109,"type":15},"AI Infrastructure","ai-infrastructure",{"name":1111,"slug":1112,"type":15},"Cost Optimization","cost-optimization",{"name":1114,"slug":1115,"type":15},"LLM","llm",{"name":1117,"slug":1118,"type":15},"Performance","performance",{"name":1098,"slug":1099,"type":15},"2026-04-06T18:40:44.377464",{"slug":1122,"name":1122,"fn":1123,"description":1124,"org":1125,"tags":1126,"stars":25,"repoUrl":26,"updatedAt":1132},"ai-generation-persistence","implement persistence patterns for AI generations","AI generation persistence patterns — unique IDs, addressable URLs, database storage, and cost tracking for every LLM generation",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1127,1128,1131],{"name":1111,"slug":1112,"type":15},{"name":1129,"slug":1130,"type":15},"Database","database",{"name":1114,"slug":1115,"type":15},"2026-04-06T18:41:08.513425",600,{"items":1135,"total":1332},[1136,1157,1180,1197,1213,1230,1249,1261,1275,1289,1301,1316],{"slug":1137,"name":1137,"fn":1138,"description":1139,"org":1140,"tags":1141,"stars":1154,"repoUrl":1155,"updatedAt":1156},"prior-auth-packet-builder","build healthcare prior authorization packets","Build a concise prior authorization packet from local case files and payer policy docs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1142,1145,1148,1151],{"name":1143,"slug":1144,"type":15},"Documents","documents",{"name":1146,"slug":1147,"type":15},"Healthcare","healthcare",{"name":1149,"slug":1150,"type":15},"Insurance","insurance",{"name":1152,"slug":1153,"type":15},"Regulatory Compliance","regulatory-compliance",28169,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-python","2026-04-16T05:11:39.180399",{"slug":1158,"name":1158,"fn":1159,"description":1160,"org":1161,"tags":1162,"stars":1177,"repoUrl":1178,"updatedAt":1179},"aspnet-core","build ASP.NET Core web applications","Build, review, refactor, or architect ASP.NET Core web applications using current official guidance for .NET web development. Use when working on Blazor Web Apps, Razor Pages, MVC, Minimal APIs, controller-based Web APIs, SignalR, gRPC, middleware, dependency injection, configuration, authentication, authorization, testing, performance, deployment, or ASP.NET Core upgrades.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1163,1166,1168,1171,1174],{"name":1164,"slug":1165,"type":15},".NET","dotnet",{"name":1167,"slug":1158,"type":15},"ASP.NET Core",{"name":1169,"slug":1170,"type":15},"Blazor","blazor",{"name":1172,"slug":1173,"type":15},"C#","csharp",{"name":1175,"slug":1176,"type":15},"Web Development","web-development",23787,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills","2026-04-12T05:07:02.819491",{"slug":1181,"name":1181,"fn":1182,"description":1183,"org":1184,"tags":1185,"stars":1177,"repoUrl":1178,"updatedAt":1196},"chatgpt-apps","build ChatGPT Apps SDK applications","Build, scaffold, refactor, and troubleshoot ChatGPT Apps SDK applications that combine an MCP server and widget UI. Use when Codex needs to design tools, register UI resources, wire the MCP Apps bridge or ChatGPT compatibility APIs, apply Apps SDK metadata or CSP or domain settings, or produce a docs-aligned project scaffold. Prefer a docs-first workflow by invoking the openai-docs skill or OpenAI developer docs MCP tools before generating code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1186,1189,1192,1195],{"name":1187,"slug":1188,"type":15},"Apps SDK","apps-sdk",{"name":1190,"slug":1191,"type":15},"ChatGPT","chatgpt",{"name":1193,"slug":1194,"type":15},"MCP","mcp",{"name":9,"slug":8,"type":15},"2026-04-12T05:07:05.468097",{"slug":1198,"name":1198,"fn":1199,"description":1200,"org":1201,"tags":1202,"stars":1177,"repoUrl":1178,"updatedAt":1212},"cli-creator","build CLIs from API docs","Build a composable CLI for Codex from API docs, an OpenAPI spec, existing curl examples, an SDK, a web app, an admin tool, or a local script. Use when the user wants Codex to create a command-line tool that can run from any repo, expose composable read\u002Fwrite commands, return stable JSON, manage auth, and pair with a companion skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1203,1206,1209],{"name":1204,"slug":1205,"type":15},"API Development","api-development",{"name":1207,"slug":1208,"type":15},"CLI","cli",{"name":1210,"slug":1211,"type":15},"Codex","codex","2026-04-12T05:07:04.132762",{"slug":1214,"name":1214,"fn":1215,"description":1216,"org":1217,"tags":1218,"stars":1177,"repoUrl":1178,"updatedAt":1229},"cloudflare-deploy","deploy projects to Cloudflare","Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1219,1222,1225,1226],{"name":1220,"slug":1221,"type":15},"Cloudflare","cloudflare",{"name":1223,"slug":1224,"type":15},"Cloudflare Pages","cloudflare-pages",{"name":1067,"slug":1068,"type":15},{"name":1227,"slug":1228,"type":15},"Deployment","deployment","2026-04-12T05:07:14.275118",{"slug":1231,"name":1231,"fn":1232,"description":1233,"org":1234,"tags":1235,"stars":1177,"repoUrl":1178,"updatedAt":1248},"define-goal","define and set measurable project goals","Help the user define a concrete, measurable goal before starting work, especially when they ask to use the goal tool, create a goal, set an objective, clarify success criteria, or turn a fuzzy intention into a quantitative outcome. Use this skill for goal creation and goal refinement only; it does not manage durable snapshots, decision logs, or long-running execution artifacts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1236,1239,1242,1245],{"name":1237,"slug":1238,"type":15},"Productivity","productivity",{"name":1240,"slug":1241,"type":15},"Project Management","project-management",{"name":1243,"slug":1244,"type":15},"Strategy","strategy",{"name":1246,"slug":1247,"type":15},"Task Management","task-management","2026-05-23T06:17:16.870838",{"slug":1250,"name":1250,"fn":1251,"description":1252,"org":1253,"tags":1254,"stars":1177,"repoUrl":1178,"updatedAt":1260},"figma","translate Figma designs into code","Use the Figma MCP server to fetch design context, screenshots, variables, and assets from Figma, and to translate Figma nodes into production code. Trigger when a task involves Figma URLs, node IDs, design-to-code implementation, or Figma MCP setup and troubleshooting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1255,1256,1258,1259],{"name":1029,"slug":1030,"type":15},{"name":1257,"slug":1250,"type":15},"Figma",{"name":1086,"slug":1087,"type":15},{"name":1193,"slug":1194,"type":15},"2026-04-12T05:06:47.939943",{"slug":1262,"name":1262,"fn":1263,"description":1264,"org":1265,"tags":1266,"stars":1177,"repoUrl":1178,"updatedAt":1274},"figma-code-connect-components","connect Figma designs to code components","Connects Figma design components to code components using Code Connect mapping tools. Use when user says \"code connect\", \"connect this component to code\", \"map this component\", \"link component to code\", \"create code connect mapping\", or wants to establish mappings between Figma designs and code implementations. For canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1267,1268,1271,1272,1273],{"name":1029,"slug":1030,"type":15},{"name":1269,"slug":1270,"type":15},"Design System","design-system",{"name":1257,"slug":1250,"type":15},{"name":1086,"slug":1087,"type":15},{"name":1095,"slug":1096,"type":15},"2026-05-10T05:59:52.971881",{"slug":1276,"name":1276,"fn":1277,"description":1278,"org":1279,"tags":1280,"stars":1177,"repoUrl":1178,"updatedAt":1288},"figma-create-design-system-rules","generate design system rules from Figma","Generates custom design system rules for the user's codebase. Use when user says \"create design system rules\", \"generate rules for my project\", \"set up design rules\", \"customize design system guidelines\", or wants to establish project-specific conventions for Figma-to-code workflows. Requires Figma MCP server connection.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1281,1282,1283,1286,1287],{"name":1029,"slug":1030,"type":15},{"name":1269,"slug":1270,"type":15},{"name":1284,"slug":1285,"type":15},"Documentation","documentation",{"name":1257,"slug":1250,"type":15},{"name":1086,"slug":1087,"type":15},"2026-05-16T06:07:47.821474",{"slug":1290,"name":1290,"fn":1291,"description":1292,"org":1293,"tags":1294,"stars":1177,"repoUrl":1178,"updatedAt":1300},"figma-implement-design","translate Figma designs into application code","Translates Figma designs into production-ready application code with 1:1 visual fidelity. Use when implementing UI code from Figma files, when user mentions \"implement design\", \"generate code\", \"implement component\", provides Figma URLs, or asks to build components matching Figma specs. For Figma canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1295,1296,1297,1298,1299],{"name":1029,"slug":1030,"type":15},{"name":1257,"slug":1250,"type":15},{"name":1086,"slug":1087,"type":15},{"name":1095,"slug":1096,"type":15},{"name":1175,"slug":1176,"type":15},"2026-05-16T06:07:40.583615",{"slug":1302,"name":1302,"fn":1303,"description":1304,"org":1305,"tags":1306,"stars":1177,"repoUrl":1178,"updatedAt":1315},"hatch-pet","create animated pets for Codex","Create, repair, validate, visually QA, and package Codex-compatible animated pets and pet spritesheets from character art, generated images, company or prospect brand cues, or visual references. Use when a user wants a lightweight-worker Codex pet workflow, a non-pixel custom pet style, a prospect or company mascot pet, or a full 8x9 animated pet atlas with transparent unused cells, QA contact sheets, and pet.json packaging. This skill composes the installed $imagegen system skill for visual generation and uses bundled scripts for deterministic spritesheet assembly.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1307,1310,1311,1314],{"name":1308,"slug":1309,"type":15},"Animation","animation",{"name":1210,"slug":1211,"type":15},{"name":1312,"slug":1313,"type":15},"Creative","creative",{"name":1029,"slug":1030,"type":15},"2026-05-02T05:31:48.48485",{"slug":1317,"name":1317,"fn":1318,"description":1319,"org":1320,"tags":1321,"stars":1177,"repoUrl":1178,"updatedAt":1331},"imagegen","generate and edit raster images","Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output should be a bitmap asset rather than repo-native code or vector. Do not use when the task is better handled by editing existing SVG\u002Fvector\u002Fcode-native assets, extending an established icon or logo system, or building the visual directly in HTML\u002FCSS\u002Fcanvas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1322,1323,1324,1327,1330],{"name":1312,"slug":1313,"type":15},{"name":1029,"slug":1030,"type":15},{"name":1325,"slug":1326,"type":15},"Image Generation","image-generation",{"name":1328,"slug":1329,"type":15},"Images","images",{"name":9,"slug":8,"type":15},"2026-05-15T06:23:24.312127",675]