Claude Code와 Codex의 개인 설정 모음
이전 버전은 가벼운 설정을 권장했으나, 에이전트가 담당하는 범위가 넓어지면서 작업 난이도 판단, hook, 증거(evidence), 검토를 통해 품질을 보장하는 메커니즘이 필요해져 방침을 변경했습니다.
Claude Code와 Codex에서 사용할 설정, 규칙, hook, 스킬들을 모았습니다. claude/와 codex/는 동일한 개발 흐름과 스킬셋으로 구성되었으며, codex/AGENTS.md의 내용은 claude/CLAUDE.md와 같습니다.
개발 흐름 (Development Flow)
- 작업 전에 난이도(E/0/1/2/R)를 결정하고
harness-log triage로 기록합니다. 마이그레이션, 승인, 공개 API, 데이터 삭제, 과금, 본번 반영은 레벨 2 이상입니다.
- 조사는
imozuru, research를 사용하며, 기존 코드의 이해는 how, why를 활용합니다.
- 움직여봐야 알 수 있는 구현은
spike-rebuild로 진행하여, 시제품을 만들고 버린 후 다시 만듭니다.
- 설계는
spec으로 진행하고, 승인 조건에 [test], [check], [human] 표시를 합니다. 레벨 1과 2는 playbook의 절차서에 따릅니다.
- 구현은 Claude Code에서
codex 스킬을 통해 Codex(Sol)에게 의존할 수 있습니다 (예: “sol로 구현해줘”와 같이 요청했을 때만 사용됨). 목표, 완료 조건, 범위, 배경, 출력, 중지 조건을 정리한 지시서는 Claude Code (Opus)에 작성하게 합니다. Sol의 보고만으로 완료 처리하지 않고, 차이점(diff)과 테스트 결과는 Claude Code가 스스로 확인합니다.
- 구현 중에는 hook이 위험한 작업을 막고, 끝내기 전에
make check와 증거 파일(.tmp/evidence/<task>/evidence.md)을 확인합니다.
- 코드 변경 후에는
reviewer 서브 에이전트로 검토하고 PR(Pull Request)을 만듭니다. 병합(Merge)은 사람이 수행합니다.
- 지적 사항은
harness-log correction에 기록하며, 같은 실수가 반복되면 correct를 통해 재발을 방지합니다. 기록은 harness-report에서 집계합니다.
자세한 내용은 claude/CLAUDE.md를 참조하십시오.
구성 (Structure)
.
├── README.md
├── LICENSE
...
상세 파일 목록은 MANIFEST.txt를 참조하십시오.
| 도구 | 용도 |
|---|
uv | harness-report 실행 |
| ... | |
사용 방법 (How to Use)
claude/의 내용은 ~/.claude/에, codex/의 내용은 ~/.codex/에 배치합니다. 아래는 이 리포지토리 루트에서 실행하는 예시입니다. 기존 설정이 있다면 먼저 백업을 수행합니다.
cp -a ~/.claude ~/.claude.backup.$(date +%Y%m%d%H%M%S)
cp -a ~/.codex ~/.codex.backup.$(date +%Y%m%d%H%M%S)
아직 존재하지 않는 디렉터리의 백업은 필요 없습니다. 설정할 위치를 만들고, 설정 파일 외의 내용은 복사합니다.
mkdir -p ~/.claude ~/.codex
rsync -a --exclude settings.json claude/ ~/.claude/
rsync -a --exclude config.toml codex/ ~/.codex/
...
claude/settings.json과 codex/config.toml에는 hook, 권한, 모델 등의 설정이 들어 있습니다.
- 처음 사용하는 경우, 각각
~/.claude/settings.json과 ~/.codex/config.toml로 복사합니다.
- 기존 설정이 있는 경우, 내용을 비교하여 필요한 설정을 가져옵니다. 알림(Notification), 테마(Theme), 플러그인(Plugin), MCP 서버, 신뢰하는 프로젝트 등의 설정은 자신의 환경에 맞춰 남겨둡니다.
codex/config.toml의 모델을 사용할 수 없는 환경에서는, model과 default_subagent_model에서 이용 가능한 모델로 변경합니다.
rsync는 오래된 파일을 삭제하지 않습니다. 이전 설정에서 업데이트하는 경우, 불필요하게 남은 파일이 있는지 확인하십시오.
hook
| 이벤트 (Event) | hook | 내용 (Content) |
|---|
| PreToolUse (Bash) | block-dangerous-commands.sh | rm -rf와 같은 되돌릴 수 없는 명령어 차단 |
Codex에서는 pre_tool_use_guard.py가 특권 명령어(sudo 등), 환경 변수 출력(env, printenv), source .env, 그리고 ./.env・./secrets/・~/.ssh/와 같은 경로를 포함하는 명령어를 차단합니다. 이는 명령어 문자열로만 판별하기 때문에, cat .env와 같은 작성 방식은 막을 수 없습니다.
스킬 (Skills)
claude/skills/와 codex/skills/에는 동일한 스킬 세트를 포함하고 있습니다.
| 단계 (Stage) | 스킬 (Skill) | 내용 (Content) |
|---|
| 진행 방법 (Approach) | playbook | 버그 수정, 기능 추가, 리팩토링, 성능 개선, 조사 절차서 |
업데이트 (Update)
설정이나 스킬을 업데이트했다면, 매니페스트(manifest)를 재생성해야 합니다.
find . -type f \
-not -path './.git/*' \
-not -path './.tmp/*' \
...
claude/skills/와 codex/skills/가 동일한 스킬 세트가 되도록 업데이트해 주세요.
라이선스 (License)
이 리포지토리는 MIT 라이선스입니다. Copyright (c) 2025 nokonoko1203.
일부 스킬은 제3자의 MIT 라이선스 코드를 포함합니다. 출처 표시 및 라이선스 조건은 각 스킬 내의 NOTICE.md (NOTICE-pstack.md 포함) 또는 LICENSE를 참조하십시오. 유니코드(Unicode)에서 파생된 데이터에 대해서는 동봉된 UNICODE-LICENSE.txt도 참조해 주십시오.