Environment
Environment는 프로젝트의 서술적 지식입니다 — 현재 무엇이 존재하는가. 기술 스택, 소스 구조, 빌드 설정, 도메인 지식, 코드 의존성을 캡처합니다. Genome(규범적 — 어떻게 만들 것인가)과 달리, Environment는 현재 상태를 서술합니다.
2계층 구조
.reap/environment/
├── summary.md # 항상 로딩 (~250줄) — 기술 스택, 소스 구조, 빌드, 테스트
├── domain/ # 도메인 지식 (온디맨드)
├── resources/ # 외부 참조 문서 — API 문서, SDK 스펙 (온디맨드)
├── docs/ # 프로젝트 참조 문서 — 설계 문서, 스펙 (온디맨드)
└── source-map.md # 코드 구조 + 의존성 (온디맨드)계층
| 계층 | 로딩 | 내용 | 제한 |
|---|---|---|---|
| summary.md | 세션 시작 시 항상 로딩 | 기술 스택, 소스 구조, 빌드 설정, 테스트 설정. AI의 기본 이해. | ~250줄 |
| domain/ | 온디맨드 (필요 시 로딩) | 도메인 지식 — 비즈니스 규칙, API 스펙, 인프라 세부사항. | 제한 없음 |
| resources/ | 온디맨드 (필요 시 로딩) | 외부 참조 문서 — API 문서, SDK 스펙, 서드파티 문서. | 제한 없음 |
| docs/ | 온디맨드 (필요 시 로딩) | 프로젝트 참조 문서 — 설계 문서, 스펙, 아키텍처 결정. | 제한 없음 |
| source-map.md | 온디맨드 (필요 시 로딩) | 현재 코드 구조와 의존성 맵. | 제한 없음 |
Environment 불변성
Genome과 마찬가지로 Environment도 Generation 중에 직접 수정되지 않습니다. 변경은 environment-change backlog 항목으로 기록되고 Completion reflect 단계에서 적용됩니다.
변경을 mid-generation에 Environment를 다시 쓰는 대신 backlog에 캡처함으로써, Generation이 안정된 맵 위에서 완료됩니다. 업데이트는 무엇이 구축되었는지의 전체 컨텍스트와 함께 reflect 단계에서 한 번 의도적으로 일어납니다.
로딩 전략
summary.md는 세션 시작 시 항상 로딩됩니다. domain/과 source-map.md는 AI가 특정 작업을 위해 더 깊은 컨텍스트가 필요할 때 온디맨드로 로딩됩니다.
지식 관리
/reap.knowledge를 사용하여 Environment를 검토하고 관리합니다. Completion reflect 단계에서 AI가 자동으로 environment를 갱신하여 Generation 중 이루어진 변경을 반영합니다.
2계층 전략은 컨텍스트 윈도우 효율성(summary.md가 작음)과 깊이(domain/과 source-map.md가 필요 시 사용 가능)를 균형 있게 조율합니다.
