← Back to agents

AGENTS.md from jahands/workers-monorepo-template

140 starsLast commit Nov 15, 2025

<cloudflare-workers-monorepo>

<title>Cloudflare Workers Monorepo Guidelines for AmpCode</title>

<commands>

</commands>

  • `just install` - Install dependencies
  • `just dev` - Run development servers (uses `bun runx dev` - context-aware)
  • `just test` - Run tests with vitest (uses `bun vitest`)
  • `just build` - Build all workers (uses `bun turbo build`)
  • `just check` - Check code quality - deps, lint, types, format (uses `bun runx check`)
  • `just fix` - Fix code issues - deps, lint, format, workers-types (uses `bun runx fix`)
  • `just deploy` - Deploy all workers (uses `bun turbo deploy`)
  • `just preview` - Run Workers in preview mode
  • `just new-worker` (alias: `just gen`) - Create a new Cloudflare Worker
  • `just new-package` - Create a new shared package
  • `just update deps` (alias: `just up deps`) - Update dependencies across the monorepo
  • `just update pnpm` - Update pnpm version
  • `just update turbo` - Update turbo version
  • `just cs` - Create a changeset for versioning
  • `bun turbo -F worker-name dev` - Start specific worker
  • `bun turbo -F worker-name test` - Test specific worker
  • `bun turbo -F worker-name deploy` - Deploy specific worker
  • `bun vitest path/to/test.test.ts` - Run a single test file
  • `pnpm -F @repo/package-name add dependency` - Add dependency to specific package

<architecture>

</architecture>

  • Cloudflare Workers monorepo using pnpm workspaces and Turborepo
  • `apps/` - Individual Cloudflare Worker applications
  • `packages/` - Shared libraries and configurations
  • `@repo/eslint-config` - Shared ESLint configuration
  • `@repo/typescript-config` - Shared TypeScript configuration
  • `@repo/hono-helpers` - Hono framework utilities
  • `@repo/tools` - Development tools and scripts
  • Worker apps delegate scripts to `@repo/tools` for consistency
  • Hono web framework with helpers in `@repo/hono-helpers`
  • Vitest with `@cloudflare/vitest-pool-workers` for testing
  • Syncpack ensures dependency version consistency
  • Turborepo enables parallel task execution and caching
  • Workers configured via `wrangler.jsonc` with environment variables
  • Each worker has `context.ts` for typed environment bindings
  • Integration tests in `src/test/integration/`
  • Workers use `nodejs_compat` compatibility flag
  • GitHub Actions deploy automatically on merge to main
  • Changesets manage versions and changelogs

<code-style>

</code-style>

  • Use tabs for indentation, spaces for alignment
  • Type imports use `import type`
  • Workspace imports use `@repo/` prefix
  • Import order: Built-ins → Third-party → `@repo/` → Relative
  • Prefix unused variables with `_`
  • Prefer `const` over `let`
  • Use `array-simple` notation
  • Explicit function return types are optional

<critical-notes>

</critical-notes>

  • TypeScript configs MUST use fully qualified paths: `@repo/typescript-config/base.json` not `./base.json`
  • Do NOT add 'WebWorker' to TypeScript config - types are in worker-configuration.d.ts or @cloudflare/workers-types
  • For lint checking: First `cd` to the package directory, then run `bun turbo check:types check:lint`
  • Use `workspace:*` protocol for internal dependencies
  • Use `bun turbo -F` for build/test/deploy tasks
  • Use `pnpm -F` for dependency management (pnpm is still used for package management)
  • Commands delegate to `bun runx` which provides context-aware behavior
  • Test commands use `bun vitest` directly, not through turbo
  • NEVER create files unless absolutely necessary
  • ALWAYS prefer editing existing files over creating new ones
  • NEVER proactively create documentation files unless explicitly requested

<context-specific-rules>

</context-specific-rules>

  • When user asks to auto commit changes: Read @.cursor/rules/auto-commit.mdc
  • When working with Zod: Read @.cursor/rules/zod-v4.mdc

</cloudflare-workers-monorepo>