triflux 3.2.0-dev.2 → 3.2.0-dev.5

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.
package/README.ko.md CHANGED
@@ -85,19 +85,25 @@ tfx doctor
85
85
  /analyze "결제 모듈 보안 리뷰"
86
86
  /research "최신 React Server Components 패턴"
87
87
 
88
- # 단일 CLI 모드
89
- /tfx-codex "리팩터링 + 리뷰" # Codex 사용
90
- /tfx-gemini "구현 + 문서화" # Gemini만 사용
91
- ```
92
-
93
- ## 스킬
94
-
95
- | 스킬 | 모드 | 설명 |
96
- |------|------|------|
97
- | `/tfx-auto` | 자동 | 트리아지 → 분해 → DAG 병렬 실행 |
98
- | `/tfx-codex` | Codex 전용 | 모든 CLI 작업을 Codex로 라우팅 |
99
- | `/tfx-gemini` | Gemini 전용 | 모든 CLI 작업을 Gemini로 라우팅 |
100
- | `/tfx-setup` | 설정 | 파일 동기화, HUD 설정, CLI 진단 |
88
+ # 단일 CLI 모드
89
+ /tfx-auto-codex "리팩터링 + 테스트 + 리뷰" # Codex 리드 + Gemini 유지, Claude 네이티브 역할 제거
90
+ /tfx-codex "리팩터링 + 리뷰" # Codex만 사용
91
+ /tfx-gemini "구현 + 문서화" # Gemini만 사용
92
+ ```
93
+
94
+ ## 문서
95
+
96
+ - [docs/INDEX.md](docs/INDEX.md) — 문서 인덱스
97
+
98
+ ## 스킬
99
+
100
+ | 스킬 | 모드 | 설명 |
101
+ |------|------|------|
102
+ | `/tfx-auto` | 자동 | 트리아지 → 분해 → DAG 병렬 실행 |
103
+ | `/tfx-auto-codex` | Codex 리드 | Claude 네이티브 역할을 Codex로 치환, Gemini 경로 유지 |
104
+ | `/tfx-codex` | Codex 전용 | 모든 CLI 작업을 Codex로 라우팅 |
105
+ | `/tfx-gemini` | Gemini 전용 | 모든 CLI 작업을 Gemini로 라우팅 |
106
+ | `/tfx-setup` | 설정 | 파일 동기화, HUD 설정, CLI 진단 |
101
107
 
102
108
  ### 커맨드 숏컷
103
109
 
package/README.md CHANGED
@@ -85,19 +85,25 @@ tfx doctor
85
85
  /analyze "security review of payment module"
86
86
  /research "latest React Server Components patterns"
87
87
 
88
- # Single-CLI modes
89
- /tfx-codex "refactor + review" # Codex only
90
- /tfx-gemini "implement + document" # Gemini only
91
- ```
92
-
93
- ## Skills
94
-
95
- | Skill | Mode | Description |
96
- |-------|------|-------------|
97
- | `/tfx-auto` | Auto | Triage → decompose → parallel execute via DAG |
98
- | `/tfx-codex` | Codex-only | All CLI tasks routed to Codex |
99
- | `/tfx-gemini` | Gemini-only | All CLI tasks routed to Gemini |
100
- | `/tfx-setup` | Setup | File sync, HUD config, CLI diagnostics |
88
+ # Single-CLI modes
89
+ /tfx-auto-codex "refactor + test + review" # Codex lead + Gemini kept, no Claude-native roles
90
+ /tfx-codex "refactor + review" # Codex only
91
+ /tfx-gemini "implement + document" # Gemini only
92
+ ```
93
+
94
+ ## Docs
95
+
96
+ - [docs/INDEX.md](docs/INDEX.md) — central documentation index
97
+
98
+ ## Skills
99
+
100
+ | Skill | Mode | Description |
101
+ |-------|------|-------------|
102
+ | `/tfx-auto` | Auto | Triage → decompose → parallel execute via DAG |
103
+ | `/tfx-auto-codex` | Codex-lead | Replace Claude-native roles with Codex, keep Gemini path |
104
+ | `/tfx-codex` | Codex-only | All CLI tasks routed to Codex |
105
+ | `/tfx-gemini` | Gemini-only | All CLI tasks routed to Gemini |
106
+ | `/tfx-setup` | Setup | File sync, HUD config, CLI diagnostics |
101
107
 
102
108
  ### Command Shortcuts
103
109
 
package/bin/triflux.mjs CHANGED
@@ -923,11 +923,12 @@ ${updateNotice}
923
923
  ${WHITE_BRIGHT}tfx notion-read${RESET} ${GRAY}Notion 페이지 → 마크다운 (Codex/Gemini MCP)${RESET}
924
924
  ${WHITE_BRIGHT}tfx version${RESET} ${GRAY}버전 표시${RESET}
925
925
 
926
- ${BOLD}Skills${RESET} ${GRAY}(Claude Code 슬래시 커맨드)${RESET}
927
-
928
- ${AMBER}/tfx-auto${RESET} ${GRAY}자동 분류 + 병렬 실행${RESET}
929
- ${WHITE_BRIGHT}/tfx-codex${RESET} ${GRAY}Codex 전용 모드${RESET}
930
- ${BLUE}/tfx-gemini${RESET} ${GRAY}Gemini 전용 모드${RESET}
926
+ ${BOLD}Skills${RESET} ${GRAY}(Claude Code 슬래시 커맨드)${RESET}
927
+
928
+ ${AMBER}/tfx-auto${RESET} ${GRAY}자동 분류 + 병렬 실행${RESET}
929
+ ${WHITE_BRIGHT}/tfx-auto-codex${RESET} ${GRAY}Codex 리드 + Gemini 유지 (no-Claude-native)${RESET}
930
+ ${WHITE_BRIGHT}/tfx-codex${RESET} ${GRAY}Codex 전용 모드${RESET}
931
+ ${BLUE}/tfx-gemini${RESET} ${GRAY}Gemini 전용 모드${RESET}
931
932
  ${AMBER}/tfx-setup${RESET} ${GRAY}HUD 설정 + 진단${RESET}
932
933
  ${YELLOW}/tfx-doctor${RESET} ${GRAY}진단 + 수리 + 캐시 초기화${RESET}
933
934
 
package/hooks/hooks.json CHANGED
@@ -19,8 +19,8 @@
19
19
  "hooks": [
20
20
  {
21
21
  "type": "command",
22
- "command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/team-keyword.mjs\"",
23
- "timeout": 3
22
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/run.cjs\" \"${CLAUDE_PLUGIN_ROOT}/scripts/keyword-detector.mjs\"",
23
+ "timeout": 5
24
24
  }
25
25
  ]
26
26
  }
@@ -0,0 +1,338 @@
1
+ {
2
+ "rules": [
3
+ {
4
+ "id": "tfx-cancel",
5
+ "patterns": [
6
+ {
7
+ "source": "\\b(canceltfx|stoptfx)\\b",
8
+ "flags": "i"
9
+ }
10
+ ],
11
+ "skill": "tfx-cancel",
12
+ "priority": 0,
13
+ "supersedes": [
14
+ "tfx-team",
15
+ "tfx-auto",
16
+ "tfx-auto-codex",
17
+ "tfx-codex",
18
+ "tfx-gemini"
19
+ ],
20
+ "exclusive": true,
21
+ "state": null,
22
+ "mcp_route": null
23
+ },
24
+ {
25
+ "id": "tfx-team",
26
+ "patterns": [
27
+ {
28
+ "source": "(?<!\\b(?:my|the|our|omc|oh-my-claudecode)\\s)\\btfx[\\s-]?team\\b",
29
+ "flags": "i"
30
+ }
31
+ ],
32
+ "skill": "tfx-team",
33
+ "priority": 1,
34
+ "supersedes": [],
35
+ "exclusive": false,
36
+ "state": null,
37
+ "mcp_route": null
38
+ },
39
+ {
40
+ "id": "tfx-auto-codex",
41
+ "patterns": [
42
+ {
43
+ "source": "\\btfx[\\s-]?auto[\\s-]?codex\\b",
44
+ "flags": "i"
45
+ }
46
+ ],
47
+ "skill": "tfx-auto-codex",
48
+ "priority": 1,
49
+ "supersedes": [
50
+ "tfx-auto",
51
+ "tfx-codex"
52
+ ],
53
+ "exclusive": false,
54
+ "state": null,
55
+ "mcp_route": null
56
+ },
57
+ {
58
+ "id": "tfx-auto",
59
+ "patterns": [
60
+ {
61
+ "source": "\\btfx[\\s-]?auto\\b",
62
+ "flags": "i"
63
+ }
64
+ ],
65
+ "skill": "tfx-auto",
66
+ "priority": 2,
67
+ "supersedes": [],
68
+ "exclusive": false,
69
+ "state": null,
70
+ "mcp_route": null
71
+ },
72
+ {
73
+ "id": "tfx-codex",
74
+ "patterns": [
75
+ {
76
+ "source": "\\btfx[\\s-]?codex\\b",
77
+ "flags": "i"
78
+ }
79
+ ],
80
+ "skill": "tfx-codex",
81
+ "priority": 3,
82
+ "supersedes": [],
83
+ "exclusive": false,
84
+ "state": null,
85
+ "mcp_route": null
86
+ },
87
+ {
88
+ "id": "tfx-gemini",
89
+ "patterns": [
90
+ {
91
+ "source": "\\btfx[\\s-]?gemini\\b",
92
+ "flags": "i"
93
+ }
94
+ ],
95
+ "skill": "tfx-gemini",
96
+ "priority": 3,
97
+ "supersedes": [],
98
+ "exclusive": false,
99
+ "state": null,
100
+ "mcp_route": null
101
+ },
102
+ {
103
+ "id": "notion-route",
104
+ "patterns": [
105
+ {
106
+ "source": "\\b(노션|notion)[\\s-]?(페이지|글|조회|생성|수정|검색)\\b",
107
+ "flags": "i"
108
+ },
109
+ {
110
+ "source": "(노션|notion)[\\s-]?(페이지|글|조회|생성|수정|검색)",
111
+ "flags": "i"
112
+ }
113
+ ],
114
+ "skill": null,
115
+ "priority": 10,
116
+ "supersedes": [],
117
+ "exclusive": false,
118
+ "state": null,
119
+ "mcp_route": "gemini"
120
+ },
121
+ {
122
+ "id": "chrome-route",
123
+ "patterns": [
124
+ {
125
+ "source": "\\b(크롬|chrome|브라우저)[\\s-]?(열|접속|로그인|navigate|click)\\b",
126
+ "flags": "i"
127
+ },
128
+ {
129
+ "source": "(크롬|chrome|브라우저)[\\s-]?(열|접속|로그인|navigate|click)",
130
+ "flags": "i"
131
+ }
132
+ ],
133
+ "skill": null,
134
+ "priority": 10,
135
+ "supersedes": [],
136
+ "exclusive": false,
137
+ "state": null,
138
+ "mcp_route": "gemini"
139
+ },
140
+ {
141
+ "id": "jira-route",
142
+ "patterns": [
143
+ {
144
+ "source": "\\b(jira|지라)[\\s-]?(이슈|티켓|생성|조회|스프린트)\\b",
145
+ "flags": "i"
146
+ },
147
+ {
148
+ "source": "(jira|지라)[\\s-]?(이슈|티켓|생성|조회|스프린트)",
149
+ "flags": "i"
150
+ }
151
+ ],
152
+ "skill": null,
153
+ "priority": 10,
154
+ "supersedes": [],
155
+ "exclusive": false,
156
+ "state": null,
157
+ "mcp_route": "codex"
158
+ },
159
+ {
160
+ "id": "mail-route",
161
+ "patterns": [
162
+ {
163
+ "source": "\\b(메일|gmail|이메일)[\\s-]?(보내|읽|검색|draft)\\b",
164
+ "flags": "i"
165
+ },
166
+ {
167
+ "source": "(메일|gmail|이메일)[\\s-]?(보내|읽|검색|draft)",
168
+ "flags": "i"
169
+ }
170
+ ],
171
+ "skill": null,
172
+ "priority": 10,
173
+ "supersedes": [],
174
+ "exclusive": false,
175
+ "state": null,
176
+ "mcp_route": "gemini"
177
+ },
178
+ {
179
+ "id": "calendar-route",
180
+ "patterns": [
181
+ {
182
+ "source": "\\b(일정|캘린더|calendar)[\\s-]?(생성|조회|추가)\\b",
183
+ "flags": "i"
184
+ },
185
+ {
186
+ "source": "(일정|캘린더|calendar)[\\s-]?(생성|조회|추가)",
187
+ "flags": "i"
188
+ }
189
+ ],
190
+ "skill": null,
191
+ "priority": 10,
192
+ "supersedes": [],
193
+ "exclusive": false,
194
+ "state": null,
195
+ "mcp_route": "gemini"
196
+ },
197
+ {
198
+ "id": "playwright-route",
199
+ "patterns": [
200
+ {
201
+ "source": "\\b(playwright|브라우저\\s*테스트)\\b",
202
+ "flags": "i"
203
+ },
204
+ {
205
+ "source": "(playwright|브라우저\\s*테스트)",
206
+ "flags": "i"
207
+ }
208
+ ],
209
+ "skill": null,
210
+ "priority": 10,
211
+ "supersedes": [],
212
+ "exclusive": false,
213
+ "state": null,
214
+ "mcp_route": "gemini"
215
+ },
216
+ {
217
+ "id": "canva-route",
218
+ "patterns": [
219
+ {
220
+ "source": "\\b(canva|캔바|디자인\\s*생성)\\b",
221
+ "flags": "i"
222
+ },
223
+ {
224
+ "source": "(canva|캔바|디자인\\s*생성)",
225
+ "flags": "i"
226
+ }
227
+ ],
228
+ "skill": null,
229
+ "priority": 10,
230
+ "supersedes": [],
231
+ "exclusive": false,
232
+ "state": null,
233
+ "mcp_route": "gemini"
234
+ },
235
+ {
236
+ "id": "tfx-hub",
237
+ "patterns": [
238
+ {
239
+ "source": "\\btfx[\\s-]?hub\\b",
240
+ "flags": "i"
241
+ }
242
+ ],
243
+ "skill": "tfx-hub",
244
+ "priority": 2,
245
+ "supersedes": [],
246
+ "exclusive": false,
247
+ "state": null,
248
+ "mcp_route": null
249
+ },
250
+ {
251
+ "id": "tfx-doctor",
252
+ "patterns": [
253
+ {
254
+ "source": "\\btfx[\\s-]?doctor\\b",
255
+ "flags": "i"
256
+ }
257
+ ],
258
+ "skill": "tfx-doctor",
259
+ "priority": 2,
260
+ "supersedes": [],
261
+ "exclusive": false,
262
+ "state": null,
263
+ "mcp_route": null
264
+ },
265
+ {
266
+ "id": "tfx-setup",
267
+ "patterns": [
268
+ {
269
+ "source": "\\btfx[\\s-]?setup\\b",
270
+ "flags": "i"
271
+ }
272
+ ],
273
+ "skill": "tfx-setup",
274
+ "priority": 2,
275
+ "supersedes": [],
276
+ "exclusive": false,
277
+ "state": null,
278
+ "mcp_route": null
279
+ },
280
+ {
281
+ "id": "confluence-route",
282
+ "patterns": [
283
+ {
284
+ "source": "\\b(confluence|위키|wiki)[\\s-]?(페이지|문서|조회|생성|수정|검색)\\b",
285
+ "flags": "i"
286
+ },
287
+ {
288
+ "source": "(confluence|위키|wiki)[\\s-]?(페이지|문서|조회|생성|수정|검색)",
289
+ "flags": "i"
290
+ }
291
+ ],
292
+ "skill": null,
293
+ "priority": 10,
294
+ "supersedes": [],
295
+ "exclusive": false,
296
+ "state": null,
297
+ "mcp_route": "gemini"
298
+ },
299
+ {
300
+ "id": "slack-route",
301
+ "patterns": [
302
+ {
303
+ "source": "\\b(slack|슬랙)[\\s-]?(메시지|채널|보내|읽|검색|알림)\\b",
304
+ "flags": "i"
305
+ },
306
+ {
307
+ "source": "(slack|슬랙)[\\s-]?(메시지|채널|보내|읽|검색|알림)",
308
+ "flags": "i"
309
+ }
310
+ ],
311
+ "skill": null,
312
+ "priority": 10,
313
+ "supersedes": [],
314
+ "exclusive": false,
315
+ "state": null,
316
+ "mcp_route": "gemini"
317
+ },
318
+ {
319
+ "id": "github-route",
320
+ "patterns": [
321
+ {
322
+ "source": "\\b(github|깃허브)[\\s-]?(이슈|issue|PR|pull|커밋|commit|리포|repo)\\b",
323
+ "flags": "i"
324
+ },
325
+ {
326
+ "source": "(github|깃허브)[\\s-]?(이슈|issue|PR|pull|커밋|commit|리포|repo)",
327
+ "flags": "i"
328
+ }
329
+ ],
330
+ "skill": null,
331
+ "priority": 10,
332
+ "supersedes": [],
333
+ "exclusive": false,
334
+ "state": null,
335
+ "mcp_route": "codex"
336
+ }
337
+ ]
338
+ }