turborepo

turborepo is a cursor rule for Cursor from louisbrulenaudet/monorepo-template. It costs 2,177 tokens per session, scanned A, original, Apache-2.0.

Rules for inspecting Turborepo, a tool that manages tasks and dependencies across packages in a monorepo, meaning a repository containing multiple related packages.

In plain words
What is it for?
Use them to query affected work, list package dependencies and tasks, inspect the query schema, or configure Turborepo's signed remote cache for development and CI.
Why use it?
They show how to identify affected packages and tasks without running them, and explain the keys needed for signed shared caching.

Cursor rule for Cursor

Written for Cursor: installed under .cursor/. Also seen: mentions Claude Code.

Good fit Use them to query affected work, list package dependencies and tasks, inspect the query schema, or configure Turborepo's signed remote cache for development and CI.

Compare 6 cursor rules from other repositories ↓
Install with agentmods
npx agentmods add rules/louisbrulenaudet/monorepo-template/turborepo
Install

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.

Clone the repo
git clone --depth 1 https://github.com/louisbrulenaudet/monorepo-template

Made for: Cursor.

Wrote 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.

agentmods badge for turborepo

README.md
[![agentmods](https://agentmods.dev/badge/rules/louisbrulenaudet/monorepo-template/turborepo/github.svg)](https://agentmods.dev/rules/louisbrulenaudet/monorepo-template/turborepo)
Your own site
<a href="https://agentmods.dev/rules/louisbrulenaudet/monorepo-template/turborepo"><img src="https://agentmods.dev/badge/rules/louisbrulenaudet/monorepo-template/turborepo/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.

agentmods 80×15 button for turborepo

Your own site · 80×15
<a href="https://agentmods.dev/rules/louisbrulenaudet/monorepo-template/turborepo"><img src="https://agentmods.dev/badge/rules/louisbrulenaudet/monorepo-template/turborepo.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 2,177 This file is loaded in full into every session.
When invoked 2,177 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.02177 $0.02177
Opus 5.5 $0.00871 $0.00871
Sonnet 5.5 $0.00435 $0.00435
Haiku 4.5 $0.00218 $0.00218

Measured 5d ago against content hash adb310d6003c, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

turborepo scanned grade A with 0 findings 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 5d ago.

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.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.cursor/rules/core/turborepo.mdc · 54 lines

How it starts

The opening of the file, as written. The whole thing — 54 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Turborepo

Root turbo.json task descriptions say what each task does; the why is here. Tags: boundaries.mdc; CI invariants: ../ops/ci.mdc.

Docs, in order: node_modules/turbo/schema.json (every key and futureFlags entry for the pinned version), node_modules/turbo/docs/ or pnpm turbo docs <query> (version-matched; the upstream-locked turborepo skill points there), Context7 /vercel/turborepo, then turborepo.dev.

Task graph

  • transit is a no-op edge (transit-node pattern): check-types and test depend on transit, not ^check-types, so packages run in parallel yet invalidate when a dependency's source changes. App-to-app service bindings are not package dependencies: a Worker-name string binding reads nothing from the callee and needs no edge; whether typed cross-Worker RPC adds a <callee>#transit edge is decided with the first worker-* (service-bindings.mdc).
  • check-types depends on types: the generated .cloudflare/types/index.d.ts is gitignored, so check-types cannot hash it as a tracked input and a fresh clone type-checks with no manual step. types is cached (input cloudflare.config.ts, output .cloudflare/types/**, hash also covers the lockfile's cf and workerd versions). No drift check: nothing generated is committed.
  • build is deliberately not gated on check-types: check-types hashes tests/, so the edge made every test-only edit rebuild; with it gone and tests excluded from build inputs, a test-only edit keeps the build cached and out of --affected. The type gate lives in pnpm run ci, CD's turbo run check-types build, and the deploy / upload → check-types edges. So turbo run build alone never type-checks: name both (turbo run check-types build --filter=<app>...).
  • deploy:check is cf deploy --prebuilt --dry-run as a cached task, depending on build only, with inputs: ["cloudflare.config.ts"] (an empty list would mean every file): it validates the Build Output, so its hash follows build and a test-only edit leaves it cached and out of --affected. It is not deploy -- --dry-run, because turbo hashes pass-through args into every task of the graph, so every dependency misses the cache.
  • global.inputs is prepended to every task's inputs, not folded into one global hash, so a task can drop an entry with a negation glob. Never add OXC configs there: they belong to //#lint:* / //#format:check, and a global entry would invalidate check-types and build on a lint-only edit.
  • //#hooks:test is uncached (guard-secret-commit shells out to git against the live index; the suite takes ~1 s) and sits in check and ci because the guards fail closed: a syntax error in a git guard denies every Bash command.
  • App dev tasks are interruptible so turbo watch can restart them; front-app#dev runs with: ["worker-api#dev"] so a filtered front dev still has a gateway. worker-api#dev passes SENTRY_DSN through so a local secret can come from the shell as well as the app's .env: envMode: "strict" strips anything unlisted.
  • global.passThroughEnv lists cf's CF_SEND_TELEMETRY, DO_NOT_TRACK, CLOUDFLARE_REGISTRY_PATH beside the WRANGLER_* entries, which stay for the Vitest pool and the Wrangler-only commands, and SKIP_ENV_FILES, which every app's vite.config.ts reads, so a new app inherits it (workers-config.mdc).
  • deploy and upload pass XDG_CONFIG_HOME through: cf auth login stores the OAuth token under $XDG_CONFIG_HOME/cloudflare/. Stripped, cf misses the token and fails with No authentication token found.
  • futureFlags.filterUsingTasks stays off: in 2.11.4 it makes --filter=...pkg follow task edges only, silently dropping dependent packages for the transit tasks, and CD's --filter='./apps/*...' relies on the package expansion; --affected already gets task precision from affectedUsingTaskInputs. Before re-enabling, confirm turbo run check-types test --filter=...@repo/dtos-common --dry=json still lists both apps.

Read the full file on GitHub · 54 lines

Changes

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.

  1. 5d ago Changed · +30 tokens per session adb310d6003c
  2. 12d ago Changed · -1 lines · -28 tokens per session a9f67a26ec9b
  3. 20d ago Changed · +1 lines · +56 tokens per session 3e3aaf74ab32
  4. 27d ago Changed · +1 lines · +124 tokens per session f67acb9157ba
  5. 28d ago Changed · -18 lines · -307 tokens per session 5ba798d54c43
  6. 1mo ago Changed · +27 lines · +1,192 tokens per session 22609aab6df2
  7. 1mo ago Changed · +10 lines · +566 tokens per session 626263a72410
  8. 1mo ago First seen · 34 lines · 544 tokens per session scan A dea09027c2cc

Subscribe to this mod's changes

turborepo is a cursor rule published in the GitHub repository louisbrulenaudet/monorepo-template (19 stars, last pushed 2d ago), licensed Apache-2.0. It adds 2,177 tokens to every session, about $0.0087 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.