triflux 8.2.3 → 8.3.0

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.
@@ -1,94 +1,161 @@
1
- ---
2
- name: tfx-doctor
3
- description: >
4
- triflux 진단 및 수리 도구. CLI 미발견, HUD 미표시, 캐시 오류,
5
- 스킬 미설치 문제를 진단하고 자동 수정합니다.
6
- Use when: not working, broken, error, 안 돼, 이상해, 에러, 캐시, reset
7
- triggers:
8
- - tfx-doctor
9
- argument-hint: "[--fix|--reset]"
10
- ---
11
-
12
- # tfx-doctor — triflux 진단 및 수리
13
-
14
- > 뭔가 안 될 때, HUD가 이상할 때, CLI가 안 보일 때 실행하세요.
15
-
16
- ## 사용법
17
-
18
- ```
19
- /tfx-doctor ← 진단만 (읽기 전용)
20
- /tfx-doctor --fix ← 진단 + 자동 수정
21
- /tfx-doctor --reset ← 캐시 전체 초기화
22
- ```
23
-
24
- ## 동작
25
-
26
- ### 기본 모드 (`/tfx-doctor`)
27
-
28
- `triflux doctor`를 실행하여 다음을 진단합니다:
29
-
30
- - tfx-route.sh 설치 상태
31
- - HUD 설치 설정 상태
32
- - Codex/Gemini/Claude CLI 경로 (크로스 셸)
33
- - 스킬 설치 상태
34
- - 플러그인 등록 상태
35
- - MCP 인벤토리 캐시
36
- - CLI 이슈 트래커
37
- - 잔존 팀(orphan teams) 감지 (`~/.claude/teams/`)
38
-
39
- ### 수정 모드 (`/tfx-doctor --fix`)
40
-
41
- 진단 전에 자동 수정을 시도합니다:
42
-
43
- 1. tfx-route.sh, HUD, 스킬 파일 재동기화
44
- 2. 에러/손상된 캐시 파일 정리
45
- 3. 수정 완료 후 전체 진단 실행 → 결과 보고
46
-
47
- ### 초기화 모드 (`/tfx-doctor --reset`)
48
-
49
- HUD 캐시 모든 triflux 관련 캐시를 전체 삭제합니다:
50
-
51
- | 삭제 대상 | 설명 |
52
- |-----------|------|
53
- | claude-usage-cache.json | Claude 사용량 캐시 |
54
- | codex-rate-limits-cache.json | Codex 레이트 리밋 캐시 |
55
- | gemini-quota/session/rpm cache | Gemini 할당량/세션/RPM 캐시 |
56
- | sv-accumulator.json | 절약량 누적 캐시 |
57
- | mcp-inventory.json | MCP 서버 인벤토리 |
58
- | cli-issues.jsonl | CLI 이슈 로그 |
59
- | triflux-update-check.json | 업데이트 확인 캐시 |
60
- | .claude-refresh-lock | 리프레시 파일 |
61
-
62
- 초기화 후 다음 세션에서 캐시가 새로 생성됩니다.
63
-
64
- ## 실행 방법
65
-
66
- ```bash
67
- # 진단만
68
- Bash("triflux doctor")
69
-
70
- # 진단 + 자동 수정
71
- Bash("triflux doctor --fix")
72
-
73
- # 캐시 전체 초기화
74
- Bash("triflux doctor --reset")
75
- ```
76
-
77
- 결과를 사용자에게 보고합니다.
78
-
79
- ## 자동 제안 트리거
80
-
81
- 사용자가 다음과 같이 말하면 스킬 실행을 고려하세요:
82
-
83
- - "HUD가 보여" / "HUD 이상해" / "상태줄이 안 나와"
84
- - "codex/gemini가 돼" / "CLI 안 됨"
85
- - "캐시 초기화" / "리셋" / "reset"
86
- - "triflux 돼" / "뭔가 안 돼" / "에러"
87
-
88
- ## 에러 처리
89
-
90
- | 상황 | 처리 |
91
- |------|------|
92
- | 캐시 디렉토리 없음 | 정상 — 삭제할 파일 없음 보고 |
93
- | 파일 삭제 권한 없음 | 수동 삭제 안내 |
94
- | --fix 후에도 이슈 남음 | Codex/Gemini 설치는 수동 필요 안내 |
1
+ ---
2
+ name: tfx-doctor
3
+ description: >
4
+ triflux 진단 및 수리 도구. AskUserQuestion 기반 인터랙티브 선택지로
5
+ CLI 미발견, HUD 미표시, 캐시 오류, 스킬 미설치 등을 진단하고 자동 수정합니다.
6
+ Use when: not working, broken, error, 안 돼, 이상해, 에러, 캐시, reset, doctor
7
+ triggers:
8
+ - tfx-doctor
9
+ argument-hint: "[--fix|--reset]"
10
+ ---
11
+
12
+ # tfx-doctor — triflux 진단 및 수리
13
+
14
+ > 뭔가 안 될 때, HUD가 이상할 때, CLI가 안 보일 때 실행하세요.
15
+
16
+ ## 워크플로우
17
+
18
+ ### Step 1: 모드 선택 (AskUserQuestion)
19
+
20
+ 인자 없이 호출된 경우 모드를 선택한다:
21
+
22
+ ```
23
+ question: "어떤 진단 모드를 실행하시겠습니까?"
24
+ header: "모드"
25
+ options:
26
+ - label: "진단 (Diagnose)"
27
+ description: "읽기 전용 전체 검사 — 아무것도 수정하지 않음"
28
+ - label: "수정 (Fix)"
29
+ description: "파일 동기화 + 캐시 정리 후 진단 실행"
30
+ - label: "캐시 관리 (Cache)"
31
+ description: "캐시 파일별 상태 조회, 선택적 삭제"
32
+ - label: "전체 초기화 (Reset)"
33
+ description: "모든 캐시 삭제 + 재생성 (위험)"
34
+ ```
35
+
36
+ `--fix`, `--reset` 인자가 있으면 바로 해당 모드로 실행.
37
+
38
+ ### Step 2: 모드별 실행
39
+
40
+ #### 진단 모드
41
+
42
+ ```bash
43
+ Bash("triflux doctor --json")
44
+ ```
45
+
46
+ JSON 결과를 파싱하여 마크다운 테이블로 표시:
47
+
48
+ ```
49
+ | 항목 | 상태 | 비고 |
50
+ |------|------|------|
51
+ | tfx-route.sh | | v2.0 |
52
+ | HUD | ✅ | 설치됨 |
53
+ | Codex CLI | | found |
54
+ | Gemini CLI | | 미설치 (선택) |
55
+ | ... | ... | ... |
56
+ ```
57
+
58
+ 이슈가 발견되면 AskUserQuestion:
59
+ ```
60
+ question: "N개 이슈가 발견되었습니다. 자동 수정을 시도하시겠습니까?"
61
+ header: "수정"
62
+ options:
63
+ - label: "자동 수정 실행 (Recommended)"
64
+ description: "triflux doctor --fix 실행"
65
+ - label: "건너뛰기"
66
+ description: "수정 없이 결과만 확인"
67
+ ```
68
+
69
+ #### 수정 모드
70
+
71
+ ```bash
72
+ Bash("triflux doctor --fix")
73
+ ```
74
+
75
+ 결과를 보고한다.
76
+
77
+ #### 캐시 관리
78
+
79
+ `~/.claude/cache/` 디렉토리의 캐시 파일들을 Read/Glob으로 조회:
80
+
81
+ | 캐시 파일 | 설명 |
82
+ |-----------|------|
83
+ | claude-usage-cache.json | Claude 사용량 |
84
+ | codex-rate-limits-cache.json | Codex 레이트 리밋 |
85
+ | gemini-quota-cache.json | Gemini 쿼터 |
86
+ | sv-accumulator.json | 절약량 누적 |
87
+ | mcp-inventory.json | MCP 서버 인벤토리 |
88
+ | cli-issues.jsonl | CLI 이슈 로그 |
89
+ | triflux-update-check.json | 업데이트 체크 |
90
+
91
+ 존재하는 캐시 파일 목록과 크기를 테이블로 표시 후 AskUserQuestion:
92
+
93
+ ```
94
+ question: "어떻게 삭제하시겠습니까?"
95
+ header: "삭제"
96
+ options:
97
+ - label: "전체 삭제"
98
+ description: "모든 캐시 파일 삭제"
99
+ - label: "에러 캐시만 삭제"
100
+ description: "파싱 에러가 있는 파일만 삭제"
101
+ - label: "선택 삭제"
102
+ description: "파일 하나씩 선택하여 삭제"
103
+ - label: "취소"
104
+ description: "삭제하지 않음"
105
+ ```
106
+
107
+ "선택 삭제" 시 각 파일에 대해 AskUserQuestion으로 삭제 여부 확인.
108
+
109
+ #### 전체 초기화
110
+
111
+ 위험 확인:
112
+ ```
113
+ question: "전체 캐시를 초기화하시겠습니까? 다음 세션에서 재생성됩니다."
114
+ header: "확인"
115
+ options:
116
+ - label: "초기화 실행"
117
+ description: "모든 캐시 삭제 + MCP/사용량 캐시 재생성"
118
+ - label: "취소"
119
+ description: "아무것도 하지 않음"
120
+ ```
121
+
122
+ 확인 시:
123
+ ```bash
124
+ Bash("triflux doctor --reset")
125
+ ```
126
+
127
+ ### Step 3: 후속 조치
128
+
129
+ 실행 완료 후 AskUserQuestion:
130
+ ```
131
+ question: "다른 작업을 하시겠습니까?"
132
+ header: "계속"
133
+ options:
134
+ - label: "다른 모드 실행"
135
+ description: "진단/수정/캐시/초기화 메뉴로 돌아감"
136
+ - label: "종료"
137
+ description: "doctor 종료"
138
+ ```
139
+
140
+ ## 진단 항목
141
+
142
+ - tfx-route.sh 설치 상태
143
+ - HUD 설치 및 설정 상태
144
+ - Codex/Gemini/Claude CLI 경로 (크로스 셸)
145
+ - Codex Profiles (필수 프로파일 존재 여부)
146
+ - 스킬 설치 상태
147
+ - 플러그인 등록 상태
148
+ - MCP 인벤토리 캐시
149
+ - 잔존 팀(orphan teams) 감지
150
+
151
+ ## 에러 처리
152
+
153
+ | 상황 | 처리 |
154
+ |------|------|
155
+ | 캐시 디렉토리 없음 | 정상 — 삭제할 파일 없음 보고 |
156
+ | 파일 삭제 권한 없음 | 수동 삭제 안내 |
157
+ | --fix 후에도 이슈 남음 | Codex/Gemini 설치는 수동 필요 안내 |
158
+
159
+ ## standalone TUI
160
+
161
+ 터미널에서 직접 실행도 가능: `node tui/doctor.mjs` (arrow key 방식)
@@ -36,7 +36,7 @@ Bash("bash ~/.claude/scripts/tfx-route.sh {에이전트} '{hub 컨텍스트 +
36
36
 
37
37
  # codex 직접 호출 시 — 반드시 exec 서브커맨드 포함
38
38
  Bash("codex exec --dangerously-bypass-approvals-and-sandbox --skip-git-repo-check '{작업}'")
39
- Bash("codex --profile xhigh exec --dangerously-bypass-approvals-and-sandbox --skip-git-repo-check '{작업}'")
39
+ Bash("codex --profile gpt54_xhigh exec --dangerously-bypass-approvals-and-sandbox --skip-git-repo-check '{작업}'")
40
40
  # ↑ --profile은 exec 앞에, --skip-git-repo-check은 exec 뒤에
41
41
 
42
42
  # Claude 네이티브 (탐색/검증)
@@ -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 방식)
@@ -1,101 +1,160 @@
1
- ---
2
- name: tfx-setup
3
- description: triflux 초기 설정 및 진단을 수행합니다.
4
- triggers:
5
- - tfx-setup
6
- argument-hint: "[doctor]"
7
- ---
8
-
9
- # tfx-setup — triflux 초기 설정 및 진단
10
-
11
- > 설치 후 최초 1회 실행 권장. HUD 설정, CLI 확인, 전체 진단을 수행합니다.
12
-
13
- ## 사용법
14
-
15
- ```
16
- /tfx-setup
17
- /tfx-setup doctor ← 진단만 실행
18
- ```
19
-
20
- ## 동작
21
-
22
- ### 기본 모드 (`/tfx-setup`)
23
-
24
- 1. **파일 동기화** `triflux setup` 실행
25
- 2. **HUD 설정** `settings.json`에 statusLine 자동 등록
26
- 3. **CLI 진단** — `triflux doctor` 실행
27
- 4. **결과 보고** 설정 상태 요약
28
-
29
- ### 진단 모드 (`/tfx-setup doctor`)
30
-
31
- `triflux doctor`만 실행하고 결과를 보고합니다.
32
-
33
- ## 실행 방법
34
-
35
- ### Step 1: 파일 동기화
36
-
37
- ```bash
38
- Bash("triflux setup")
39
- ```
40
-
41
- ### Step 2: HUD 설정 확인 및 적용
42
-
43
- `~/.claude/settings.json`을 읽어 `statusLine` 설정을 확인합니다.
44
-
45
- **statusLine이 없거나 hud-qos-status.mjs를 가리키지 않는 경우:**
46
-
47
- ```javascript
48
- // settings.json 추가할 statusLine 설정
49
- {
50
- "statusLine": {
51
- "type": "command",
52
- "command": "\"<NODE_PATH>\" \"<HOME>/.claude/hud/hud-qos-status.mjs\""
53
- }
54
- }
55
- ```
56
-
57
- - `<NODE_PATH>`: `node -e "console.log(process.execPath)"` 결과
58
- - `<HOME>`: `~` 또는 홈 디렉토리 절대 경로
59
- - Windows: 경로에 공백이 있으면 큰따옴표로 감싸기
60
- - **기존 statusLine이 있으면 덮어쓰기 전 사용자에게 확인**
61
-
62
- Read 도구로 `~/.claude/settings.json`을 읽고, Edit 도구로 statusLine을 추가/수정합니다.
63
-
64
- ### Step 3: CLI 진단
65
-
66
- ```bash
67
- Bash("triflux doctor")
68
- ```
69
-
70
- ### Step 4: 결과 보고
71
-
72
- ```markdown
73
- ## tfx-setup 완료
74
-
75
- | 항목 | 상태 |
76
- |------|------|
77
- | tfx-route.sh | ✅ v2.0 |
78
- | HUD (hud-qos-status.mjs) | ✅ v1.7 |
79
- | HUD 설정 (settings.json) | ✅ statusLine 등록됨 |
80
- | Codex CLI | ✅ / ⚠️ 미설치 (선택) |
81
- | Gemini CLI | ✅ / ⚠️ 미설치 (선택) |
82
- | 스킬 | N개 설치됨 |
83
-
84
- ### 다음 단계
85
- - Codex 미설치 시: `npm install -g @openai/codex`
86
- - Gemini 미설치 시: `npm install -g @google/gemini-cli`
87
- - 세션 재시작하면 HUD가 표시됩니다
88
- ```
89
-
90
- ## 에러 처리
91
-
92
- | 상황 | 처리 |
93
- |------|------|
94
- | `triflux: command not found` | `npm install -g triflux` 안내 |
95
- | `settings.json` 파싱 실패 | 백업 생성 후 새로 작성 |
96
- | 기존 statusLine이 다른 HUD | 사용자에게 덮어쓸지 확인 |
97
- | node.exe 경로에 공백 | 큰따옴표로 감싸기 |
98
-
99
- ## Troubleshooting
100
-
101
- 문제 발생 시 `/tfx-doctor` 실행. (`--fix` 자동 수정, `--reset` 캐시 초기화)
1
+ ---
2
+ name: tfx-setup
3
+ description: >
4
+ triflux 초기 설정 및 진단. AskUserQuestion 기반 인터랙티브 위저드로
5
+ 파일 동기화, HUD 설정, Codex 프로파일, CLI 진단, MCP 확인을 수행합니다.
6
+ Use when: setup, 설정, 설치, install, 초기화, 처음, 시작, wizard
7
+ triggers:
8
+ - tfx-setup
9
+ argument-hint: "[doctor]"
10
+ ---
11
+
12
+ # tfx-setup — triflux 초기 설정 위저드
13
+
14
+ > 설치 후 최초 1회 실행 권장. HUD 설정, CLI 확인, 전체 진단을 수행합니다.
15
+
16
+ ## 워크플로우
17
+
18
+ ### Step 1: 모드 선택 (AskUserQuestion)
19
+
20
+ ```
21
+ question: "어떤 설정 모드를 실행하시겠습니까?"
22
+ header: "모드"
23
+ options:
24
+ - label: "전체 설정 (Recommended)"
25
+ description: "5단계 순서 실행: 동기화 → HUD 프로파일 CLI MCP"
26
+ - label: "단계별 선택"
27
+ description: "필요한 단계만 골라서 실행"
28
+ - label: "현재 상태 확인"
29
+ description: "설정 없이 진단만 수행"
30
+ ```
31
+
32
+ `doctor` 인자가 있으면 바로 `triflux doctor` 실행.
33
+
34
+ ### Step 2: 전체 설정 (5단계)
35
+
36
+ 각 단계를 순서대로 실행하며 결과를 보고한다.
37
+
38
+ #### 단계 1: 파일 동기화
39
+
40
+ ```bash
41
+ Bash("triflux setup")
42
+ ```
43
+
44
+ 스크립트/HUD/스킬을 `~/.claude/`에 배포. 결과 표시.
45
+
46
+ #### 단계 2: HUD 설정
47
+
48
+ `~/.claude/settings.json`을 Read 도구로 읽어 `statusLine` 확인.
49
+
50
+ - statusLine 이미 `hud-qos-status.mjs`를 가리키면 → ✅ 표시
51
+ - statusLine이 없으면 → AskUserQuestion:
52
+ ```
53
+ question: "HUD statusLine을 설정하시겠습니까?"
54
+ header: "HUD"
55
+ options:
56
+ - label: "설정 (Recommended)"
57
+ description: "hud-qos-status.mjs를 statusLine으로 등록"
58
+ - label: "건너뛰기"
59
+ description: "나중에 수동 설정"
60
+ ```
61
+ - statusLine이 다른 값이면 → AskUserQuestion:
62
+ ```
63
+ question: "기존 statusLine을 triflux HUD로 교체하시겠습니까?"
64
+ header: "HUD"
65
+ options:
66
+ - label: "교체"
67
+ description: "기존 statusLine을 triflux HUD로 덮어씀"
68
+ - label: "유지"
69
+ description: "현재 statusLine 유지"
70
+ ```
71
+
72
+ 설정 시 Edit 도구로 settings.json 수정:
73
+ ```json
74
+ {
75
+ "statusLine": {
76
+ "type": "command",
77
+ "command": "\"<NODE_PATH>\" \"<HOME>/.claude/hud/hud-qos-status.mjs\""
78
+ }
79
+ }
80
+ ```
81
+
82
+ #### 단계 3: Codex 프로파일
83
+
84
+ `~/.codex/config.toml`을 Read 도구로 읽어 필수 프로파일 존재 여부 확인.
85
+ 필수: `codex53_high`, `codex53_xhigh`, `spark53_low`.
86
+
87
+ - 모두 존재 ✅ 표시
88
+ - 누락 있으면 → AskUserQuestion:
89
+ ```
90
+ question: "누락된 Codex 프로파일 N개를 생성하시겠습니까?"
91
+ header: "Profiles"
92
+ options:
93
+ - label: "생성 (Recommended)"
94
+ description: "누락된 프로파일을 config.toml에 추가"
95
+ - label: "건너뛰기"
96
+ description: "나중에 /tfx-profile로 관리"
97
+ ```
98
+
99
+ #### 단계 4: CLI 진단
100
+
101
+ `triflux doctor --json`을 Bash로 실행하여 CLI 존재 여부 확인.
102
+ 결과를 테이블로 표시.
103
+
104
+ #### 단계 5: MCP 서버 확인
105
+
106
+ `~/.claude/cache/mcp-inventory.json` 존재 여부 + 서버 수 확인.
107
+ 없으면 재생성 여부를 AskUserQuestion으로 확인.
108
+
109
+ ### Step 3: 단계별 선택
110
+
111
+ AskUserQuestion(multiSelect):
112
+ ```
113
+ question: "실행할 단계를 선택하세요"
114
+ header: "단계"
115
+ multiSelect: true
116
+ options:
117
+ - label: "파일 동기화"
118
+ description: "스크립트/HUD/스킬 배포"
119
+ - label: "HUD 설정"
120
+ description: "settings.json statusLine 등록"
121
+ - label: "Codex 프로파일"
122
+ description: "필수 프로파일 생성"
123
+ - label: "CLI + MCP 진단"
124
+ description: "CLI 존재 + MCP 인벤토리 확인"
125
+ ```
126
+
127
+ 선택된 단계만 순서대로 실행.
128
+
129
+ ### Step 4: 결과 요약
130
+
131
+ ```
132
+ ## tfx-setup 완료
133
+
134
+ | 항목 | 상태 |
135
+ |------|------|
136
+ | 파일 동기화 | ✅ |
137
+ | HUD 설정 | ✅ statusLine 등록됨 |
138
+ | Codex 프로파일 | ✅ 3개 확인 |
139
+ | Codex CLI | ✅ |
140
+ | Gemini CLI | ⚠ 미설치 (선택) |
141
+ | MCP 인벤토리 | ✅ N개 서버 |
142
+
143
+ ### 다음 단계
144
+ - Codex 미설치 시: `npm install -g @openai/codex`
145
+ - Gemini 미설치 시: `npm install -g @google/gemini-cli`
146
+ - 세션 재시작하면 HUD가 표시됩니다
147
+ ```
148
+
149
+ ## 에러 처리
150
+
151
+ | 상황 | 처리 |
152
+ |------|------|
153
+ | `triflux: command not found` | `npm install -g triflux` 안내 |
154
+ | `settings.json` 파싱 실패 | 백업 생성 후 새로 작성 |
155
+ | 기존 statusLine이 다른 HUD | 교체/유지 AskUserQuestion |
156
+ | node.exe 경로에 공백 | 큰따옴표로 감싸기 |
157
+
158
+ ## standalone TUI
159
+
160
+ 터미널에서 직접 실행도 가능: `node tui/setup.mjs` (arrow key 방식)