지시는 문서가 하고 차단은 설정이 한다 — `.claude/` 여덟 구성물과 프롬프트 7패턴

규칙 파일 한 장 옆에 서는 여덟 개의 구성물을 역할·적용 범위·갱신 주기로 갈라 보고, 회사 단위로 확장하는 5단계 프레임워크와 지시 한 줄을 제대로 쓰는 프롬프트 7패턴까지 잇는다.

첫 편이 규칙 파일 한 장을 다뤘다. 어디에 두면 어디까지 적용되는지, 얼마나 길게 쓸 수 있는지, 무엇을 어떤 순서로 적는지까지다.

그런데 그 파일 하나로는 안 되는 일이 있다. 상세 규정을 다 넣으면 200줄을 넘고, 세션을 넘겨 기억해야 할 것은 사람이 쓸 수 없으며, 무엇보다 문서에 적은 금지는 어겨도 아무 일이 일어나지 않는다. 이 글은 그 세 구멍을 메우는 .claude/ 디렉터리의 여덟 구성물을 보고, 회사 단위로 확장한 5단계 프레임워크를 지나, 지시 한 줄을 제대로 쓰는 프롬프트 7패턴까지 간다.

이 글이 옮긴 원 자료의 작성 기준일은 2026-07-26이다. 디렉터리 경로·설정 키·명령 이름은 그 시점의 것이다.

이 글의 부서별 규칙 예시, 메모리 항목 예시, 업종별 규칙 예시는 원 자료의 실습 예제이며 특정 조직의 실제 운영 사례가 아니다. 개념·용어·판단 프레임 층위에서 읽어야 한다.

용어 정리

첫 편의 용어표에서 이 글이 쓰는 행만 추렸다.

용어정의
CLAUDE.md세션 시작 시 자동 로드되는 마크다운 규칙 파일. 조직이 작성해 AI에게 주는 업무 매뉴얼
Rules.claude/rules/*.md. 상세 규정집. 필요할 때만 참조되어 상시 토큰을 덜 먹는다
Memorymemory/ 또는 MEMORY.md. AI가 세션을 넘어 학습한 결정사항·실수 패턴을 축적하는 저장소
토큰(Token)AI가 텍스트를 처리하는 기본 단위. 영어 1토큰 ≈ 4글자, 한국어 1토큰 ≈ 1~2글자
프롬프트 4요소목적(Goal)·맥락(Context)·제약(Constraints)·형식(Format). 지시 품질 체크리스트
슬래시 커맨드/로 시작하는 명령. .claude/commands/*.md로 커스텀 생성 가능
$ARGUMENTS커스텀 커맨드에서 호출 시 입력값이 주입되는 자리표시자
-p 플래그비대화형(headless) 모드. 한 번 답하고 종료. 스크립트·CI/CD·크론잡의 기본
/clear대화 이력 전체 삭제. CLAUDE.md·memory는 유지
/compact컴팩션. 대화 이력을 요약 압축해 토큰을 회수하는 동작
/context현재 컨텍스트 사용량 분해 표시
MCPModel Context Protocol. 외부 도구 연결 규약. 서버가 많을수록 도구 정의만으로 토큰 소모
SOPStandard Operating Procedure(표준 운영 절차). 구조화 프롬프트 1개 = SOP 1개라는 비유의 근거

.claude/ 배치도 — 여덟 구성물

프로젝트/
├── CLAUDE.md                  # 핵심 요약 (80~120줄, 항상 자동 로드)
└── .claude/
    ├── settings.json          # 팀 공유 정책 (권한·훅·MCP 제어)
    ├── settings.local.json    # 개인 설정 (.gitignore 대상)
    ├── agents/                # 전문가 — 위임 호출 시 실행
    ├── commands/              # 메뉴판 — 슬래시 입력 시 실행
    ├── hooks/                 # 경비실 — 이벤트 발생 시 자동 실행
    ├── rules/                 # 규정집 — 필요할 때 참조
    │   ├── code-style.md
    │   ├── database.md
    │   ├── payments.md
    │   └── security.md
    ├── memory/                # 업무일지 — 세션 간 영속 저장
    └── skills/                # 도구함 — 조건 충족 시 자동 트리거

배치도 첫 줄의 80~120줄은 실무 권장치다. 첫 편에서 본 200줄 준수율 임계와 다른 값이며, 규격이 아니라 권장이다. 이 글 뒤쪽의 5단계 프레임워크에서 같은 값이 다시 나온다.

구성 요소별 역할·범위·갱신 주기

파일/폴더역할(비유)적용 범위실행/로드 타이밍갱신 주기
CLAUDE.md신입 오리엔테이션 가이드세션 전체매 세션 시작 시 자동규칙 변경 시(분기~반기)
rules/*.md규정집해당 주제 작업 시필요할 때 명시적 참조상세 정책 변경 시
memory/업무일지세션 간 누적새 세션 시작 시 참조중요 결정 발생 즉시
agents/전문가위임된 작업호출(Task)될 때역할 신설 시
commands/메뉴판반복 업무슬래시 입력 시반복 업무 발견 시
hooks/경비실도구 사용 전후이벤트 발생 시 자동게이트 정책 변경 시
skills/도구함조건 매칭 작업트리거 조건 충족 시역량 추가 시
settings.json배전반전 세션항상 감시보안 정책 변경 시

「여덟」이 가리키는 집합이 배치도와 이 표에서 서로 다르다. 배치도의 여덟은 .claude/ 안쪽의 항목(settings.json·settings.local.json·agents·commands·hooks·rules·memory·skills)이고, 이 표의 여덟은 settings.local.json 자리에 CLAUDE.md 가 들어온 목록이다. 그런데 CLAUDE.md는 배치도가 그린 대로 .claude/ 바깥, 프로젝트 루트에 있다. 개수만 같고 구성이 다르다는 뜻이다. 원 자료의 배치도와 역할 표가 그대로 이런 구성이라 이 글도 두 표기를 함께 옮겼고, 이 글에서 「여덟 구성물」이라 부를 때는 위 역할 표의 여덟 행 — 규칙 파일 CLAUDE.md 한 장과 그 옆에 서는 .claude/ 항목 일곱 — 을 가리킨다.

여덟 행을 가르는 실질적 기준은 네 번째 열(로드 타이밍)이다 — 무엇이 트리거를 당기는가. 사람의 입력 없이 도구 쪽이 알아서 당기는 것(CLAUDE.md는 "매 세션 시작 시 자동", hooks는 "이벤트 발생 시 자동", settings.json은 "항상 감시"), 사람이 슬래시 입력으로 당기는 것(commands), 작업이 트리거 조건을 충족할 때 당겨지는 것(skills), 다른 작업에 위임될 때 호출되는 것(agents), 필요할 때 명시적으로 참조되는 것(rules), 새 세션이 시작될 때 참조되는 것(memory/)까지 여섯 갈래다. 이렇게 여섯으로 묶는 것은 이 글의 정리이며, 원 자료의 표에는 타이밍 문구만 있고 이 묶음은 없다.

갱신 주기 열은 이 순서와 나란히 가지 않는다. 가장 짧은 값인 memory/의 "중요 결정 발생 즉시"가 셋째 행에 있고, 그 아래 다섯 행은 "역할 신설 시"·"반복 업무 발견 시"처럼 주기가 아니라 사건으로 적혀 있어 애초에 길고 짧음을 비교할 대상이 아니다.

CLAUDE.md vs rules/ — 컨텍스트 효율의 핵심

기준CLAUDE.md.claude/rules/*.md
로드항상 자동필요할 때만
토큰상시 소비참조 시에만 소비
분량100~200줄 권장제한 완화
담을 것프로젝트 개요, MUST/NEVER 절대 규칙, 핵심 명령, 에이전트 목록 요약코딩 스타일 상세, DB 규칙, 결제 처리 규칙, 보안 체크리스트

앞의 세 행이 전부 마지막 행의 근거다. 상시 로드되고 토큰을 계속 먹으니 짧아야 하고, 짧아야 하니 모든 작업에 필요한 것만 남는다.

판단 기준 한 줄: "모든 작업에 필요한가" 면 CLAUDE.md, "특정 작업에만 필요한가" 면 rules/다.

memory/ — 에피소드와 스킬의 물리적 분리

메모리는 두 종류로 나뉜다.

구분형식담는 것성격
에피소드JSONL 로그"언제 무엇을 했다"는 사건 기록시간순 누적, 기계 판독
스킬마크다운"이럴 땐 이렇게 한다"는 노하우재사용 지식, 사람 판독

형식이 갈리는 이유가 마지막 열에 있다. 사건 기록은 기계가 훑어야 하니 구조화된 로그가 되고, 노하우는 사람이 읽고 고쳐야 하니 마크다운이 된다.

자동 메모리는 4타입으로 분류된다.

타입담는 것예시
user사용자 선호도·작업 스타일TypeScript 엄격 모드 선호, 함수형 스타일 우선
project핵심 결정사항·아키텍처·규칙결제 모듈은 Stripe API v3 / 환불은 72시간 이내 정책
feedback과거 피드백에서 학습한 것섹션 핸들러를 양쪽 빌더에 모두 등록하지 않으면 조용한 실패
reference반복 참조하는 설정·스펙·문서 위치Supabase REST 엔드포인트 URL

오른쪽 「예시」 열은 원 자료의 실습 예제다. Stripe API 버전이나 환불 정책 일수 같은 값은 어떤 조직의 실제 규칙이 아니라 타입별로 어떤 문장이 들어가는지를 보여 주는 예시다. 원 자료가 「가상 실습 소재」 라고 이름을 붙여 따로 열거한 목록에 이 표는 들어 있지 않고, 문서 전체를 실습 예제로 규정한 총론에만 걸린다. 타입 구분과 "무엇을 담는가"만 옮겨 쓰면 된다.

네 타입 중 feedback만 성격이 다르다. 나머지 셋은 지금 무엇이 참인지를 적는 칸이고 feedback과거 피드백에서 학습한 것을 적는 칸이라, 시점이 한 칸 뒤로 물러나 있다.

전역 vs 프로젝트 — 2층 건물 구조

구분~/.claude/ 전역프로젝트 .claude/
적용모든 프로젝트 공통해당 프로젝트만
내용한국어 응답, 결론 우선 등 개인·조직 공통 규칙프로젝트 특화 커맨드·에이전트
공유팀원 각자 독립 관리Git에 올려 팀 전체 공유

세 번째 행이 실무에서 문제가 되는 자리다. 전역 설정은 저장소에 올라가지 않으므로 내 화면에서 되는 것이 동료 화면에서 안 될 수 있다 — 이렇게 짚는 것은 이 글의 정리이며, 원 자료가 이 행에 적은 것은 "팀원 각자 독립 관리"와 "Git에 올려 팀 전체 공유"라는 공유 방식뿐이다.

충돌 시 우선순위 규칙은 항목마다 다르다. 이 차이를 헷갈리면 설정이 왜 안 먹는지 못 찾는다.

항목충돌 처리
CLAUDE.mdappend(누적) — 전역과 프로젝트 둘 다 유효
settings.json오버라이드 — 프로젝트가 전역을 덮음
agents/, commands/이름 충돌 시 프로젝트 버전 우선

세 항목이 한 벌로 묶여 로드되면서도 서로 다른 병합 규칙을 쓴다는 것이 요점이다. 문서는 쌓이고 설정은 덮이며 파일은 이름 단위로 교체된다.

한 줄 요약: 전역은 기반, 프로젝트는 특화. 전역이 사라지는 게 아니라 기반 위에 특화가 얹힌다.

실행 흐름 예시

도식을 탭하면 확대해서 볼 수 있습니다

settings.json만 점선으로 붙는다. 흐름의 한 단계가 아니라 흐름 전체에 걸쳐 상시로 감시하는 층이기 때문이다.

회사 단위로 확장하기 — 5단계 프레임워크

3덩어리 7단계가 개발 프로젝트용 골격이라면, 회사 단위로 확장한 것이 5단계 프레임워크다. 순서는 "새 팀원이 첫날 알아야 하는 것"과 일치한다.

단계이름핵심 질문권장 분량
1회사/프로젝트 개요나는 어떤 회사에서 일하는가10~15줄
2기술 스택 & 환경어떤 도구로 어떻게 일하는가15~25줄
3업무 규칙(MUST/NEVER)우리 팀만의 규칙은 무엇인가20~30줄
4워크플로우어떤 순서로 일을 처리하는가15~20줄
5참조 경로자세한 내용은 어디서 찾는가10~15줄

핵심 질문 열이 전부 신입의 1인칭 질문으로 적혀 있다는 점이 이 표의 설계다. 조직도가 아니라 처음 온 사람이 순서대로 궁금해하는 것이 목차가 된다.

전체 목표 분량은 80~120줄. 5단계를 그대로 따르면 이 분량이 자연스럽게 나온다.

80~120줄은 실무 권장치다. 위 다섯 행의 권장 분량을 더하면 70~105줄이고, 여기에 제목·구분선이 붙으면 그 구간에 들어온다. 목표를 먼저 정하고 맞추는 값이 아니라 5단계를 채우면 따라 나오는 값이라는 뜻이다.

MUST와 NEVER를 나누는 이유

원 자료는 AI가 긍정 지시(MUST)와 부정 지시(NEVER)를 분리해 처리할 때 준수율이 높다고 설명한다. "~하지 마세요"만 있으면 무엇을 해야 하는지 모른다.

작성 원칙은 검증 가능성이다.

  • "깔끔하게 작성하세요" — 검증 불가. AI가 범위를 스스로 해석하고, 사고는 그 해석 차이에서 난다.
  • "함수 50줄 이하", "Stripe 금액은 센트 단위 정수" — 검증 가능.

규칙 섹션 템플릿

## 업무 규칙

### MUST (반드시 준수)
- TypeScript strict mode 준수 (any 사용 시 주석으로 사유 명시)
- 모든 DB 쿼리에 행 수준 보안 정책 확인 필수
- 결제 금액은 항상 최소 화폐 단위 정수로 처리 (소수점 금지)
- 환경 변수는 .env.example에 키 이름만 등록 (값 제외)
- 커밋 메시지: Conventional Commits (feat/fix/refactor/docs/chore)
- PR에 테스트 결과 또는 테스트 코드 포함

### NEVER (절대 금지)
- .env* 파일 Git 커밋 금지 (커밋 전 자동 감지 훅 동작 중)
- 결제 시크릿 키 소스 코드 하드코딩 금지
- 프로덕션 DB 직접 마이그레이션 금지 (CI/CD 경유 필수)
- 고객 개인정보(이름/이메일/전화/주소) 로그 출력 금지
- 재고 차감 로직 클라이언트 사이드 처리 금지 (서버 필수)
- console.log 프로덕션 코드 잔존 금지

부서별 특화 규칙 — 조직 단위 확장

같은 CLAUDE.md 안에서 부서별 규칙을 분리하면, 한 조직 안의 여러 역할이 각자의 기준으로 일한다.

부서특화 규칙 예시
마케팅상품 메타 디스크립션 150자 이내, 프로모션 종료일은 타임존까지 명시, 절대적 표현("최저가") 사용 전 법무 확인
CS고객 응대 초안에 개인정보 포함 금지(주문번호만 허용), 환불 답변에 정책 URL 필수, 에스컬레이션 기준 금액 명시
개발DB 스키마 변경은 마이그레이션 파일로 버전 관리, 결제 코드에 웹훅 서명 검증 항상 포함, 배포 전 로컬 검증 필수

이 부서별 배치 사례는 원 자료가 가상 실습 소재로 명시한 것이다. 세 부서의 규칙 문장은 실제로 운영된 정책이 아니라 "부서마다 규칙의 종류가 어떻게 달라지는가"를 보여 주는 예시다. 옮겨 쓸 것은 문장이 아니라 분리 방식이다.

세 행의 규칙이 전부 그 부서가 사고를 낼 수 있는 지점에 붙어 있다. 마케팅은 표현, CS는 개인정보, 개발은 배포다.

규모별·업종별 전략

조직 규모전략핵심 포인트
1~5명단일 CLAUDE.md(80줄 이하)복잡성 불필요, 핵심만
5~30명CLAUDE.md + rules/ 3~5파일모듈화 시작 지점
30~100명3계층 + 부서별 CLAUDE.md거버넌스 구조 도입
100명 이상Enterprise 관리형 + 팀별 격리사용자 변경 불가 정책 필요

규모가 커질 때 늘어나는 것이 규칙의 양이 아니라 계층의 수라는 점이 이 표의 요지다. 마지막 행에서만 성격이 바뀐다 — 앞의 셋은 팀이 스스로 지키는 구조이고, 마지막은 개인이 무력화할 수 없게 만드는 구조다.

업종핵심 NEVER 규칙
이커머스결제 키 하드코딩, 프로덕션 DB 직접 마이그레이션
의료/헬스케어환자 데이터 로그 출력, 외부 API로 건강 데이터 전송
핀테크금융 거래 클라이언트 처리, 계좌번호 로컬 저장
SaaS B2B고객 테넌트 데이터 교차 접근, API 키 이메일 전송
교육미성년자 개인정보 외부 전송, 성적 데이터 무단 공유

다섯 업종의 NEVER가 전부 그 업종에서 사고가 나면 규제나 신뢰가 걸리는 자리를 가리킨다. 업종이 다르면 금지할 항목이 다른 게 아니라, 금지해야 할 만큼 비싼 항목이 다르다.

문서만으로 부족한 지점 — 물리적 차단

CLAUDE.md는 지시이고, settings.json차단이다. 규칙을 어기면 실행 자체가 불가능해지는 층이 따로 필요하다.

{
  "permissions": {
    "allow": ["Bash(pnpm:*)", "Bash(git:*)"],
    "deny": [
      "Bash(rm -rf:*)",
      "Bash(sudo:*)",
      "Bash(DROP TABLE:*)",
      "Bash(cat .env*:*)",
      "Read(.env)",
      "Read(.env.production)"
    ]
  }
}
옵션효과
deny지정 패턴의 도구 실행을 원천 차단
allow개발 필수 도구를 화이트리스트로 선제 허용
allowManagedPermissionRulesOnly: true팀원이 개인 allow를 추가해 deny를 우회하지 못하게 잠금

앞의 두 행은 무엇을 막고 무엇을 열지를 정하고, 셋째 행은 그 결정을 개인이 되돌리지 못하게 만든다. 이 층의 평가 순서와 5단계 설정 계층은 deny가 항상 이긴다 편에서 따로 다뤘다.

훅을 결합하면 감지·경고·기록까지 자동화된다. 예를 들어 PreToolUse(Read)에 민감 파일 접근 감지, PostToolUse(Write)에 시크릿 누출 검사, SessionStart에 현재 브랜치·환경 출력을 건다. 훅이 파일 단위로 어떻게 생겼고 무엇으로 차단하는지는 예외 없이 걸리는 것은 훅뿐이다 편에 있다.

"deny가 많으면 불편하지 않나"라는 반론이 따라온다. 필수 도구를 allow에 명시하면 실제 업무는 막히지 않으며, 막힌다면 그 명령이 정말 필요한지 한 번 더 확인하라는 신호다.

프롬프트 패턴 7가지

7가지는 두 묶음이다. ① 어떤 도구를 쓰든 통하는 4요소, ② Claude Code에서만 되는 기법 3가지.

도식을 탭하면 확대해서 볼 수 있습니다

출발점이 되는 문제 인식은 이것이다. "알아서 해줘"는 AI가 모호함을 무작위로 해석하게 만든다. 100명에게 보내면 100가지 결과가 나온다. 좋은 프롬프트의 기준은 하나의 질문으로 압축된다 — "이 지시를 100명의 AI에게 동시에 보내도 100개 모두 같은 품질이 나올까?"

구조화된 프롬프트 1개 = 표준 업무 절차서(SOP) 1개다.

패턴 1 — 목적(Goal)

항목내용
무엇무엇을 만들어달라는 것인지
구조동사 + 무엇을 + 구체적 수식어
빠지면AI가 엉뚱한 방향의 결과를 만든다. 범위를 크게 잡으면 AI가 범위를 임의로 정한다
언제 강조항상. 4요소 중 유일하게 생략 불가
요령결과물의 형태가 보이는 동사를 쓴다 — "분석해줘" → "비교표로 만들어줘"
(나쁨) 경쟁사 좀 분석해줘
(좋음) 국내 OTT 3사의 요금제·오리지널 편성·이탈률을 비교표 1장으로 정리해줘

패턴 2 — 맥락(Context)

항목내용
무엇왜 필요하고 누가 보는가
구조독자 + 사용 시점/상황 + 현재 우리 상황
빠지면독자에게 안 맞는 톤이 나온다. 가장 많이 빠지는 요소
언제 강조산출물의 수신자가 정해져 있을 때(임원 보고, 외부 제안)
요령핵심만 3~5줄로 압축. 너무 길면 오히려 역효과
(맥락 예시)
- 독자: 경영진 주간 회의 참석자 6명
- 시점: 내주 화요일 예산 재배분 논의 직전
- 상황: 우리는 신규 구독 유입이 2분기 연속 감소 중

패턴 3 — 제약(Constraints)

항목내용
무엇AI가 넘지 말아야 할 선
구조금지 항목의 열거. 부정형으로 명시
빠지면원치 않는 내용이 섞여 들어온다
언제 강조대외 공개물, 법무·규제 리스크가 있는 산출물
요령CLAUDE.md의 NEVER와 같은 원리 — "주의"가 아니라 "금지"로
- 확인되지 않은 수치는 [추정] 표시
- 경쟁사 비방 표현 금지
- "죄송합니다" 반복 사용 금지
- 출처 없는 시장 규모 인용 금지

패턴 4 — 형식(Format)

항목내용
무엇결과물의 모양
구조매체 + 구조 + 분량
빠지면AI가 편한 형태로 내놓아 그대로 쓸 수 없는 결과가 된다
언제 강조산출물을 다른 시스템/문서에 바로 넣어야 할 때
요령"표 형식, A4 1장, 불릿 포인트" / "JSON 출력, 마크다운 구조"처럼 못 박는다

네 표의 「빠지면」 행을 나란히 읽으면 요소별 실패 모양이 다르다는 것이 보인다. 목적이 빠지면 엉뚱한 것이 나오고, 맥락이 빠지면 맞는 내용이 안 맞는 톤으로 나오며, 제약이 빠지면 섞이면 안 될 것이 섞이고, 형식이 빠지면 내용은 맞는데 그대로 못 쓴다.

4요소를 함께 쓸 때 XML 태그 구조가 권장된다. Anthropic 공식 가이드가 강력 추천하는 방식이며, 프롬프트가 복잡할수록 효과가 커진다.

<goal>
(무엇을 만들어달라는가?)
</goal>

<context>
(왜 필요하고 누가 보는가?)
</context>

<constraints>
(하지 말아야 할 것은?)
</constraints>

<output_format>
(어떤 형식으로?)
</output_format>

4요소는 암기할 공식이 아니라 "지시할 때 빠진 게 없나" 체크리스트다. RTF·RISE·CRAFT·R-T-C-O 등 이름은 여러 가지지만 핵심은 동일하다.

패턴 5 — 슬래시 커맨드

항목내용
무엇자주 쓰는 프롬프트를 한 줄 단축키로 저장
구조.claude/commands/{이름}.md 파일 → /{이름}으로 실행. 파일명이 곧 커맨드명
언제같은 구조의 업무가 주 1회 이상 반복될 때
효과Git에 올리면 팀 전체가 같은 품질의 결과를 얻는다 — 프롬프트가 자산이 된다
주의하나의 커맨드 = 하나의 명확한 업무. 단순하게 유지
# .claude/commands/competitor-brief.md 저장 후
/competitor-brief          # 전체 4요소 프롬프트 실행

# 파일명 = 커맨드명
# weekly-report.md → /weekly-report

$ARGUMENTS 자리표시자를 쓰면 매번 달라지는 입력을 받는다.

<!-- .claude/commands/onboarding-email.md -->
다음 고객 정보를 보고 맞춤 온보딩 이메일을 작성해줘.
$ARGUMENTS

작성 규칙:
- 톤: 친근하되 전문적
- 분량: 200단어 이내
- 구조: 환영 인사 → 가치 제안 → CTA
- 업종별 성공 사례 1개 포함
/onboarding-email 업종: IT 서비스, 규모: 50인, 관심사: 업무 자동화

기본 제공 커맨드 중 실무 빈도가 높은 것은 /clear, /compact, /context, /model, /plan, /permissions, /cost, /mcp 여덟 개다.

이 여덟 개의 이름은 시점에 묶인 값이다. 원 자료는 이 목록 자체에 버전 단서를 붙이지 않았다. 다만 문서 말미에서 "도구의 세부 스펙(명령어 이름, 임계값, 옵션)은 버전에 따라 바뀐다" 고 일반론으로 적어 두었고, 이 글은 그 일반 서술을 근거로 위 목록을 원 자료 작성 기준일(2026-07-26)의 스냅숏으로 읽는다. 원 자료가 이 여덟 개를 짚어 버전 결속을 말한 것은 아니다.

패턴 6 — @파일 참조

항목내용
무엇프로젝트 파일 내용을 통째로 컨텍스트에 주입
구조@경로. @를 입력하면 파일 목록이 자동완성된다
범위단일 파일 / 다중 파일 / 폴더 단위(@src/components/) 모두 지원
언제분석 의뢰·코드 리뷰·탐색적 분석 — 결과를 보고 후속 질문이 필요할 때
주의너무 많이 참조하면 속도 저하·비용 증가. 정말 필요한 파일만 고르는 습관
# 단일 파일
@sales_q1.csv 이 매출 데이터를 분석해서 다음을 정리해줘:
1. 월별 매출 트렌드 (증감률 포함)
2. 실적 상위 제품 TOP 3
3. 이상치 확인
4. 표와 요약 코멘트로 정리

# 다중 파일 비교
@sales_q1.csv @sales_q2.csv 1분기와 2분기를 비교 분석해줘.

# 폴더 단위
@src/components/ 이 폴더의 컴포넌트 구조를 분석하고 리팩토링 포인트를 찾아줘.

맥락을 손으로 옮겨 적을 필요가 없다는 점이 본질이다. 이미 파일로 존재하는 맥락은 @로 연결한다. MCP 리소스도 @github:issues/42 형식으로 참조된다.

패턴 7 — 파이프(Pipe)

항목내용
무엇다른 명령의 출력을 AI 입력으로 연결
구조{명령} | claude -p "{지시}". -p는 비대화형 모드
언제데이터 처리·정기 배치·스크립트 자동화 — 사람 개입 없이 돌려야 할 때
확장--output-format json으로 다른 스크립트에 연결, 크론 스케줄러와 결합 시 완전 자동화
# CSV 분석
cat sales_q1.csv | claude -p "전월 대비 10% 이상 변동 항목만 추출하고 원인 가설을 세워줘"

# 결과를 파일로
cat sales_q1.csv | claude -p "월별 매출 요약 리포트 작성해줘" > sales_report.md

# Git 커밋 히스토리 분석
git log --oneline -20 | claude -p "최근 커밋 20개를 카테고리별로 정리해줘"

# 에러 로그 분석
tail -100 error.log | claude -p "가장 빈번한 에러 패턴을 찾고 원인을 추정해줘"

# 파일에서 프롬프트 직접 읽기
claude -p < prompt.txt

@참조 vs 파이프 — 선택 기준

기준@참조파이프
모드대화형비대화형(-p)
후속 질문가능불가(한 번 답하고 종료)
자동화어려움셸 스크립트·크론에 결합 가능
적합 업무분석 의뢰, 코드 리뷰, 탐색정기 배치, 로그 감시, 리포트 생성

네 행이 전부 첫 행에서 파생된다. 대화형이라 후속 질문이 되고, 후속 질문이 된다는 것은 사람이 붙어 있어야 한다는 뜻이라 자동화가 어렵다. 반대쪽은 그 반대다.

다음 편으로

이 글은 규칙 파일 옆에 서는 여덟 구성물을 보고, 그것을 회사 단위로 늘리는 5단계 프레임워크를 지나, 지시 한 줄을 쓰는 7패턴까지 왔다.

관통하는 원칙은 첫 편에서 이어진다. 상시 로드되는 것은 짧게 유지하고 나머지는 조건부로 밀어낸다. rules/skills/commands/도 전부 "필요할 때만 불러온다"는 같은 설계의 다른 구현이다. 그리고 그 위에 한 층이 더 있다 — 문서가 지시할 수 없는 것은 settings.json이 차단한다.

이어지는 다음 편은 지시를 잘 쓰는 문제에서 한 칸 옮겨, 복잡한 업무를 어떻게 나눠 시킬 것인가와 대화가 길어질 때 컨텍스트를 어떻게 관리할 것인가를 본다.