콘텐츠로 이동

팀 CLAUDE.md

문제

전역 CLAUDE.md에 있는 규칙과 프로젝트 CLAUDE.md에 있어야 할 규칙이 무엇이 다른지 매번 애매합니다. 다 프로젝트 쪽에 몰아넣거나, 반대로 개인 습관을 팀 레포에 그대로 커밋합니다.

추천

개인 워크플로 선호(어떤 도구를 언제 쓰는가, 세션을 어떻게 정리하는가)는 개인 글로벌 CLAUDE.md에 두고, 프로젝트 CLAUDE.md에는 “이 레포에서만 참인 사실과 규칙”만 남깁니다. 그 경계를 넘어야 할 만큼 강제하고 싶은 규칙이면, CLAUDE.md 산문이 아니라 훅이나 스킬로 옮깁니다.

이유

경계를 가르는 기준은 “이 문장이 프로젝트를 바꿔도 여전히 참인가”입니다. 참이면 개인 CLAUDE.md, 아니면 프로젝트 CLAUDE.md입니다.

  • 도구 사용 습관(“worktree 작업 결과는 커밋까지만 하고 원격에는 손대지 않는다”, “브라우저 자동화는 기본 도구를 먼저 쓰고, 특정 조건에서만 다른 도구로 바꾼다”)은 그 사람이 일하는 방식이지, 이 프로젝트가 요구하는 사실이 아닙니다. 프로젝트를 바꿔도 그 사람은 똑같이 일합니다.
  • 반대로 “이 레포의 모노레포 빌드는 영향 범위만 골라 돈다”, “이 API는 폐기 예정이니 쓰지 않는다” 같은 문장은 그 레포를 벗어나면 의미가 없어집니다. 이런 것만 프로젝트 CLAUDE.md에 남깁니다.

개인 습관을 프로젝트 CLAUDE.md에 넣으면 한 사람의 도구 선호를 팀원 전체에 강요하게 됩니다. 반대로 이 레포만의 사실을 개인 CLAUDE.md에 넣으면 그 사람이 없는 세션에서는 아무도 그 규칙을 보지 못합니다.

CLAUDE.md에 쓴다고 습관이 되는 것은 아닙니다. 산문으로 적은 규칙은 조건을 아무리 구체적으로 적어도 지켜지지 않는 경우가 많습니다. 종료 코드로 강제하는 훅은 지켜지는 경우가 많습니다. 자기가 쓴 문서조차 매번 다시 읽지는 않습니다. 팀 CLAUDE.md는 자기가 쓰지 않은 문서를 여러 사람이 지켜야 하므로 산문의 구속력은 이보다 더 약하다고 보는 것이 안전합니다. 반드시 지켜야 하는 규칙이면 처음부터 훅이나 스킬 게이트로 옮깁니다.

실무적으로는 이렇게 나뉩니다.

개인 글로벌 CLAUDE.md 프로젝트 CLAUDE.md
도구를 언제 쓰는가 O 레포마다 강제해야 하면 훅으로
세션을 어떻게 정리하는가 O —
이 레포의 빌드·배포 순서, 금지된 API — O
“이렇게 하지 마라”를 반드시 지켜야 함 훅/스킬로 훅/스킬로

문체·구조 같은 CLAUDE.md 자체의 작성 규칙은 이 페이지가 다루지 않습니다. CLAUDE.md 실전 가이드를 봅니다.

예시

프로젝트 CLAUDE.md에 넣지 않는 것입니다. 개인 선호이므로 개인 전역 쪽에 남깁니다.

# ~/.claude/CLAUDE.md (개인, 전역)
## Worktree 정책
worktree에서 작업한 결과는 원격에 push하거나 PR을 생성하지 않는다.
커밋까지만 하고 종료한다.
## 브라우저 도구 선택
기본은 <도구 A>. 영상 녹화·trace·디바이스 에뮬레이션이 필요할 때만 <도구 B>.

프로젝트 CLAUDE.md에 넣는 것입니다. 이 레포에서만 참이고, 지키지 않으면 다른 사람이 사고를 냅니다.

# .claude/CLAUDE.md (프로젝트, 커밋됨)
## 이 레포의 사실
- 모노레포 pre-commit이 nx affected를 돈다. 원격 캐시가 죽으면
NX_SKIP_NX_CACHE=true를 앞에 붙인다.
- .claude/worktrees/ 는 .gitignore·테스트 러너 exclude
양쪽 모두에 등록돼 있어야 한다.

하지 말 것

개인 도구 선호를 프로젝트 CLAUDE.md에 커밋하기. 팀원 각자 다른 브라우저 자동화 도구나 에디터 워크플로를 쓸 수 있는데, 한 사람의 라우팅 규칙을 레포 전체 기본값으로 만듭니다.

꼭 지켜야 하는 규칙을 산문으로만 적고 끝내기. CLAUDE.md 산문은 읽히더라도 습관이 되지 않는 경우가 많습니다. 반드시 지켜야 하면 훅으로 막거나 스킬 안에 절차로 넣습니다.

같은 사실을 CLAUDE.md·스킬·위키 세 곳에 똑같은 형태로 중복하기. 형태를 다르게 가져가야 드리프트가 났을 때 어느 쪽이 최신인지 판단할 수 있습니다.