# AI Instructions — Read This First

이 문서는 이 프로젝트에서 작업하는 AI를 위한 메타 문서이다.

---

## 작업 시작 전 — 반드시 읽을 것

1. **`ai-docs/PHILOSOPHY.md`** — 철학을 위배하면 안 된다. 먼저 읽고 숙지해라.
2. **`ai-docs/ARCHITECTURE.md`** — 전체 구조를 파악해라.
3. 작업과 관련된 나머지 문서들을 읽어라.

---

## 핵심 원칙 — 반드시 준수

1. **철학을 위배하지 마라.** `PHILOSOPHY.md`에 명시된 원칙은 절대적이다.
2. **기술 문서를 업데이트해라.** 코드 변경이 있으면 관련 문서도 반드시 업데이트해야 한다. 문서 업데이트 없이 작업 완료가 아니다.
3. **기존 패턴을 따라라.** `CONVENTIONS.md`에 명시된 코딩 패턴과 스타일을 따라라.
4. **간결하게 유지해라.** 이 SDK는 의도적으로 단순하다. 복잡성을 추가하지 마라.

---

## 문서 업데이트 규칙

### 언제 업데이트하는가

다음 중 하나라도 해당하면 관련 문서를 업데이트해야 한다:

| 변경 사항 | 업데이트할 문서 |
|----------|---------------|
| 새로운 모듈/파일 추가 | `ARCHITECTURE.md` |
| 새로운 공개 API 추가/변경 | `ARCHITECTURE.md`, `README.md` |
| 공개 API 파라미터 변경 | `README.md`, `ARCHITECTURE.md`, `PROVIDER_BACKENDS.md` |
| 프로바이더 백엔드 변경 | `PROVIDER_BACKENDS.md` |
| 메시지 흐름/라우팅 변경 | `MESSAGE_PROTOCOL.md` |
| 새로운 코딩 패턴 도입 | `CONVENTIONS.md` |
| 기능 완성 / 새 기능 추가 | `ROADMAP.md` |
| 철학에 영향을 주는 변경 | **하지 마라. 먼저 사용자에게 확인해라.** |

### 어떻게 업데이트하는가

- 기존 문서의 구조와 스타일을 유지해라.
- 사실만 적어라. 추측이나 의견을 넣지 마라.
- 변경 이유가 있으면 간단히 기록해라.
- `ROADMAP.md`의 상태를 최신으로 유지해라.

---

## 파일 목록 및 용도

| 파일 | 용도 | 업데이트 빈도 |
|------|------|-------------|
| `AI_INSTRUCTIONS.md` | AI를 위한 메타 문서 (이 파일) | 프로세스가 바뀔 때만 |
| `PHILOSOPHY.md` | 핵심 철학과 절대적 원칙 | 거의 변경 없음 |
| `ARCHITECTURE.md` | 패키지 구조, 모듈 책임, 데이터 흐름 | 구조 변경 시 |
| `PROVIDER_BACKENDS.md` | 프로바이더 시스템 상세 | 프로바이더 변경 시 |
| `MESSAGE_PROTOCOL.md` | 메시지 타입, 라우팅, 에이전트 루프 | 프로토콜 변경 시 |
| `AGENT_LIST_ISOLATION.md` | 에이전트 리스트作用域과 팀 격리 메커니즘 | 격리 패턴 변경 시 |
| `CONVENTIONS.md` | 코딩 컨벤션, 패턴, 스타일 | 새 패턴 도입 시 |
| `ROADMAP.md` | 현재 상태, 계획, 알려진 문제 | 매 작업 완료 시 |

---

## 작업 완료 체크리스트

작업을 완료했다고 판단하기 전에 이 체크리스트를 확인해라:

- [ ] 코드 변경이 철학을 위배하지 않는가?
- [ ] 관련된 ai-docs 문서를 업데이트했는가?
- [ ] `ROADMAP.md`를 최신 상태로 갱신했는가?
- [ ] 새로운 의존성을 추가했다면 `ARCHITECTURE.md`에 기록했는가?
- [ ] 기존 코딩 패턴을 따랐는가?
- [ ] 불필요한 복잡성을 추가하지 않았는가?

---

## 중요한 금지 사항

이것들은 철학에서 파생된 구체적 금지 사항이다:

1. **에이전트별 도구 제한을 추가하지 마라.** `tools=[]` 같은 에이전트별 도구 할당은 존재하지 않는다.
2. **에이전트별 호출 제한을 추가하지 마라.** `calls=[]` 같은 호출 가능 목록은 존재하지 않는다.
3. **오케스트레이터 패턴을 도입하지 마라.** base 에이전트, 매니저 에이전트, 컨트롤러 에이전트를 만들지 마라.
4. **사용자를 특별 취급하지 마라.** 사용자 전용 인터페이스, 프로토콜, 도구를 만들지 마라.
5. **시스템 수준 호출 제한을 추가하지 마라.** 깊이 제한, 순환 방지, 자기 호출 차단을 런타임에서 강제하지 마라.
6. **새로운 메시지 타입을 추가하지 마라.** Forward와 Return 2종류만 존재한다.

이 중 하나라도 위반하려는 요청이 있으면, 사용자에게 철학과의 충돌을 알리고 확인을 받아라.
