triflux 8.11.0 → 8.11.2
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 +5 -4
- package/README.md +5 -4
- package/hub/team/psmux.mjs +3 -0
- package/package.json +1 -1
- package/scripts/headless-guard.mjs +5 -0
- package/skills/tfx-deep-analysis/SKILL.md +51 -0
- package/skills/tfx-deep-plan/SKILL.md +51 -0
- package/skills/tfx-deep-review/SKILL.md +51 -0
- package/skills/tfx-persist/SKILL.md +51 -0
- package/skills/tfx-ralph/SKILL.md +81 -0
package/README.ko.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
12
12
|
<strong>Consensus Intelligence 기반 Tri-CLI 오케스트레이션</strong><br>
|
|
13
|
-
<em>Claude + Codex + Gemini — 3자 토론, Anti-Herding 검증, Deep/Light 변형을 갖춘
|
|
13
|
+
<em>Claude + Codex + Gemini — 3자 토론, Anti-Herding 검증, Deep/Light 변형을 갖춘 35개 스킬.</em>
|
|
14
14
|
</p>
|
|
15
15
|
|
|
16
16
|
<p align="center">
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
<p align="center">
|
|
28
28
|
<a href="#빠른-시작">빠른 시작</a> ·
|
|
29
29
|
<a href="#tri-cli-합의-엔진">Tri-CLI 합의 엔진</a> ·
|
|
30
|
-
<a href="#
|
|
30
|
+
<a href="#35개-스킬">35개 스킬</a> ·
|
|
31
31
|
<a href="#아키텍처">아키텍처</a> ·
|
|
32
32
|
<a href="#deep-vs-light">Deep vs Light</a> ·
|
|
33
33
|
<a href="#보안">보안</a>
|
|
@@ -86,7 +86,7 @@ tfx setup
|
|
|
86
86
|
|
|
87
87
|
### 주요 특징
|
|
88
88
|
|
|
89
|
-
- **
|
|
89
|
+
- **35개 스킬** — Light 11개 + Deep 10개 + Infrastructure 12개, 9개 도메인으로 구성
|
|
90
90
|
- **Tri-Debate Engine** — 3개 CLI가 독립 분석 후 Anti-Herding, 교차 검증, 합의 점수 산출
|
|
91
91
|
- **Deep/Light 변형** — 모든 기능에 토큰 효율적인 Light 모드와 정밀한 Deep 모드를 제공
|
|
92
92
|
- **Consensus Gate** — Deep 스킬은 3개 CLI 중 2개 이상의 동의를 요구하며, 학습된 가중치로 CLI 신뢰도를 추적
|
|
@@ -128,7 +128,7 @@ Phase 3: Resolution (합의율 < 70%일 경우)
|
|
|
128
128
|
|
|
129
129
|
---
|
|
130
130
|
|
|
131
|
-
##
|
|
131
|
+
## 35개 스킬
|
|
132
132
|
|
|
133
133
|
### 리서치
|
|
134
134
|
|
|
@@ -313,6 +313,7 @@ tfx setup
|
|
|
313
313
|
# Team — Multi-CLI 병렬 오케스트레이션
|
|
314
314
|
/tfx-multi "refactor auth + update UI + add tests"
|
|
315
315
|
```
|
|
316
|
+
n> **참고**: Deep 스킬(`/tfx-deep-*`, `/tfx-persist`, `/tfx-ralph`)은 완전한 Tri-CLI 합의(Tier 1)를 위해 **psmux**(또는 tmux), **triflux Hub**, **Codex CLI**, **Gemini CLI**가 필요합니다. 전제조건이 충족되지 않으면 Tier 3(Claude 단독, single-model) 모드로 자동 전환됩니다. `tfx doctor`로 환경을 확인하세요.
|
|
316
317
|
|
|
317
318
|
---
|
|
318
319
|
|
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
12
12
|
<strong>Tri-CLI Orchestration with Consensus Intelligence</strong><br>
|
|
13
|
-
<em>Claude + Codex + Gemini — 3-party debate, anti-herding verification, and
|
|
13
|
+
<em>Claude + Codex + Gemini — 3-party debate, anti-herding verification, and 35 skills with Deep/Light variants.</em>
|
|
14
14
|
</p>
|
|
15
15
|
|
|
16
16
|
<p align="center">
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
<p align="center">
|
|
28
28
|
<a href="#quick-start">Quick Start</a> ·
|
|
29
29
|
<a href="#tri-cli-consensus">Tri-CLI Consensus</a> ·
|
|
30
|
-
<a href="#
|
|
30
|
+
<a href="#35-skills">35 Skills</a> ·
|
|
31
31
|
<a href="#architecture">Architecture</a> ·
|
|
32
32
|
<a href="#deep-vs-light">Deep vs Light</a> ·
|
|
33
33
|
<a href="#security">Security</a>
|
|
@@ -86,7 +86,7 @@ tfx setup
|
|
|
86
86
|
|
|
87
87
|
### Highlights
|
|
88
88
|
|
|
89
|
-
- **
|
|
89
|
+
- **35 Skills** — 11 Light + 10 Deep + 12 Infrastructure, organized across 9 domains
|
|
90
90
|
- **Tri-Debate Engine** — 3-CLI independent analysis with anti-herding, cross-validation, and consensus scoring
|
|
91
91
|
- **Deep/Light Variants** — Every capability has a token-efficient Light mode and a thorough Deep mode
|
|
92
92
|
- **Consensus Gate** — Deep skills require 2/3+ CLI agreement; learned weights track CLI reliability over time
|
|
@@ -128,7 +128,7 @@ Phase 3: Resolution (if consensus < 70%)
|
|
|
128
128
|
|
|
129
129
|
---
|
|
130
130
|
|
|
131
|
-
##
|
|
131
|
+
## 35 Skills
|
|
132
132
|
|
|
133
133
|
### Research
|
|
134
134
|
|
|
@@ -313,6 +313,7 @@ tfx setup
|
|
|
313
313
|
# Team — Multi-CLI parallel orchestration
|
|
314
314
|
/tfx-multi "refactor auth + update UI + add tests"
|
|
315
315
|
```
|
|
316
|
+
n> **Note**: Deep skills (`/tfx-deep-*`, `/tfx-persist`, `/tfx-ralph`) require **psmux** (or tmux), **triflux Hub**, **Codex CLI**, and **Gemini CLI** for full Tri-CLI consensus (Tier 1). Without these prerequisites, skills automatically degrade to Tier 3 (Claude-only, single-model) mode. Run `tfx doctor` to check your environment.
|
|
316
317
|
|
|
317
318
|
---
|
|
318
319
|
|
package/hub/team/psmux.mjs
CHANGED
|
@@ -323,12 +323,15 @@ function escapeRegExp(value) {
|
|
|
323
323
|
|
|
324
324
|
function psmux(args, opts = {}) {
|
|
325
325
|
const normalizedArgs = normalizePsmuxArgs(args);
|
|
326
|
+
// PSMUX_SESSION 제거 — 기존 psmux 세션 내에서 호출 시 중첩 세션 차단 방지
|
|
327
|
+
const { PSMUX_SESSION: _, ...cleanEnv } = process.env;
|
|
326
328
|
try {
|
|
327
329
|
const result = childProcess.execFileSync(PSMUX_BIN, normalizedArgs, {
|
|
328
330
|
encoding: "utf8",
|
|
329
331
|
timeout: PSMUX_TIMEOUT_MS,
|
|
330
332
|
stdio: ["pipe", "pipe", "pipe"],
|
|
331
333
|
windowsHide: true,
|
|
334
|
+
env: cleanEnv,
|
|
332
335
|
...opts,
|
|
333
336
|
});
|
|
334
337
|
return result != null ? String(result).trim() : "";
|
package/package.json
CHANGED
|
@@ -153,6 +153,11 @@ function deny(reason) {
|
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
async function main() {
|
|
156
|
+
// P0: TFX_ALLOW_DIRECT_CLI 환경변수 바이패스 — psmux 세션 생성 불가 시 수동 활성화
|
|
157
|
+
if (process.env.TFX_ALLOW_DIRECT_CLI === "1") {
|
|
158
|
+
nudge("[headless-guard] direct CLI mode (TFX_ALLOW_DIRECT_CLI=1)");
|
|
159
|
+
}
|
|
160
|
+
|
|
156
161
|
// psmux 미설치 → 전부 통과
|
|
157
162
|
if (!isPsmuxInstalled()) process.exit(0);
|
|
158
163
|
|
|
@@ -13,6 +13,57 @@ argument-hint: "<분석 대상 — 파일, 디렉토리, 또는 주제>"
|
|
|
13
13
|
> Claude(아키텍처) + Codex(구현/보안) + Gemini(UX/문서화) → Tri-Debate → 합의.
|
|
14
14
|
> 3자 전문 관점의 편향 없는 분석.
|
|
15
15
|
|
|
16
|
+
## 전제조건 프로브 및 Tier Degradation
|
|
17
|
+
|
|
18
|
+
> **진입 즉시 실행** — 10초 내 가시적 출력을 보장한다. 빈 stdout + exit 0 **금지**.
|
|
19
|
+
|
|
20
|
+
### 환경 프로브
|
|
21
|
+
|
|
22
|
+
워크플로우 진입 전, 아래 프로브를 실행하여 가용 환경을 감지한다:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
psmux --version 2>/dev/null && \
|
|
26
|
+
curl -sf http://127.0.0.1:27888/status >/dev/null && \
|
|
27
|
+
codex --version 2>/dev/null && \
|
|
28
|
+
gemini --version 2>/dev/null
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Tier 판정
|
|
32
|
+
|
|
33
|
+
| Tier | 조건 | 실행 방식 |
|
|
34
|
+
|------|------|----------|
|
|
35
|
+
| **Tier 1** | psmux + Hub + Codex + Gemini 전부 정상 | 기존 headless multi (변경 없음) |
|
|
36
|
+
| **Tier 2** | 일부 CLI만 가용 (Codex 또는 Gemini 중 하나) | 가용 CLI + Claude Agent 조합 |
|
|
37
|
+
| **Tier 3** | headless 불가 또는 `claude -p` one-shot | Claude Agent only |
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
IF claude -p (one-shot 모드):
|
|
41
|
+
→ Tier 3 즉시 fallback
|
|
42
|
+
|
|
43
|
+
IF psmux 없음 OR Hub 미응답:
|
|
44
|
+
→ Tier 3
|
|
45
|
+
|
|
46
|
+
IF Codex 없음 AND Gemini 없음:
|
|
47
|
+
→ Tier 3
|
|
48
|
+
|
|
49
|
+
IF Codex 없음 OR Gemini 없음:
|
|
50
|
+
→ Tier 2
|
|
51
|
+
|
|
52
|
+
ELSE:
|
|
53
|
+
→ Tier 1
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Tier 3 진입 시 필수 출력
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
⚠ [Tier 3] headless multi 환경 미충족 — single-model 모드로 실행합니다 (consensus 미적용)
|
|
60
|
+
누락: {missing_components}
|
|
61
|
+
권장: psmux, Hub, Codex CLI, Gemini CLI 설치 후 재실행
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Tier 3에서는 모든 headless dispatch(`tfx multi ...`)를 **Claude Agent**(subagent)로 대체한다.
|
|
65
|
+
Tier 2에서는 누락된 CLI만 Claude Agent로 대체한다.
|
|
66
|
+
|
|
16
67
|
## HARD RULES
|
|
17
68
|
|
|
18
69
|
> headless-guard가 이 규칙 위반을 **자동 차단**한다. 우회 불가.
|
|
@@ -17,6 +17,57 @@ argument-hint: "<구현할 기능 설명>"
|
|
|
17
17
|
|
|
18
18
|
---
|
|
19
19
|
|
|
20
|
+
## 전제조건 프로브 및 Tier Degradation
|
|
21
|
+
|
|
22
|
+
> **진입 즉시 실행** — 10초 내 가시적 출력을 보장한다. 빈 stdout + exit 0 **금지**.
|
|
23
|
+
|
|
24
|
+
### 환경 프로브
|
|
25
|
+
|
|
26
|
+
워크플로우 진입 전, 아래 프로브를 실행하여 가용 환경을 감지한다:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
psmux --version 2>/dev/null && \
|
|
30
|
+
curl -sf http://127.0.0.1:27888/status >/dev/null && \
|
|
31
|
+
codex --version 2>/dev/null && \
|
|
32
|
+
gemini --version 2>/dev/null
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Tier 판정
|
|
36
|
+
|
|
37
|
+
| Tier | 조건 | 실행 방식 |
|
|
38
|
+
|------|------|----------|
|
|
39
|
+
| **Tier 1** | psmux + Hub + Codex + Gemini 전부 정상 | 기존 headless multi (변경 없음) |
|
|
40
|
+
| **Tier 2** | 일부 CLI만 가용 (Codex 또는 Gemini 중 하나) | 가용 CLI + Claude Agent 조합 |
|
|
41
|
+
| **Tier 3** | headless 불가 또는 `claude -p` one-shot | Claude Agent only |
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
IF claude -p (one-shot 모드):
|
|
45
|
+
→ Tier 3 즉시 fallback
|
|
46
|
+
|
|
47
|
+
IF psmux 없음 OR Hub 미응답:
|
|
48
|
+
→ Tier 3
|
|
49
|
+
|
|
50
|
+
IF Codex 없음 AND Gemini 없음:
|
|
51
|
+
→ Tier 3
|
|
52
|
+
|
|
53
|
+
IF Codex 없음 OR Gemini 없음:
|
|
54
|
+
→ Tier 2
|
|
55
|
+
|
|
56
|
+
ELSE:
|
|
57
|
+
→ Tier 1
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Tier 3 진입 시 필수 출력
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
⚠ [Tier 3] headless multi 환경 미충족 — single-model 모드로 실행합니다 (consensus 미적용)
|
|
64
|
+
누락: {missing_components}
|
|
65
|
+
권장: psmux, Hub, Codex CLI, Gemini CLI 설치 후 재실행
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Tier 3에서는 모든 headless dispatch(`tfx multi ...`)를 **Claude Agent**(subagent)로 대체한다.
|
|
69
|
+
Tier 2에서는 누락된 CLI만 Claude Agent로 대체한다.
|
|
70
|
+
|
|
20
71
|
## HARD RULES
|
|
21
72
|
|
|
22
73
|
> headless-guard가 이 규칙 위반을 **자동 차단**한다. 우회 불가.
|
|
@@ -19,6 +19,57 @@ argument-hint: "[파일 경로 또는 변경 설명]"
|
|
|
19
19
|
**Anti-Herding**: Round 1에서 3개 CLI가 서로의 결과를 보지 않고 독립 리뷰.
|
|
20
20
|
**Consensus Only**: 2개 이상 CLI가 동일 이슈를 지적한 항목만 최종 보고 → false-positive 87% 감소.
|
|
21
21
|
|
|
22
|
+
## 전제조건 프로브 및 Tier Degradation
|
|
23
|
+
|
|
24
|
+
> **진입 즉시 실행** — 10초 내 가시적 출력을 보장한다. 빈 stdout + exit 0 **금지**.
|
|
25
|
+
|
|
26
|
+
### 환경 프로브
|
|
27
|
+
|
|
28
|
+
워크플로우 진입 전, 아래 프로브를 실행하여 가용 환경을 감지한다:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
psmux --version 2>/dev/null && \
|
|
32
|
+
curl -sf http://127.0.0.1:27888/status >/dev/null && \
|
|
33
|
+
codex --version 2>/dev/null && \
|
|
34
|
+
gemini --version 2>/dev/null
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Tier 판정
|
|
38
|
+
|
|
39
|
+
| Tier | 조건 | 실행 방식 |
|
|
40
|
+
|------|------|----------|
|
|
41
|
+
| **Tier 1** | psmux + Hub + Codex + Gemini 전부 정상 | 기존 headless multi (변경 없음) |
|
|
42
|
+
| **Tier 2** | 일부 CLI만 가용 (Codex 또는 Gemini 중 하나) | 가용 CLI + Claude Agent 조합 |
|
|
43
|
+
| **Tier 3** | headless 불가 또는 `claude -p` one-shot | Claude Agent only |
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
IF claude -p (one-shot 모드):
|
|
47
|
+
→ Tier 3 즉시 fallback
|
|
48
|
+
|
|
49
|
+
IF psmux 없음 OR Hub 미응답:
|
|
50
|
+
→ Tier 3
|
|
51
|
+
|
|
52
|
+
IF Codex 없음 AND Gemini 없음:
|
|
53
|
+
→ Tier 3
|
|
54
|
+
|
|
55
|
+
IF Codex 없음 OR Gemini 없음:
|
|
56
|
+
→ Tier 2
|
|
57
|
+
|
|
58
|
+
ELSE:
|
|
59
|
+
→ Tier 1
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Tier 3 진입 시 필수 출력
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
⚠ [Tier 3] headless multi 환경 미충족 — single-model 모드로 실행합니다 (consensus 미적용)
|
|
66
|
+
누락: {missing_components}
|
|
67
|
+
권장: psmux, Hub, Codex CLI, Gemini CLI 설치 후 재실행
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Tier 3에서는 모든 headless dispatch(`tfx multi ...`)를 **Claude Agent**(subagent)로 대체한다.
|
|
71
|
+
Tier 2에서는 누락된 CLI만 Claude Agent로 대체한다.
|
|
72
|
+
|
|
22
73
|
## HARD RULES
|
|
23
74
|
|
|
24
75
|
> headless-guard가 이 규칙 위반을 **자동 차단**한다. 우회 불가.
|
|
@@ -15,6 +15,57 @@ argument-hint: "<완료할 작업 설명>"
|
|
|
15
15
|
> OMC ralph 오마주. 핵심 차별점: 검증자가 단일 agent가 아니라 **3-CLI consensus**.
|
|
16
16
|
> The boulder never stops — but it stops being wrong.
|
|
17
17
|
|
|
18
|
+
## 전제조건 프로브 및 Tier Degradation
|
|
19
|
+
|
|
20
|
+
> **진입 즉시 실행** — 10초 내 가시적 출력을 보장한다. 빈 stdout + exit 0 **금지**.
|
|
21
|
+
|
|
22
|
+
### 환경 프로브
|
|
23
|
+
|
|
24
|
+
워크플로우 진입 전, 아래 프로브를 실행하여 가용 환경을 감지한다:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
psmux --version 2>/dev/null && \
|
|
28
|
+
curl -sf http://127.0.0.1:27888/status >/dev/null && \
|
|
29
|
+
codex --version 2>/dev/null && \
|
|
30
|
+
gemini --version 2>/dev/null
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Tier 판정
|
|
34
|
+
|
|
35
|
+
| Tier | 조건 | 실행 방식 |
|
|
36
|
+
|------|------|----------|
|
|
37
|
+
| **Tier 1** | psmux + Hub + Codex + Gemini 전부 정상 | 기존 headless multi (변경 없음) |
|
|
38
|
+
| **Tier 2** | 일부 CLI만 가용 (Codex 또는 Gemini 중 하나) | 가용 CLI + Claude Agent 조합 |
|
|
39
|
+
| **Tier 3** | headless 불가 또는 `claude -p` one-shot | Claude Agent only |
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
IF claude -p (one-shot 모드):
|
|
43
|
+
→ Tier 3 즉시 fallback
|
|
44
|
+
|
|
45
|
+
IF psmux 없음 OR Hub 미응답:
|
|
46
|
+
→ Tier 3
|
|
47
|
+
|
|
48
|
+
IF Codex 없음 AND Gemini 없음:
|
|
49
|
+
→ Tier 3
|
|
50
|
+
|
|
51
|
+
IF Codex 없음 OR Gemini 없음:
|
|
52
|
+
→ Tier 2
|
|
53
|
+
|
|
54
|
+
ELSE:
|
|
55
|
+
→ Tier 1
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Tier 3 진입 시 필수 출력
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
⚠ [Tier 3] headless multi 환경 미충족 — single-model 모드로 실행합니다 (consensus 미적용)
|
|
62
|
+
누락: {missing_components}
|
|
63
|
+
권장: psmux, Hub, Codex CLI, Gemini CLI 설치 후 재실행
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Tier 3에서는 모든 headless dispatch(`tfx multi ...`)를 **Claude Agent**(subagent)로 대체한다.
|
|
67
|
+
Tier 2에서는 누락된 CLI만 Claude Agent로 대체한다.
|
|
68
|
+
|
|
18
69
|
## HARD RULES
|
|
19
70
|
|
|
20
71
|
> headless-guard가 이 규칙 위반을 **자동 차단**한다. 우회 불가.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tfx-ralph
|
|
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-ralph — Alias for tfx-persist
|
|
14
|
+
|
|
15
|
+
> `tfx-ralph`는 `tfx-persist`의 alias이다. 동일한 Tri-Verified Persistence Loop을 실행한다.
|
|
16
|
+
> The boulder never stops — but it stops being wrong.
|
|
17
|
+
|
|
18
|
+
## 실행 계약
|
|
19
|
+
|
|
20
|
+
이 스킬은 `tfx-persist`와 **완전히 동일한 실행 흐름**을 공유한다:
|
|
21
|
+
|
|
22
|
+
1. **동일한 headless multi 경로** — `tfx multi --teammate-mode headless` 기반 3자 검증
|
|
23
|
+
2. **동일한 degradation 체인** — Tier 1 (전체 가용) → Tier 2 (부분 가용) → Tier 3 (Claude only)
|
|
24
|
+
3. **동일한 워크플로우** — Goal Definition → Execution Loop → Final Verification → Deslop Pass
|
|
25
|
+
|
|
26
|
+
## 전제조건 프로브 및 Tier Degradation
|
|
27
|
+
|
|
28
|
+
> **진입 즉시 실행** — 10초 내 가시적 출력을 보장한다. 빈 stdout + exit 0 **금지**.
|
|
29
|
+
|
|
30
|
+
### 환경 프로브
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
psmux --version 2>/dev/null && \
|
|
34
|
+
curl -sf http://127.0.0.1:27888/status >/dev/null && \
|
|
35
|
+
codex --version 2>/dev/null && \
|
|
36
|
+
gemini --version 2>/dev/null
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Tier 판정
|
|
40
|
+
|
|
41
|
+
| Tier | 조건 | 실행 방식 |
|
|
42
|
+
|------|------|----------|
|
|
43
|
+
| **Tier 1** | psmux + Hub + Codex + Gemini 전부 정상 | 기존 headless multi (변경 없음) |
|
|
44
|
+
| **Tier 2** | 일부 CLI만 가용 (Codex 또는 Gemini 중 하나) | 가용 CLI + Claude Agent 조합 |
|
|
45
|
+
| **Tier 3** | headless 불가 또는 `claude -p` one-shot | Claude Agent only |
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
IF claude -p (one-shot 모드):
|
|
49
|
+
→ Tier 3 즉시 fallback
|
|
50
|
+
|
|
51
|
+
IF psmux 없음 OR Hub 미응답:
|
|
52
|
+
→ Tier 3
|
|
53
|
+
|
|
54
|
+
IF Codex 없음 AND Gemini 없음:
|
|
55
|
+
→ Tier 3
|
|
56
|
+
|
|
57
|
+
IF Codex 없음 OR Gemini 없음:
|
|
58
|
+
→ Tier 2
|
|
59
|
+
|
|
60
|
+
ELSE:
|
|
61
|
+
→ Tier 1
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Tier 3 진입 시 필수 출력
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
⚠ [Tier 3] headless multi 환경 미충족 — single-model 모드로 실행합니다 (consensus 미적용)
|
|
68
|
+
누락: {missing_components}
|
|
69
|
+
권장: psmux, Hub, Codex CLI, Gemini CLI 설치 후 재실행
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Tier 3에서는 모든 headless dispatch(`tfx multi ...`)를 **Claude Agent**(subagent)로 대체한다.
|
|
73
|
+
Tier 2에서는 누락된 CLI만 Claude Agent로 대체한다.
|
|
74
|
+
|
|
75
|
+
## 라우팅
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
/tfx-ralph "{task}" → /tfx-persist "{task}" 로 내부 전달
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
전체 워크플로우, 토큰 예산, Anti-Stuck 메커니즘은 [tfx-persist/SKILL.md](../tfx-persist/SKILL.md)를 참조하라.
|