[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71JDBP2JR9AS37BCCHXFS6T":3,"skill-same:01M71JDBP2JR9AS37BCCHXFS6T":100},{"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":29,"publishedAt":50,"linkOnly":51,"markdownContent":52,"markdownBody":53,"frontMatter":54,"refName":55,"commitSha":56,"skillDirectory":5,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":59,"ownerHtmlUrl":60,"ownerBlogUrl":61,"ownerDescription":62,"updatedAt":63,"install":64,"resources":77},"01M71JDBP2JR9AS37BCCHXFS6T","cloudflare-email-service",null,"Send and receive transactional emails with Cloudflare Email Service (Email Sending + Email Routing). Use when building email sending (Workers binding or REST API), email routing, Agents SDK email handling, or integrating email into any app — Workers, Node.js, Python, Go, etc. Also use for email deliverability, SPF\u002FDKIM\u002FDMARC, wrangler email setup, MCP email tools, or when a coding agent needs to send emails. Even for simple requests like \"add email to my Worker\" — this skill has critical config details.","caezium\u002Fskills","caezium","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F113233555?v=4","01M71JB77ZPBAWEK009Y2W8BP7","Henry Zhang","01M71JB792NVXCWSYD27HQ0964",3,"MIT","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fcloudflare-email-service\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000005","邮件与沟通","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49],"cloudflare email service","email","service","cloudflare","spf","transactional","config","node","email tools","email deliverability","api","agents sdk","when","critical","MCP","wrangler","worker","deliverability","send","app","2026-11-10 10:12:30",false,"---\nname: cloudflare-email-service\ndescription: Send and receive transactional emails with Cloudflare Email Service (Email Sending + Email Routing). Use when building email sending (Workers binding or REST API), email routing, Agents SDK email handling, or integrating email into any app — Workers, Node.js, Python, Go, etc. Also use for email deliverability, SPF\u002FDKIM\u002FDMARC, wrangler email setup, MCP email tools, or when a coding agent needs to send emails. Even for simple requests like \"add email to my Worker\" — this skill has critical config details.\n---\n\n# Cloudflare Email Service\n\nYour knowledge of the Cloudflare Email Service, Email Routing or Email Sending may be outdated. **Prefer retrieval over pre-training** for any Cloudflare Email Service task.\n\nCloudflare Email Service lets you send transactional emails and route incoming emails, all within the Cloudflare platform. Your knowledge of this product may be outdated — it launched in 2025 and is evolving rapidly. **Prefer retrieval over pre-training** for any Email Service task.\n\n**If there is any discrepancy between this skill and the sources below, always trust the original source.** The Cloudflare docs, REST API spec, `@cloudflare\u002Fworkers-types`, and Agents SDK repo are the source of truth. This skill is a convenience guide — it may lag behind the latest changes. When in doubt, retrieve from the sources below and use what they say.\n\n## Retrieval Sources\n\n| Source | How to retrieve | Use for |\n|--------|----------------|---------|\n| Cloudflare docs | `cloudflare-docs` search tool or URL `https:\u002F\u002Fdevelopers.cloudflare.com\u002Femail-service\u002F` | API reference, limits, pricing, latest features |\n| REST API spec | `https:\u002F\u002Fdevelopers.cloudflare.com\u002Fapi\u002Fresources\u002Femail_sending` | OpenAPI spec for the Email Sending REST API |\n| Workers types | `https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@cloudflare\u002Fworkers-types` | Type signatures, binding shapes |\n| Agents SDK docs | Fetch `docs\u002Femail.md` from `https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fagents\u002Ftree\u002Fmain\u002Fdocs` | Email handling in Agents SDK |\n\n## FIRST: Check Prerequisites\n\nBefore writing any email code, verify the basics are in place:\n\n1. **Domain onboarded?** Run `npx wrangler email sending list` to see which domains have email sending enabled. If the domain isn't listed, run `npx wrangler email sending enable userdomain.com` or see [cli-and-mcp.md](references\u002Fcli-and-mcp.md) for full setup instructions.\n2. **Binding configured?** Look for `send_email` in `wrangler.jsonc` (for Workers)\n3. **postal-mime installed?** Run `npm ls postal-mime` (only needed for receiving\u002Fparsing emails)\n\n## What Do You Need?\n\nStart here. Find your situation, then follow the link for full details.\n\n| I want to... | Path | Reference |\n|--------------|------|-----------|\n| **Send emails from a Cloudflare Worker** | Workers binding (no API keys needed) | [sending.md](references\u002Fsending.md) |\n| **Send emails from an AI agent built with [Cloudflare Agents SDK](https:\u002F\u002Fdevelopers.cloudflare.com\u002Fagents\u002F)** | `onEmail()` + `replyToEmail()` in Agent class | [sending.md](references\u002Fsending.md) |\n| **Send emails from an external app or agent** (Node.js, Go, Python, etc.) | REST API with Bearer token | [rest-api.md](references\u002Frest-api.md) |\n| **Send emails from a coding agent** (Claude Code, Cursor, Copilot, etc.) | MCP tools, wrangler CLI, or REST API | [cli-and-mcp.md](references\u002Fcli-and-mcp.md) |\n| **Receive and process incoming emails** (Email Routing) | Workers `email()` handler | [routing.md](references\u002Frouting.md) |\n| **Set up Email Sending or Email Routing** | `wrangler email sending enable` \u002F `wrangler email routing enable`, or Dashboard | [cli-and-mcp.md](references\u002Fcli-and-mcp.md) |\n| **Improve deliverability, avoid spam folders** | Authentication, content, compliance | [deliverability.md](references\u002Fdeliverability.md) |\n\n## Quick Start — Workers Binding\n\nAdd the binding to `wrangler.jsonc`, then call `env.EMAIL.send()`. The `from` domain must be onboarded via `npx wrangler email sending enable yourdomain.com`.\n\n```jsonc\n\u002F\u002F wrangler.jsonc\n{ \"send_email\": [{ \"name\": \"EMAIL\" }] }\n```\n\n```typescript\nconst response = await env.EMAIL.send({\n  to: \"user@example.com\",\n  from: { email: \"welcome@yourdomain.com\", name: \"My App\" },\n  subject: \"Welcome!\",\n  html: \"\u003Ch1>Welcome!\u003C\u002Fh1>\",\n  text: \"Welcome!\",\n});\n```\n\nThe binding is recommended for Workers — no API keys needed. If a user specifically requests the REST API from within a Worker (e.g., they already have an API token workflow), that works too — see [rest-api.md](references\u002Frest-api.md).\n\nSee [sending.md](references\u002Fsending.md) for the full API, batch sends, attachments, custom headers, restricted bindings, and Agents SDK integration.\n\n## Quick Start — REST API\n\nFor apps outside Workers, or within Workers if the user explicitly requests it. Key differences from the Workers binding:\n\n- Endpoint: `POST https:\u002F\u002Fapi.cloudflare.com\u002Fclient\u002Fv4\u002Faccounts\u002F{account_id}\u002Femail\u002Fsending\u002Fsend`\n- `from` object uses `address` (not `email`): `{ \"address\": \"...\", \"name\": \"...\" }`\n- `replyTo` is `reply_to` (snake_case)\n- Response returns `{ delivered: [], permanent_bounces: [], queued: [] }` (not `messageId`)\n\nSee [rest-api.md](references\u002Frest-api.md) for curl examples, response format, and error handling.\n\n## Common Mistakes\n\n| Mistake | Why It Happens | Fix |\n|---------|---------------|-----|\n| Forgetting `send_email` binding in wrangler config | Email Service uses a binding, not an API key | Add `\"send_email\": [{ \"name\": \"EMAIL\" }]` to wrangler.jsonc |\n| Sending from an unverified domain | Domain must be onboarded onto Email Sending before first send | Run `wrangler email sending enable yourdomain.com` or onboard in Dashboard |\n| Reading `message.raw` twice in email handler | The raw stream is single-use — second read returns empty | Buffer first: `const raw = await new Response(message.raw).arrayBuffer()` |\n| Missing `text` field (HTML only) | Some email clients only show plain text; also helps spam scores | Always include both `html` and `text` versions |\n| Using email for marketing\u002Fbulk sends | Email Service is for transactional email only | Use a dedicated marketing email platform for newsletters and campaigns |\n| Forwarding to unverified destinations | `message.forward()` only works with verified addresses | Run `wrangler email routing addresses create user@gmail.com` or add in Dashboard |\n| Testing with fake addresses | Bounces from non-existent addresses hurt sender reputation | Use real addresses you control during development |\n| Hardcoding API tokens in source code | Tokens in code get committed and leaked | Use environment variables or Cloudflare secrets |\n| Ignoring the `from` domain requirement | The `from` address must use a domain onboarded to Email Service | Verify the domain first, then send from `anything@that-domain.com` |\n| Using `email` key in REST API `from` object | REST API uses `address` not `email` for `from` object | Use `{ \"address\": \"...\", \"name\": \"...\" }` for REST, `{ \"email\": \"...\", \"name\": \"...\" }` for Workers |\n| Using `replyTo` in REST API | REST API uses snake_case field names | Use `reply_to` for REST API, `replyTo` for Workers binding |\n\n## References\n\nRead the reference that matches your situation. You don't need all of them.\n\n- **[references\u002Fsending.md](references\u002Fsending.md)** — Workers binding API, attachments, Agents SDK email. For Workers or Agents SDK.\n- **[references\u002Frest-api.md](references\u002Frest-api.md)** — REST endpoint, curl examples, error handling. For apps NOT on Workers.\n- **[references\u002Frouting.md](references\u002Frouting.md)** — Inbound `email()` handler, forwarding, replying, parsing. For receiving emails.\n- **[references\u002Fcli-and-mcp.md](references\u002Fcli-and-mcp.md)** — Domain setup, wrangler commands, MCP tools. For first-time setup.\n- **[references\u002Fdeliverability.md](references\u002Fdeliverability.md)** — SPF\u002FDKIM\u002FDMARC, bounces, suppressions, best practices.\n","# Cloudflare Email Service\n\nYour knowledge of the Cloudflare Email Service, Email Routing or Email Sending may be outdated. **Prefer retrieval over pre-training** for any Cloudflare Email Service task.\n\nCloudflare Email Service lets you send transactional emails and route incoming emails, all within the Cloudflare platform. Your knowledge of this product may be outdated — it launched in 2025 and is evolving rapidly. **Prefer retrieval over pre-training** for any Email Service task.\n\n**If there is any discrepancy between this skill and the sources below, always trust the original source.** The Cloudflare docs, REST API spec, `@cloudflare\u002Fworkers-types`, and Agents SDK repo are the source of truth. This skill is a convenience guide — it may lag behind the latest changes. When in doubt, retrieve from the sources below and use what they say.\n\n## Retrieval Sources\n\n| Source | How to retrieve | Use for |\n|--------|----------------|---------|\n| Cloudflare docs | `cloudflare-docs` search tool or URL `https:\u002F\u002Fdevelopers.cloudflare.com\u002Femail-service\u002F` | API reference, limits, pricing, latest features |\n| REST API spec | `https:\u002F\u002Fdevelopers.cloudflare.com\u002Fapi\u002Fresources\u002Femail_sending` | OpenAPI spec for the Email Sending REST API |\n| Workers types | `https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@cloudflare\u002Fworkers-types` | Type signatures, binding shapes |\n| Agents SDK docs | Fetch `docs\u002Femail.md` from `https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fagents\u002Ftree\u002Fmain\u002Fdocs` | Email handling in Agents SDK |\n\n## FIRST: Check Prerequisites\n\nBefore writing any email code, verify the basics are in place:\n\n1. **Domain onboarded?** Run `npx wrangler email sending list` to see which domains have email sending enabled. If the domain isn't listed, run `npx wrangler email sending enable userdomain.com` or see [cli-and-mcp.md](references\u002Fcli-and-mcp.md) for full setup instructions.\n2. **Binding configured?** Look for `send_email` in `wrangler.jsonc` (for Workers)\n3. **postal-mime installed?** Run `npm ls postal-mime` (only needed for receiving\u002Fparsing emails)\n\n## What Do You Need?\n\nStart here. Find your situation, then follow the link for full details.\n\n| I want to... | Path | Reference |\n|--------------|------|-----------|\n| **Send emails from a Cloudflare Worker** | Workers binding (no API keys needed) | [sending.md](references\u002Fsending.md) |\n| **Send emails from an AI agent built with [Cloudflare Agents SDK](https:\u002F\u002Fdevelopers.cloudflare.com\u002Fagents\u002F)** | `onEmail()` + `replyToEmail()` in Agent class | [sending.md](references\u002Fsending.md) |\n| **Send emails from an external app or agent** (Node.js, Go, Python, etc.) | REST API with Bearer token | [rest-api.md](references\u002Frest-api.md) |\n| **Send emails from a coding agent** (Claude Code, Cursor, Copilot, etc.) | MCP tools, wrangler CLI, or REST API | [cli-and-mcp.md](references\u002Fcli-and-mcp.md) |\n| **Receive and process incoming emails** (Email Routing) | Workers `email()` handler | [routing.md](references\u002Frouting.md) |\n| **Set up Email Sending or Email Routing** | `wrangler email sending enable` \u002F `wrangler email routing enable`, or Dashboard | [cli-and-mcp.md](references\u002Fcli-and-mcp.md) |\n| **Improve deliverability, avoid spam folders** | Authentication, content, compliance | [deliverability.md](references\u002Fdeliverability.md) |\n\n## Quick Start — Workers Binding\n\nAdd the binding to `wrangler.jsonc`, then call `env.EMAIL.send()`. The `from` domain must be onboarded via `npx wrangler email sending enable yourdomain.com`.\n\n```jsonc\n\u002F\u002F wrangler.jsonc\n{ \"send_email\": [{ \"name\": \"EMAIL\" }] }\n```\n\n```typescript\nconst response = await env.EMAIL.send({\n  to: \"user@example.com\",\n  from: { email: \"welcome@yourdomain.com\", name: \"My App\" },\n  subject: \"Welcome!\",\n  html: \"\u003Ch1>Welcome!\u003C\u002Fh1>\",\n  text: \"Welcome!\",\n});\n```\n\nThe binding is recommended for Workers — no API keys needed. If a user specifically requests the REST API from within a Worker (e.g., they already have an API token workflow), that works too — see [rest-api.md](references\u002Frest-api.md).\n\nSee [sending.md](references\u002Fsending.md) for the full API, batch sends, attachments, custom headers, restricted bindings, and Agents SDK integration.\n\n## Quick Start — REST API\n\nFor apps outside Workers, or within Workers if the user explicitly requests it. Key differences from the Workers binding:\n\n- Endpoint: `POST https:\u002F\u002Fapi.cloudflare.com\u002Fclient\u002Fv4\u002Faccounts\u002F{account_id}\u002Femail\u002Fsending\u002Fsend`\n- `from` object uses `address` (not `email`): `{ \"address\": \"...\", \"name\": \"...\" }`\n- `replyTo` is `reply_to` (snake_case)\n- Response returns `{ delivered: [], permanent_bounces: [], queued: [] }` (not `messageId`)\n\nSee [rest-api.md](references\u002Frest-api.md) for curl examples, response format, and error handling.\n\n## Common Mistakes\n\n| Mistake | Why It Happens | Fix |\n|---------|---------------|-----|\n| Forgetting `send_email` binding in wrangler config | Email Service uses a binding, not an API key | Add `\"send_email\": [{ \"name\": \"EMAIL\" }]` to wrangler.jsonc |\n| Sending from an unverified domain | Domain must be onboarded onto Email Sending before first send | Run `wrangler email sending enable yourdomain.com` or onboard in Dashboard |\n| Reading `message.raw` twice in email handler | The raw stream is single-use — second read returns empty | Buffer first: `const raw = await new Response(message.raw).arrayBuffer()` |\n| Missing `text` field (HTML only) | Some email clients only show plain text; also helps spam scores | Always include both `html` and `text` versions |\n| Using email for marketing\u002Fbulk sends | Email Service is for transactional email only | Use a dedicated marketing email platform for newsletters and campaigns |\n| Forwarding to unverified destinations | `message.forward()` only works with verified addresses | Run `wrangler email routing addresses create user@gmail.com` or add in Dashboard |\n| Testing with fake addresses | Bounces from non-existent addresses hurt sender reputation | Use real addresses you control during development |\n| Hardcoding API tokens in source code | Tokens in code get committed and leaked | Use environment variables or Cloudflare secrets |\n| Ignoring the `from` domain requirement | The `from` address must use a domain onboarded to Email Service | Verify the domain first, then send from `anything@that-domain.com` |\n| Using `email` key in REST API `from` object | REST API uses `address` not `email` for `from` object | Use `{ \"address\": \"...\", \"name\": \"...\" }` for REST, `{ \"email\": \"...\", \"name\": \"...\" }` for Workers |\n| Using `replyTo` in REST API | REST API uses snake_case field names | Use `reply_to` for REST API, `replyTo` for Workers binding |\n\n## References\n\nRead the reference that matches your situation. You don't need all of them.\n\n- **[references\u002Fsending.md](references\u002Fsending.md)** — Workers binding API, attachments, Agents SDK email. For Workers or Agents SDK.\n- **[references\u002Frest-api.md](references\u002Frest-api.md)** — REST endpoint, curl examples, error handling. For apps NOT on Workers.\n- **[references\u002Frouting.md](references\u002Frouting.md)** — Inbound `email()` handler, forwarding, replying, parsing. For receiving emails.\n- **[references\u002Fcli-and-mcp.md](references\u002Fcli-and-mcp.md)** — Domain setup, wrangler commands, MCP tools. For first-time setup.\n- **[references\u002Fdeliverability.md](references\u002Fdeliverability.md)** — SPF\u002FDKIM\u002FDMARC, bounces, suppressions, best practices.\n",{"name":5,"description":7},"main","6ef866230c1ba3459fd08fc65141dfd37fffd41a",0,"https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills","https:\u002F\u002Fskills.henryzh.dev","https:\u002F\u002Fgithub.com\u002Fcaezium","henryzh.dev","quant, data science, full-stack, robotics.\r\nbuilding cool stuff","2026-08-24 19:21:44",{"source":8,"skillName":5,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add caezium\u002Fskills --skill cloudflare-email-service",{"tool":70,"command":71},"bunx","bunx skills add caezium\u002Fskills --skill cloudflare-email-service",{"tool":73,"command":74},"pnpm","pnpm dlx skills add caezium\u002Fskills --skill cloudflare-email-service","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fcloudflare-email-service\u002FSKILL.md",true,[78,84,88,92,96],{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002Fcli-and-mcp.md","REFERENCE","参考文档",4039,"https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fcloudflare-email-service\u002Freferences\u002Fcli-and-mcp.md",{"path":85,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002Fdeliverability.md",9145,"https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fcloudflare-email-service\u002Freferences\u002Fdeliverability.md",{"path":89,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":90,"sourceHtmlUrl":91},"references\u002Frest-api.md",6014,"https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fcloudflare-email-service\u002Freferences\u002Frest-api.md",{"path":93,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":94,"sourceHtmlUrl":95},"references\u002Frouting.md",7462,"https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fcloudflare-email-service\u002Freferences\u002Frouting.md",{"path":97,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":98,"sourceHtmlUrl":99},"references\u002Fsending.md",9530,"https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fcloudflare-email-service\u002Freferences\u002Fsending.md",[101,122,146,163,184,206],{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":115,"publishedAt":50},"01M71JT4RYCAS18RF6003YYR1D","writing-for-agents","Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwriting-for-agents\u002FSKILL.md",[107,110],{"categoryNo":108,"categoryName":109,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":111,"categoryName":112,"taxonomyType":113,"taxonomyTypeDesc":114},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[116,117,118,119,120,121,42],"writing for agents","for","writing","editing","use","documents",{"skillNo":123,"name":45,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":128,"publishedAt":50},"01M71JT0GES4AZ5ADH8EADNN1Z","Cloudflare Workers CLI for deploying, developing, and managing Workers, KV, R2, D1, Vectorize, Hyperdrive, Workers AI, Containers, Queues, Workflows, Pipelines, and Secrets Store. Load before running wrangler commands to ensure correct syntax and best practices. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwrangler\u002FSKILL.md",[127],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[45,33,129,130,131,132,133,134,135,136,137,138,139,117,140,141,142,143,144,145],"d1","knowledge","workflows","cli","secrets","commands","syntax","cloudflare workers","r2","queues","running","containers","correct","load","workers","best practices","store",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":152,"publishedAt":50},"01M71JSWX4R203M32K9A18AAW8","workers-best-practices","Reviews and authors Cloudflare Workers code against production best practices. Load when writing new Workers, reviewing Worker code, configuring wrangler.jsonc, or checking for common Workers anti-patterns (streaming, floating promises, global state, secrets, bindings, observability). Biases towards retrieval from Cloudflare docs over pre-trained knowledge.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fworkers-best-practices\u002FSKILL.md",[],[153,143,144,154,155,156,117,33,46,130,157,45,118,142,42,158,159,160,161,162],"workers best practices","observability","reviews","promises","new","code","common","streaming","state","anti-patterns",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":169,"publishedAt":50},"01M71JST6P88MXGT2MWDTPJGEG","wizard","Generate an interactive bash wizard that walks a human through steps only they can perform. Use when provisioning infrastructure, setting up credentials or CI secrets, walking an unfamiliar third-party dashboard, or running a one-off migration or cutover. Don't invoke this for steps the agent can perform itself.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwizard\u002FSKILL.md",[],[165,139,170,117,171,172,173,174,120,175,42,176,177,178,179,180,181,182,183,133],"setting","up","ci","provisioning infrastructure","only","invoke","Bash","one","interactive","can","credentials","dashboard","generate","human",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":188,"sourceHtmlUrl":189,"categories":190,"keywords":191,"publishedAt":50},"01M71JSQ95S7BQ61DAPN95X2W4","why","Use for 'why does X work this way', 'why we picked Y', design rationale, regressions, postmortems, or data-backed thresholds. Discovers available evidence sources, searches each relevant category, and returns a cited read on decisions and tradeoffs. Use how for runtime behavior.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwhy\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwhy\u002FSKILL.md",[],[186,192,193,194,195,117,196,197,120,198,199,200,201,202,203,204,205],"sources","thresholds","evidence","relevant","runtime","design","decisions","work","how","behavior","read","data","rationale","returns",{"skillNo":207,"name":208,"nameZh":6,"description":209,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":210,"categories":211,"keywords":213,"publishedAt":50},"01M71JSMHFVSH8HK8GXN6YAX6J","week-prep","Generate a briefing with calendar, tasks, and attention flags. Use for \"week prep\", \"briefing\", or \"what's on this week\".","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fweek-prep\u002FSKILL.md",[212],{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},[214,215,216,217,218,117,219,220,221,44,120,176,222,223,224,182,225,202,226,227],"week prep","prep","deep","attention","get","search","messages","briefing","tasks","with","slack","calendar","flags","grep"]