triflux 8.2.3 → 8.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +209 -97
  3. package/bin/tfx-doctor-tui.mjs +7 -0
  4. package/bin/tfx-profile.mjs +7 -0
  5. package/bin/tfx-setup-tui.mjs +7 -0
  6. package/bin/triflux.mjs +14 -4
  7. package/hub/intent.mjs +7 -7
  8. package/hub/team/tui.mjs +4 -0
  9. package/hub/workers/delegator-mcp.mjs +18 -18
  10. package/package.json +6 -2
  11. package/scripts/setup.mjs +4 -33
  12. package/scripts/tfx-route.sh +57 -57
  13. package/skills/.omc/state/agent-replay-8f0e10a9-9693-4410-96f5-a6b07e8ed995.jsonl +1 -0
  14. package/skills/.omc/state/idle-notif-cooldown.json +3 -0
  15. package/skills/.omc/state/last-tool-error.json +7 -0
  16. package/skills/.omc/state/subagent-tracking.json +7 -0
  17. package/skills/tfx-analysis/SKILL.md +101 -0
  18. package/skills/tfx-auto-codex/SKILL.md +1 -1
  19. package/skills/tfx-autopilot/SKILL.md +112 -0
  20. package/skills/tfx-autoresearch/SKILL.md +1 -2
  21. package/skills/tfx-autoroute/SKILL.md +184 -0
  22. package/skills/tfx-codex/SKILL.md +2 -2
  23. package/skills/tfx-consensus/SKILL.md +112 -0
  24. package/skills/tfx-debate/SKILL.md +148 -0
  25. package/skills/tfx-deep-analysis/SKILL.md +186 -0
  26. package/skills/tfx-deep-plan/SKILL.md +113 -0
  27. package/skills/tfx-deep-qa/SKILL.md +158 -0
  28. package/skills/tfx-deep-research/SKILL.md +212 -0
  29. package/skills/tfx-deep-review/SKILL.md +91 -0
  30. package/skills/tfx-doctor/SKILL.md +161 -94
  31. package/skills/tfx-find/SKILL.md +123 -0
  32. package/skills/tfx-forge/SKILL.md +183 -0
  33. package/skills/tfx-fullcycle/SKILL.md +195 -0
  34. package/skills/tfx-hub/SKILL.md +1 -1
  35. package/skills/tfx-index/SKILL.md +174 -0
  36. package/skills/tfx-interview/SKILL.md +210 -0
  37. package/skills/tfx-panel/SKILL.md +187 -0
  38. package/skills/tfx-persist/SKILL.md +141 -0
  39. package/skills/tfx-plan/SKILL.md +53 -0
  40. package/skills/tfx-profile/SKILL.md +149 -0
  41. package/skills/tfx-prune/SKILL.md +198 -0
  42. package/skills/tfx-qa/SKILL.md +117 -0
  43. package/skills/tfx-research/SKILL.md +126 -0
  44. package/skills/tfx-review/SKILL.md +51 -0
  45. package/skills/tfx-setup/SKILL.md +160 -101
  46. package/tui/codex-profile.mjs +402 -0
  47. package/tui/core.mjs +236 -0
  48. package/tui/doctor.mjs +327 -0
  49. package/tui/setup.mjs +362 -0
@@ -0,0 +1,187 @@
1
+ ---
2
+ name: tfx-panel
3
+ description: "여러 전문가의 의견이 필요한 복잡한 결정에 사용한다. 'panel', '패널', '전문가 의견', 'expert panel', '다양한 관점', '전문가한테 물어봐' 같은 요청에 반드시 사용. 아키텍처, 보안, 비즈니스 전략 등 전문가 시뮬레이션이 필요할 때 적극 활용."
4
+ triggers:
5
+ - panel
6
+ - 패널
7
+ - 전문가 토론
8
+ - expert panel
9
+ - 전문가 패널
10
+ argument-hint: "<토론 주제>"
11
+ ---
12
+
13
+ # tfx-panel — Virtual Expert Panel Simulation
14
+
15
+ > SuperClaude spec-panel + business-panel 오마주. 실제 전문가 5-10명의 관점을 시뮬레이션하여 다각적 분석.
16
+ > "한 사람의 시야는 좁다. 패널의 시야는 넓다."
17
+
18
+ ## 용도
19
+
20
+ - 아키텍처 설계에서 다관점 검토가 필요할 때
21
+ - 기술 전략 결정 (마이그레이션, 프레임워크 선택, 인프라 전환)
22
+ - 요구사항이 모호하여 여러 전문 분야의 시각이 필요할 때
23
+ - 리팩터링 범위와 방향에 대한 전문가 합의 도출
24
+ - 비즈니스 + 기술 관점을 동시에 고려해야 할 때
25
+
26
+ ## 전문가 풀
27
+
28
+ 주제에 따라 5-10명을 자동 선정한다. 고정 풀이 아니라 주제 맥락에서 최적 전문가를 결정한다.
29
+
30
+ ### 기술 전문가 (예시)
31
+
32
+ | 전문가 | 전문 분야 | 관점 |
33
+ |--------|----------|------|
34
+ | Martin Fowler | 리팩터링, 패턴 | 코드 설계 품질, 기술 부채 |
35
+ | Sam Newman | 마이크로서비스 | 서비스 경계, 분산 시스템 |
36
+ | Kent Beck | TDD, XP | 테스트, 점진적 설계 |
37
+ | Gregor Hohpe | 통합 패턴 | 메시징, 이벤트 아키텍처 |
38
+ | Brendan Burns | 클라우드 네이티브 | 컨테이너, 오케스트레이션 |
39
+
40
+ ### 비즈니스/전략 전문가 (예시)
41
+
42
+ | 전문가 | 전문 분야 | 관점 |
43
+ |--------|----------|------|
44
+ | Michael Porter | 경쟁 전략 | 시장 포지셔닝, 가치 사슬 |
45
+ | Karl Wiegers | 요구사항 공학 | 요구사항 완전성, 우선순위 |
46
+ | Eric Ries | 린 스타트업 | MVP, 검증된 학습 |
47
+ | Marty Cagan | 프로덕트 | 가치, 실현 가능성, 비즈니스 |
48
+
49
+ ## 워크플로우
50
+
51
+ ### Step 0: 패널 도메인 선택
52
+
53
+ AskUserQuestion으로 전문가 패널의 도메인을 선택받는다:
54
+
55
+ ```
56
+ AskUserQuestion:
57
+ "패널 도메인을 선택하세요:"
58
+ 1. 소프트웨어 아키텍처 (Fowler, Newman, Vernon, Evans)
59
+ 2. 보안 (OWASP, Trail of Bits, Schneier)
60
+ 3. 비즈니스 전략 (Porter, Christensen, Drucker)
61
+ 4. DevOps/SRE (Humble, Kim, Forsgren)
62
+ 5. 프론트엔드/UX (Nielsen, Cooper, Krug)
63
+ 6. 직접 구성
64
+ ```
65
+
66
+ 선택된 도메인에 따라 Step 1에서 해당 분야의 전문가를 우선 선정한다.
67
+ "직접 구성"을 선택하면 사용자가 전문가 이름/역할을 직접 지정할 수 있다.
68
+
69
+ ### Step 1: 주제 분석 및 전문가 선정
70
+
71
+ 사용자 입력에서 주제를 파싱하고, 관련 전문 분야를 식별하여 5-10명의 전문가를 선정한다.
72
+
73
+ ```
74
+ 입력: "우리 모놀리스를 마이크로서비스로 전환해야 할까?"
75
+ 분석: {
76
+ topic: "모놀리스 → 마이크로서비스 전환",
77
+ domains: ["아키텍처", "운영", "조직", "비즈니스"],
78
+ selected_experts: [
79
+ { name: "Sam Newman", role: "마이크로서비스 아키텍트", cli: "codex" },
80
+ { name: "Martin Fowler", role: "리팩터링 전문가", cli: "claude" },
81
+ { name: "Gregor Hohpe", role: "통합 패턴 전문가", cli: "gemini" },
82
+ { name: "Michael Porter", role: "전략 분석가", cli: "codex" },
83
+ { name: "Kent Beck", role: "점진적 설계 옹호자", cli: "claude" },
84
+ { name: "Karl Wiegers", role: "요구사항 검증자", cli: "gemini" }
85
+ ]
86
+ }
87
+ ```
88
+
89
+ 모호하면 AskUserQuestion으로 주제 명확화.
90
+
91
+ ### Step 2: 독립 분석 (CLI 분담, Anti-Herding)
92
+
93
+ 전문가를 3개 CLI에 분배하고, 각 CLI가 담당 전문가 관점으로 독립 분석한다. **상호 결과 비공개.**
94
+
95
+ ```
96
+ Claude (Agent, background):
97
+ "당신은 {expert_1.name}({expert_1.role})과 {expert_2.name}({expert_2.role})입니다.
98
+ 주제: {topic}
99
+ 각 전문가의 고유 관점에서 분석하세요.
100
+ JSON: { experts: [{ name, position, reasoning, concerns, recommendation, confidence }] }"
101
+
102
+ Codex (Bash, background):
103
+ codex exec --dangerously-bypass-approvals-and-sandbox --skip-git-repo-check \
104
+ "당신은 {expert_3.name}과 {expert_4.name}입니다. {topic}에 대해 각 전문가 관점으로..."
105
+
106
+ Gemini (Bash, background):
107
+ gemini -y -p \
108
+ "당신은 {expert_5.name}과 {expert_6.name}입니다. {topic}에 대해 각 전문가 관점으로..."
109
+ ```
110
+
111
+ ### Step 3: 패널 토론 시뮬레이션
112
+
113
+ 3개 CLI 결과를 수집한 후, 전문가 간 교차 토론을 시뮬레이션한다:
114
+
115
+ ```
116
+ Claude Opus가 패널 모더레이터 역할:
117
+
118
+ 1. 각 전문가 의견 정리 (합의점 / 분쟁점 식별)
119
+ 2. 분쟁점에 대해 가상 반론 생성:
120
+ "Newman은 서비스 분리를 주장하지만, Fowler는 '모놀리스 우선'을 권고합니다.
121
+ Newman의 반론은? Fowler의 재반론은?"
122
+ 3. 2차 라운드: 반론을 반영한 수정 의견 도출
123
+ ```
124
+
125
+ ### Step 4: 합의 종합
126
+
127
+ ```
128
+ tfx-consensus 프로토콜 적용:
129
+
130
+ 전문가별 최종 입장 교차검증:
131
+ - 과반(50%+) 합의 → "패널 합의"
132
+ - 소수 의견 → "소수 견해" (근거 포함)
133
+ - 대립 → "미해결 쟁점" (양측 근거 병기)
134
+ ```
135
+
136
+ ### Step 5: 최종 패널 보고서
137
+
138
+ ```markdown
139
+ ## 전문가 패널 보고서: {topic}
140
+
141
+ ### 패널 구성
142
+ | # | 전문가 | 역할 | 핵심 입장 |
143
+ |---|--------|------|----------|
144
+ | 1 | Sam Newman | 마이크로서비스 아키텍트 | 점진적 분리 찬성 |
145
+ | 2 | Martin Fowler | 리팩터링 전문가 | 모놀리스 우선 정리 |
146
+ | ... | ... | ... | ... |
147
+
148
+ ### 패널 합의 (Consensus Score: {score}%)
149
+ - [합의 1] — {N}/{total} 합의
150
+ - [합의 2] — {N}/{total} 합의
151
+
152
+ ### 소수 견해
153
+ - {expert}: {dissenting_view} — 근거: {reason}
154
+
155
+ ### 핵심 추천
156
+ {패널 종합 추천}
157
+
158
+ ### 리스크 및 완화 방안
159
+ {전문가들이 식별한 리스크와 대응책}
160
+
161
+ ### 미해결 쟁점
162
+ {패널 내 해소되지 않은 논쟁}
163
+
164
+ ### 다음 단계 (Action Items)
165
+ 1. {action_1}
166
+ 2. {action_2}
167
+ ```
168
+
169
+ ## 토큰 예산
170
+
171
+ | 단계 | 토큰 |
172
+ |------|------|
173
+ | Step 1 (주제 분석 + 선정) | ~2K |
174
+ | Step 2 (3x 독립 분석) | ~15K |
175
+ | Step 3 (패널 토론) | ~8K |
176
+ | Step 4 (합의 종합) | ~2K |
177
+ | Step 5 (보고서) | ~3K |
178
+ | **총합** | **~30K** |
179
+
180
+ ## 사용 예
181
+
182
+ ```
183
+ /tfx-panel "우리 모놀리스를 마이크로서비스로 전환해야 할까?"
184
+ /tfx-panel "React vs Svelte vs Solid for our next frontend"
185
+ /tfx-panel "이 레거시 시스템의 리팩터링 전략"
186
+ /tfx-panel "B2B SaaS 가격 모델: 사용량 기반 vs 티어 기반"
187
+ ```
@@ -0,0 +1,141 @@
1
+ ---
2
+ name: tfx-persist
3
+ description: "작업이 완전히 끝날 때까지 멈추지 않고 반복 실행해야 할 때 사용한다. 'ralph', '끝까지 해', '멈추지 마', 'don't stop', '완료될 때까지', '다 될 때까지 계속' 같은 요청에 반드시 사용. 여러 기준을 모두 충족해야 하는 복잡한 구현 작업에 적극 활용."
4
+ triggers:
5
+ - ralph
6
+ - don't stop
7
+ - 끝까지
8
+ - until done
9
+ - 멈추지 마
10
+ argument-hint: "<완료할 작업 설명>"
11
+ ---
12
+
13
+ # tfx-persist — Tri-Verified Persistence Loop
14
+
15
+ > OMC ralph 오마주. 핵심 차별점: 검증자가 단일 agent가 아니라 **3-CLI consensus**.
16
+ > The boulder never stops — but it stops being wrong.
17
+
18
+ ## 핵심 원리
19
+
20
+ OMC ralph는 단일 verifier(code-reviewer 또는 critic)가 검증한다.
21
+ tfx-persist는 Claude/Codex/Gemini **3자 독립 검증**으로 편향 없는 완료 판단을 보장한다.
22
+
23
+ ## 워크플로우
24
+
25
+ ### Step 1: Goal Definition
26
+
27
+ ```
28
+ 사용자 요청에서 완료 기준(acceptance criteria)을 추출:
29
+ {
30
+ "goal": "JWT 인증 미들웨어 구현",
31
+ "criteria": [
32
+ "로그인 엔드포인트 /api/auth/login 작동",
33
+ "JWT 토큰 발급/검증 로직",
34
+ "보호된 라우트에 미들웨어 적용",
35
+ "refresh 토큰 지원",
36
+ "테스트 커버리지 80%+"
37
+ ]
38
+ }
39
+ ```
40
+
41
+ 자동 추출된 기준을 AskUserQuestion으로 사용자에게 확인받는다:
42
+
43
+ ```
44
+ AskUserQuestion:
45
+ "다음 완료 기준이 맞나요?"
46
+ {추출된 criteria 목록 표시}
47
+ 1. 맞습니다 — 진행
48
+ 2. 수정 필요 — 기준 편집
49
+ 3. 추가 필요 — 기준 추가
50
+ ```
51
+
52
+ - 1번 선택 → Step 2로 진행
53
+ - 2번 선택 → 사용자가 수정할 기준 번호와 내용을 입력, 반영 후 재확인
54
+ - 3번 선택 → 사용자가 추가 기준을 입력, 반영 후 재확인
55
+
56
+ ### Step 2: Execution Loop
57
+
58
+ ```
59
+ WHILE (NOT all criteria verified):
60
+
61
+ 2a. 현재 상태 평가
62
+ - 어떤 기준이 미완료인지 확인
63
+ - 다음 작업 결정
64
+
65
+ 2b. 구현 실행
66
+ - 단순 작업 → Codex exec 직접 실행
67
+ - 복잡 작업 → tfx-auto로 분해 후 실행
68
+ - 파일 수정, 테스트 작성, 빌드 등
69
+
70
+ 2c. 3자 독립 검증 (매 기준 완료 시)
71
+ Claude: "다음 기준이 충족되었는가? 코드를 직접 읽고 판단하라: {criterion}"
72
+ Codex: "다음 기준 충족 여부를 코드 실행/테스트로 검증하라: {criterion}"
73
+ Gemini: "다음 기준 충족 여부를 코드 리뷰로 판단하라: {criterion}"
74
+
75
+ 결과: 2/3 이상 "통과" → 기준 확정
76
+ 1/3만 "통과" → 재작업 필요
77
+ 0/3 "통과" → 즉시 재작업
78
+
79
+ 2d. 진행 보고
80
+ "🪨 Ralph: {완료}/{전체} 기준 충족. 현재: {작업 중인 것}. 다음: {예정}"
81
+
82
+ END WHILE
83
+ ```
84
+
85
+ ### Step 3: Final Verification
86
+
87
+ 모든 기준이 개별 검증을 통과한 후, 전체 통합 검증:
88
+
89
+ ```
90
+ 3자 독립 통합 검증:
91
+ "모든 acceptance criteria가 충족되었는지 전체적으로 검증하라.
92
+ 기준 목록: {criteria}
93
+ 코드를 직접 읽고, 테스트를 실행하고, 회귀 여부를 확인하라."
94
+
95
+ Consensus Score >= 70 → 완료 선언
96
+ Consensus Score < 70 → 미달 항목 재작업 후 재검증
97
+ ```
98
+
99
+ ### Step 4: Deslop Pass (선택적)
100
+
101
+ 검증 통과 후, 변경된 파일에 대해 슬롭 제거:
102
+ ```
103
+ 변경된 파일 목록 → 3자 독립 슬롭 감지 → 합의된 슬롭만 제거 → 회귀 검증
104
+ ```
105
+
106
+ ### Step 5: 완료
107
+
108
+ ```
109
+ 모든 기준 3자 검증 통과 + 통합 검증 통과 → 완료 보고:
110
+
111
+ "🪨 Ralph 완료: {전체}/{전체} 기준 충족 (Consensus Score: {score}%)
112
+ 변경 파일: {count}개
113
+ 테스트: {pass}/{total} 통과
114
+ 검증: Claude ✓ Codex ✓ Gemini ✓"
115
+ ```
116
+
117
+ ## Anti-Stuck 메커니즘
118
+
119
+ ```
120
+ 같은 기준에서 3회 연속 검증 실패 시:
121
+ 1. 접근법 변경 시도
122
+ 2. 변경 후에도 실패 → AskUserQuestion으로 사용자 도움 요청
123
+ 3. 사용자 지시 받은 후 재시도
124
+
125
+ 같은 전체 루프가 5회 반복 시:
126
+ → 강제 진행 상황 보고 + 사용자 판단 요청
127
+ ```
128
+
129
+ ## 토큰 예산
130
+
131
+ 기준당: ~8K (구현 ~3K + 3자검증 ~5K)
132
+ 전체: 기준 수 × 8K + 통합검증 15K
133
+ 예: 5개 기준 → ~55K tokens
134
+
135
+ ## 사용 예
136
+
137
+ ```
138
+ /tfx-persist "JWT 인증 미들웨어 구현. 로그인, 토큰 발급/검증, 리프레시, 테스트 80%+"
139
+ /tfx-persist "이 버그 수정해. PR #42의 모든 코멘트 해결될 때까지"
140
+ /tfx-persist "데이터베이스 마이그레이션 완료. 기존 데이터 무손실, 롤백 가능"
141
+ ```
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: tfx-plan
3
+ description: "구현 계획이 필요할 때 사용한다. '계획 세워줘', 'plan', '플랜', '어떻게 구현하지', '태스크 분해', '작업 순서' 같은 요청에 반드시 사용. 기능 구현 전 영향 범위 파악과 태스크 분해가 필요할 때 적극 활용."
4
+ triggers:
5
+ - plan
6
+ - 계획
7
+ - 플랜
8
+ - 설계
9
+ argument-hint: "<구현할 기능 설명>"
10
+ ---
11
+
12
+ # tfx-plan — Light Implementation Plan
13
+
14
+ > Claude Opus 단독 빠른 계획. 복잡한 합의 없이 즉시 태스크 분해.
15
+
16
+ ## 워크플로우
17
+
18
+ ### Step 1: 요구사항 파싱
19
+ 사용자 입력 + 프로젝트 컨텍스트(PROJECT_INDEX.md 있으면 활용)에서 핵심 추출.
20
+
21
+ ### Step 2: Claude Opus 계획 수립
22
+ ```
23
+ "소프트웨어 아키텍트로서 다음 기능의 구현 계획을 수립하라:
24
+ 기능: {feature}
25
+ 프로젝트 컨텍스트: {context}
26
+
27
+ 출력 형식:
28
+ 1. 영향 범위 (수정할 파일 목록)
29
+ 2. 태스크 분해 (순서대로, 각 태스크에 검증 방법 포함)
30
+ 3. 리스크 및 의존성
31
+ 4. 예상 복잡도 (low/medium/high)"
32
+ ```
33
+
34
+ ### Step 3: 구조화된 계획 출력
35
+ ```markdown
36
+ ## 구현 계획: {feature}
37
+
38
+ ### 영향 범위
39
+ - `src/auth/middleware.ts` — 신규 생성
40
+ - `src/routes/index.ts` — 수정 (라우트 추가)
41
+
42
+ ### 태스크
43
+ 1. [ ] {태스크1} → 검증: {확인 방법}
44
+ 2. [ ] {태스크2} → 검증: {확인 방법}
45
+ 3. [ ] {태스크3} → 검증: {확인 방법}
46
+
47
+ ### 리스크
48
+ - {리스크1}: 완화 방안 — {방안}
49
+
50
+ ### 복잡도: {level}
51
+ ```
52
+
53
+ ## 토큰: ~8K
@@ -0,0 +1,149 @@
1
+ ---
2
+ name: tfx-profile
3
+ description: >
4
+ Codex CLI 프로파일/모델 관리 인터랙티브 UI. tfx-route가 사용하는
5
+ 프로파일 목록 조회, 모델 변경, effort 조정, 추가/삭제를 AskUserQuestion 기반
6
+ 인터랙티브 선택지로 수행합니다.
7
+ Use when: codex profile, codex model, 프로파일 변경, 모델 변경, effort 변경,
8
+ codex 설정, profile manager, 프로파일 관리, 어떤 모델, tfx profile
9
+ triggers:
10
+ - tfx-profile
11
+ argument-hint: "[--list]"
12
+ ---
13
+
14
+ # codex-profile — Codex 프로파일 매니저
15
+
16
+ > Codex CLI 프로파일의 모델/effort를 AskUserQuestion 선택지로 관리합니다.
17
+
18
+ ## 워크플로우
19
+
20
+ ### Step 1: config.toml 읽기 + 현재 상태 표시
21
+
22
+ `~/.codex/config.toml`을 Read 도구로 읽고 프로파일 테이블을 마크다운으로 출력한다:
23
+
24
+ ```
25
+ | 프로파일 | 모델 | Effort |
26
+ |----------|------|--------|
27
+ | fast | gpt-5.3-codex | low |
28
+ | ... | ... | ... |
29
+ ```
30
+
31
+ 기본 모델(top-level `model`)과 기본 effort도 함께 표시.
32
+
33
+ ### Step 2: 작업 선택 (AskUserQuestion)
34
+
35
+ AskUserQuestion으로 메인 메뉴를 제시한다:
36
+
37
+ ```
38
+ question: "어떤 작업을 하시겠습니까?"
39
+ header: "작업"
40
+ options:
41
+ - label: "프로파일 모델 변경"
42
+ description: "기존 프로파일의 모델/effort를 수정"
43
+ - label: "기본 모델 변경"
44
+ description: "top-level default 모델/effort 수정"
45
+ - label: "프로파일 추가"
46
+ description: "새 프로파일 생성"
47
+ - label: "프로파일 삭제"
48
+ description: "기존 프로파일 제거"
49
+ ```
50
+
51
+ ### Step 3: 선택에 따른 세부 플로우
52
+
53
+ #### 프로파일 모델 변경
54
+
55
+ 1. AskUserQuestion으로 프로파일 선택 (현재 프로파일 목록에서 2-4개씩 나눠서, 또는 "Other"로 직접 입력)
56
+ 2. AskUserQuestion으로 모델 선택:
57
+ ```
58
+ question: "모델을 선택하세요"
59
+ header: "Model"
60
+ options:
61
+ - label: "gpt-5.4"
62
+ description: "최신 플래그십"
63
+ - label: "gpt-5.3-codex"
64
+ description: "코딩 특화 (Recommended)"
65
+ - label: "gpt-5.1-codex-mini"
66
+ description: "경량 Spark"
67
+ - label: "o3"
68
+ description: "추론 특화"
69
+ ```
70
+ 3. AskUserQuestion으로 effort 선택:
71
+ ```
72
+ question: "Reasoning Effort 레벨을 선택하세요"
73
+ header: "Effort"
74
+ options:
75
+ - label: "low"
76
+ description: "빠른 응답, 최소 추론"
77
+ - label: "medium"
78
+ description: "균형 잡힌 추론"
79
+ - label: "high"
80
+ description: "깊은 추론"
81
+ - label: "xhigh"
82
+ description: "최대 추론 (느림)"
83
+ ```
84
+ 4. 변경 diff를 preview로 보여주고 Edit 도구로 config.toml 수정
85
+
86
+ #### 기본 모델 변경
87
+
88
+ 위와 동일한 모델/effort 선택 후 top-level `model`, `model_reasoning_effort` 수정.
89
+
90
+ #### 프로파일 추가
91
+
92
+ 1. AskUserQuestion(Other)으로 프로파일 이름 입력
93
+ 2. 모델 선택 → effort 선택
94
+ 3. config.toml 끝에 새 `[profiles.name]` 섹션 추가
95
+
96
+ #### 프로파일 삭제
97
+
98
+ 1. 프로파일 선택
99
+ 2. AskUserQuestion 확인: "정말 삭제하시겠습니까?"
100
+ 3. 해당 섹션 제거
101
+
102
+ ### Step 4: 결과 확인
103
+
104
+ 변경된 config.toml을 다시 읽어 업데이트된 테이블 표시.
105
+ "계속하시겠습니까?" AskUserQuestion → 반복 또는 종료.
106
+
107
+ ## config.toml 수정 규칙
108
+
109
+ - **백업 필수**: 수정 전 원본 내용을 기억해둘 것 (rollback 가능하도록)
110
+ - **프로파일 섹션 형식**: `[profiles.name]\nmodel = "..."\nmodel_reasoning_effort = "..."`
111
+ - **다른 섹션 건드리지 않기**: `[notice]`, `[features]`, `[mcp_servers.*]`, `[projects.*]` 등은 절대 수정 금지
112
+ - **Edit 도구 사용**: old_string → new_string으로 정확한 섹션만 치환
113
+
114
+ ## 참조
115
+
116
+ ### 알려진 모델
117
+
118
+ | 모델 | 용도 |
119
+ |------|------|
120
+ | gpt-5.4 | 최신 플래그십 |
121
+ | gpt-5.3-codex | 코딩 특화 |
122
+ | gpt-5.1-codex-mini | 경량 Spark |
123
+ | o3 | 추론 특화 |
124
+ | o4-mini | 추론 경량 |
125
+
126
+ ### Effort 레벨
127
+
128
+ | 레벨 | 설명 |
129
+ |------|------|
130
+ | low | 빠른 응답, 최소 추론 |
131
+ | medium | 균형 잡힌 추론 |
132
+ | high | 깊은 추론 |
133
+ | xhigh | 최대 추론 (느림) |
134
+
135
+ ### config.toml 경로
136
+
137
+ `~/.codex/config.toml` (`$HOME/.codex/config.toml`)
138
+
139
+ ## 에러 처리
140
+
141
+ | 상황 | 처리 |
142
+ |------|------|
143
+ | config.toml 미존재 | `/tfx-setup` 안내 |
144
+ | 파싱 실패 | 백업 후 수동 수정 안내 |
145
+ | 중복 프로파일명 | 이미 존재함 알림, 기존 편집으로 전환 |
146
+
147
+ ## standalone TUI
148
+
149
+ 터미널에서 직접 실행도 가능: `node tui/codex-profile.mjs` (arrow key 방식)