# Codex 활용 및 저장소 공개 정책 ## 목적과 책임 | 항목 | 소비자 | 저장소 포함 | |---|---|---:| | `AGENTS.md` | Codex의 모든 작업 | 아니오 | | `.agents/skills/` | 조건에 맞는 Codex 작업 | 아니오 | | `.codex/config.toml` | 신뢰된 프로젝트에서의 Codex 실행 환경 | 아니오 | | `docs/` | 개발자와 리뷰어 | 예 | | `src/` | 애플리케이션 빌드와 테스트 | 예 | | `deploy/` | 배포 플랫폼 | Secret이 없을 때만 예 | | `samples/` | 개발자와 테스트 | 가짜 데이터일 때만 예 | 루트의 `AGENTS.md`, `.agents/`, `.codex/`는 Codex의 표준 탐색 지점이다. 보기 좋게 다른 하위 폴더로 옮기지 않는다. 사람을 위한 설명은 이 문서와 `README.md`에 둔다. 에이전트 지침(`AGENTS.md`, `.agents/`, `.codex/`)은 `.gitignore`가 제외한다. 에이전트 작업 산출물인 `docs/superpowers/`도 마찬가지다. 저장소 문서가 아니므로 반입 대상에 넣지 않는다. **`docs/` 자체는 제외하지 않는다.** `AgentBuilderContractExampleTest`, `ToolBundleContractExampleTest`, `ArchitectureDocumentContractTest`가 `docs/` 아래 계약 예제와 architecture 문서를 **입력으로 직접 읽기** 때문이다. 문서를 저장소 밖에 두면 clean clone에서 이 세 계약 테스트가 입력을 찾지 못한다. 문서와 코드가 함께 검증되도록 같은 저장소에 둔다. 한때 `docs/`를 `.gitignore`에 넣은 적이 있고, 그 상태에서 계약 예제 16개와 `architecture.md`가 사라져 테스트 10건이 깨졌다. 에이전트 산출물만 좁게 제외하고 저장소 문서는 추적한다. ## 일상 작업 흐름 1. 일반 작업은 루트 `AGENTS.md` 규칙을 따른다. 2. JSON-RPC, MCP method, Tool Registry, Tool 실행, trace log, Spring profile, OpenShift 배포를 변경할 때는 `$verify-mcp-server-change`를 명시적으로 호출한다. 3. Skill은 코드와 관련 테스트를 읽고 영향 계약을 확인한 뒤 최소 변경과 Gradle 테스트를 요구한다. 4. 반복 작업이 세 번 이상 안정적으로 반복되면 새 skill 후보로 검토한다. 임시 작업, 일회성 지침, 개인 메모는 skill로 만들지 않는다. 5. 작업 중 발견한 규칙은 재현·검토된 뒤에만 `AGENTS.md`, skill reference, 또는 설계 문서에 반영한다. 예시: ```text $verify-mcp-server-change tools/call의 인자 검증을 변경하고 관련 테스트와 문서를 갱신해 줘. ``` ## Codex 설정 정책 개인 전역 Codex 설정에는 선호 모델, approval policy, sandbox mode, 개인 MCP 서버, 로컬 경로, 인증 정보를 둔다. 이 내용은 저장소에 올리지 않는다. 프로젝트 `.codex/config.toml`은 다음 조건을 모두 충족할 때만 추가하고 Git에 포함한다. - 모든 팀원이 동일하게 적용해야 한다. - 프로젝트 고유의 설정이다. - 비밀정보, 개인 경로, 개인 권한 선호, 개인 MCP 연결이 없다. - 일반 코드 변경처럼 리뷰할 수 있다. 현재 이 프로젝트는 위 조건에 해당하는 공유 Codex 실행 설정이 없으므로 `.codex/config.toml`을 사용하지 않는다. 프로젝트 설정이 필요한 시점에는 팀 검토 후 `.gitignore`의 해당 예외 규칙을 함께 변경한다. ## GitHub 게시 전 점검 1. 기본 공개 범위는 private로 한다. 공개 전환은 조직 정책, 내부 명칭, 배포 정보, 계약 문서, 샘플 데이터 검토 후 별도 결정한다. 2. `AGENTS.md`, `.agents/skills/`, 소스, 테스트, 가짜 샘플, 비밀정보 없는 배포 명세와 문서는 커밋한다. 3. `.env`, 인증서, keystore, Secret manifest, 실제 고객·운영 데이터, 개인 Codex 설정은 커밋하지 않는다. 4. 첫 push 전에 Secret 검색을 실행하고, GitHub에서는 secret scanning, push protection, Dependabot, 기본 브랜치 보호를 활성화한다. 5. 외부 공개가 확정되면 `LICENSE`, `SECURITY.md`, `CONTRIBUTING.md`와 공개용 샘플·문서를 추가한다. ## 구조 확장 기준 - `docs/decisions/`: 장기 설계 결정이 실제로 발생할 때 ADR을 추가한다. - `src//AGENTS.md`: 특정 하위 모듈의 명령이나 규칙이 루트와 달라질 때만 추가한다. - `.agents/skills//`: 반복되고 안정적인 작업 절차가 생길 때만 추가한다. - `.codex/hooks/`: 지침과 테스트로 보장할 수 없는 결정적 정책을 강제해야 할 때만 추가한다. 빈 폴더나 자동 누적 `lessons.md`는 만들지 않는다.