Observability Triage
every-app/open-seo
Triage OpenSEO production errors in Cloudflare Workers Observability — verified query recipes, counting gotchas, and a known-noise filter list applied automatically.
Reviews and authors Cloudflare Workers code against production best practices.
$ npx skills add hodgef/apiker --skill workers-best-practices -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hodgef/apiker workers-best-practices --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/hodgef/apiker.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/workers-best-practices .claude/skills/workers-best-practices && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "workers-best-practices" agent skill from https://github.com/hodgef/apiker/tree/master/.agents/skills/workers-best-practices into .claude/skills/workers-best-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "workers-best-practices", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/hodgef/apiker/tree/master/.agents/skills/workers-best-practicesType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add hodgef/apiker --skill workers-best-practices -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hodgef/apiker workers-best-practices --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hodgef/apiker.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/workers-best-practices .agents/skills/workers-best-practices && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "workers-best-practices" agent skill from https://github.com/hodgef/apiker/tree/master/.agents/skills/workers-best-practices into .agents/skills/workers-best-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "workers-best-practices", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hodgef/apiker --skill workers-best-practices -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hodgef/apiker workers-best-practices --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hodgef/apiker.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/workers-best-practices .cursor/skills/workers-best-practices && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "workers-best-practices" agent skill from https://github.com/hodgef/apiker/tree/master/.agents/skills/workers-best-practices into .cursor/skills/workers-best-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "workers-best-practices", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/hodgef/apiker.git --path .agents/skills/workers-best-practices--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add hodgef/apiker --skill workers-best-practices -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hodgef/apiker workers-best-practices --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hodgef/apiker.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/workers-best-practices .gemini/skills/workers-best-practices && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "workers-best-practices" agent skill from https://github.com/hodgef/apiker/tree/master/.agents/skills/workers-best-practices into .gemini/skills/workers-best-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "workers-best-practices", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install hodgef/apiker workers-best-practicesInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add hodgef/apiker --skill workers-best-practices -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hodgef/apiker.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/workers-best-practices .github/skills/workers-best-practices && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "workers-best-practices" agent skill from https://github.com/hodgef/apiker/tree/master/.agents/skills/workers-best-practices into .github/skills/workers-best-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "workers-best-practices", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hodgef/apiker --skill workers-best-practices -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hodgef/apiker workers-best-practices --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hodgef/apiker.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/workers-best-practices .opencode/skills/workers-best-practices && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "workers-best-practices" agent skill from https://github.com/hodgef/apiker/tree/master/.agents/skills/workers-best-practices into .opencode/skills/workers-best-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "workers-best-practices", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
workers-best-practicesReviews and authors Cloudflare Workers code against production best practices.
Workers Best Practices is an agent skill from hodgef/apiker. 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.
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/review.md` and `references/rules.md`).
It sits in DevOps & Cloud, covering State management and Observability. It works with Cloudflare Workers, Cloudflare and Node.js. The repository describes itself as: 🔼 Create Serverless APIs with Cloudflare Workers, Durable Objects & Wrangler. The licence is MIT.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 444ace2. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
wranglernpmnpxFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
developers.cloudflare.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Workers Best Practices loads about 1.8k tokens when it runs, and up to ~7.9k if it reads all its reference files. Until then it costs about 96 tokens; SKILL.md has 706 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from hodgef/apiker at commit 444ace2, republished under its MIT licence (© hodgef). 706 words, ~1,761 tokens.
.claude/skills/workers-best-practices/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.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.
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 |
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.
# 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.tsreferences/rules.md — all best practice rules with code examples and anti-patternsreferences/review.md — type validation, config validation, binding access patterns, review process| 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 |
| 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 |
| 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 |
| Rule | Summary |
|---|---|
| Logs & Traces | Enable observability in config with head_sampling_rate; use structured JSON logging |
| Rule | Summary |
|---|---|
| No global request state | Never store request-scoped data in module-level variables |
| Floating promises | Every Promise must be awaited, returned, voided, or passed to ctx.waitUntil() |
| 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-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. |
any, no unsafe casts (see references/review.md)npx tsc --noEmit, lint for no-floating-promisesreferences/rules.md for each rule's correct patternThis skill covers Workers-specific best practices and code review. For related topics:
durable-objects skillwrangler skill© hodgef, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in .agents/skills/workers-best-practices of hodgef/apiker.
Open the folder on GitHubat commit 444ace2
We found 6 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 6 other GitHub owners. This page covers the copy in hodgef/apiker, which our catalogue first saw on October 7, 2026.
Workers Best Practices next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Workers Best Practices this skillhodgef/apiker | 127 | 6 repos | ~1.8k | Automated safety check: Pass | MIT | |
| Observability Triageevery-app/open-seo | 23k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Cloudflare Sandboxsecondsky/claude-skills | 227 | — | ~4.5k | Automated safety check: Pass | MIT | |
| Effect Httpapi Workers PatternsConsensys/c0 | 105 | — | ~1.4k | Automated safety check: Pass | LGPL-3.0 | |
| Building AI Agent On CloudflareCommandCodeAI/agent-skills | 132 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Cloudflare Nextjssecondsky/claude-skills | 227 | — | ~5.3k | Automated safety check: Notes | MIT |
every-app/open-seo
Triage OpenSEO production errors in Cloudflare Workers Observability — verified query recipes, counting gotchas, and a known-noise filter list applied automatically.
secondsky/claude-skills
Cloudflare Sandboxes SDK for secure code execution in Linux containers at edge.
Consensys/c0
Build, refactor, or review Effect v4 HttpApi services on Cloudflare Workers.
CommandCodeAI/agent-skills
Builds AI agents on Cloudflare using the Agents SDK with state management, real-time WebSockets, scheduled tasks, tool integration, and chat capabilities.
secondsky/claude-skills
Deploy Next.js to Cloudflare Workers via the OpenNext adapter (@opennextjs/cloudflare).
secondsky/sap-skills
Develops business applications on SAP Business Technology Platform (BTP) using CAP (Node.js/Java) or ABAP Cloud.
hodgef/apiker
Comprehensive Cloudflare platform skill covering Workers, Pages, storage (KV, D1, R2), AI (Workers AI, Vectorize, Agents SDK), feature flags (Flagship), networking (Tunnel, Spectrum), security (WAF…
hodgef/apiker
Create and review Cloudflare Durable Objects. An agent skill from hodgef/apiker.
hodgef/apiker
Send and receive transactional emails with Cloudflare Email Service (Email Sending + Email Routing).
hodgef/apiker
Analyzes web performance using Chrome DevTools MCP. An agent skill from hodgef/apiker.
hodgef/apiker
Develop, review, and extend the Apiker library — a framework for building serverless REST APIs on Cloudflare Workers + Durable Objects.
hodgef/apiker
Build AI agents on Cloudflare Workers using the Agents SDK. An agent skill from hodgef/apiker.
Works with
Categories
Reviews and authors Cloudflare Workers code against production best practices. Workers Best Practices is an agent skill from hodgef/apiker. Reviews and authors Cloudflare Workers code against production best practices.
Workers Best Practices fits situations like: tasks that involve State management; tasks that involve Observability.
Run `npx skills add hodgef/apiker --skill workers-best-practices -a claude-code`. Or copy the skill folder (.agents/skills/workers-best-practices in hodgef/apiker) into .claude/skills/workers-best-practices in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hodgef/apiker --skill workers-best-practices -a codex`. Or copy the skill folder (.agents/skills/workers-best-practices in hodgef/apiker) into .agents/skills/workers-best-practices in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hodgef/apiker --skill workers-best-practices -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/workers-best-practices, .gemini/skills/workers-best-practices, .github/skills/workers-best-practices and .opencode/skills/workers-best-practices in your project.
Going by SKILL.md and its folder, Workers Best Practices needs the command-line tools its instructions call (wrangler, npm and npx). Our summary lists: Node.js.
SKILL.md names 1 domain. In commands or code: developers.cloudflare.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Workers Best Practices is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Workers Best Practices: Observability Triage (every-app/open-seo, 23k stars), Cloudflare Sandbox (secondsky/claude-skills, 227 stars), Effect Httpapi Workers Patterns (Consensys/c0, 105 stars) and Building AI Agent On Cloudflare (CommandCodeAI/agent-skills, 132 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
hodgef (a GitHub user) maintains it in hodgef/apiker, which has 127 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on August 20, 2026.
Source: hodgef/apiker on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.