Cursor IDE의 AI 컨텍스트 시스템. 레거시 .cursorrules (프로젝트 루트 단일 파일)에서
모듈화된 .cursor/rules/ 디렉토리로 진화했다. 파일별로 트리거 조건을 설정할 수 있어
상황에 맞는 규칙만 로드된다.
4가지 트리거 타입
실전 예제
# .cursor/rules/react-components.mdc
---
description: React 컴포넌트 작성 규칙
globs: src/components/**/*.tsx
alwaysApply: false
---
- 함수형 컴포넌트만 사용 (class 컴포넌트 금지)
- Props 인터페이스는 컴포넌트 바로 위에 정의
- named export만 사용 (default export 금지)
- 스타일은 CSS Modules 사용
- 컴포넌트 파일명은 PascalCase
# .cursor/rules/testing.mdc
---
description: 테스트 파일 작성 컨벤션
globs: **/*.test.{ts,tsx}
alwaysApply: false
---
- vitest 사용 (jest 구문 호환)
- describe > it 구조 (test 대신 it 사용)
- 모킹은 vi.mock() 사용
- 테스트 데이터는 fixtures/ 디렉토리에 분리
- 스냅샷 테스트보다 assertion 우선
# 디렉토리 구조
.cursor/
└── rules/
├── global.mdc # alwaysApply: true
├── react-components.mdc # globs: src/components/**
├── api-routes.mdc # globs: src/api/**
├── testing.mdc # globs: **/*.test.*
└── deployment.mdc # Manual (@deployment)
.cursorrules를 아직 쓰고 있다면 .cursor/rules/global.mdc로 내용을 옮기고 alwaysApply: true를 설정하면 동일하게 동작한다. 이후 도메인별로 파일을 분리하면 된다.
GitHub Copilot Chat의 커스텀 지시 시스템. 레포지토리, 파일 경로, 조직 3단계 범위를 지원한다. 저장 즉시 반영되며 별도 리로드가 필요없다.
실전 예제
# .github/copilot-instructions.md
# 모든 Copilot Chat 대화에 자동으로 추가됨
이 프로젝트는 TypeScript + Next.js 14 App Router를 사용합니다.
## 코드 스타일
- 함수형 프로그래밍 스타일을 선호합니다
- 타입 추론이 가능한 경우 명시적 타입 생략 가능
- zod를 사용한 런타임 검증을 선호합니다
- 에러 처리: neverthrow의 Result 패턴 사용
## 테스트
- vitest 사용
- 유닛 테스트보다 통합 테스트 우선
- MSW로 API 모킹
# .github/instructions/react.instructions.md
# applyTo 패턴으로 특정 파일에만 적용
---
applyTo: "src/components/**/*.tsx"
---
React 컴포넌트 규칙:
- Server Components가 기본
- 'use client'는 이벤트 핸들러나 hooks가 필요할 때만
- Suspense 바운더리를 적극 활용
# 디렉토리 구조
.github/
├── copilot-instructions.md # 전체 레포 적용
└── instructions/
├── react.instructions.md # components/**/*.tsx
├── api.instructions.md # app/api/**
└── testing.instructions.md # **/*.test.*
Codeium의 Windsurf IDE가 Cascade 에이전트에 주입하는 규칙 시스템. YAML frontmatter로 트리거 조건을 정의하며, Global/Workspace/System 3단계 범위를 지원한다.
4가지 트리거 타입
always_onmodel_decisionglobmanual실전 예제
# .windsurf/rules/typescript-style.md
---
trigger: always_on
---
TypeScript 프로젝트 전역 규칙:
- strict 모드 사용
- any 금지, unknown 사용
- enum 대신 const object + as const
- 함수 오버로드보다 유니온 타입 선호
# .windsurf/rules/test-patterns.md
---
trigger: glob
globs: **/*.test.ts
---
테스트 파일 규칙:
- arrange-act-assert 패턴 사용
- 테스트 이름은 "should ~" 형식
- beforeEach에서 공통 setup, afterEach에서 cleanup
- 비동기 테스트는 반드시 await
Aider는 YAML 설정 파일(.aider.conf.yml)과 마크다운 컨벤션 파일(CONVENTIONS.md)을 조합해서 사용한다.
CONVENTIONS.md는 --read 옵션으로 읽기 전용으로 로드되어 AI에게 프로젝트 맥락을 제공한다.
# .aider.conf.yml
model: claude-sonnet-4-20250514
read:
- CONVENTIONS.md # 읽기 전용으로 컨벤션 로드
- docs/architecture.md
auto-commits: true
lint-cmd: pnpm eslint --fix
test-cmd: pnpm vitest run
# CONVENTIONS.md
# Aider가 --read로 로드하는 코딩 컨벤션
## 코드 스타일
- 들여쓰기: 2칸 스페이스
- 세미콜론 필수
- trailing comma 사용
- import 순서: 외부 패키지 → 내부 모듈 → 상대 경로
## 커밋 메시지
- Conventional Commits 형식 (feat:, fix:, refactor:)
- 본문은 한국어로 작성
- 제목은 50자 이내
Continue.dev는 YAML frontmatter가 있는 마크다운 규칙 파일을 사용한다. Hub, 레퍼런스, 로컬, 글로벌 4단계 우선순위를 지원하며, 파일명에 숫자 프리픽스를 붙여 로드 순서를 제어할 수 있다.
# .continue/rules/01-general.md
---
name: General Project Rules
alwaysApply: true
---
이 프로젝트는 Python 3.12 + FastAPI를 사용합니다.
타입 힌트를 항상 사용하고, Pydantic v2 모델을 선호합니다.
# .continue/rules/02-frontend.md
---
name: Frontend Rules
globs: ["src/frontend/**/*.tsx", "src/frontend/**/*.ts"]
alwaysApply: false
---
React 18 + TypeScript + Tailwind CSS 환경입니다.
Server Components 기반, 클라이언트 상태는 Zustand 사용.
# 디렉토리 구조
.continue/
├── rules/
│ ├── 01-general.md # 항상 적용 (숫자 순서 1)
│ ├── 02-frontend.md # 프론트엔드 파일에만
│ ├── 03-backend.md # 백엔드 파일에만
│ └── 04-testing.md # 테스트 파일에만
└── config.yaml # Continue 메인 설정
Google의 Gemini CLI가 사용하는 설정 파일. CLAUDE.md와 유사한 계층 구조를 가지며,
/memory 명령어로 실시간으로 메모리를 관리할 수 있다.
@file.md 문법으로 외부 파일을 import할 수 있다.
# GEMINI.md
## 프로젝트
Go 1.22 + HTMX를 사용하는 웹 애플리케이션.
SQLite로 데이터를 저장하고, Tailwind CSS로 스타일링.
## 빌드
- dev: go run ./cmd/server
- build: go build -o bin/server ./cmd/server
- test: go test ./...
## 컨벤션
- 에러 처리: errors.Wrap 사용, bare return 금지
- 구조체 메서드: 포인터 리시버 사용
- 테스트: testify 사용, 테이블 드리븐 테스트 선호
@docs/api-spec.md # 외부 파일 import
@docs/db-schema.md # DB 스키마 문서 참조
/memory add "이 프로젝트는 Docker Compose를 사용한다"로 메모리를 추가하면 GEMINI.md에 자동 기록된다. /memory show로 현재 메모리를 확인할 수 있다.
어떤 설정 파일을 선택할까?
상황별 추천
해당 도구의 전용 설정 파일을 사용하라. Claude Code만 쓴다면 CLAUDE.md, Cursor만 쓴다면 .cursor/rules/를 쓰면 된다. 전용 기능을 온전히 활용할 수 있다.
AGENTS.md를 공통 기반으로 두고, 각 도구의 전용 파일에는 해당 도구에서만 가능한 기능(glob 트리거, Skills 등)만 넣어라.
AGENTS.md를 우선 추가하라. 기여자들이 어떤 AI 도구를 쓸지 알 수 없으므로 범용 표준이 최선이다.
조직 레벨 설정이 있는 도구(Copilot Org Instructions, Windsurf System Rules)를 활용해서 전사 표준을 강제할 수 있다.