본문으로 바로가기
리옵트 핸드북
리옵트 핸드북
에이전틱 시대의 문서화 혁신

패러다임 전환

왜 문서화가 변해야 하는가AI-readable 문서 설계 원칙AI와 협업하는 문서 작성 프로세스

문서 유형별 실전

프로젝트 규칙 문서문서에서 스킬·플러그인·MCP로에이전트 문서 보안API 문서 & 스펙README & 온보딩 문서아키텍처 결정 기록 (ADR)런북 & 운영 문서사용자 가이드 & 튜토리얼지식기반 (KB) & 내부 위키

운영

문서 유지보수 전략팀 문서화 문화 만들기

부록

템플릿 모음검증 리포트업데이트 내역
핸드북›에이전틱 시대의 문서화 혁신›프로젝트 규칙 문서
한국어English

프로젝트 규칙 문서

AGENTS.md, CLAUDE.md, path-scoped rules를 충돌 없이 설계하는 법

핵심 요약

  • 규칙 파일은 긴 문서 저장소가 아니라 작업 시작 시 읽히는 제어면으로, 프로젝트 고유 규칙만 남깁니다.
  • 공통 지침의 원본은 AGENTS.md로 두고, Claude Code는 CLAUDE.md에서 @AGENTS.md를 import해 드리프트를 막습니다.
  • Codex는 루트→현재 디렉토리 순으로 지침을 합쳐 가까운 디렉토리가 앞 지침을 덮으며, AGENTS.override.md가 우선하고 기본 32 KiB 제한이 있습니다.
  • Claude Code는 하위 CLAUDE.md를 해당 파일을 읽을 때 포함하고, 경로별 규칙은 .claude/rules/에 paths frontmatter로 둡니다.
  • CLAUDE.md는 시작 컨텍스트를 소비하므로 200줄 안팎으로 유지하고 긴 절차는 Skill로 분리합니다.

AI 에이전트가 프로젝트에 들어오면 가장 먼저 "이 저장소에서는 어떻게 일해야 하는가"를 알아야 합니다. 프로젝트 규칙 문서가 그 질문에 답하는 진입점입니다.

2026년 기준으로 규칙 문서는 파일 하나로 끝나지 않고 여러 계층으로 나뉩니다.

  • 여러 에이전트가 공유하는 공통 지침: AGENTS.md
  • Claude Code 전용 시작 지침: CLAUDE.md, CLAUDE.local.md
  • Claude Code의 경로별 규칙: .claude/rules/*.md
  • Codex의 디렉토리별 지침과 override: AGENTS.md, AGENTS.override.md
  • 레거시/도구별 호환 파일: .cursorrules, .windsurfrules

핵심 원칙

규칙 파일은 긴 문서를 쌓아 두는 저장소가 아니라 작업 시작 때 읽히는 제어면입니다. 모든 지식을 넣지 말고, 에이전트가 반드시 지켜야 할 프로젝트 고유 규칙만 남깁니다.

왜 중요한가

AI 에이전트는 매번 제한된 컨텍스트에서 출발합니다. 프로젝트의 컨벤션, 검증 명령, 금지사항, 예외를 모르면 일반적인 관행을 따릅니다. 문제는 "일반적으로 맞는 코드"가 이 프로젝트에서는 틀릴 수 있다는 데 있습니다.

규칙 문서 있음 -> 프로젝트 맥락 이해 -> 올바른 파일 탐색 -> 검증까지 수행
규칙 문서 없음 -> 일반적 추측 -> 컨벤션 위반 -> 리뷰/수정 비용 증가

도구별 규칙 문서 비교

표면주 대상위치현재 권장 용도
AGENTS.mdCodex 및 여러 코딩 에이전트repo root, nested directories공통 프로젝트 지침, 명령어, 금지사항
AGENTS.override.mdCodexCodex home, repo/subdir임시 또는 하위 영역 override
CLAUDE.mdClaude Coderepo root, subdirectories, homeClaude Code가 세션 시작 시 읽는 지침
CLAUDE.local.mdClaude Coderepo root/subdirgitignore 대상 개인·로컬 설정
.claude/rules/*.mdClaude Coderepo .claude/rules/경로·파일 유형별 규칙
.cursorrulesCursorrepo root기존 Cursor 호환. 신규 공통 규칙의 1차 표면으로 두지 않음
.windsurfrulesWindsurfrepo root기존 Windsurf 호환. 핵심 규칙은 공통 파일에서 관리

AGENTS.md 설계

AGENTS.md는 에이전트용 README입니다. 사람용 README에 넣으면 복잡해지는 빌드 절차와 검증 명령, 코딩 규칙, 금지사항을 예측 가능한 자리에 모아 둡니다.

Codex의 로딩 방식

Codex는 시작 시 지침 체인을 만듭니다.

  1. 전역 범위: 기본적으로 ~/.codex에서 AGENTS.override.md가 있으면 그것을 읽고, 없으면 AGENTS.md를 읽습니다.
  2. 프로젝트 범위: Git root 또는 프로젝트 root에서 현재 작업 디렉토리까지 내려오며 각 디렉토리의 지침 파일을 확인합니다.
  3. 같은 디렉토리에서는 AGENTS.override.md가 AGENTS.md보다 우선합니다.
  4. 루트에서 현재 디렉토리 순서로 합쳐지므로, 더 가까운 디렉토리의 지침이 뒤에 와서 앞선 지침을 덮습니다.
  5. 빈 파일은 건너뛰며, 전체 지침 크기는 기본 32 KiB 제한을 받습니다.

그래서 모노레포에서는 루트 AGENTS.md에 전역 원칙을 두고, 패키지나 서비스 디렉토리마다 하위 AGENTS.md나 AGENTS.override.md를 둡니다.

repo/
├── AGENTS.md                  # 전체 저장소 공통 규칙
├── apps/
│   └── web/
│       └── AGENTS.md          # 웹 앱 전용 규칙
└── services/
    └── payments/
        └── AGENTS.override.md # 결제 서비스 override

AGENTS.md 템플릿

# AGENTS.md

## Project
[프로젝트 한 줄 설명. 기술 스택과 실행 환경.]

## Commands
\`\`\`bash
[설치 명령]
[개발 서버 명령]
[타입체크/린트/테스트/빌드 명령]
\`\`\`

## Where to look
| Task | Location | Notes |
|---|---|---|
| [작업] | [경로] | [주의점] |

## Conventions
- [프로젝트 고유 규칙 1]
- [프로젝트 고유 규칙 2]

## Validation
- [변경 후 반드시 실행할 명령]
- [수동 확인이 필요한 항목]

## Do not
- [금지사항 1]
- [금지사항 2]

CLAUDE.md 설계

Claude Code는 AGENTS.md가 아니라 CLAUDE.md를 읽습니다. 저장소가 이미 AGENTS.md를 표준으로 삼고 있다면 CLAUDE.md에서 @AGENTS.md를 import하고 Claude 전용 예외만 덧붙입니다.

# CLAUDE.md

@AGENTS.md

## Claude Code

- 큰 변경은 먼저 계획을 제안한다.
- `src/billing/**` 변경은 담당자 리뷰 없이는 커밋하지 않는다.

Claude Code의 로딩 방식

Claude Code의 메모리/규칙 로딩은 Codex와 다릅니다.

  • 시작 디렉토리에서 위로 올라가며 CLAUDE.md와 CLAUDE.local.md를 읽습니다.
  • 하위 디렉토리의 CLAUDE.md는 시작 시 항상 로드되는 것이 아니라, 해당 디렉토리 파일을 읽을 때 포함됩니다.
  • @path/to/file import를 사용할 수 있으며, 상대 경로는 import가 적힌 파일 기준으로 해석됩니다.
  • CLAUDE.local.md는 개인 로컬 설정용으로 두고 gitignore 처리합니다.
  • 대형 프로젝트는 .claude/rules/로 규칙을 쪼개고, 필요한 경우 paths frontmatter로 파일 유형별 규칙을 둡니다.
  • CLAUDE.md는 세션 시작 컨텍스트를 소비하므로 200줄 안팎을 목표로 하고, 긴 절차는 Skill로 분리합니다.

.claude/rules 예시

repo/
├── CLAUDE.md
└── .claude/
    └── rules/
        ├── testing.md
        ├── security.md
        └── frontend.md
---
paths:
  - "src/api/**/*.ts"
  - "app/api/**/*.ts"
---

# API rules

- 모든 API 입력은 스키마로 검증한다.
- 오류 응답은 표준 `{ code, message }` 형식을 사용한다.
- 변경 후 `pnpm test api`와 `pnpm openapi:check`를 실행한다.

무엇을 어디에 둘 것인가

내용둘 곳이유
프로젝트 개요, 핵심 명령, 금지사항AGENTS.md여러 에이전트가 공유할 공통 지침
Claude Code 전용 선호, import, path-scoped rules 안내CLAUDE.mdClaude Code가 실제로 읽는 표면
경로별 코딩 규칙.claude/rules/*.md, 하위 AGENTS.md전역 파일 비대화 방지
반복 절차Skill필요할 때만 로드하고 스크립트/참고자료를 함께 둠
긴 API/도메인 레퍼런스docs, OpenAPI, MCP Resource규칙 파일 컨텍스트 낭비 방지
개인 로컬 URL, 테스트 계정CLAUDE.local.md, 개인 global instructions저장소에 커밋하면 안 되는 정보
Cursor/Windsurf 호환 규칙.cursorrules, .windsurfrules레거시 호환. 원본은 공통 지침에 둠

좋은 규칙 문서의 구조

필수 섹션

  1. Project — 이 저장소가 무엇인지 5줄 이내
  2. Commands — 설치, 개발, 타입체크, 린트, 테스트, 빌드 명령
  3. Where to look — 작업별 위치 안내 표
  4. Conventions — 프로젝트 고유 코딩·문서·커밋 규칙
  5. Validation — 변경 후 실행할 검증 명령
  6. Do not — 에이전트가 절대 하면 안 되는 행동

Before/After

Before — README와 대화에 규칙이 흩어져 있음:

# My Project

TypeScript REST API입니다.
테스트는 jest를 사용합니다.
가능하면 타입을 명시해주세요.
any는 쓰지 마세요.
PR 전에 테스트를 돌려주세요.

After — 에이전트가 바로 사용할 수 있는 AGENTS.md:

# AGENTS.md

## Project
TypeScript REST API. Yarn Workspaces monorepo.

## Commands
\`\`\`bash
yarn install
yarn dev
yarn test
yarn lint
yarn build
\`\`\`

## Where to look
| Task | Location | Notes |
|---|---|---|
| Route handlers | `src/api/` | Add validation tests |
| Business logic | `src/services/` | Keep DB access out of routes |
| Prisma models | `prisma/schema.prisma` | Run migration check |

## Conventions
- Commit: `<type>: <description>` (`feat`, `fix`, `docs`, `refactor`)
- Types: explicit public types required. Do not use `any`.
- Errors: return `{ code, message }`.

## Validation
- Run `yarn test` after code changes.
- Run `yarn lint` before final response.

## Do not
- Do not commit or push unless the user asks.
- Do not leave `console.log` in production code.
- Do not edit generated files under `dist/`.

AI가 실패하는 패턴

실수실패 이유수정 방법
"깔끔하게 작성" 같은 추상 규칙에이전트마다 해석이 다름린트, 네이밍, 파일 위치를 명시
명령어를 산문으로 설명실행할 명령을 추출하기 어려움코드 블록으로 명령 제공
전역 규칙과 하위 규칙 충돌나중에 로드된 지침이 앞 지침을 덮음override 의도를 명시하고 중복 제거
CLAUDE.md에 긴 절차를 누적시작 컨텍스트를 계속 소비Skill 또는 runbook으로 분리
AGENTS.md와 CLAUDE.md를 따로 복붙드리프트 발생CLAUDE.md에서 @AGENTS.md import
레거시 파일만 유지도구별 동작이 달라짐AGENTS.md를 원본으로 두고 호환 파일은 얇게 유지

AI 프롬프트 예시

이 저장소의 package.json, 디렉토리 구조, 기존 CI, 테스트 명령을 분석해서
AGENTS.md 초안을 작성해줘.

포함할 것:
1. Project: 5줄 이내
2. Commands: 실제 실행 가능한 명령만 코드 블록으로
3. Where to look: 작업별 위치 표
4. Conventions: 이 저장소에서 발견한 고유 규칙
5. Validation: 변경 유형별 검증 명령
6. Do not: 생성 파일, 커밋/푸시, 보안 관련 금지사항

제외할 것:
- TypeScript, React 같은 범용 개념 설명
- README에 이미 충분한 사용자용 설명
- 추측으로 만든 명령어

체크리스트

항목확인
공통 지침의 원본이 AGENTS.md로 정해져 있는가☐
Claude Code용 CLAUDE.md가 @AGENTS.md를 import하거나 의도적으로 분리되어 있는가☐
명령어가 실제 package/script와 일치하는가☐
작업별 위치 안내가 표로 정리되어 있는가☐
검증 명령과 완료 조건이 명시되어 있는가☐
금지사항이 선언적으로 나열되어 있는가☐
긴 절차와 레퍼런스가 Skill/docs/MCP로 분리되어 있는가☐
전역 규칙과 하위 규칙의 충돌이 없는가☐

참고 문서

  • OpenAI Codex: Custom instructions with AGENTS.md
  • AGENTS.md
  • Claude Code: How Claude remembers your project

관련 문서

Ch2. CLAUDE.md 마스터하기

Claude Code 고급 활용 · 프로젝트 지침서의 계층 구조, 모듈형 규칙, @import 활용법

CLAUDE.md 설정

Windows 바이브코딩 초기 세팅 · AGENTS.md와 CLAUDE.md로 프로젝트 맥락을 Claude Code에게 알려줍니다

컨텍스트 관리: 새로운 핵심 역량

개발자 언러닝 · 컨텍스트 윈도우를 작업 기억으로 이해하고, 프로젝트·세션·프롬프트 3계층으로 정보를 나눠 CLAUDE.md와 컨텍스트 예산으로 AI 출력 품질을 끌어올리는 법

Claude Code 첫 실행

Windows 바이브코딩 초기 세팅 · 프로젝트 폴더에서 claude 명령으로 Claude Code를 시작하고, AGENTS.md와 로컬 문서를 기준으로 첫 분석·수정을 요청하며 권한 승인과 종료 방법까지 익힙니다.

왜 문서화가 변해야 하는가

문서의 소비자가 사람에서 코딩 에이전트·RAG·MCP 클라이언트로 확장된 시대에, 읽히는 문서에서 작동하는 agent-operable 문서로 전환해야 하는 이유와 새 평가 기준.

AI와 협업하는 문서 작성 프로세스

소스 스캔→초안→결정적 검증→에이전트 smoke test→소유자 리뷰의 문서 운영 루프

문서에서 스킬·플러그인·MCP로

반복 절차, 배포 단위, 외부 컨텍스트를 에이전트용 표면으로 분리하는 방법

On this page

왜 중요한가도구별 규칙 문서 비교AGENTS.md 설계Codex의 로딩 방식AGENTS.md 템플릿CLAUDE.md 설계Claude Code의 로딩 방식.claude/rules 예시무엇을 어디에 둘 것인가좋은 규칙 문서의 구조필수 섹션Before/AfterAI가 실패하는 패턴AI 프롬프트 예시체크리스트참고 문서