Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add d-padmanabhan/agent-engineering-handbook --skill cloudflare-workers-authorgit clone --depth 1 https://github.com/d-padmanabhan/agent-engineering-handbookWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/d-padmanabhan/agent-engineering-handbook/cloudflare-workers-author)<a href="https://agentmods.dev/skills/d-padmanabhan/agent-engineering-handbook/cloudflare-workers-author"><img src="https://agentmods.dev/badge/skills/d-padmanabhan/agent-engineering-handbook/cloudflare-workers-author/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/d-padmanabhan/agent-engineering-handbook/cloudflare-workers-author"><img src="https://agentmods.dev/badge/skills/d-padmanabhan/agent-engineering-handbook/cloudflare-workers-author.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00095 | $0.02990 |
| Opus 5 | $0.00048 | $0.01495 |
| Sonnet 5 | $0.00019 | $0.00598 |
| Haiku 4.5 | $0.00010 | $0.00299 |
Grade A, and why
cloudflare-workers-author scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
| **Default-export HTTP Worker** | `export default { async fetch(req, env, ctx) {...} } satisfies ExportedHandler<Env>` | KV, D1, R2, AI, Service Bindings | How it starts
The opening of the file, as written. The whole thing — 181 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Cloudflare Workers Author
Companion rule: 401-cloudflare-workers.mdc (file-scoped to wrangler.{jsonc,toml,json} and common Worker entry-point names). The rule is the gate (non-negotiables); this skill is the workflow (how to actually build the Worker).
Voice: opinionated. Cloudflare Workers is a small, fast platform with a specific runtime model. Most production incidents come from treating it like a generic Node.js server (top-level await, mutable module state, unbounded loops, secrets in logs, public-URL Worker-to-Worker calls). The workflow below prevents those.
When to invoke this skill
Invoke when:
- The user asks to build a new Cloudflare Worker, Durable Object, Workflow, Queue consumer, Cron Trigger, Email Worker, or Pages Function.
- The user is adding routes / endpoints to an existing Worker.
- The user asks "should I use KV / D1 / R2 / DO / Hyperdrive for this?" (the bindings-and-storage decision matrix is the answer).
- The user is setting up testing for a Worker.
- The user is configuring deployment (gradual rollouts, OIDC for GitHub Actions, secret rotation).
- A PR review touches
wrangler.jsonc, a Worker entry-point file, or a binding configuration.
Do NOT invoke for:
- Cloudflare Pages static-site work (not Worker authoring). See
cloud-platforms/references/cloudflare.md§ Pages. - WAF rule authoring (use
cloudflare-waf-authorskill instead). - Generic JavaScript / TypeScript code that happens to be imported by a Worker - delegate to the
typescript-javascriptskill.
Pre-step: classify what you're building
Each Worker type has a different entry-point shape and different bindings emphasis. Ask the user which one if unclear - the wrong entry-point shape is a wrong-handler-signature bug that won't surface until deploy time.
| Type | Entry point | Most common bindings |
|---|---|---|
| Default-export HTTP Worker | export default { async fetch(req, env, ctx) {...} } satisfies ExportedHandler<Env> |
KV, D1, R2, AI, Service Bindings |
| Named-entrypoint (RPC target) | export default class extends WorkerEntrypoint { async myMethod() {...} } |
Same, called via Service Binding from another Worker |
| Durable Object | export class Room extends DurableObject {...} + a default fetch handler that routes to DO |
DO storage + KV / R2 for cold data |
| Workflow | export class MyWorkflow extends WorkflowEntrypoint { async run(event, step) {...} } |
KV, D1, R2, Service Bindings, AI |
| Queue consumer | export default { async queue(batch, env, ctx) {...} } |
D1, R2, Service Bindings, AI |
| Cron Trigger | export default { async scheduled(event, env, ctx) {...} } |
KV, D1, R2, Service Bindings |
| Email Worker | export default { async email(message, env, ctx) {...} } |
R2 for attachments, D1 for logs |
| Pages Function | export const onRequest: PagesFunction<Env> = async (ctx) => {...} (in functions/[[path]].ts) |
KV, D1, R2 (subset of full Worker bindings) |
What ships with it
8 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- evals/evals.json 8.6 KB
- evals/fixtures/stateful-worker.ts 417 B runs code
- references/bindings-and-storage.md 12 KB
- references/common-pitfalls.md 12 KB
- references/deployment-and-versions.md 8.1 KB
- references/hono-patterns.md 10.0 KB
- references/project-bootstrap.md 8.7 KB
- references/testing-with-vitest-pool.md 8.7 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday Changed · -2 tokens per session 956a0398068b
- 5d ago First seen · 181 lines · 97 tokens per session scan A f8daccba15ea
cloudflare-workers-author is a skill published in the GitHub repository d-padmanabhan/agent-engineering-handbook (16 stars, last pushed 2d ago), licensed MIT. It adds 95 tokens to every session and 2,990 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
stripe-projects
Provision SaaS services + sync creds via Stripe Projects.
azure-eventhub-dotnet
Azure Event Hubs SDK for .NET. Use for high-throughput event streaming: sending events (EventHubProducerClient, EventHubBufferedProducerClient), receiving events (EventProcessorClient with checkpointing), partition management, and real-time data ingestion. Triggers: "Event Hubs", "event streaming"…
azure-mgmt-botservice-dotnet
Azure Resource Manager SDK for Bot Service in .NET. Management plane operations for creating and managing Azure Bot resources, channels (Teams, DirectLine, Slack), and connection settings. Triggers: "Bot Service", "BotResource", "Azure Bot", "DirectLine channel", "Teams channel", "bot management .NET", "create bot".
django-storages-s3
Use when configuring Django to store static and media files on AWS S3 with django-storages. Invoke when working with the STORAGES setting, S3 buckets, presigned URLs, CloudFront, or boto3-backed file storage in settings.py. Configures the Django 4.2+ STORAGES dict, public/private custom backends, presigned GET/POST…
wikipedia
Search and read Wikipedia via x wkp — MediaWiki API, no API key, zero install; query, extract, suggest, and DDG route in one module. Load for wiki, wikipedia, encyclopedia lookup, article summary.
cve
Look up CVE records via x cve — cached, zero-API-key, daily xz TSV. Load for cve, vulnerability id, kev, epss, nvd, cvelist, or security advisory.