agents/skills/cf-web-alchemy-bindings/SKILL.md
Wire @internal/web to durable-objects workers—workspace dep, alchemy.run.ts ReactRouter bindings, and env patterns. Use when adding `workspace:*` for a worker, editing apps/web/alchemy.run.ts, or debugging missing worker types after a new package.
npx skillsauth add firtoz/cf-multiworker-starter-kit cf-web-alchemy-bindingsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
durable-objects/<pkg> worker or DO to the web app’s ReactRouter bindings.workspace:* worker dependency, fixing how env in workers/app.ts lines up with imports in alchemy.run.ts.Dependency — apps/web/package.json: "<package-name>": "workspace:*". bun install from repo root.
Import — apps/web/alchemy.run.ts: import { … } from "<package-name>/alchemy".
Bindings — Pass each binding into ReactRouter("…", { bindings: { …, MyDo: myWorker.bindings.MyDo, … } }) using the names your workers/app.ts reads from this.env (e.g. this.env.PingDo). D1: import mainDb from @internal/db/alchemy and set DB: mainDb (D1 is defined in packages/db/alchemy.run.ts, not inlined in web).
In route code — Prefer import { env } from "cloudflare:workers" for bindings, not React Router context (multiworker-gotchas, cf-workers-patterns.mdc).
If you are tempted to add include lines in tsconfig.cloudflare.json that point at another package’s workers/app.ts, don’t—multiple declare global { type Env } sources break the web Env. Types follow your normal imports; no need to list durable-objects/… in include.
Verify — bun run typegen and bun run typecheck from root.
workers/rpc.ts, Turbo dev / destroy, cross-worker types.development
Repo-root commands, typegen and typecheck cadence, lint, deploy, adding packages with bun, and Alchemy app layout. Use at the start of a task, before PR, or when choosing turbo/typegen commands.
development
Fork and template gotchas (env import, routes, typegen, forms, D1, Turbo, HMR, new DO packages). Use when working on apps/web or durable-objects, or when behavior diverges from this stack’s conventions.
testing
Turborepo task configuration patterns for monorepo management. Use when configuring turbo.json tasks, setting up task dependencies, managing cache inputs/outputs, or working with cross-package dependencies in the monorepo.
development
React Router v7 routing patterns and environment variable configuration. Use whenever you touch React Router–related code (routes, links, params, loaders, actions, route config, or env in route context).