Initial commit

This commit is contained in:
2026-08-05 15:54:25 +09:00
commit a4eb5a580f
168 changed files with 12057 additions and 0 deletions

60
docs/codex-workflow.md Normal file
View File

@@ -0,0 +1,60 @@
# Codex 활용 및 저장소 공개 정책
## 목적과 책임
| 항목 | 소비자 | 저장소 포함 |
|---|---|---:|
| `AGENTS.md` | Codex의 모든 작업 | 예 |
| `.agents/skills/` | 조건에 맞는 Codex 작업 | 예 |
| `.codex/config.toml` | 신뢰된 프로젝트에서의 Codex 실행 환경 | 기본 아니오 |
| `docs/` | 개발자와 리뷰어 | 예 |
| `src/` | 애플리케이션 빌드와 테스트 | 예 |
| `deploy/` | 배포 플랫폼 | Secret이 없을 때만 예 |
| `samples/` | 개발자와 테스트 | 가짜 데이터일 때만 예 |
루트의 `AGENTS.md`, `.agents/`, `.codex/`는 Codex의 표준 탐색 지점이다. 보기 좋게 다른 하위 폴더로 옮기지 않는다. 사람을 위한 설명은 이 문서와 `README.md`에 둔다.
## 일상 작업 흐름
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/<subtree>/AGENTS.md`: 특정 하위 모듈의 명령이나 규칙이 루트와 달라질 때만 추가한다.
- `.agents/skills/<name>/`: 반복되고 안정적인 작업 절차가 생길 때만 추가한다.
- `.codex/hooks/`: 지침과 테스트로 보장할 수 없는 결정적 정책을 강제해야 할 때만 추가한다.
빈 폴더나 자동 누적 `lessons.md`는 만들지 않는다.