Docs · Working with Cursor

Setting Up Cursor

What Cursor reads when it opens the kit: AGENTS.md, the rules files, and where MCP config goes.

There is no setup step. Open the repository in Cursor and the agent already has the guidance it needs, because the kit ships the files Cursor looks for. This page is about what those files are and the order they load in, so that when a suggestion looks wrong you know which file to fix.

What Cursor reads on its own

Three things, all at the repository root or just below it:

  • .cursor/rules/, the project rules. These are .mdc files that Cursor loads automatically, and they are the highest-signal place to put a rule you never want broken. The kit ships two of them; see Rules for One Shot.
  • AGENTS.md, which Cursor supports at the project root and in any subdirectory, combining the instructions hierarchically so a more specific file wins. The kit's copy is deliberately short: it states the essential rules and redirects to CLAUDE.md for the full map, rather than duplicating it. See How CLAUDE.md Works for what that map contains.
  • .claude/skills/, which Cursor loads for backward compatibility alongside its own skill directories. This is the part most people do not expect, and it means all six of the kit's skills work in Cursor with nothing to convert. See The Kit's Skills in Cursor.

Rules are applied in the order Team Rules, then Project Rules, then User Rules, and all applicable rules are merged. Where they conflict, the earlier source wins. So a personal rule in your own Cursor settings will not override the project rules in this repository.

Running the app from the editor

Everything in Installation works from Cursor's integrated terminal, unchanged:

bin/setup   # gems, SQLite database, seeded demo workspace
bin/dev     # the app at http://localhost:3000
bin/check   # RSpec, RuboCop, Brakeman, audits, secret scan

bin/check is worth binding to something you can reach without thinking about it. The editor loop encourages many small edits, and the specific risk of that loop is a dozen individually reasonable changes that do not pass together.

MCP servers

The kit ships a .mcp.json at its root, holding the optional Stripe MCP server, which runs through npx and is the only reason the kit lists Node as a prerequisite at all. That file is Claude Code's format, and Cursor does not read it.

Cursor reads its own: .cursor/mcp.json for servers scoped to this project, or ~/.cursor/mcp.json for servers you want available everywhere. To get the same server in Cursor, copy the mcpServers block from .mcp.json into .cursor/mcp.json.

Nothing in the app depends on that server either way. Billing works against the local fake with no Stripe account, and against real Stripe with a key. See Stripe Setup.

Next

Read the two rules files the kit ships, and what to put in your own: Rules for One Shot.