triflux 9.2.1 → 9.2.3
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/bin/triflux.mjs +3 -3
- package/hooks/agent-route-guard.mjs +109 -0
- package/hooks/cross-review-tracker.mjs +122 -0
- package/hooks/error-context.mjs +148 -0
- package/hooks/hooks.json +12 -0
- package/hooks/pipeline-stop.mjs +81 -57
- package/hooks/safety-guard.mjs +106 -0
- package/hooks/subagent-verifier.mjs +80 -0
- package/package.json +1 -1
- package/skills/tfx-deep-interview/SKILL.md +72 -6
- package/skills/tfx-index/SKILL.md +48 -80
- package/skills/tfx-interview/SKILL.md +92 -22
- package/skills/tfx-plan/SKILL.md +22 -12
- package/skills/tfx-research/SKILL.md +55 -37
|
@@ -14,7 +14,7 @@ argument-hint: "<검색 주제>"
|
|
|
14
14
|
# tfx-research — Light Web Research
|
|
15
15
|
|
|
16
16
|
> **Deep 버전**: tfx-deep-research. "제대로/꼼꼼히" 수정자로 자동 에스컬레이션.
|
|
17
|
-
> 빠른 단일 소스 검색 + 요약. 토큰
|
|
17
|
+
> 빠른 단일 소스 검색 + 요약. **검색 자체를 Gemini에 위임**해 Claude 토큰 최소화. Gemini CLI의 네이티브 Google Search로 검색+요약을 한 번에 처리.
|
|
18
18
|
|
|
19
19
|
## 용도
|
|
20
20
|
|
|
@@ -26,9 +26,9 @@ argument-hint: "<검색 주제>"
|
|
|
26
26
|
|
|
27
27
|
## 워크플로우
|
|
28
28
|
|
|
29
|
-
### Step 1: 쿼리 최적화
|
|
29
|
+
### Step 1: 쿼리 최적화 (Claude — ~100 토큰)
|
|
30
30
|
|
|
31
|
-
사용자 입력을 검색에 최적화된
|
|
31
|
+
사용자 입력을 검색에 최적화된 영문 키워드로 변환한다. 이 단계만 Claude가 처리한다:
|
|
32
32
|
|
|
33
33
|
```
|
|
34
34
|
입력: "React 19에서 use() 훅 사용법"
|
|
@@ -49,10 +49,58 @@ AskUserQuestion:
|
|
|
49
49
|
5. URL 콘텐츠 추출
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
선택 결과에 따라 Step 2
|
|
53
|
-
인자가 제공된 경우 이 단계를 건너뛰고 Step 2
|
|
52
|
+
선택 결과에 따라 Step 2 Gemini 위임 시 프롬프트에 검색 유형 힌트를 추가한다.
|
|
53
|
+
인자가 제공된 경우 이 단계를 건너뛰고 Step 2로 직행한다.
|
|
54
54
|
|
|
55
|
-
### Step 2:
|
|
55
|
+
### Step 2: Gemini에 검색+요약 위임 (검색 실행 전체를 Gemini가 처리)
|
|
56
|
+
|
|
57
|
+
최적화된 쿼리를 Gemini CLI로 전달한다. Gemini는 네이티브 Google Search를 사용해 검색과 요약을 모두 수행한다:
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
Bash("bash scripts/tfx-route.sh gemini exec 'Research the following topic. Use Google Search to find current information. Return a structured markdown summary with sources: {optimized_query}'")
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Gemini가 반환하는 결과에는 검색 결과, 출처 URL, 핵심 요약이 포함된다. Claude는 이 단계에서 토큰을 소비하지 않는다.
|
|
64
|
+
|
|
65
|
+
**실패 시**: Gemini CLI가 응답하지 않거나 오류가 발생하면 → [Claude Fallback](#claude-fallback-gemini-실패-시) 으로 전환.
|
|
66
|
+
|
|
67
|
+
### Step 3: 결과 포맷팅 (Claude — 경량, ~300 토큰)
|
|
68
|
+
|
|
69
|
+
Gemini 출력을 표준 결과 템플릿으로 정리한다. 새로운 검색이나 요약 없이 포맷 변환만 수행:
|
|
70
|
+
|
|
71
|
+
```markdown
|
|
72
|
+
## 검색 결과: {query}
|
|
73
|
+
|
|
74
|
+
### 핵심 답변
|
|
75
|
+
{Gemini 요약에서 추출한 1-3문장 직접 답변}
|
|
76
|
+
|
|
77
|
+
### 상세 내용
|
|
78
|
+
- **[출처 1 제목](URL)**: {하이라이트 요약}
|
|
79
|
+
- **[출처 2 제목](URL)**: {하이라이트 요약}
|
|
80
|
+
- **[출처 3 제목](URL)**: {하이라이트 요약}
|
|
81
|
+
|
|
82
|
+
### 관련 키워드
|
|
83
|
+
{추가 검색에 유용한 키워드}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## 토큰 예산
|
|
87
|
+
|
|
88
|
+
| 단계 | 담당 | 토큰 |
|
|
89
|
+
|------|------|------|
|
|
90
|
+
| 쿼리 최적화 | Claude | ~100 |
|
|
91
|
+
| 검색 실행 + 요약 | Gemini | 0 (Claude 미소비) |
|
|
92
|
+
| 결과 포맷팅 | Claude | ~300 |
|
|
93
|
+
| **Claude 총합** | | **~500 (오케스트레이션만)** |
|
|
94
|
+
|
|
95
|
+
> 기존 대비 Claude 토큰 ~90% 절감. 검색 품질은 Gemini의 Google Search 네이티브 연동으로 유지.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Claude Fallback (Gemini 실패 시)
|
|
100
|
+
|
|
101
|
+
Gemini CLI가 실패하거나 응답이 없을 경우 Claude + MCP 원본 워크플로우로 폴백한다.
|
|
102
|
+
|
|
103
|
+
### Fallback Step 2: MCP 소스 자동 선택
|
|
56
104
|
|
|
57
105
|
검색 유형에 따라 최적 MCP를 자동 선택한다:
|
|
58
106
|
|
|
@@ -73,7 +121,7 @@ elif query contains URL → Exa crawling
|
|
|
73
121
|
else → Tavily (가장 범용적)
|
|
74
122
|
```
|
|
75
123
|
|
|
76
|
-
### Step 3: 검색 실행
|
|
124
|
+
### Fallback Step 3: 검색 실행
|
|
77
125
|
|
|
78
126
|
선택된 MCP로 검색 실행. 결과를 토큰 효율적으로 포맷:
|
|
79
127
|
|
|
@@ -85,36 +133,6 @@ else → Tavily (가장 범용적)
|
|
|
85
133
|
- freshness: 상황에 따라 자동 설정
|
|
86
134
|
```
|
|
87
135
|
|
|
88
|
-
### Step 4: 결과 요약
|
|
89
|
-
|
|
90
|
-
검색 결과를 구조화된 요약으로 변환:
|
|
91
|
-
|
|
92
|
-
```markdown
|
|
93
|
-
## 검색 결과: {query}
|
|
94
|
-
|
|
95
|
-
### 핵심 답변
|
|
96
|
-
{1-3문장 직접 답변}
|
|
97
|
-
|
|
98
|
-
### 상세 내용
|
|
99
|
-
- **[출처 1 제목](URL)**: {하이라이트 요약}
|
|
100
|
-
- **[출처 2 제목](URL)**: {하이라이트 요약}
|
|
101
|
-
- **[출처 3 제목](URL)**: {하이라이트 요약}
|
|
102
|
-
|
|
103
|
-
### 관련 키워드
|
|
104
|
-
{추가 검색에 유용한 키워드}
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
## 토큰 예산
|
|
108
|
-
|
|
109
|
-
| 단계 | 토큰 |
|
|
110
|
-
|------|------|
|
|
111
|
-
| 쿼리 최적화 | ~200 |
|
|
112
|
-
| 검색 실행 | ~2K (MCP 결과) |
|
|
113
|
-
| 결과 요약 | ~2K |
|
|
114
|
-
| **총합** | **~5K** |
|
|
115
|
-
|
|
116
|
-
## Fallback 전략
|
|
117
|
-
|
|
118
136
|
MCP 사용 불가 시 순서:
|
|
119
137
|
1. context7 → 2. WebSearch (내장) → 3. Brave → 4. Exa → 5. Tavily
|
|
120
138
|
|