workers-best-practices
Reviews and authors Cloudflare Workers code against production best practices.
Skill by CraftOS-dev
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/craftos-dev-workers-best-practices
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: cloud, security, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/workers-best-practices
What's inside
- Skill name
workers-best-practices- Description
- 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.
- License
- MIT
- Instructions
- 124 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (3)
- SKILL.md
- review.md · references/
- rules.md · references/
SKILL.md (first lines)
Your knowledge of Cloudflare Workers APIs, types, and configuration may be outdated. **Prefer retrieval over pre-training** for any Workers code task — writing or reviewing.
## Retrieval Sources
Fetch the **latest** versions before writing or reviewing Workers code. Do not rely on baked-in knowledge for API signatures, config fields, or binding shapes.
| Source | How to retrieve | Use for |
|--------|----------------|---------|
| Workers best practices | Fetch `https://developers.cloudflare.com/workers/best-practices/workers-best-practices/` | Canonical rules, patterns, anti-patterns |
| Workers types | See `references/review.md` for retrieval steps | API signatures, handler types, binding types |
| Wrangler config schema | `node_modules/wrangler/config-schema.json` | Config fields, binding shapes, allowed values |
| Cloudflare docs | Search tool or `https://developers.cloudflare.com/workers/` | API reference, compatibility dates/flags |
## FIRST: Fetch Latest References
Before reviewing or writing Workers code, retrieve the current best practices page and relevant type definitions. If the project's `node_modules` has an older version, **prefer the latest published version**.
```bash
# Fetch latest workers types
mkdir -p /tmp/workers-types-latest && \
npm pack @cloudflare/workers-types --pack-destination /tmp/workers-types-latest && \
tar -xzf /tmp/workers-types-latest/cloudflare-workers-types-*.tgz -C /tmp/workers-types-latest
# Types at /tmp/workers-types-latest/package/index.d.ts
```
## Reference Documentation
- `references/rules.md` — all best practice rules with code examples and anti-patterns
- `references/review.md` — type validation, config validation, binding access patterns, review process
## Rules Quick Reference
### Configuration
| Rule | Summary |
|------|---------|
| Compatibility date | Set `compatibility_date` to today on new projects; update periodically on existing ones |
| nodejs_compat | Enable the `nodejs_compat` flag — many libraries depend on Node.js built-ins |
| wrangler types | Run `wrangler types` to generate `Env` — never hand-write binding interfaces |
| Secrets | Use `wrangler secret put`, never hardcode secrets in config or source |
| wrangler.jsonc | Use JSONC config for non-secret settings — newer features are JSON-only |
### Request & Response Handling
| Rule | Summary |
|------|---------|
| Streaming | Stream large/unknown payloads — never `await response.text()` on unbounded data |
| waitUntil | Use `ctx.waitUntil()` for post-response work; do not destructure `ctx` |
### Architecture
| Rule | Summary |
|------|---------|
| Bindings over REST | Use in-process bindings (KV, R2, D1, Queues) — not the Cloudflare REST API |
| Queues & Workflows | Move async/background work off the critical path |
| Service bindings | Use service bindings for Worker-to-Worker calls — not public HTTP |
| Hyperdrive | Always use Hyperdrive for external PostgreSQL/MySQL connections |
### Observability
| Rule | Summary |
|------|---------|
| Logs & Traces | Enable `observability` in config with `head_sampling_rate`; use structured JSON logging |
### Code Patterns
| Rule | Summary |
|------|---------|
| No global request state | Never store request-scoped data in module-level variables |
| Floating promises | Every Promise must be `await`ed, `return`ed, `void`ed, or passed to `ctx.waitUntil()` |
### Security
| Rule | Summary |
|------|---------|
| Web Crypto | Use `crypto.randomUUID()` / `crypto.getRandomValues()` — never `Math.random()` for security |
| No passThroughOnException | Use explicit try/catch with structured error responses |
## Anti-Patterns to Flag
| Anti-pattern | Why it matters |
|-------------|----------------|
| `await response.text()` on unbounded data | Memory exhaustion — 128 MB limit |
| Hardcoded secrets in source or config | Credential leak via version control |
| `Math.random()` for tokens/IDs | Predictable, not cryptographically secure |
| Bare `fetch()` without `await` or `waitUntil` | Floating promise — dropped result, swallowed error |
| Module-level mutable variables for request state | Cross-request data leaks, stale state, I/O errors |
| Cloudflare REST API from inside a Worker | Unnecessary network hop, auth overhead, added latency |
| `ctx.passThroughOnException()` as error handling | Hides bugs, makes debugging impossible |
| Hand-written `Env` interface | Drifts from actual wrangler config bindings |
| Direct string comparison for secret values | Timing side-channel — use `crypto.subtle.timingSafeEqual` |
| Destructuring `ctx` (`const { waitUntil } = ctx`) | Loses `this` binding — throws "Illegal invocation" at runtime |
| `any` on `Env` or handler params | Defeats type safety for all binding access |
| `as unknown as T` double-cast | Hides real type incompatibilities — fix the design |
| `implements` on platform base classes (instead of `extends`) | Legacy — loses `this.ctx`, `this.env`. Applies to DurableObject, WorkerEntrypoint, Workflow |
| `env.X` inside platform base class | Should be `this.env.X` in classes extending DurableObject, WorkerEntrypoint, etc. |
## Review Workflow
1. **Retrieve** — fetch latest best practices page, workers types, and wrangler schema
2. **Read full files** — not just diffs; context matters for binding access patterns
3. **Check types** — binding access, handler signatures, no `any`, no unsafe casts (see `references/review.md`)
4. **Check config** — compatibility_date, nodejs_compat, observability, secrets, binding-code consistency
5. **Check patterns** — streaming, floating promises, global state, serialization boundaries
6. **Check security** — crypto usage, secret handling, timing-safe comparisons, error handling
7. **Validate with tools** — `npx tsc --noEmit`, lint for `no-floating-promises`
8. **Reference rules** — see `references/rules.md` for each rule's correct pattern
## Scope
This skill covers Workers-specific best practices and code review. For related topics:
- **Durable Objects**: load the `durable-objects` skill
- **Workflows**: see [Rules of Workflows](https://developers.cloudflare.com/workflows/build/rules-of-workflows/)
- **Wrangler CLI commands**: load the `wrangler` skill
## Principles
- **Be certain.** Retrieve before flagging. If unsure about an API, config field, or pattern, fetch the docs first.From CraftOS-dev/CraftBot, MIT.
More from CraftOS-dev/CraftBot
- 0.809score
fal-upscale
fal-ai
Upscale and enhance image resolution using AI.
SkillAFreshness: A★ 400Claude Code +9 - 0.806score
vitess
planetscale
Vitess best practices, query optimization, and connection troubleshooting for PlanetScale Vitess databases.
SkillAFreshness: A★ 400Claude Code +9 - 0.806score
postgres
planetscale
PostgreSQL best practices, query optimization, connection troubleshooting, and performance improvement.
SkillAFreshness: A★ 400Claude Code +9 - 0.752score
gmail
maton
Gmail API integration with managed OAuth.
SkillAFreshness: A★ 400Claude Code +9 - 0.752score
google-sheets
maton
Google Sheets API integration with managed OAuth.
SkillAFreshness: A★ 400Claude Code +9 - 0.752score
google-meet
maton
Google Meet API integration with managed OAuth.
SkillAFreshness: A★ 400Claude Code +9 - 0.752score
xero
maton
Xero API integration with managed OAuth.
SkillAFreshness: A★ 400Claude Code +9 - 0.752score
typeform
maton
Typeform API integration with managed OAuth.
SkillAFreshness: A★ 400Claude Code +9 - 0.752score
google-play
maton
Google Play Developer API (Android Publisher) integration with managed OAuth.
SkillAFreshness: A★ 400Claude Code +9 - 0.752score
outlook-api
maton
Microsoft Outlook API integration with managed OAuth.
SkillAFreshness: A★ 400Claude Code +9 - 0.748score
salesforce
maton
Salesforce CRM API integration with managed OAuth.
SkillAFreshness: A★ 400Claude Code +9 - 0.742score
google-drive
maton
Google Drive API integration with managed OAuth.
SkillAFreshness: A★ 400Claude Code +9
Signals
- Stars
- 400
- Forks
- 49
- Open issues
- 12
- Last commit (this folder)
- May 28, 2026 (5 months ago)
- Last release
- Oct 23, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/CraftOS-dev/CraftBot
- Website
- craftbot.live/
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
- 0.339score
workers-best-practices
gtko
Reviews and authors Cloudflare Workers code against production best practices.
SkillAFreshness: AClaude Code +9 - 0.335score
workers-best-practices
mpazaryna
Reviews and authors Cloudflare Workers code against production best practices.
SkillBFreshness: B★ 2Claude Code +9 - 0.331score
workers-best-practices
altrwork
Reviews and authors Cloudflare Workers code against production best practices.
SkillBFreshness: B★ 1Claude Code +9 - 0.318score
workers-best-practices
Vidoxlabs
Reviews and authors Cloudflare Workers code against production best practices.
SkillBFreshness: BClaude Code +9 - 0.311score
workers-best-practices
yacosta738
Reviews and authors Cloudflare Workers code against production best practices.
SkillCFreshness: C★ 4Claude Code +9 - 0.272score
workers-best-practices
sediman-agent
Reviews and authors Cloudflare Workers code against production best practices.
SkillCFreshness: C★ 394Claude Code +9 - 0.263score
workers-best-practices
SrulyRosenblat
Reviews and authors Cloudflare Workers code against production best practices.
SkillDFreshness: D★ 2Claude Code +9
More from CraftOS-dev
- 0.679score
mysql
CraftOS-dev
Plan and review MySQL/InnoDB schema, indexing, query tuning, transactions, and operations.
SkillAFreshness: A★ 400Claude Code +9 - 0.679score
jira
CraftOS-dev
Use when the user mentions Jira issues (e.g., "PROJ-123"), asks about tickets, wants to create/view/update issues, check sprint status, or manage their Jira…
SkillAFreshness: A★ 400Claude Code +9 - 0.679score
codeql
CraftOS-dev
Scans a codebase for security vulnerabilities using CodeQL's interprocedural data flow and taint tracking analysis.
SkillAFreshness: A★ 400Claude Code - 0.679score
airweave
CraftOS-dev
Context retrieval layer for AI agents across users' applications.
SkillAFreshness: A★ 400Claude Code +9 - 0.679score
google-sheet
CraftOS-dev
Read, write, append, and manage Google Sheets via the Google Sheets API (Node.js SDK).
SkillAFreshness: A★ 400Claude Code +9 - 0.679score
ontology
CraftOS-dev
Typed knowledge graph for structured agent memory and composable skills.
SkillAFreshness: A★ 400Claude Code +9
Cite this page
workers-best-practices skill. Agent Mart. https://agentmart.dev/skills/craftos-dev-workers-best-practices (last updated 2026-10-24)