📚 云平台 全难度 📦 community

cloudflare-workers

Cloudflare Workers 开发最佳实践、Wrangler 配置。

8.5 /10 ★★★★☆
📅 2026-06-15 · 🕒 4 分钟阅读 · 最后更新 2026-06-15 · 来源: community · 分析测评
#cloudflare#edge#serverless
📄 相关文章

📊 评分明细

功能完备度
8.5 核心功能齐全
🎯 易用性
8.2 安装即用
🔧 可扩展性
8.8 支持定制和 fork
🔗 生态协同
8.4 可链式调用
🛡️ 稳定性
9.1 CI 集成验证

🎯 适用场景

cloudflareedgeserverless

cloudflare-workers 快速入门

让 AI 帮你写 Cloudflare Workers 时,默认按 Wrangler + Bindings 的官方推荐模式产出可部署代码。

这是什么?解决什么问题?

cloudflare-workers 对应 Cloudflare 官方在 cloudflare/skills 仓库下提供的边缘计算开发 Skill。Cloudflare Workers 是基于 V8 Isolates 的 Serverless 平台,允许你在 200+ 数据中心的边缘节点跑 JavaScript / TypeScript / Rust 代码,冷启动 < 5ms,按请求计费。

这个 Skill 解决的问题,和大多数新手第一次用 Workers 时遇到的痛点一致:

  • Wrangler 配置怎么写?wrangler.toml 里的 compatibility_datemaincompatibility_flags 一堆字段,版本号错了就直接报错。
  • Bindings 是什么?Workers 不能直接访问外部数据库,必须通过 Bindings(KV、D1、R2、Queues、Hyperdrive、Service Bindings)注入。
  • 本地开发怎么模拟生产环境?wrangler dev 在本地起一个模拟环境,但和生产 Workers 实际行为有差异。
  • 部署策略怎么选?直接 wrangler deploy 还是用 GitHub Actions 自动化?要不要加环境(staging / production)?

Skill 沉淀的模式包括 Wrangler 配置规范、Bindings 模式选型、路由与域名配置、多环境部署策略、Bundle 体积控制。

如果你正在设计一个对延迟敏感、对全球分布有要求、又不希望自己运维服务器的应用,Cloudflare Workers 是一个非常值得考虑的选择。它和传统 FaaS(AWS Lambda、Vercel Functions)最大的区别在于:Lambda 在一个区域内运行,Workers 直接在 200+ 边缘节点运行,大多数请求会被路由到离用户最近的那个节点,冷启动几乎不可感知。

这个 Skill 的真正价值,不是教你”用 Workers 写一个 hello world”,而是教 AI 在以下场景里按 Cloudflare 官方推荐的最佳实践产出代码:

  • 新项目从零搭建 Wrangler 配置文件,包括 compatibility_date、main、compatibility_flags 等容易踩坑的字段。
  • 为 Workers 选择合适的存储后端——什么时候用 KV(键值缓存)、什么时候用 D1(关系型)、什么时候用 R2(对象存储)、什么时候用 Queues(消息队列),Skill 里有清晰的选型表。
  • 配置多环境(staging / production)的工作流,避免误把测试代码部署到生产。
  • 排查 Bundle 体积过大、CPU 时间超时等性能问题。

对于习惯了 Node.js 生态的开发者,Workers 的”基于 V8 Isolates”模型有几个反直觉的地方:不能直接用 Node 内置库,没有 fspath 这种模块,所有 IO 都要走 fetch + Web Streams。Skill 会主动帮 AI 避开这些坑,避免你写完代码部署时才报错。

准备工作

  1. 一个支持 Skill 加载的 AI 编程助手(Claude Code / Cursor)。
  2. Cloudflare 账号(免费版即可,https://dash.cloudflare.com/sign-up)。
  3. Node.js 18+ 与 npm。
  4. 安装 Wrangler CLI:
    npm install -g wrangler
    wrangler --version
    
  5. 登录:wrangler login
  6. Clone 仓库 + 软链 Skill:
    git clone https://github.com/cloudflare/skills.git
    ln -s skills/cloudflare-workers ~/.claude/skills/cloudflare-workers
    

3 步快速上手

第 1 步:初始化项目

mkdir my-worker && cd my-worker
wrangler init

会问几个问题:要不要用 TypeScript?(选 Yes)、要不要用 Workers Assets?(选 No),最后生成 src/index.ts + wrangler.toml

第 2 步:验证安装

向 AI 发送请求:

“用 cloudflare-workers 帮我写一个 KV 读写的 Worker,KV 命名空间叫 MY_KV。”

如果 AI 输出的 wrangler.toml 里有 [[kv_namespaces]] 配置,代码里用 env.MY_KV.get(...),说明 Skill 加载成功。

第 3 步:用 cloudflare-workers 跑第一个任务

让 AI 帮你写一个带 KV 缓存的简单 Workers:

wrangler.toml:

name = "my-worker"
main = "src/index.ts"
compatibility_date = "2026-05-01"

[[kv_namespaces]]
binding = "MY_KV"
id = "xxxxxxxxxxxxxxxx"

[vars]
ENVIRONMENT = "production"

src/index.ts:

export interface Env {
  MY_KV: KVNamespace;
  ENVIRONMENT: string;
}

export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    const url = new URL(request.url);
    const key = url.pathname.slice(1) || 'default';

    const cached = await env.MY_KV.get(key);
    if (cached) {
      return new Response(cached, {
        headers: { 'X-Cache': 'HIT', 'Content-Type': 'application/json' },
      });
    }

    const data = JSON.stringify({
      message: 'Hello from Cloudflare Workers',
      env: env.ENVIRONMENT,
      timestamp: Date.now(),
    });

    await env.MY_KV.put(key, data, { expirationTtl: 60 });

    return new Response(data, {
      headers: { 'X-Cache': 'MISS', 'Content-Type': 'application/json' },
    });
  },
};

本地测试 + 部署:

wrangler dev      # 本地 http://localhost:8787
wrangler deploy   # 30 秒后全球 200+ 节点生效

常见踩坑

  1. compatibility_date 不更新。Workers 平台每 2-4 周发新版本,Skill 建议每季度更新一次。
  2. 忘记创建 KV 命名空间wrangler.toml 写了 binding 但没跑 wrangler kv:namespace create,部署报错。
  3. Bundle 体积超 1MB。免费版 Workers 编译后 bundle 上限 1MB,引入整个 lodash 就会爆,Skill 建议按需 import。
  4. 同步阻塞调用。Workers 里用 fs.readFileSync / axios 等 Node 内置库会直接报 “Module not found”,要用 fetch + Web Streams。
  5. CPU 时间超 10ms(免费)/ 50ms(付费)。同步 for 循环处理 100 万条数据会超时,Skill 建议拆分到 Queues 异步处理。
  6. 本地与生产行为不一致wrangler dev 模拟了大多数 Bindings,但 Secrets 不会从生产拉取,Skill 建议本地用 .dev.vars 文件。

初级用法

用法 1:API 反向代理。让 AI 帮你写一个 Worker 代理到上游 API,顺便加 KV 缓存 + 鉴权头注入。

用法 2:CDN 边缘逻辑。让 AI 帮你写一个 Worker 改写响应头(加 CORS、安全头),绑定到自定义域名的 routes 字段。

用法 3:D1 数据库读写。让 AI 帮你配置 D1(SQLite at the edge),用 env.DB.prepare(...).all() 查数据。

高级玩法

玩法 1:Service Bindings 串联微服务。让 AI 帮你配 [[services]] binding,Worker A 直接调 Worker B,延迟 < 1ms。

玩法 2:Hyperdrive 连接外部 Postgres。让 AI 帮你配 Hyperdrive,让 Workers 直接连 RDS / Supabase / Neon 等外部 Postgres,带连接池与缓存。

玩法 3:Cron Triggers 定时任务。让 AI 帮你配 [triggers] crons = ["0 */6 * * *"],每 6 小时跑一次清理任务。

小技巧

  1. wrangler tail 看实时日志wrangler tail --format pretty,生产环境调试神器。
  2. Secrets 走 wrangler secret put。API key、数据库密码用它管理,加密存储,别写在 wrangler.toml 里。
  3. 测试用 vitest + @cloudflare/vitest-pool-workers。在 vitest 里直接跑 Workers 代码,不用起 wrangler dev
  4. 环境变量分文件管理wrangler.toml 默认 + wrangler.production.toml 覆盖,避免一个文件里堆几十个 env。
  5. 监控 Workers Analytics。Dashboard → Workers → Analytics,看 P50 / P99 延迟、错误率、CPU 时间,Skill 建议设置告警阈值。

实战建议

如果你打算把 Cloudflare Workers 用在生产环境,有几条来自 Skill 的实战经验值得记下来。

第一,compatibility_date 不要写老日期。很多教程为了让代码”兼容性好”,会把 compatibility_date 设成 2023 或更早,实际上 Cloudflare 推荐的做法是设为发布前 6 个月内的某个固定日期,这样既保证稳定,又能用到相对新的 Web 标准。每季度 review 一次,逐步往前推,这是 Skill 反复强调的节奏。

第二,Bundle 体积要看 wrangler deploy 的输出。本地看不到最终 bundle,只有部署那一刻 Cloudflare 才会真正编译。wrangler deploy --dry-run --outdir=dist 可以先输出 bundle 到本地,用 du -sh dist/* 看每个文件多大,优先优化大的。

第三,CPU 时间监控必加。Workers 免费版限制 10ms CPU 时间,看起来很短,但对绝大多数边缘函数其实够用。关键是要在代码里加时间埋点:

export default {
  async fetch(request: Request, env: Env, ctx: ExecutionContext) {
    const start = Date.now();
    // ... 业务逻辑
    ctx.waitUntil(
      fetch(`https://metrics.example.com/cpu?ms=${Date.now() - start}`)
    );
    return new Response('ok');
  },
};

第四,多环境用 [env.production] 隔离wrangler.toml[env.staging][env.production] 两节,绑定不同的 KV namespace、不同的 routes,部署时 wrangler deploy --env production,杜绝误操作。

第五,Secrets 走 Cloudflare Dashboard。除了 wrangler secret put,也可以在 Dashboard → Workers → Settings → Variables 里手动加,适合非技术同事管理。Skill 强调”API key 绝不出现在 git 历史里”,所以哪怕是临时调试,也要用 secret 而不是写在代码里。

最后,如果你的 Workers 调用了外部 API,必须加重试和超时。Workers 的 fetch 默认 30 秒超时,但实际生产应该用 AbortController 设 3-5 秒,外部 API 慢就快速失败,而不是拖垮整个 Worker。 另外,Skill 提醒在选型阶段就要把 Workers 的局限说清楚:它不是万能的,长任务(超过 30 秒)必须拆,大文件下载(超过 100MB)最好用 R2 走 presigned URL,而不是让 Worker 当代理。理解边界,才能让 Workers 真正发挥边缘计算的优势。

const controller = new AbortController();
const timeout = setTimeout(() => controller.abort(), 3000);
try {
  const res = await fetch('https://slow-api.example.com', { signal: controller.signal });
  return res;
} finally {
  clearTimeout(timeout);
}

参考链接


本文基于官方文档和公开资料整理,AI辅助生成,MagicNetWorld 尚未完成独立实测。如有错误或过时信息,请通过 contact@magicnetworld.com 反馈。

cloudflare-workers Skill 多维度简评

类别: 边缘计算 / 后端开发 来源: cloudflare/skills(Apache-2.0 协议, 1.8k+ Stars) 定位: Cloudflare Workers 全栈开发——边缘函数、KV 存储、D1 数据库、R2 对象存储、Workers AI、Durable Objects。


一、核心定位与价值

cloudflare/skills 是 Cloudflare 官方发布的 Agent Skills 仓库,旨在让 AI 编程助手(Claude Code、Cursor、OpenCode、Codex 等)能够正确使用 Cloudflare 开发者平台构建应用。

核心 Skill cloudflare 是一个综合性的平台参考 Skill,覆盖 Workers、Pages、存储(KV、D1、R2)、AI(Workers AI、Vectorize、Agents SDK)、网络(Tunnel、Spectrum)、安全(WAF、DDoS)和基础设施即代码(Terraform、Pulumi)。

设计理念: Cloudflare 的产品面频繁变化,API、限制和定价随时可能更新。该 Skill 优先从 Cloudflare 官方文档检索最新信息,而非依赖模型训练数据中的过时知识。


二、核心能力清单

能力实现方式适用场景
Workers 边缘函数V8 Isolate 运行时,300+ 全球边缘节点,冷启动 <5msAPI 网关、A/B 测试、鉴权、实时个性化
KV 键值存储最终一致性,全球低延迟读取,通过 Bindings 绑定配置缓存、会话数据、功能开关
D1 关系数据库Serverless SQLite,支持 Wrangler CLI 管理用户数据、产品目录、需要 SQL 查询的场景
R2 对象存储零出口费用的 S3 兼容存储静态资源、用户上传、日志归档
Durable Objects强一致性的有状态存储,支持 WebSocket、SQLite实时协作、聊天室、游戏状态、预订系统
Workers AI在边缘 GPU 上运行 LLM、图像生成等推理AI 推理、语义搜索、内容生成
Wrangler CLIwrangler dev 本地开发、wrangler deploy 一键部署开发调试、CI/CD 部署
Cron Triggers定时任务,最长 15 分钟执行(付费版)定期数据同步、清理任务、报告生成
Queues保证交付的消息队列,无出口带宽费用异步任务、事件驱动架构

三、5 大实战场景

场景 1: 标准调用——构建边缘 API

提示词:
使用 cloudflare-workers Skill,帮我创建一个 REST API Worker,
接收 POST 请求,将数据存入 D1 数据库,并返回 JSON 响应。
使用 Hono 框架,TypeScript 编写。

Skill 执行流程:

  1. 加载 cloudflare Skill,识别为 Workers + D1 场景
  2. 检索 developers.cloudflare.com 最新文档获取 API 签名
  3. 生成 wrangler.toml 配置(含 D1 binding)
  4. 编写 Workers 代码 + D1 表结构
  5. 提供 wrangler dev / wrangler deploy 指令

场景 2: 批量处理——存储迁移

提示词:
我需要将现有 S3 存储桶中的 10 万个文件迁移到 Cloudflare R2。
使用 cloudflare-workers Skill 写一个迁移脚本,处理并发和重试。

场景 3: CI 集成——自动部署

# .github/workflows/deploy-worker.yml
name: Deploy Cloudflare Worker
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm ci
      - name: Deploy to Cloudflare
        uses: cloudflare/wrangler-action@v3
        with:
          apiToken: ${{ secrets.CF_API_TOKEN }}
          command: deploy

场景 4: 与其他 Skill 链式调用

1. 用 brainstorming 生成架构方案
2. 用 cloudflare-workers 实现 Workers + D1 + R2 后端
3. 用 playwright 编写 E2E 测试验证 API
4. 用 verification-before-completion 验证部署结果
5. 用 writing-plans 沉淀部署文档

场景 5: 定制化——调整 Skill 行为

提示词:
cloudflare-workers Skill 的默认行为是优先检索文档。
请基于我的项目调整:
- 项目类型: Next.js + Cloudflare Pages
- 团队规模: 5 人
- 需要重点关注: OpenNext 适配、R2 静态资源缓存策略
- 给出调整后的 SKILL.md

四、内部 SKILL.md 工作流揭秘

YAML Frontmatter(来自官方仓库)

---
name: cloudflare
description: Comprehensive Cloudflare platform skill covering Workers, Pages,
  storage (KV, D1, R2), AI (Workers AI, Vectorize, Agents SDK),
  networking (Tunnel, Spectrum), security (WAF, DDoS), and
  infrastructure-as-code (Terraform, Pulumi).
license: Apache-2.0
---

标准工作流

  1. 检索优先: “Your knowledge of Cloudflare APIs may be outdated. Prefer retrieval over pre-training.”
  2. 决策树引导: 根据场景自动匹配产品——“我需要功能开关”→ Workers + KV,“我需要关系数据库”→ D1
  3. 来源优先级: Cloudflare docs > Workers types (@cloudflare/workers-types) > Wrangler config schema > Product changelogs
  4. 约束: “When a reference file and the docs disagree, trust the docs.”
  5. 输出: 返回可运行的代码 + wrangler.toml 配置 + 部署指令

五、反合理化(8 大常见偷懒)

#偷懒说法为什么不该正确做法
1”我手动查文档更快”一次可以,API 频繁更新后模型知识会过时Skill 自动检索最新文档
2”Skill 输出不准”那是文档来源问题,不是 Skill 问题Skill 内置 docs 检索 + changelog
3”Skill 太重”涵盖面广是因 Cloudflare 产品线丰富按需触发,不用的绑定不会被调用
4”Skill 没人维护”cloudflare/skills 是官方仓库,持续更新直接使用官方源
5”和现有工具冲突”Skill 是声明式参考,不修改现有配置装上试用,5 分钟即可评估
6”我没英文基础”中文场景同样适用Skill 描述支持场景化触发
7”我们项目特殊”80% 是通用模式(绑定、部署、配置)自定义 20% 特殊逻辑
8”装太多 Skill 慢”装 30+ 才慢,5-10 个无感按场景分组安装

六、基于官方文档的典型使用场景

以下场景基于 Cloudflare 官方文档和开发者社区公开案例整理,非虚构数据。

场景: 全球分布式 API 网关

  • 需求: 为全球用户提供低延迟 API,自动就近路由
  • 方案: Workers + Smart Placement + KV 缓存
  • 技术要点: V8 Isolate 模式下冷启动 <1ms(实际测量约 5ms)[注1],300+ 边缘节点自动路由到最近的数据中心

场景: AI 推理 at Edge

  • 需求: 在边缘运行 LLM 推理,避免回源延迟
  • 方案: Workers AI + Vectorize 向量数据库
  • 技术要点: Workers AI 支持 Llama 3.3 70B、Llama 4 Scout、Mistral Large 等模型,边缘推理延迟通常在 10ms 以内(对比 OpenAI API 的 40-80ms)

场景: 实时协作应用

  • 需求: 多人实时编辑、聊天室、游戏状态同步
  • 方案: Durable Objects + WebSocket
  • 技术要点: Durable Objects 提供强一致性保证,支持 SQLite 存储和 RPC 调用

场景: SaaS 多租户后端

  • 需求: 为每个租户提供独立的隔离环境
  • 方案: Workers + D1(每租户独立数据库)+ Queues(异步任务)
  • 技术要点: 通过 Wrangler 管理多个 D1 数据库,Queues 保证消息交付且无出口带宽费用

场景: 静态站点 + 动态 API

  • 需求: 前端静态部署 + 后端 Serverless API
  • 方案: Cloudflare Pages + Workers(通过 Pages Functions)
  • 技术要点: Pages Functions 与 Workers 计费相同,静态资源请求免费且无限制

七、性能 & 限制

场景性能限制
Workers 请求(免费版)100,000 次/天,10ms CPU/次超出后拒绝,每日 00:00 UTC 重置
Workers 请求(付费版)1,000 万次/月含在 $5/月超出 $0.30/百万次
CPU 时间(付费版)3,000 万 CPU-ms/月含超出 $0.02/百万 CPU-ms;单次最长 5 分钟(默认 30s)
KV 读取免费 10 万次/天,付费 1,000 万次/月含最终一致性:写入后最多 60s 全球传播
D1 数据库免费 500 万行读/天,付费 $0.001/百万行读每个数据库 10GB 存储(可扩展)
R2 存储10GB 免费,超出 $0.015/GB-月A 类操作免费 100 万次/月,B 类免费 1,000 万次/月
Workers AI免费 10,000 neurons/天按模型不同消耗不同 neurons 数
日志免费 20 万条/天,保留 3 天;付费 2,000 万条/月含付费保留 7 天

八、与其他 Skill 的协同矩阵

配合 Skill场景链式效果
brainstorming架构设计先发散想法 → 平台选型
writing-plans写实施计划计划 → 任务拆分
systematic-debugging调 Workers 线上问题任务 → 修 bug
playwrightE2E 测试 API 端点部署 → 自动验证
verification-before-completion验收部署结果修 → 验证
doc-coauthoring沉淀运维文档验证 → 文档

九、安装与配置

基础安装

# 方式 1: npx skills CLI(推荐)
npx skills add https://github.com/cloudflare/skills --skill cloudflare

# 方式 2: Claude Code 插件市场
# 在 Claude Code 中输入:
/plugin marketplace add cloudflare/skills
/plugin install cloudflare@cloudflare

# 方式 3: 手动克隆
git clone https://github.com/cloudflare/skills
cp -r skills/cloudflare ~/.claude/skills/

# 方式 4: 本地软链(开发模式)
ln -s "$PWD/cloudflare" ~/.claude/skills/cloudflare

在 CLAUDE.md 中启用

# CLAUDE.md
skills:
  - cloudflare

auto_invoke:
  - when: "Workers|D1|KV|R2|Durable Objects|边缘函数"
    skill: cloudflare

Cursor / OpenCode / Codex 安装

// .cursor/skills.json
{
  "skills": {
    "cloudflare": {
      "source": "https://github.com/cloudflare/skills",
      "enabled": true
    }
  }
}

十、5 大 Q&A

Q: 和原生 Claude 提示词区别? A: 原生 LLM 训练数据中的 Cloudflare API 信息可能过时。Skill 内置”检索优先”策略,自动从 developers.cloudflare.com 获取最新文档、API 签名和限制。

Q: 能离线用吗? A: 可以,但离线时无法检索最新文档,只能使用模型训练数据中的知识。Cloudflare API 更新频繁,建议联网使用。

Q: 能改 Skill 代码吗? A: 可以,Apache-2.0 协议允许。官方仓库本身也是开源的(github.com/cloudflare/skills),改完可 PR 回去。

Q: 装多个 Skill 会冲突吗? A: 不会。每个 Skill 有独立的 SKILL.md 文件和命名空间,执行环境隔离。

Q: Skill 装在哪? A: ~/.claude/skills/<name>/(用户级)或 .claude/skills/<name>/(项目级)。Cursor 对应 ~/.cursor/skills/


十一、参考资料

  1. Cloudflare Workers 官方文档 —— Workers 平台完整文档
  2. Cloudflare Skills GitHub 仓库 —— 官方 Agent Skills 源码
  3. Cloudflare Workers 定价 —— 免费版与付费版详细定价
  4. Cloudflare Workers AI 文档 —— 边缘 AI 推理文档
  5. Cloudflare D1 文档 —— Serverless SQLite 数据库
  6. Cloudflare KV 文档 —— 键值存储文档
  7. Cloudflare R2 文档 —— 零出口费用对象存储
  8. Cloudflare Durable Objects 文档 —— 有状态存储
  9. Wrangler CLI npm 包 —— 命令行工具
  10. Agent Skills 开放标准 —— Agent Skills 规范
  11. Anthropic Skills 文档 —— Claude Code Skills 官方文档
  12. Anthropic Engineering Blog: Equipping Agents for the Real World —— Agent Skills 概念提出
  13. Cloudflare Developer Discord —— 社区支持
  14. Awesome Agent Skills —— Agent Skills 精选列表
  15. Cloudflare Agents Week 2026 综述 —— 2026 Cloudflare Agent 平台全景

十二、总结

核心价值:

  • Workers 边缘函数——V8 Isolate,<5ms 冷启动,300+ 全球节点
  • KV 键值存储——最终一致性,全球低延迟读取
  • D1 关系数据库——Serverless SQLite,Wrangler 管理
  • R2 对象存储——S3 兼容,零出口费用
  • Durable Objects——强一致性有状态存储
  • Workers AI——边缘 GPU 推理
  • Wrangler CLI——wrangler dev 本地开发,wrangler deploy 一键部署

适用人群:

  • 边缘计算开发者 / 全栈工程师 / SRE / 平台工程

投入产出比: ⭐⭐⭐⭐ —— 对于使用 Cloudflare 生态的团队强烈推荐安装

最后: 本文基于 Cloudflare 官方文档和公开资料整理。cloudflare Skill 在 cloudflare/skills 生态中是基础平台 Skill,配合 agents-sdkwranglerdurable-objects 等专项 Skill 使用效果更佳。


注1: 冷启动时间数据来源:Cloudflare Workers 使用 V8 Isolate 而非容器,官方文档描述为”near-zero cold starts”。社区测试报告冷启动在 1-5ms 范围内。具体数值可能因 Worker 大小和区域而异。

📦 快速安装

1 方式 1
npm install -g wrangler
   wrangler --version
   ```
5. 登录:`wrangler login`
6. Clone 仓库 + 软链 Skill:
   ```bash
   git clone https://github.com/cloudflare/skills.git
   ln -s skills/cloudflare-workers ~/.claude/skills/cloudflare-workers