Skip to main content

Cursor Rules

Cursor reads .cursor/rules/*.mdc files automatically and applies them to chats based on the rule’s scope. Unlike AGENTS.md, which is conversational context, Cursor rules apply specifically to code generation: they shape what Cursor writes, not just what it says. Drop the three files below into .cursor/rules/ and any code Cursor generates in that project will use the right parameter names, handle the right errors, and follow the VH3 API conventions.
Use rules + AGENTS.md together. AGENTS.md tells the agent which endpoint to call for which question. Cursor rules ensure the code it writes around those calls is correct.

File 1: vh3-api-domain.mdc (always apply)

This rule gives Cursor persistent VH3 vocabulary. It applies to every chat in the project.

File 2: vh3-api-calls.mdc (TypeScript / JavaScript / Python)

This rule applies when writing API integration code in .ts, .js, or .py files.

File 3: vh3-n8n-workflows.mdc (n8n workflows)

For projects using n8n-as-code to build VH3 workflows.

Installing the rules

1

Create the rules directory

2

Drop the three files in

Copy each block above into the corresponding filename inside .cursor/rules/.
3

Reload Cursor

Cursor reads .mdc files on project load. Reload the window or reopen the project to pick up changes.
4

Test it

Ask Cursor: “Write me a TypeScript function that calls the VH3 aggregate endpoint to get this week’s completion rate by engineer.” The generated code should use actualStartAt as the timeAxis, read auth from env vars, and use the correct camelCase parameter names.

How the rules interact

Domain rule (always)

vh3-api-domain.mdc applies to every chat. Cursor always knows the entity model and field names.

Code rule (.ts/.py)

vh3-api-calls.mdc applies only when editing implementation files. Shapes generated code.

n8n rule (.workflow.ts)

vh3-n8n-workflows.mdc applies inside n8n-as-code projects. Enforces credential and timeout conventions.

AGENTS.md (conversation)

AGENTS.md handles routing and reasoning. Cursor rules handle code-level correctness. Use both.
The globs field uses the project-relative pattern. If your integration code lives in a subdirectory (e.g. apps/api/src/), the patterns still match, Cursor walks the whole tree.