Cursor와 Claude Code 규칙을 심볼릭 링크로 연결하지 말고 생성기를 사용하세요
요약
Cursor와 Claude Code 모두 영속적인 지침(persistent instructions)을 위한 규칙 시스템을 지원하지만, 두 도구는 스키마에 미묘한 비호환성이 존재합니다. 이 글은 그 차이점을 분석하고, 단일 진실 공급원으로부터 두 형식을 동기화하는 코드 생성기를 소개합니다.
핵심 포인트
- Cursor와 Claude Code의 규칙 시스템은 구조적으로 유사하지만 완전히 호환되지 않습니다.
- Cursor는 `globs:`와 `alwaysApply:`를 사용하며, Claude Code는 `paths:` 리스트를 사용합니다.
- 단순히 심볼릭 링크로 연결하는 것은 위험하며, 전용 코드 생성기를 사용하는 것이 안전합니다.
- YAML 파서는 간단한 구조에 초점을 맞추고 필요한 기능만 지원해야 합니다.
만약 같은 저장소에서 Cursor와 Claude Code를 모두 사용한다면, 두 도구 모두 영속적인 지침(persistent instructions)을 위한 rules/ 디렉터리를 지원한다는 것을 아마 알아차렸을 것입니다. 당연한 해결책은 이들을 하나의 디렉터리로 만들고 심볼릭 링크를 걸게 하는 것이지만, 그렇게 하지 마세요. 두 형식은 호환되는 것처럼 보이기에 충분히 겹치면서도, 조용히 실패하기에는 충분히 다릅니다. 본 게시물에서는 정확한 비호환성을 살펴보고, 단일 진실 공급원(single source of truth)으로부터 두 형식을 동기화하는 작은 코드 생성기를 소개합니다.
두 가지 규칙 시스템
두 도구 모두 프로젝트 디렉터리에 YAML 프론트매터가 있는 마크다운 파일을 넣을 수 있게 합니다. 지침은 항상 적용되거나 파일 글로브(file globs)에 한정하여 적용됩니다.
Cursor — .cursor/rules/*.mdc:
---
description: "TS/JS 변경 후 ESLint 실행"
globs: extensions/app/**/*.{ts,tsx,js}
...
Cursor는 규칙의 _유형(type)_을 세 가지 필드의 조합으로부터 파생합니다:
alwaysApply | description | globs | 유형 |
|---|---|---|---|
true | — | — | 항상 적용 (Always) |
| ... | |||
Claude Code — .claude/rules/*.md: |
---
description: Run ESLint after changing TS/JS
paths:
...
Claude Code의 모델은 더 간단합니다. paths: 목록이 있는 규칙은 Claude가 일치하는 파일을 읽을 때만 로드되고, paths:가 없는 규칙은 모든 세션에서 무조건 로드됩니다 (.claude/CLAUDE.md와 동일한 우선순위).
- Cursor: 쉼표로 구분된 문자열 형태의
globs:와alwaysApply:를 사용합니다. - Claude Code:
paths:를 YAML 리스트 형태로 사용하며,alwaysApply옵션이 없습니다.
만약 Claude Code가 Cursor 형식의 파일을 가리키고 있고 해당 파일에 paths: 키가 없다면, 모든 규칙을 항상 활성화된 것으로 간주합니다. 따라서 신중하게 범위를 지정한 API 규칙도 매 세션마다 로드됩니다. 이 실패는 파일이 실제로 읽히기 때문에 눈에 띄지 않습니다. 단지 잘못된 스키마로 해석되고 있을 뿐입니다.
이것이 전체 실험을 하게 만든 함정입니다. 저는 .cursor/rules -> ../.claude/rules와 같이 연결하고, 파일을 Claude Code 형식으로
– 수동으로 작성한 YAML 파서도 괜찮습니다. 왜냐하면 구조가 고정되어 있기 때문입니다. 이러한 프런트매터(frontmatter) 블록은 매우 작고 사용자가 제어할 수 있습니다. 각 파일마다 두 개의 키만 있는 다섯 개의 파일을 위해 YAML 의존성을 가져오지는 마십시오. 하지만 파서가 어떤 것을 지원하는지 (스칼라 description, 리스트 paths) 그리고 그 이상은 아니라는 점에 대해서는 정직하게 유지해야 합니다.
– alwaysApply: false와 globs가 없는 것은 Claude Code에서 동등한 것이 없습니다. Cursor의
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기