iter0
Back to Blog
Agentic Web Design·

DESIGN.md for Cursor: connect it with a project rule

Create .cursor/rules/design-system.mdc and point it to the root DESIGN.md. This example uses an always-applied rule; Cursor runtime behaviour was not tested here.

John McKeown
John McKeown

6 min read

Create a project rule with the .mdc extension

Cursor documents project rules as .mdc files under .cursor/rules. Put the rule below at .cursor/rules/design-system.mdc in the repository you open in Cursor. Its alwaysApply setting includes the rule in every chat session; the body tells the agent to read DESIGN.md before website work.

That is a deliberate choice for a small website repository where design instructions should be easy to test. In a repository with unrelated services, a rule applied to every chat may be too broad. Start with the small test, then choose a narrower rule type using Cursor’s current documentation.

---
description: Design rules for the Wrenboard website
alwaysApply: true
---

For website work, read DESIGN.md at the project root.
Read styles.css before changing colours or spacing.
For the main action, use the label specified in DESIGN.md.
In your final reply, name the design rule you applied.

Put the decisions in DESIGN.md

This separate note describes a fictional beta page. It names the action, destination, stylesheet and visible checks. The rule file provides the entry point; DESIGN.md supplies the decisions. Keep the named files in the same repository and change the paths if your stylesheet lives elsewhere.

The read instruction in the rule is something you must verify in a session. It is not a claim that saving any file named DESIGN.md makes Cursor load it automatically. A correctly named .mdc file and a useful design note solve different parts of the setup.

# Wrenboard website design

Wrenboard is a fictional research tool for product teams.
The page's main action says Request access and links to #access.
Use .button-primary from styles.css. Keep its existing focus outline.
Use one h1. Keep body copy at least 1rem.
At 390px, the headline wraps and the main action stays inside the page.
Do not add testimonials, prices or customer logos.

Give Cursor one bounded edit

Use a disposable local copy of your page. Change its main-action text to Join waitlist, then ask Cursor to correct that link according to the project instructions. Do not put Request access in the prompt. The correct label should come from DESIGN.md, and the link should still point to the existing access section.

Inspect the diff. The request concerns one link: a new layout, font download or pricing section would be outside it. Then follow the link and confirm that its target exists. A response saying the rule was followed is useful to compare with the diff, but it cannot replace that check.

Correct only the main-action link in index.html according
to the project design instructions. Keep the layout and
other content. Report the files you read and the rule applied.

Diagnose a rule that does not appear to apply

Check the repository you opened and the full rule path first. Cursor’s docs distinguish .mdc project rules from plain .md files in that directory. They also distinguish always-applied rules from rules selected by description, file pattern or an explicit mention. A file in the wrong location and a conditional rule that was not selected need different corrections.

For this fixture, keep alwaysApply: true while checking discovery. If you later add file patterns, test a matching frontend file and an unrelated file separately. Record what happened in the actual editor version instead of treating a valid-looking frontmatter block as a runtime result.

What is verified, and what still needs Cursor

Cursor was not installed in the Mac environment used for this article, so this is a documentation-based setup, not a Cursor execution test. The file extension, directory and alwaysApply behaviour were checked against the official rules page on 3 November 2026. No model-compliance rate is claimed.

The downloadable .mdc file belongs inside .cursor/rules; the DESIGN.md file belongs at the project root. Keep an existing rule if it already does this job. Add the pointer there rather than creating two rules that give different labels or component paths.

Carry the same page decisions into another tool

If a teammate uses Claude Code, the same design note can be imported through CLAUDE.md. For Codex, the existing guide shows how to direct website work from AGENTS.md. Tool-specific loading instructions can stay short because they point to the same page decisions.

If you are still deciding what the startup page should contain, work through the full template before adding more editor rules. A perfectly loaded instruction cannot decide which product claims are true.

Put the brief into practice

A launch page should make the buyer, promise, proof, and next action obvious. iter0 uses this same standard when it turns a brief or reference site into a builder-ready page.

Start your launch build

Common questions

Where does the Cursor rule go?

Save this example as .cursor/rules/design-system.mdc in the repository. Save DESIGN.md at the repository root, as the rule instructs.

Does alwaysApply mean every edit will obey the design note?

No. It controls when the rule is included. Check that the agent reads the named files and that the resulting diff and rendered page follow the decisions.

Was this tested in Cursor?

No. Cursor was not installed in the test environment. The setup was checked against its official rules documentation on 3 November 2026.