codex-ask
Codex CLI second opinion 모드. 리뷰 증거 미발급, resume --last 금지, 매번 새 세션으로 독립 관점 확보. brainstorm 반박 / spec sanity / refactor tradeoff 이중 검증에 사용.
- License 许可
- MIT
- 最近更新
- 2026-10-15
- Stars
- ★ 1
- Forks
- 0
01 前言 Front Matter
- name
- codex-ask
- description
- Codex CLI second opinion 모드. 리뷰 증거 미발급, resume --last 금지, 매번 새 세션으로 독립 관점 확보. brainstorm 반박 / spec sanity / refactor tradeoff 이중 검증에 사용.
03 SKILL.md 正文
Codex Ask Skill (Mode B)
1. 목적
Second opinion 전용 — Claude 주 세션의 컨텍스트와 독립적 인 외부 관점을 얻기 위한 스킬. /codex-ask 슬래시 명령으로 호출한다.
대표 사용처:
- brainstorm 반박 — "이 선택지들 중에 숨은 리스크는?" / "Option B 기각이 진짜 맞나?"
- spec sanity check — "이 설계에 기술적 구멍은?" / "이 접근이 over-engineering 은 아닌가?"
- refactor tradeoff 이중 검증 — "이 refactor 가 제 3 시각에서 합리적?"
- Claude 세션 컨텍스트에 오염되지 않은 독립 관점 이 필요한 모든 경우
이 스킬은 리뷰 게이트가 아니다. 리뷰 게이트 (v2 증거 발급) 가 필요하면 /codex-review 를 사용한다.
2. Running a Task
-
사용자 의도 확인 — 무엇에 대한 second opinion 인지, 어떤 관점을 원하는지.
-
모델 / 강도는 단일 출처(
plugins/rein-core/config/codex-models.sh)에서 읽는다 — 분석 역할은 3계층 프로필 중 하나를 질문 성격으로 선택한다. 모델을 사용자에게 묻지 않는다(역할 고정 + tier 는 호출자 판단). 사용자가 강도를 명시하면 그 값을 존중한다(기존 규칙 유지).3계층 프로필 선택
tier 용도 판정 기준 변수 fast 기계적 추출·분류·요약 (판단 여지 낮음) ANALYSIS_FAST_MODEL/ANALYSIS_FAST_EFFORTdefault 일반 second opinion — 판단이 애매하면 이 tier ANALYSIS_DEFAULT_MODEL/ANALYSIS_DEFAULT_EFFORTdeep 고위험·모호 판단, 설계 반박, 보안/게이트 관련 ANALYSIS_DEEP_MODEL/ANALYSIS_DEEP_EFFORT- 호출자(Claude)가 질문 성격으로 tier 를 선택한다. 어느 tier 인지 판단이 안 서면 default.
- ultra 는 기본 미사용 — 사용자가 명시적으로 요청한 경우에만 허용하며, 그 경우에도 도장 미생성(second opinion 본질, §3) 불변.
- legacy alias
ANALYSIS_MODEL/ANALYSIS_EFFORT는 default tier 를 가리키는 하위 호환 참조일 뿐이다 — 신규 호출은 tier 변수를 직접 쓴다.
-
Sandbox 는 항상
--sandbox read-only. Second opinion 은 파일 편집 권한이 불필요하다. -
새
codex exec세션 으로 실행 (resume 금지 — §4 참조):# 모델명은 codex-models.sh 한 곳에서 관리 (모델 rename 시 그 파일만 수정). source "${CLAUDE_PLUGIN_ROOT:-plugins/rein-core}/config/codex-models.sh" # tier 선택: 질문 성격에 따라 FAST / DEFAULT / DEEP 중 하나 (애매하면 DEFAULT). codex exec \ -m "$ANALYSIS_DEFAULT_MODEL" \ --config model_reasoning_effort="$ANALYSIS_DEFAULT_EFFORT" \ --sandbox read-only \ --full-auto \ -C <workdir> -
출력을 Claude 주 컨텍스트에 반영 후, 사용자에게 summary + 필요 시 의사결정 질문으로 요약 보고.
-
추가 질의가 필요하면 또 다른 새 세션 으로 시작. 기존 세션 resume 하지 않는다.
Quick Reference
| Use case | Sandbox mode | Key flags |
|---|---|---|
| Second opinion (초회) | read-only |
--sandbox read-only |
| Second opinion (추가 질의) | read-only |
새 세션, resume 금지 |
| 다른 디렉토리에서 실행 | read-only |
-C <DIR> 추가 |
실행 모드 — Bash 도구로 호출 시 foreground 전용
Bash 도구로 codex exec 를 호출할 때는 foreground + TTY 등가 조건이 반드시 성립해야 한다. 아래는 plugins/rein-core/rules/background-jobs.md 예외 절의 codex 계열 규칙이다. 실패 시 codex 가 sandbox/auth 초기화에서 hang (증상: 네트워크 연결 0개, CPU 0, ~/.codex/sessions/ 에 세션 파일 미생성).
run_in_background: false명시 — Bash 도구의 장기 실행 auto-background 전환을 막는다- timeout 상한:
low ≤120s,medium ≤180s,high ≤300s. 600s harness limit 을 넘어가면 prompt 를 쪼갠다 - 출력은
> <file> 2>&1로 직접 파일에 쓰고Read로 확인한다.| tail -N금지 — EOF 까지 버퍼링되어 부분 출력이 안 보이고 hang 디버깅도 막힌다 - stdin 은
< /dev/null로 명시 close (codex 가 stdin 을 대기하지 않도록)
올바른 호출 예:
source "${CLAUDE_PLUGIN_ROOT:-plugins/rein-core}/config/codex-models.sh"
# tier 는 질문 성격에 따라 선택 (§2 3계층 프로필 선택 표) — 예시는 default tier.
codex exec -m "$ANALYSIS_DEFAULT_MODEL" --config model_reasoning_effort="$ANALYSIS_DEFAULT_EFFORT" \
--sandbox read-only --full-auto \
-C /Users/jihyun/Local_Projects/claude-code-ai-native \
"<prompt>" < /dev/null > /tmp/codex-ask.out 2>&1
# 이후 Read /tmp/codex-ask.out
Hang 감지 시: lsof -p <pid> -i 결과가 비어 있거나 (ps -o %cpu 가 0 인 채 sleep 상태) → kill 후 재호출. 재호출은 동일 조건으로 foreground.
3. 리뷰 증거 / DoD 자발 생성 금지
의도적으로 생성하지 않는다. Second opinion 은 "관점 제공" 이지 "승인 게이트" 가 아니다.
bin/rein issue-evidence code_review ...를 절대 호출하지 않는다 (v2 code_review 증거를 발급하지 않는다).- 다른 어떤 리뷰 marker 도 touch 하지 않는다 (legacy marker 는 Phase 7 웨이브 3 ③-d 로 이미 제거되어 대상 자체가 없다 —
.spec-reviews/*등 존속하는 marker 도 건드리지 않는다). trail/dod/dod-*.md같은 DoD 파일도 자발적으로 생성하지 않는다. DoD 는 주 세션의 작업 기준 문서이며, second opinion 세션이 자동으로 만들면 주 세션 라우팅/승인 흐름을 건너뛰게 된다.
리뷰 게이트가 필요한 경우 (테스트/커밋 통과가 목적) 는 반드시 /codex-review (Mode A) 를 사용한다. 실수로 /codex-ask 결과로 v2 code_review 증거를 발급하면 리뷰 없이 커밋이 통과되어 pre-bash-commit-review-gate.sh(구 pre-bash-test-commit-gate.sh 후속, ③-c 삭제 완료) 의 게이트가 무력화된다. DoD 를 자발 생성하면 pre-edit-discipline-gate.sh(구 pre-edit-dod-gate.sh 후속, ③-b 삭제 완료) 가 요구하는 주 세션 routing 단계가 생략된 채 편집 권한이 생기는 우회 경로가 된다.
4. Resume 금지 규칙
codex exec resume --last 는 절대 사용 금지.
이유: resume 하면 이전 세션의 대화 컨텍스트가 주입되어, 새 질문에 대한 독립 관점 이 이전 논의의 결론이나 가정에 오염된다. Second opinion 의 핵심 가치는 "선입견 없는 별도의 시각" 이므로 매 호출마다 반드시 새 codex exec 세션을 띄운다.
여러 번 질문해야 할 경우에도 각 호출마다 새 세션 — 이전 답변과 연결하려는 목적이면 /codex-review 로 목적 자체를 재정의하거나, Claude 주 세션에서 문맥을 명시적으로 prompt 에 포함해 새 codex-ask 를 띄운다.
Mode 대비
| 항목 | Mode A (/codex-review) |
Mode B (/codex-ask) |
|---|---|---|
| 용도 | 리뷰 게이트 | Second opinion |
| 리뷰 결과 기록 | 검토 대상이 있으면 필수 (v2 code_review 증거 발급) | 절대 금지 |
| Resume --last | 래퍼는 매번 새 세션 (codex-review §7) | 금지 — 매번 새 세션 |
| Sandbox | 상황별 (기본 read-only) | 항상 read-only |
| Fallback | codex 실행 실패 시에만 Sonnet/code-reviewer/human fallback 허용 | same-session Claude fallback 금지. 독립 reviewer 부재 시 degraded / no-second-opinion 으로 명시 |
Fallback 정책 비대칭 이유는 .claude/skills/codex-review/SKILL.md §1 Mode 대비 절 참조. 요지: Mode A 는 검토 대상이 있는 변경이면 v2 증거 발급 자체가 게이트 통과 조건이므로 차순위 reviewer 허용, Mode B 는 "독립 관점" 이 본질이므로 same-session Claude 대체 불가.
5. 전형적 사용 예
5.1 Brainstorm 결론 반박
사용자: "brainstorming 에서 Option B 는 기각됐는데, 진짜 기각이 맞는지 독립 관점으로 반박해줘."
→ /codex-ask 로 새 세션 실행. brainstorm 요약을 prompt 에 포함 (Claude 의 현재 세션 문맥을 독립 세션에 전달). codex 가 Option B 지지 논거 또는 기각 논거의 허점을 제시.
5.2 Spec Sanity Check
사용자: "이 spec 의 X 결정이 실제로 기술적으로 말이 되는지 독립 시각으로 점검해줘."
→ /codex-ask 로 새 세션. spec 의 관련 섹션을 prompt 에 포함. codex 가 숨은 가정·엣지 케이스·기술적 모순을 지적.
5.3 Refactor Tradeoff 이중 검증
사용자: "이 refactor 가 over-engineering 인지 제 3 시각으로 판단해줘."
→ /codex-ask 로 새 세션. 변경 diff + 동기를 prompt 에 포함. codex 가 복잡도 추가 대비 이점·대안 경량 접근·YAGNI 관점에서 평가.
5.4 사용처가 아닌 경우
- 리뷰 게이트 통과가 필요 →
/codex-review(v2 증거 발급 필수 경로) - 이전
/codex-ask답변에 이어서 물어보고 싶음 → 이어서 resume 하지 말고, 새/codex-ask에 이전 답변 요약을 prompt 에 포함 - 구현 편집이 필요 →
/codex-ask아님. workspace-write 가 필요한 작업은 별도 경로
6. Error Handling
codex exec가 non-zero exit → 사용자에게 보고 후 재시도 여부 질의. 폴백 없음 — Second opinion 은 리뷰 게이트가 아니므로 실패해도 작업 차단이 발생하지 않는다.- 모델 거부 감지 (fail-soft): codex 출력에
is not supported/invalid_request_error/model_not_found가 보이면 모델명이 변경된 것이다(codex upstream rename).${CLAUDE_PLUGIN_ROOT:-plugins/rein-core}/config/codex-models.sh에서 사용한 tier 의 변수(ANALYSIS_FAST_MODEL/ANALYSIS_DEFAULT_MODEL/ANALYSIS_DEEP_MODEL중 해당하는 것)를 최신 모델명으로 갱신하도록 사용자에게 안내하고 재시도한다. (second opinion 은 게이트가 아니므로 작업 차단은 없다.)- Same-session Claude fallback 금지: codex 가 실패했을 때 "그럼 Claude 가 직접 second opinion 을 내겠다" 는 경로는 본질 위반. Mode B 의 가치는 주 세션과 독립된 외부 관점이며, same-session Claude 는 정의상 독립 reviewer 가 아니다.
- 차순위 옵션: (a) 시간을 두고 Mode B 재시도 (b) 호출자가 결과 없이 작업을 계속하되 "second opinion 부재" 사실을 의식적으로 인지 (c) 사용자에게 직접 검토 요청. (a)/(b)/(c) 어느 쪽도 v2 증거나 marker 를 만들지 않는다.
- Mode A (
/codex-review) 와의 비대칭: Mode A 는 검토 대상이 있는 변경이면 v2 증거 발급 자체가 게이트 통과 조건이라 codex 실패 시 Sonnet/code-reviewer/human fallback 으로 그 증거를 발급할 수 있다. Mode B 는 증거 발급 경로가 아예 없으므로 fallback 의 동기 자체가 다르다.
- 고위험 플래그는 기본적으로 사용하지 않는다.
/codex-ask는--sandbox read-only고정이므로--sandbox danger-full-access/--full-auto의 위험 조합이 발생하지 않는다. - 출력에 경고나 부분 결과가 포함되면 요약 후
AskUserQuestion으로 다음 질의 방향 확인. - Hang 증상 탐지 (§2 실행 모드 절 참고):
codex프로세스가 수 분 이상 진행 없음 + CPU 0 + 네트워크 연결 0개 → auth/sandbox 초기화 단계에서 멈춤- 체크:
lsof -p <pid> -i결과 비어있으면 API 요청조차 못 보낸 상태.ps -o stat,%cpu,etime -p <pid>로 Sleep 상태 확인 - 대응: kill 후 foreground + stdin close + 직접 파일 출력 형태로 재호출 (
> /tmp/out 2>&1 < /dev/null,run_in_background: false) - 배경: Bash 도구 auto-background 전환 시 stdin 이 unix socket 으로 붙어 codex 초기화 실패. 근거:
plugins/rein-core/rules/background-jobs.md예외 절 +trail/dod/dod-2026-04-22-codex-foreground-policy.md
7. 사용자 안내
Mode B 의 결과를 사용자에게 보고할 때 다음 짧은 형식을 먼저 출력한다 (운영자/디테일 codex 본문은 그 다음에 그대로 이어 붙인다). 형식은 한 문장 또는 두 문장 — 결과 1줄 + 다음 액션 1줄.
Sanity check / 반박 결과 — codex 가 invalid 지적 또는 빠진 변수 짚음:
codex 가 [지적 핵심 — 예: "질문 초안에서 빠진 결정 변수 N개" 또는 "Option B 기각 근거의 허점 1건"] 을 짚어줬어요. [다음 액션 — 질문 재작성 / 결정 재고려 / 사용자 결정 받기].
Sanity check 통과 / 권고 수렴:
codex 가 결론을 인정했습니다. [핵심 권고 한 줄, 있으면]. 다음 단계로 진행하세요.
codex 실행 실패 (No fallback):
codex 가 떠지지 않아 second opinion 을 받지 못했어요. Mode B 는 fallback 없습니다 — 시간을 두고 재시도하거나 사용자가 직접 검토하세요.
이 짧은 안내 후에 기존 codex 본문을 그대로 emit 한다. v2 증거 발급 금지 — Mode B 는 §3 에 따라 어떤 review marker 도 만들지 않는다.
04 同仓库更多 Skills
sample-skill
暂无简介
repo-audit
저장소 전체 상태 점검. 오래된 규칙, 누락 테스트, 비활성 에이전트, trail 일관성 확인.
promote-agent
에이전트 후보를 정식 에이전트로 승격. 사람 승인 이후에만 실행.
pr-review-fixer
PR 리뷰 코멘트를 읽고 수정 사항을 자동으로 적용한다
persona
페르소나 프리셋 선택·해제 + 질문-답변 커스텀 프리셋 생성. "페르소나 골라줘/만들어줘/바꿔줘/꺼줘" 류 요청에서 호출.
parallel-execute
활성 plan 의 `## 실행 전략`(depends_on/mode/scope v2) 을 읽어 의존 위상정렬로 웨이브를 유도하고, 각 웨이브의 독립 edit_only 태스크를 같은 작업 트리에서 서브에이전트로 병렬 실행, mutating·의존 태스크는 순차 실행한다. 부모(메인 세션)가 웨이브 단위로 검증·테스트·커밋. 호스트가 병렬 dispatch 불가 시 순차 fallback 으로 degrade.