triflux 8.7.0 → 8.9.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.
- package/README.ko.md +46 -7
- package/README.md +46 -7
- package/package.json +1 -1
- package/skills/tfx-consensus/SKILL.md +138 -114
- package/skills/tfx-debate/SKILL.md +96 -57
- package/skills/tfx-deep-analysis/SKILL.md +171 -191
- package/skills/tfx-deep-plan/SKILL.md +181 -73
- package/skills/tfx-deep-qa/SKILL.md +58 -58
- package/skills/tfx-deep-research/SKILL.md +79 -80
- package/skills/tfx-deep-review/SKILL.md +122 -96
- package/skills/tfx-fullcycle/SKILL.md +117 -105
- package/skills/tfx-panel/SKILL.md +66 -69
- package/skills/tfx-persist/SKILL.md +149 -76
- package/skills/tfx-prune/SKILL.md +72 -75
- package/skills/tfx-remote-setup/SKILL.md +530 -0
- package/skills/tfx-remote-spawn/SKILL.md +259 -0
- package/skills/remote-spawn/SKILL.md +0 -205
- /package/skills/{remote-spawn → tfx-remote-spawn}/references/hosts.json +0 -0
package/README.ko.md
CHANGED
|
@@ -17,16 +17,11 @@
|
|
|
17
17
|
<a href="https://www.npmjs.com/package/triflux"><img src="https://img.shields.io/npm/v/triflux?style=flat-square&color=FFAF00&label=npm" alt="npm version"></a>
|
|
18
18
|
<a href="https://www.npmjs.com/package/triflux"><img src="https://img.shields.io/npm/dm/triflux?style=flat-square&color=F5C242" alt="npm downloads"></a>
|
|
19
19
|
<a href="https://github.com/tellang/triflux/stargazers"><img src="https://img.shields.io/github/stars/tellang/triflux?style=flat-square&color=FFAF00" alt="GitHub stars"></a>
|
|
20
|
-
<a href="https://github.com/tellang/triflux/actions"><img src="https://img.shields.io/github/actions/workflow/status/tellang/triflux/ci.yml?style=flat-square&label=CI" alt="CI"></a>
|
|
21
20
|
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-374151?style=flat-square" alt="License: MIT"></a>
|
|
22
21
|
</p>
|
|
23
22
|
|
|
24
23
|
<p align="center">
|
|
25
|
-
<
|
|
26
|
-
<source media="(prefers-color-scheme: dark)" srcset="docs/assets/demo-dark.gif">
|
|
27
|
-
<source media="(prefers-color-scheme: light)" srcset="docs/assets/demo-light.gif">
|
|
28
|
-
<img alt="triflux 데모" src="docs/assets/demo-dark.gif" width="680">
|
|
29
|
-
</picture>
|
|
24
|
+
<img alt="triflux 데모" src="docs/assets/demo-multi.gif" width="680">
|
|
30
25
|
</p>
|
|
31
26
|
|
|
32
27
|
<p align="center">
|
|
@@ -40,6 +35,49 @@
|
|
|
40
35
|
|
|
41
36
|
---
|
|
42
37
|
|
|
38
|
+
## 빠른 시작
|
|
39
|
+
|
|
40
|
+
### 1. 설치
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm install -g triflux
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 2. 설정
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
tfx setup
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 3. 사용법
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# Light — 단일 모델로 빠르게 실행
|
|
56
|
+
/tfx-research "React 19 Server Actions best practices"
|
|
57
|
+
/tfx-review
|
|
58
|
+
/tfx-plan "add JWT auth middleware"
|
|
59
|
+
|
|
60
|
+
# Deep — 중요한 작업에 3자 합의 적용
|
|
61
|
+
/tfx-deep-research "microservice architecture comparison 2026"
|
|
62
|
+
/tfx-deep-review
|
|
63
|
+
/tfx-deep-plan "migrate REST to GraphQL"
|
|
64
|
+
|
|
65
|
+
# Debate — 3개의 독립적인 의견을 확보
|
|
66
|
+
/tfx-debate "Redis vs PostgreSQL LISTEN/NOTIFY for real-time events"
|
|
67
|
+
|
|
68
|
+
# Persistence — 완료될 때까지 멈추지 않음
|
|
69
|
+
/tfx-ralph "implement full auth flow with tests"
|
|
70
|
+
|
|
71
|
+
# Team — Multi-CLI 병렬 오케스트레이션
|
|
72
|
+
/tfx-multi "refactor auth + update UI + add tests"
|
|
73
|
+
|
|
74
|
+
# Remote — 원격 머신에 Claude 세션 생성
|
|
75
|
+
/tfx-remote-setup # 인터랙티브 호스트 설정 위저드 (Tailscale + SSH)
|
|
76
|
+
/tfx-remote-spawn "울트라에서 보안 리뷰 해" # 원격 호스트에서 세션 실행
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
43
81
|
## v8의 새로운 기능
|
|
44
82
|
|
|
45
83
|
**triflux v8**은 **Tri-CLI Consensus Intelligence**를 도입합니다. Claude, Codex, Gemini가 각각 독립적으로 분석한 뒤, 구조화된 토론을 거쳐 교차 검증하는 근본적으로 새로운 접근 방식입니다. 모든 Deep 스킬은 Anti-Herding(편향 오염 방지)과 Consensus Gate를 통한 출력 보장을 제공합니다.
|
|
@@ -171,7 +209,8 @@ Phase 3: Resolution (합의율 < 70%일 경우)
|
|
|
171
209
|
| `tfx-codex` | Codex 전용 오케스트레이터 |
|
|
172
210
|
| `tfx-gemini` | Gemini 전용 오케스트레이터 |
|
|
173
211
|
| `tfx-auto-codex` | Codex 주도 오케스트레이터 |
|
|
174
|
-
| `remote-spawn` | psmux를 통한 원격 세션 관리 |
|
|
212
|
+
| `tfx-remote-spawn` | psmux를 통한 원격 세션 관리 |
|
|
213
|
+
| `tfx-remote-setup` | 원격 호스트 설정 위저드 (Tailscale + SSH) |
|
|
175
214
|
|
|
176
215
|
---
|
|
177
216
|
|
package/README.md
CHANGED
|
@@ -17,16 +17,11 @@
|
|
|
17
17
|
<a href="https://www.npmjs.com/package/triflux"><img src="https://img.shields.io/npm/v/triflux?style=flat-square&color=FFAF00&label=npm" alt="npm version"></a>
|
|
18
18
|
<a href="https://www.npmjs.com/package/triflux"><img src="https://img.shields.io/npm/dm/triflux?style=flat-square&color=F5C242" alt="npm downloads"></a>
|
|
19
19
|
<a href="https://github.com/tellang/triflux/stargazers"><img src="https://img.shields.io/github/stars/tellang/triflux?style=flat-square&color=FFAF00" alt="GitHub stars"></a>
|
|
20
|
-
<a href="https://github.com/tellang/triflux/actions"><img src="https://img.shields.io/github/actions/workflow/status/tellang/triflux/ci.yml?style=flat-square&label=CI" alt="CI"></a>
|
|
21
20
|
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-374151?style=flat-square" alt="License: MIT"></a>
|
|
22
21
|
</p>
|
|
23
22
|
|
|
24
23
|
<p align="center">
|
|
25
|
-
<
|
|
26
|
-
<source media="(prefers-color-scheme: dark)" srcset="docs/assets/demo-dark.gif">
|
|
27
|
-
<source media="(prefers-color-scheme: light)" srcset="docs/assets/demo-light.gif">
|
|
28
|
-
<img alt="triflux demo" src="docs/assets/demo-dark.gif" width="680">
|
|
29
|
-
</picture>
|
|
24
|
+
<img alt="triflux demo" src="docs/assets/demo-multi.gif" width="680">
|
|
30
25
|
</p>
|
|
31
26
|
|
|
32
27
|
<p align="center">
|
|
@@ -40,6 +35,49 @@
|
|
|
40
35
|
|
|
41
36
|
---
|
|
42
37
|
|
|
38
|
+
## Quick Start
|
|
39
|
+
|
|
40
|
+
### 1. Install
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm install -g triflux
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 2. Setup
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
tfx setup
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 3. Use
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# Light — single model, fast execution
|
|
56
|
+
/tfx-research "React 19 Server Actions best practices"
|
|
57
|
+
/tfx-review
|
|
58
|
+
/tfx-plan "add JWT auth middleware"
|
|
59
|
+
|
|
60
|
+
# Deep — 3-party consensus for critical work
|
|
61
|
+
/tfx-deep-research "microservice architecture comparison 2026"
|
|
62
|
+
/tfx-deep-review
|
|
63
|
+
/tfx-deep-plan "migrate REST to GraphQL"
|
|
64
|
+
|
|
65
|
+
# Debate — get 3 independent opinions
|
|
66
|
+
/tfx-debate "Redis vs PostgreSQL LISTEN/NOTIFY for real-time events"
|
|
67
|
+
|
|
68
|
+
# Persistence — don't stop until done
|
|
69
|
+
/tfx-ralph "implement full auth flow with tests"
|
|
70
|
+
|
|
71
|
+
# Team — Multi-CLI parallel orchestration
|
|
72
|
+
/tfx-multi "refactor auth + update UI + add tests"
|
|
73
|
+
|
|
74
|
+
# Remote — spawn Claude sessions on other machines
|
|
75
|
+
/tfx-remote-setup # interactive host wizard (Tailscale + SSH)
|
|
76
|
+
/tfx-remote-spawn "run security review on ultra4" # spawn on remote host
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
43
81
|
## What's New in v8
|
|
44
82
|
|
|
45
83
|
**triflux v8** introduces **Tri-CLI Consensus Intelligence** — a fundamentally new approach where Claude, Codex, and Gemini independently analyze, then cross-validate through structured debate. Every Deep skill guarantees anti-herding (no bias contamination) and consensus-gated output.
|
|
@@ -171,7 +209,8 @@ Phase 3: Resolution (if consensus < 70%)
|
|
|
171
209
|
| `tfx-codex` | Codex-only orchestrator |
|
|
172
210
|
| `tfx-gemini` | Gemini-only orchestrator |
|
|
173
211
|
| `tfx-auto-codex` | Codex-lead orchestrator |
|
|
174
|
-
| `remote-spawn` | Remote session management via psmux |
|
|
212
|
+
| `tfx-remote-spawn` | Remote session management via psmux |
|
|
213
|
+
| `tfx-remote-setup` | Remote host setup wizard (Tailscale + SSH) |
|
|
175
214
|
|
|
176
215
|
---
|
|
177
216
|
|
package/package.json
CHANGED
|
@@ -1,114 +1,138 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: tfx-consensus
|
|
3
|
-
description: 3자 합의 엔진 — 모든 Deep 스킬의 핵심 인프라. Claude/Codex/Gemini 독립 분석 결과를 교차검증하여 편향 없는 합의를 도출한다.
|
|
4
|
-
triggers: []
|
|
5
|
-
argument-hint: "(내부 전용 — Deep 스킬이 자동 호출)"
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# tfx-consensus — Tri-CLI Consensus Engine
|
|
9
|
-
|
|
10
|
-
> 모든 Deep 스킬의 공통 기반. 3개 CLI의 독립 결과를 교차검증하여 합의 도출.
|
|
11
|
-
|
|
12
|
-
##
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
###
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
1
|
+
---
|
|
2
|
+
name: tfx-consensus
|
|
3
|
+
description: 3자 합의 엔진 — 모든 Deep 스킬의 핵심 인프라. Claude/Codex/Gemini 독립 분석 결과를 교차검증하여 편향 없는 합의를 도출한다.
|
|
4
|
+
triggers: []
|
|
5
|
+
argument-hint: "(내부 전용 — Deep 스킬이 자동 호출)"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# tfx-consensus — Tri-CLI Consensus Engine
|
|
9
|
+
|
|
10
|
+
> 모든 Deep 스킬의 공통 기반. 3개 CLI의 독립 결과를 교차검증하여 합의 도출.
|
|
11
|
+
|
|
12
|
+
## HARD RULES
|
|
13
|
+
|
|
14
|
+
> headless-guard가 이 규칙 위반을 **자동 차단**한다. 우회 불가.
|
|
15
|
+
|
|
16
|
+
1. **`codex exec` / `gemini -p` 직접 호출 절대 금지**
|
|
17
|
+
2. Codex·Gemini → `Bash("tfx multi --teammate-mode headless --auto-attach --dashboard --assign 'cli:프롬프트:역할' --timeout 600")` **만** 사용
|
|
18
|
+
3. Claude → `Agent(run_in_background=true)`
|
|
19
|
+
4. Bash + Agent를 같은 메시지에서 동시 호출하여 병렬 실행
|
|
20
|
+
|
|
21
|
+
이 스킬은 직접 호출하지 않는다. `tfx-deep-*` 스킬이 내부적으로 사용한다.
|
|
22
|
+
|
|
23
|
+
## MODEL ROLES
|
|
24
|
+
|
|
25
|
+
| Model | Profile | 역할 | 강점 |
|
|
26
|
+
|-------|---------|------|------|
|
|
27
|
+
| Claude Opus | architect | 합의 통합 및 교차검증 조율 | 논리 분석, 불일치 해소 |
|
|
28
|
+
| Codex | analyst | 구현/보안 관점 독립 분석 | 코드 품질, 취약점 탐지 |
|
|
29
|
+
| Gemini | analyst | UX/문서화 관점 독립 분석 | DX, 접근성, 가독성 |
|
|
30
|
+
|
|
31
|
+
## EXECUTION STEPS
|
|
32
|
+
|
|
33
|
+
### Step 1: 독립 분석 dispatch (Anti-Herding)
|
|
34
|
+
|
|
35
|
+
3개 CLI가 **동시에, 상호 결과를 보지 않고** 독립 분석한다. 한 CLI의 결과가 다른 CLI에 영향을 주면 편향이 발생한다.
|
|
36
|
+
|
|
37
|
+
**아래 2개 도구를 반드시 같은 응답에서 동시에 호출하라.**
|
|
38
|
+
|
|
39
|
+
**도구 1 — Claude (Opus/Sonnet) 독립 분석:**
|
|
40
|
+
```
|
|
41
|
+
Agent(
|
|
42
|
+
subagent_type="oh-my-claudecode:architect",
|
|
43
|
+
model="opus",
|
|
44
|
+
run_in_background=true,
|
|
45
|
+
name="consensus-claude",
|
|
46
|
+
description="독립 분석 — Claude 관점",
|
|
47
|
+
prompt="{analysis_prompt} 출력 형식을 JSON으로 강제: { findings: [{ id: 'F1', category: '...', severity: 'critical|high|medium|low', description: '...', evidence: '...' }], summary: '...', confidence: 0.0-1.0 }"
|
|
48
|
+
)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**도구 2 — Codex+Gemini 독립 분석 headless dispatch:**
|
|
52
|
+
```
|
|
53
|
+
Bash("tfx multi --teammate-mode headless --auto-attach --dashboard --assign 'codex:{analysis_prompt} 출력 형식을 JSON으로 강제: { findings: [{ id: string, category: string, severity: critical|high|medium|low, description: string, evidence: string }], summary: string, confidence: 0.0-1.0 }:analyst' --assign 'gemini:{analysis_prompt} 출력 형식을 JSON으로 강제: { findings: [{ id: string, category: string, severity: critical|high|medium|low, description: string, evidence: string }], summary: string, confidence: 0.0-1.0 }:analyst' --timeout 600")
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Step 2: 교차검증 (Cross-Validation)
|
|
57
|
+
|
|
58
|
+
3개 결과(`result_claude`, `result_codex`, `result_gemini`)를 수집한 후 Claude가 통합 교차검증을 수행한다.
|
|
59
|
+
|
|
60
|
+
합의 분류 알고리즘:
|
|
61
|
+
- 각 finding에 대해 동의한 CLI 수를 집계
|
|
62
|
+
- `agreement_count >= 2` → **CONSENSUS** (합의됨)
|
|
63
|
+
- `agreement_count == 1` → **DISPUTED** (미합의 — 추가 검증 필요)
|
|
64
|
+
- `consensus_score = len(CONSENSUS) / len(ALL_UNIQUE) * 100`
|
|
65
|
+
|
|
66
|
+
`consensus_score >= 70`이면 Step 4로 직행. 미만이면 Step 3 진행.
|
|
67
|
+
|
|
68
|
+
### Step 3: Resolution (consensus_score < 70일 때만)
|
|
69
|
+
|
|
70
|
+
미합의 항목에 대해 2차 라운드를 진행한다.
|
|
71
|
+
|
|
72
|
+
**아래 2개 도구를 반드시 같은 응답에서 동시에 호출하라.**
|
|
73
|
+
|
|
74
|
+
**도구 1 — Claude 재검토:**
|
|
75
|
+
```
|
|
76
|
+
Agent(
|
|
77
|
+
subagent_type="oh-my-claudecode:architect",
|
|
78
|
+
model="opus",
|
|
79
|
+
run_in_background=true,
|
|
80
|
+
name="consensus-resolve-claude",
|
|
81
|
+
description="미합의 항목 2차 검토",
|
|
82
|
+
prompt="미합의 항목 목록: {disputed_items}. 다른 두 CLI의 반대 논거: Codex — {codex_rebuttal}, Gemini — {gemini_rebuttal}. 각 항목에 대해 수용(accept) 또는 반박(rebut)으로 응답하라. 수용 시 근거 필수."
|
|
83
|
+
)
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**도구 2 — Codex+Gemini 재검토:**
|
|
87
|
+
```
|
|
88
|
+
Bash("tfx multi --teammate-mode headless --auto-attach --dashboard --assign 'codex:미합의 항목 목록: {disputed_items}. 다른 두 CLI의 반대 논거: Claude — {claude_rebuttal}, Gemini — {gemini_rebuttal}. 각 항목에 대해 수용(accept) 또는 반박(rebut)으로 응답하라. 수용 시 근거 필수.:analyst' --assign 'gemini:미합의 항목 목록: {disputed_items}. 다른 두 CLI의 반대 논거: Claude — {claude_rebuttal}, Codex — {codex_rebuttal}. 각 항목에 대해 수용(accept) 또는 반박(rebut)으로 응답하라. 수용 시 근거 필수.:analyst' --timeout 600")
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Resolution 결과 처리:
|
|
92
|
+
- 수용 2개 이상 → CONSENSUS로 승격
|
|
93
|
+
- 여전히 미합의 → 사용자에게 판단 요청 (AskUserQuestion)
|
|
94
|
+
|
|
95
|
+
### Step 4: 최종 합의 결과 반환
|
|
96
|
+
|
|
97
|
+
Learned Weights를 `.omc/state/consensus-weights.json`에서 읽어 가중 투표에 적용한다:
|
|
98
|
+
|
|
99
|
+
```json
|
|
100
|
+
{
|
|
101
|
+
"claude": { "accuracy": 0.85, "total": 100, "correct": 85 },
|
|
102
|
+
"codex": { "accuracy": 0.82, "total": 100, "correct": 82 },
|
|
103
|
+
"gemini": { "accuracy": 0.78, "total": 100, "correct": 78 }
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
가중 투표:
|
|
108
|
+
`weighted_score = (claude_vote * 0.85 + codex_vote * 0.82 + gemini_vote * 0.78) / (0.85 + 0.82 + 0.78)`
|
|
109
|
+
|
|
110
|
+
최종 결과를 호출 스킬에 반환한다:
|
|
111
|
+
|
|
112
|
+
```json
|
|
113
|
+
{
|
|
114
|
+
"consensus_score": 85,
|
|
115
|
+
"consensus_items": [...],
|
|
116
|
+
"disputed_items": [...],
|
|
117
|
+
"resolved_items": [...],
|
|
118
|
+
"user_decision_needed": [...],
|
|
119
|
+
"cli_weights": { "claude": 0.85, "codex": 0.82, "gemini": 0.78 }
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## ERROR RECOVERY
|
|
124
|
+
|
|
125
|
+
| 상황 | 대응 |
|
|
126
|
+
|------|------|
|
|
127
|
+
| headless timeout (600s) | Claude Agent로 해당 역할 대체 실행 |
|
|
128
|
+
| Codex 워커 실패 | Agent(oh-my-claudecode:architect, model="opus") 대체 |
|
|
129
|
+
| Gemini 워커 실패 | Agent(oh-my-claudecode:critic, model="sonnet") 대체 |
|
|
130
|
+
|
|
131
|
+
## 토큰 예산
|
|
132
|
+
|
|
133
|
+
| Phase | 토큰 |
|
|
134
|
+
|-------|------|
|
|
135
|
+
| Phase 1 (3x 독립분석) | ~15K (각 5K) |
|
|
136
|
+
| Phase 2 (교차검증) | ~3K |
|
|
137
|
+
| Phase 3 (Resolution, 필요 시) | ~8K |
|
|
138
|
+
| **총합** | **18-26K** |
|
|
@@ -22,11 +22,28 @@ argument-hint: "<토론 주제 또는 질문>"
|
|
|
22
22
|
- 요구사항 해석이 모호할 때
|
|
23
23
|
- 어떤 주제든 다관점 분석이 필요할 때
|
|
24
24
|
|
|
25
|
-
##
|
|
25
|
+
## HARD RULES
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
> headless-guard가 이 규칙 위반을 **자동 차단**한다. 우회 불가.
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
1. **`codex exec` / `gemini -p` 직접 호출 절대 금지**
|
|
30
|
+
2. Codex·Gemini → `Bash("tfx multi --teammate-mode headless --auto-attach --dashboard --assign 'cli:프롬프트:역할' --timeout 600")` **만** 사용
|
|
31
|
+
3. Claude → `Agent(run_in_background=true)`
|
|
32
|
+
4. Bash + Agent를 같은 메시지에서 동시 호출하여 병렬 실행
|
|
33
|
+
|
|
34
|
+
## MODEL ROLES
|
|
35
|
+
|
|
36
|
+
| CLI | 역할 |
|
|
37
|
+
|-----|------|
|
|
38
|
+
| Claude | 소프트웨어 아키텍트 — 시스템 설계 관점 |
|
|
39
|
+
| Codex | 시니어 백엔드 엔지니어 — 구현/기술적 트레이드오프 관점 |
|
|
40
|
+
| Gemini | DevOps/인프라 엔지니어 + DX 전문가 — 운영/개발자경험 관점 |
|
|
41
|
+
|
|
42
|
+
## EXECUTION STEPS
|
|
43
|
+
|
|
44
|
+
### Step 1: 주제 파싱 및 명확화
|
|
45
|
+
|
|
46
|
+
사용자 입력에서 토론 주제를 추출하라. 주제가 모호하거나 비교 대상이 불명확하면 AskUserQuestion으로 명확화하라:
|
|
30
47
|
|
|
31
48
|
```
|
|
32
49
|
AskUserQuestion:
|
|
@@ -36,80 +53,95 @@ AskUserQuestion:
|
|
|
36
53
|
3. 직접 입력
|
|
37
54
|
```
|
|
38
55
|
|
|
39
|
-
주제가 명확한 경우 (예: "REST vs GraphQL") 이 단계를
|
|
56
|
+
주제가 명확한 경우 (예: "REST vs GraphQL") 이 단계를 건너뛰어라.
|
|
40
57
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
options: ["REST", "GraphQL"], // 식별 가능하면
|
|
47
|
-
criteria: ["성능", "개발 생산성", "유지보수", "학습 곡선"]
|
|
48
|
-
}
|
|
49
|
-
```
|
|
58
|
+
파싱 결과를 내부적으로 보유하라:
|
|
59
|
+
- topic: 토론 주제
|
|
60
|
+
- context: 프로젝트 컨텍스트 (자동 추출)
|
|
61
|
+
- options: 비교 대상 목록
|
|
62
|
+
- criteria: 평가 기준 목록
|
|
50
63
|
|
|
51
64
|
### Step 2: 독립 분석 (Anti-Herding)
|
|
52
65
|
|
|
53
|
-
|
|
66
|
+
**아래 2개 도구를 반드시 같은 응답에서 동시에 호출하라.**
|
|
67
|
+
|
|
68
|
+
Claude Agent를 백그라운드로 실행하라:
|
|
54
69
|
|
|
55
70
|
```
|
|
56
|
-
|
|
57
|
-
"
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
Bash("tfx multi --teammate-mode headless --auto-attach --dashboard \
|
|
67
|
-
--assign 'codex:당신은 시니어 백엔드 엔지니어입니다. {topic}에 대해 구현 관점에서 분석하세요.
|
|
68
|
-
{context} 기반으로 각 옵션의 기술적 트레이드오프를 평가하세요.
|
|
69
|
-
JSON: { recommendation, reasoning, pros, cons, risks, confidence }:analyst' \
|
|
70
|
-
--assign 'gemini:당신은 DevOps/인프라 엔지니어이자 DX 전문가입니다. {topic}에 대해 운영+개발자경험 관점에서 분석하세요.
|
|
71
|
-
{context}. JSON: { recommendation, reasoning, pros, cons, risks, confidence }:analyst' \
|
|
72
|
-
--timeout 600")
|
|
71
|
+
Agent(
|
|
72
|
+
subagent_type="claude",
|
|
73
|
+
model="opus",
|
|
74
|
+
run_in_background=true,
|
|
75
|
+
prompt="당신은 소프트웨어 아키텍트입니다. {topic}에 대해 분석하세요.
|
|
76
|
+
프로젝트 컨텍스트: {context}
|
|
77
|
+
각 옵션의 장점, 단점, 리스크를 구조화하세요.
|
|
78
|
+
최종 추천과 근거를 제시하세요.
|
|
79
|
+
JSON 형식으로 출력하세요: { recommendation, reasoning, pros, cons, risks, confidence }"
|
|
80
|
+
)
|
|
73
81
|
```
|
|
74
82
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
3개 결과가 모두 수집되면 tfx-consensus 프로토콜 적용:
|
|
83
|
+
Codex와 Gemini를 headless dispatch로 동시에 실행하라:
|
|
78
84
|
|
|
79
85
|
```
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
항목별 교차검증:
|
|
86
|
-
- 2+ CLI가 동일 장점/단점 지적 → 확정
|
|
87
|
-
- 1개 CLI만 지적 → "미검증" 표시
|
|
86
|
+
Bash("tfx multi --teammate-mode headless --auto-attach --dashboard \
|
|
87
|
+
--assign 'codex:당신은 시니어 백엔드 엔지니어입니다. {topic}에 대해 구현 관점에서 분석하세요. 프로젝트 컨텍스트: {context}. 각 옵션의 기술적 트레이드오프를 평가하고 구현 난이도, 성능, 확장성을 중심으로 분석하세요. JSON 형식으로 출력하세요: { recommendation, reasoning, pros, cons, risks, confidence }:analyst' \
|
|
88
|
+
--assign 'gemini:당신은 DevOps/인프라 엔지니어이자 DX 전문가입니다. {topic}에 대해 운영+개발자경험 관점에서 분석하세요. 프로젝트 컨텍스트: {context}. 배포 복잡도, 모니터링, 온보딩 난이도, 개발자 생산성을 중심으로 분석하세요. JSON 형식으로 출력하세요: { recommendation, reasoning, pros, cons, risks, confidence }:analyst' \
|
|
89
|
+
--timeout 600")
|
|
88
90
|
```
|
|
89
91
|
|
|
90
|
-
### Step
|
|
92
|
+
### Step 3: 결과 수집 및 교차검증
|
|
93
|
+
|
|
94
|
+
3개 결과가 모두 수집되면 다음 기준으로 교차검증하라:
|
|
95
|
+
|
|
96
|
+
합의 수준을 판정하라:
|
|
97
|
+
- 3/3 동일 추천 → "만장일치" (Strong Consensus) → Step 5로 바로 진행
|
|
98
|
+
- 2/3 동일 추천 → "다수 합의" (Majority Consensus) → Step 5로 진행
|
|
99
|
+
- 3개 모두 다름 → "불일치" (Disputed) → Step 4 토론 라운드 실행
|
|
100
|
+
|
|
101
|
+
항목별 교차검증을 수행하라:
|
|
102
|
+
- 2개 이상 CLI가 동일 장점/단점 지적 → 확정
|
|
103
|
+
- 1개 CLI만 지적 → "미검증" 표시
|
|
104
|
+
|
|
105
|
+
### Step 4: 토론 라운드 (불일치 시에만 실행)
|
|
106
|
+
|
|
107
|
+
불일치 항목이 있으면 각 CLI에게 다음 프롬프트로 2차 라운드를 실행하라.
|
|
108
|
+
|
|
109
|
+
**아래 2개 도구를 반드시 같은 응답에서 동시에 호출하라.**
|
|
91
110
|
|
|
92
|
-
|
|
111
|
+
Claude Agent를 백그라운드로 실행하라:
|
|
93
112
|
|
|
94
113
|
```
|
|
95
|
-
|
|
96
|
-
"
|
|
97
|
-
|
|
98
|
-
|
|
114
|
+
Agent(
|
|
115
|
+
subagent_type="claude",
|
|
116
|
+
model="opus",
|
|
117
|
+
run_in_background=true,
|
|
118
|
+
prompt="다음은 다른 두 분석가의 결론입니다.
|
|
119
|
+
분석가 A (백엔드 엔지니어): {codex_recommendation} — 근거: {codex_reasoning}
|
|
120
|
+
분석가 B (DevOps/DX): {gemini_recommendation} — 근거: {gemini_reasoning}
|
|
121
|
+
|
|
122
|
+
당신의 원래 입장: {claude_recommendation}
|
|
123
|
+
|
|
124
|
+
다른 분석가의 논거를 검토한 후:
|
|
125
|
+
1. 수용할 점이 있으면 입장을 수정하세요
|
|
126
|
+
2. 반박할 점이 있으면 근거를 제시하세요
|
|
127
|
+
3. 최종 추천을 JSON으로 다시 제출하세요: { recommendation, reasoning, confidence, changed }"
|
|
128
|
+
)
|
|
129
|
+
```
|
|
99
130
|
|
|
100
|
-
|
|
131
|
+
Codex와 Gemini 2차 라운드를 headless dispatch로 동시에 실행하라:
|
|
101
132
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
133
|
+
```
|
|
134
|
+
Bash("tfx multi --teammate-mode headless --auto-attach --dashboard \
|
|
135
|
+
--assign 'codex:다음은 다른 두 분석가의 결론입니다. 분석가 A (아키텍트): {claude_recommendation} — 근거: {claude_reasoning}. 분석가 B (DevOps/DX): {gemini_recommendation} — 근거: {gemini_reasoning}. 당신의 원래 입장: {codex_recommendation}. 다른 분석가의 논거를 검토한 후 수용할 점은 반영하고 반박할 점은 근거를 제시하세요. JSON으로 최종 추천을 제출하세요: { recommendation, reasoning, confidence, changed }:analyst' \
|
|
136
|
+
--assign 'gemini:다음은 다른 두 분석가의 결론입니다. 분석가 A (아키텍트): {claude_recommendation} — 근거: {claude_reasoning}. 분석가 B (백엔드 엔지니어): {codex_recommendation} — 근거: {codex_reasoning}. 당신의 원래 입장: {gemini_recommendation}. 다른 분석가의 논거를 검토한 후 수용할 점은 반영하고 반박할 점은 근거를 제시하세요. JSON으로 최종 추천을 제출하세요: { recommendation, reasoning, confidence, changed }:analyst' \
|
|
137
|
+
--timeout 600")
|
|
106
138
|
```
|
|
107
139
|
|
|
108
140
|
### Step 5: 최종 종합
|
|
109
141
|
|
|
110
|
-
|
|
111
|
-
Claude Opus가 전체 토론을 종합하여 최종 보고서 작성:
|
|
142
|
+
Claude Opus가 전체 토론을 종합하여 다음 구조로 최종 보고서를 작성하라:
|
|
112
143
|
|
|
144
|
+
```markdown
|
|
113
145
|
## 토론 결과: {topic}
|
|
114
146
|
|
|
115
147
|
### 합의 사항 (Consensus Score: {score}%)
|
|
@@ -129,13 +161,20 @@ Claude Opus가 전체 토론을 종합하여 최종 보고서 작성:
|
|
|
129
161
|
{unresolved_disputes — if any}
|
|
130
162
|
```
|
|
131
163
|
|
|
132
|
-
##
|
|
164
|
+
## ERROR RECOVERY
|
|
165
|
+
|
|
166
|
+
- Codex 또는 Gemini 결과가 없으면: 2개 소스로 교차검증을 진행하고 보고서에 누락 CLI를 명시하라
|
|
167
|
+
- tfx multi 명령이 실패하면: 오류 메시지를 출력하고 재시도 1회 후 실패를 사용자에게 보고하라
|
|
168
|
+
- Agent 결과가 없으면: Claude 관점 없이 나머지 2개 소스로 진행하라
|
|
169
|
+
- Round 2 후에도 불일치가 지속되면: 해소되지 않은 항목으로 보고서에 명시하고 최종 추천은 다수결로 결정하라
|
|
170
|
+
|
|
171
|
+
## TOKEN BUDGET
|
|
133
172
|
|
|
134
173
|
| 단계 | 토큰 |
|
|
135
174
|
|------|------|
|
|
136
175
|
| Step 2 (3x 독립) | ~15K |
|
|
137
176
|
| Step 3 (교차검증) | ~2K |
|
|
138
|
-
| Step 4 (토론,
|
|
177
|
+
| Step 4 (토론, 불일치 시) | ~8K |
|
|
139
178
|
| Step 5 (종합) | ~3K |
|
|
140
179
|
| **총합** | **20-28K** |
|
|
141
180
|
|