Files
dap-was-dapms/docs/codex-workflow.md
koseokmin 58d3014a0f
All checks were successful
Deploy Gateway / deploy (push) Successful in 2m52s
저장소 문서를 다시 추적하고 계약 예제를 복원한다
계약 테스트는 docs/contracts 아래 예제를 golden example로 읽는다.
docs/와 README.md가 ignore되어 있어 예제 파일이 사라졌고 9건이
실패하고 있었다. 문서가 온전했던 마지막 상태(3de052a)에서 복원하고
.gitignore에서 두 항목을 제거한다. 에이전트 산출물인
docs/superpowers/ 제외는 유지한다.

initialize 응답의 capabilities.tools.listChanged를 문서는 true로
적고 있었으나 InitializeHandler는 false를 낸다. 현재 HTTP 단발 응답
transport가 notification을 push할 수 없으므로 false가 맞다. 예제와
architecture.md를 코드에 맞추고, ToolListChangedEvent가 발행되지만
아직 소비되지 않는다는 점과 SSE 도입 시 true로 바꾼다는 조건을
남긴다.

169개 테스트 전부 통과.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 17:16:13 +09:00

61 lines
3.6 KiB
Markdown

# 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`는 만들지 않는다.