cursor-rules-pack-v2-cursorrules-prompt-file — Cursor rule
A seven-rule Cursor pack covering dependencies, errors, state, webhooks, and database queries. Use it to guide code changes across a project.
.cursor/rules/cursor-rules-pack-v2-cursorrules-prompt-file.mdcWhat cursor-rules-pack-v2-cursorrules-prompt-file does
This rule file gives Cursor seven concrete checks. Before adding an npm package, the agent must explain its purpose, check whether it was published within the last 6 months, and consider a short implementation without the dependency. Async work needs explicit error handling, while comments are reserved for non-obvious business logic, workarounds, and complex algorithms.
The remaining rules define where URL state, React state, Zustand, and React Query belong. They also require Promise.all for independent fetches, early webhook signature verification, raw event storage, and idempotency by event ID. Database queries must select specific fields and paginate results above 50 rows. The file metadata uses globs: **/* and alwaysApply: false. Redux is explicitly ruled out, so that constraint affects projects using it.
What it helps with
- review a proposed npm dependency
- add explicit states for failed async work
- separate URL, React, Zustand, and React Query state
- secure an incoming webhook handler
- paginate and limit database query results
Example prompts for the agent
- Review this async code using the rule for typed errors and a visible UI error state.
- Assess this npm package before adding it: explain its purpose, check its recent maintenance, and look for a short implementation without it.
- Check this webhook handler for early signature verification, raw event storage, and idempotency by event ID.
How to install cursor-rules-pack-v2-cursorrules-prompt-file
Manually: put the files in place
.cursor/rules/cursor-rules-pack-v2-cursorrules-prompt-file.mdcFrontmatter: description, globs, alwaysApply
Manually: put the files in place
.claude/rules/cursor-rules-pack-v2-cursorrules-prompt-file.mdThe paths frontmatter field limits the files: move globs from the source into paths
AGENTS.md
Codex reads AGENTS.md: paste the rule text there
Manually: put the files in place
.github/instructions/cursor-rules-pack-v2-cursorrules-prompt-file.instructions.mdThe applyTo field sets which files it applies to: move globs from the source into applyTo
Manually: put the files in place
.devin/rules/cursor-rules-pack-v2-cursorrules-prompt-file.mdManually: put the files in place
.clinerules/cursor-rules-pack-v2-cursorrules-prompt-file.mdStep by step, with commands for each platform: Cursor rules: .mdc files, four modes and what replaced .cursorrules
Questions about cursor-rules-pack-v2-cursorrules-prompt-file
How do I install cursor-rules-pack-v2-cursorrules-prompt-file in Cursor?
Place the file at .cursor/rules/cursor-rules-pack-v2-cursorrules-prompt-file.mdc.
What does cursor-rules-pack-v2-cursorrules-prompt-file do?
It gives Cursor seven rules for dependency choices, error handling, state placement, parallel fetches, webhook security, and database queries.
How does it handle database queries?
The rule requires selecting only the fields needed by the client. Queries that may return more than 50 rows must use take/skip or cursor pagination.
Source text
cursor-rules-pack-v2-cursorrules-prompt-file.mdc · CC0-1.0
---
description: "7 sample production-tested rules (dependency discipline, error handling, state management, webhook security, and more). See the pack README for full-pack details."
globs: **/*
alwaysApply: false
---
# Cursor Rules Pack v2 — Sample Rules
# 7 production-tested rules from the full 50-rule pack
# Full pack: https://oliviacraftlat.gumroad.com/l/wyaeil
## Rule 1 — Dependency Discipline
Before suggesting a new npm package: (1) state what it does in one sentence, (2) check if it's actively maintained (last publish < 6 months), (3) confirm whether we could implement it in < 30 lines without the dependency. Prefer fewer, well-maintained packages. Never add a dependency for a task under 20 lines of code.
## Rule 2 — Explicit Error Handling
Always wrap async operations in try/catch. Never swallow errors silently. Return typed error objects using a Result pattern or throw typed errors. Log errors with context: logger.error('[FunctionName] description', { error, context }). Always provide user-facing error states in UI components.
## Rule 3 — Comments Policy
Write self-documenting code first. Add comments only for: (1) non-obvious business logic — explain WHY, not WHAT, (2) workarounds — explain why the workaround exists and link to the issue, (3) complex algorithms — reference the algorithm name. Never comment what the code clearly does.
## Rule 4 — State Management Hierarchy
Follow this state hierarchy strictly:
- URL state → filters, pagination, search (useSearchParams)
- React state → UI-only, ephemeral (useState)
- Zustand → cross-component app state
- React Query → all server state
Never use Zustand to cache server data — that's React Query's job. Never reach for Redux.
## Rule 5 — Parallel Data Fetching
Identify and parallelize independent data fetches. Never await sequentially when operations are independent — use Promise.all. When making a sequential await, add a comment explaining the dependency that forces the sequence.
## Rule 6 — Webhook Security
For incoming webhooks: verify the signature in the first 3 lines of the handler — reject immediately if invalid. Respond with HTTP 200 within 5 seconds — offload processing to a background job. Store the raw webhook event before processing. Implement idempotency using the event ID.
## Rule 7 — Database Query Safety
Never return full database records to the client — always use select to specify exactly which fields are needed. This prevents accidentally exposing password hashes, reset tokens, internal flags, and other sensitive fields. For queries that could return more than 50 rows, always add pagination (take/skip or cursor-based).
© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules