Cursor Skills와 Rules 차이, 언제 어떤 걸 쓰나

Cursor Skills와 Rules는 둘 다 에이전트에 지침을 주지만, 역할이 다릅니다. 공식 Skills·Rules 문서 기준으로 짧은 제약·코딩 규범은 Rule, 다단계 절차·워크플로는 Skill에 두는 편이 맞습니다. 가격·플랜 이야기는 없습니다.

이 글은 Notepads 제거 후기를 다시 쓰지 않습니다. 언제 Rule로 두고, 언제 Skill로 옮길지만 결정합니다.

Skills와 Rules는 뭐가 다르나?

한 줄 답: Rules는 매칭·항상 적용으로 프롬프트에 실리는 짧은 규범이고, Skills는 /skill-name·관련 시 발견으로 불러 쓰는 다단계 절차 패키지입니다.

구분RulesSkills
목적짧은 코딩 가이드·제약다단계 워크플로·절차
길이몇 줄~수백 줄보통 더 길고 단계형
적용Always / globs / Intelligent / @rule/skill-name·@skill 또는 관련 시 발견
저장.cursor/rules/*.mdc.cursor/skills/*/SKILL.md (.agents/skills/ 등도 로드)
예“새 파일은 TypeScript”“스테이징 배포: 테스트→빌드→배포→헬스체크”

공식 Skills help의 비교표와 같습니다. 짧은 지시로 충분하면 Rule, 에이전트가 따라갈 반복 프로세스가 필요하면 Skill입니다.

Skill은 SKILL.md frontmatter(name, description, 선택 paths)로 정의하고, 스크립트·references를 둘 수 있습니다. Rule은 .mdc frontmatter(description, globs, alwaysApply)로 언제 실릴지를 정합니다. plain .md만 .cursor/rules에 두면 Rules 시스템에서 무시됩니다.

alwaysApply·globs는 언제 쓰나?

한 줄 답: alwaysApply: true는 모든 채팅에 실을 레포 전역 제약, globs는 해당 경로가 컨텍스트에 있을 때만 붙일 경로 한정 규범, 둘 다 아니면 description 기반 Intelligent 또는 @ 수동입니다.

alwaysApplydescriptionglobs동작
true——항상 포함 (globs·description 무시)
false—있음매칭 파일이 컨텍스트에 있으면 자동 첨부
false있음없음Agent가 description으로 관련 시 끌어옴 (Apply Intelligently)
false없음없음@rule로만 포함

실무 기준:

  1. 시크릿·생성물 금지·응답 언어처럼 매 세션에 필요 → alwaysApply: true (짧게).
  2. src/api/** 에러 스키마처럼 경로 한정 → globs + alwaysApply: false.
  3. 가끔만 쓰는 도메인 지식 → description만 두고 Intelligent.
  4. 일회성 체크리스트 → Rule에 넣지 말고 Skill 또는 @ 파일.

최소 glob Rule 예:

---
description: API route validation and typed errors
globs: src/routes/api/**/*.ts
alwaysApply: false
---

- Validate inputs at the route boundary.
- Return the existing typed error shape.
- Update the nearest unit test before claiming done.

alwaysApply와 globs가 걸린 Rule은 트리거 조건이 Skill과 다르므로 /migrate-to-skills 대상이 아닙니다.

/migrate-to-skills는 무엇을 옮기나?

한 줄 답: Cursor 2.4+ 내장 /migrate-to-skills는 Apply Intelligently형 dynamic rules( alwaysApply: false/미정 그리고 globs 없음)와 슬래시 커맨드만 Skill로 바꿉니다. Always·glob Rule과 User Rules는 남깁니다.

옮기는 것:

  • Dynamic rules — “Apply Intelligently” 설정, 즉 alwaysApply: false(또는 미정)이고 globs가 없는 규칙 → 표준 Skill
  • Slash commands — user·workspace 커맨드 → disable-model-invocation: true Skill (명시 / 호출만)

옮기지 않는 것:

  • alwaysApply: true Rule
  • globs가 있는 Rule
  • 파일시스템에 없는 User Rules

절차:

  1. Agent 채팅에 /migrate-to-skills 입력
  2. 대상 rule·command를 Skill로 변환
  3. .cursor/skills/ 결과를 검토 후, 불필요해진 dynamic rule·커맨드만 정리

한 개만 Skill로 바꾸고 싶으면 /create-skill로 “@my-rule을 skill로”라고 요청한 뒤 원본 Rule을 삭제하는 방식이 안전합니다.

결정 체크리스트:

질문예 →아니오 →
매 채팅·매칭 경로에 짧게 실려야 하나?Rule (alwaysApply / globs)다음 질문
다단계 절차를 재현해야 하나?Skill (SKILL.md)@ 파일·일회 프롬프트
Intelligent-only Rule인데 절차가 길어졌나?/migrate-to-skills 또는 /create-skillRule 유지·짧게 자르기

마무리

Cursor Skills Rules 차이의 핵심은 규범(Rule) vs 절차(Skill) 입니다. alwaysApply·globs는 Rule 쪽 트리거이고, /migrate-to-skills는 dynamic rule·슬래시 커맨드만 Skill로 옮깁니다. Always·glob Rule은 그대로 두고, 길어지는 how-to만 Skill로 빼시면 됩니다. 자세한 내용은 Rules, Skills, Skills help를 참고하시기 바랍니다.

출처