Cursor Rules 작성법: 프로젝트 규칙 파일과 Agent 사용 방식
.cursor/rules에 .mdc를 두고 적용 방식을 고른 뒤 실행 가능한 본문을 쓴다. 맞는 규칙은 컨텍스트 앞에 들어간다.
Cursor Agent는 채팅을 넘어 구두 제약을 기억하지 않는다. “라우터를 다시 쓰지 마라”를 세 번 붙인다면 프로젝트 규칙에 넣어 다음 대화 시작부터 쓰이게 한다.
공식은 이 장치를 Cursor Rules라고 부른다. 프로젝트 규칙은 .cursor/rules에 두며 확장자는 .mdc여야 한다. 같은 폴더의 일반 .md는 무시된다. 편집기 사용법이며 브레인스토밍 제품 설명서가 아니다.
프로젝트 규칙이란
cursor.com/docs/context/rules를 대조한다. 네 출처 중 입문은 저장소 파일이면 충분하다. 적용되면 본문은 모델 컨텍스트 앞에 온다.
| 출처 | 위치 | 컨텍스트에 들어가는 때 |
|---|---|---|
| Project Rules | .cursor/rules/*.mdc | frontmatter 기준 |
| User Rules | Customize → Rules | Agent(Chat), 모든 프로젝트 |
| Team Rules | 대시보드(Team / Enterprise) | 모든 저장소. 강제 가능 |
| AGENTS.md | 루트 또는 하위 | 일반 마크다운. frontmatter 없음 |
첫 규칙을 네 단계로 쓰기
- 1
파일을 만든다
저장소에
.cursor/rules/your-name.mdc를 둔다. Agent에서/create-rule을 치거나 Customize → Rules → Add Rule도 된다. 폴더는 된다. 확장자는.mdc여야 한다. - 2
적용 방식을 고른다
alwaysApply: true는 매 채팅.globs는 맞는 파일이 컨텍스트에 있을 때. description만 있으면 Agent가 판단. 모두 비면 채팅에서@규칙이름일 때만. - 3
실행 가능한 본문을 쓴다
내부 문서처럼 쓴다. 금지, 이름, 디렉터리 경계.
@filename.ts로 예시를 가리키고 파일 전체를 붙이지 않는다. 공식은 500줄 미만. - 4
커밋하고 확인한다
git에 넣어 팀이 같은 제약을 공유한다. Customize에서 상태를 본다. 여전히 빠지면 대화에서 그 규칙을
@한다.
본문에 넣을 것
린터가 못 잡는 약속
생성 파일을 고치지 말 것, 새 서비스는 구조화 오류를 반환할 것. 흔한 스타일은 ESLint / rustfmt에 맡긴다. 가이드 전문을 붙이지 않는다.
아키텍처 경계
어느 층이 DB에 닿는지, 어떤 폴더끼리 import하지 않는지. Agent는 이미 git과 npm을 안다. 일상 명령은 빼라.
저장소 예시를 가리킨다
@로 이미 있는 템플릿을 참조한다. 코드가 바뀌어도 규칙은 짧다. 같은 실수를 반복할 때 한 줄을 더한다. 처음부터 스무 개를 두지 않는다.
---
description: TypeScript conventions for this repo
globs: **/*.{ts,tsx}
alwaysApply: false
---
# TypeScript
- Prefer named exports
- Do not edit files under dist/
- New API clients follow @src/api/client.tsAgent가 규칙을 쓰는 방식
일치 후 본문은 컨텍스트 앞에 올라가 코드 생성, 변경 설명, 워크플로에 쓰인다. 충돌 시 공식 순서는 Team Rules → Project Rules → User Rules이며 앞선 출처가 이긴다. Rules는 Cursor Tab에 영향을 주지 않는다. User Rules는 Inline Edit(Cmd/Ctrl+K)에 쓰이지 않는다.
AGENTS.md와 고르는 법
읽을 수 있는 메모만 필요하면 루트나 하위에 AGENTS.md를 둔다. 중첩 파일은 그 트리를 다룰 때 부모와 합쳐지고 더 구체적인 쪽이 이긴다. glob이나 수동 @이 필요하면 .mdc를 쓴다.
규칙을 둔 뒤 짧은 스케치가 필요하면 wbstorm 방 번호면 된다. 방 만들기와 참가와 화이트보드 기초도 보라.
규칙이 적용되지 않는 이유는?
유형을 확인한다. Apply Intelligently에는 description이 필요하다. 파일 대상은 이미 컨텍스트에 있는 경로에 glob이 맞아야 한다. .cursor/rules의 일반 .md는 무시된다.
Tab 완성에 영향을 주나?
공식 FAQ: Rules는 Cursor Tab이나 다른 비 Agent 기능에 영향을 주지 않는다. User Rules도 Inline Edit에는 쓰이지 않는다.
다른 파일을 참조할 수 있나?
된다. 본문에 @filename.ts를 쓴다. 채팅에서 규칙 이름을 @해 수동으로 붙일 수도 있다.
wbstorm 기능 안내인가?
아니다. 이 글은 Cursor 프로젝트 규칙만 다룬다. wbstorm은 브라우저 브레인스토밍 방이며 규칙 파일과 무관하다.