triflux 0.0.1 → 2.0.1
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/.claude-plugin/marketplace.json +31 -0
- package/.claude-plugin/plugin.json +23 -0
- package/.mcp.json +3 -0
- package/LICENSE +21 -0
- package/README.ko.md +276 -0
- package/README.md +276 -1
- package/bin/tfx-doctor.mjs +8 -0
- package/bin/tfx-setup.mjs +8 -0
- package/bin/triflux.mjs +707 -0
- package/hooks/hooks.json +17 -0
- package/hud/hud-qos-status.mjs +1380 -0
- package/package.json +46 -7
- package/scripts/cli-route.sh +937 -0
- package/scripts/mcp-check.mjs +88 -0
- package/scripts/setup.mjs +215 -0
- package/skills/auto-verify/SKILL.md +145 -0
- package/skills/manage-skills/SKILL.md +192 -0
- package/skills/tfx-auto/SKILL.md +658 -0
- package/skills/tfx-codex/SKILL.md +61 -0
- package/skills/tfx-gemini/SKILL.md +78 -0
- package/skills/tfx-setup/SKILL.md +97 -0
- package/skills/verify-implementation/SKILL.md +138 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tfx-codex
|
|
3
|
+
description: Codex-Only 오케스트레이터. tfx-auto 워크플로우를 Codex 전용으로 고정합니다.
|
|
4
|
+
triggers:
|
|
5
|
+
- tfx-codex
|
|
6
|
+
argument-hint: "\"작업 설명\" | N:codex \"작업 설명\""
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# tfx-codex — Codex-Only 오케스트레이터
|
|
10
|
+
|
|
11
|
+
> Codex CLI만 사용하여 모든 외부 CLI 작업을 라우팅합니다.
|
|
12
|
+
> Gemini CLI가 없는 환경에서 사용합니다.
|
|
13
|
+
|
|
14
|
+
## 사용법
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/tfx-codex "작업 설명"
|
|
18
|
+
/tfx-codex N:codex "작업 설명"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 동작 원리
|
|
22
|
+
|
|
23
|
+
`tfx-auto`와 동일한 워크플로우를 사용하되, `TFX_CLI_MODE=codex` 환경변수를 설정하여
|
|
24
|
+
모든 Gemini 에이전트(designer, writer)를 Codex로 리매핑합니다.
|
|
25
|
+
|
|
26
|
+
### 에이전트 라우팅
|
|
27
|
+
|
|
28
|
+
| 에이전트 | 원래 CLI | tfx-codex에서 |
|
|
29
|
+
|----------|---------|-------------|
|
|
30
|
+
| executor, build-fixer, debugger | Codex | Codex (변경 없음) |
|
|
31
|
+
| architect, planner, critic, analyst | Codex | Codex (변경 없음) |
|
|
32
|
+
| code-reviewer, security-reviewer | Codex | Codex (변경 없음) |
|
|
33
|
+
| scientist, document-specialist | Codex | Codex (변경 없음) |
|
|
34
|
+
| **designer** | ~~Gemini~~ | **Codex** (effort: high) — UI 코드 생성 |
|
|
35
|
+
| **writer** | ~~Gemini~~ | **Codex Spark** (effort: spark_fast) — 경량 문서 |
|
|
36
|
+
| explore | Claude Haiku | Claude Haiku (변경 없음) |
|
|
37
|
+
| verifier, test-engineer | Claude Sonnet | Claude Sonnet (변경 없음) |
|
|
38
|
+
|
|
39
|
+
## 실행 규칙
|
|
40
|
+
|
|
41
|
+
**tfx-auto SKILL.md의 모든 Phase(1~6) 워크플로우를 그대로 따릅니다.**
|
|
42
|
+
|
|
43
|
+
유일한 차이점:
|
|
44
|
+
|
|
45
|
+
1. **Phase 3 CLI 실행 시** `TFX_CLI_MODE=codex`를 환경변수로 전달:
|
|
46
|
+
```bash
|
|
47
|
+
TFX_CLI_MODE=codex bash ~/.claude/scripts/cli-route.sh {agent} '{prompt}' {mcp_profile}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
2. **Phase 2 트리아지에서** gemini 분류 결과를 codex로 강제 변환:
|
|
51
|
+
- Codex 분류가 `gemini`를 반환하면 → `codex`로 교체
|
|
52
|
+
- Opus 분해에서 designer/writer → Codex 에이전트 + implement/analyze MCP 프로필
|
|
53
|
+
|
|
54
|
+
3. **MCP 프로필 조정**:
|
|
55
|
+
- designer: `implement` (코드 기반 UI 작업)
|
|
56
|
+
- writer: `analyze` (문서 기반 리서치+작성)
|
|
57
|
+
|
|
58
|
+
## 필수 조건
|
|
59
|
+
|
|
60
|
+
- [Codex CLI](https://github.com/openai/codex): `npm install -g @openai/codex`
|
|
61
|
+
- Gemini CLI 불필요
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tfx-gemini
|
|
3
|
+
description: Gemini-Only 오케스트레이터. tfx-auto 워크플로우를 Gemini 전용으로 고정합니다.
|
|
4
|
+
triggers:
|
|
5
|
+
- tfx-gemini
|
|
6
|
+
argument-hint: "\"작업 설명\" | N:gemini \"작업 설명\""
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# tfx-gemini — Gemini-Only 오케스트레이터
|
|
10
|
+
|
|
11
|
+
> Gemini CLI만 사용하여 모든 외부 CLI 작업을 라우팅합니다.
|
|
12
|
+
> Codex CLI가 없는 환경에서 사용합니다.
|
|
13
|
+
|
|
14
|
+
## 사용법
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/tfx-gemini "작업 설명"
|
|
18
|
+
/tfx-gemini N:gemini "작업 설명"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 동작 원리
|
|
22
|
+
|
|
23
|
+
`tfx-auto`와 동일한 워크플로우를 사용하되, `TFX_CLI_MODE=gemini` 환경변수를 설정하여
|
|
24
|
+
모든 Codex 에이전트를 Gemini로 리매핑합니다.
|
|
25
|
+
|
|
26
|
+
### 에이전트 라우팅
|
|
27
|
+
|
|
28
|
+
| 에이전트 | 원래 CLI | tfx-gemini에서 |
|
|
29
|
+
|----------|---------|--------------|
|
|
30
|
+
| **executor, debugger, deep-executor** | ~~Codex~~ | **Gemini Pro** |
|
|
31
|
+
| **build-fixer** | ~~Codex~~ | **Gemini Flash** |
|
|
32
|
+
| **architect, planner, critic, analyst** | ~~Codex~~ | **Gemini Pro** |
|
|
33
|
+
| **code-reviewer, security-reviewer, quality-reviewer** | ~~Codex~~ | **Gemini Pro** |
|
|
34
|
+
| **scientist, scientist-deep** | ~~Codex~~ | **Gemini Pro/Flash** |
|
|
35
|
+
| **document-specialist** | ~~Codex~~ | **Gemini Flash** |
|
|
36
|
+
| designer | Gemini | Gemini (변경 없음) |
|
|
37
|
+
| writer | Gemini | Gemini (변경 없음) |
|
|
38
|
+
| explore | Claude Haiku | Claude Haiku (변경 없음) |
|
|
39
|
+
| verifier, test-engineer | Claude Sonnet | Claude Sonnet (변경 없음) |
|
|
40
|
+
|
|
41
|
+
### 모델 분기
|
|
42
|
+
|
|
43
|
+
| 복잡도 | Gemini 모델 | 대상 에이전트 | 근거 |
|
|
44
|
+
|--------|------------|-------------|------|
|
|
45
|
+
| 높음 | `gemini-3.1-pro-preview` | executor, debugger, deep-executor | 구현/분석 깊이 필요 |
|
|
46
|
+
| 높음 | `gemini-3.1-pro-preview` | architect, planner, critic, analyst | 설계 품질 |
|
|
47
|
+
| 높음 | `gemini-3.1-pro-preview` | code-reviewer, security-reviewer, quality-reviewer | 리뷰 품질 |
|
|
48
|
+
| 높음 | `gemini-3.1-pro-preview` | scientist-deep | 심층 리서치 |
|
|
49
|
+
| 낮음 | `gemini-3-flash-preview` | build-fixer, spark | 빠른 수정/린트 |
|
|
50
|
+
| 낮음 | `gemini-3-flash-preview` | scientist, document-specialist | 일반 검색+요약 |
|
|
51
|
+
| 낮음 | `gemini-3-flash-preview` | writer | 문서/가이드 생성 |
|
|
52
|
+
|
|
53
|
+
## 실행 규칙
|
|
54
|
+
|
|
55
|
+
**tfx-auto SKILL.md의 모든 Phase(1~6) 워크플로우를 그대로 따릅니다.**
|
|
56
|
+
|
|
57
|
+
유일한 차이점:
|
|
58
|
+
|
|
59
|
+
1. **Phase 3 CLI 실행 시** `TFX_CLI_MODE=gemini`을 환경변수로 전달:
|
|
60
|
+
```bash
|
|
61
|
+
TFX_CLI_MODE=gemini bash ~/.claude/scripts/cli-route.sh {agent} '{prompt}' {mcp_profile}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
2. **Phase 2 트리아지에서** codex 분류 결과를 gemini로 강제 변환:
|
|
65
|
+
- Codex 분류가 `codex`를 반환하면 → `gemini`로 교체
|
|
66
|
+
- Opus 분해에서 모든 Codex 에이전트 → Gemini 모델 매핑
|
|
67
|
+
|
|
68
|
+
3. **Phase 2a Codex 분류 단계를 건너뜀**:
|
|
69
|
+
- Codex CLI가 없으므로 Opus가 직접 분류+분해 수행
|
|
70
|
+
|
|
71
|
+
4. **Windows 안정화 자동 적용**:
|
|
72
|
+
- 모든 Gemini 워커에 `--timeout 60` + health check
|
|
73
|
+
- hang 감지 시 자동 재시도
|
|
74
|
+
|
|
75
|
+
## 필수 조건
|
|
76
|
+
|
|
77
|
+
- [Gemini CLI](https://github.com/google-gemini/gemini-cli): `npm install -g @google/gemini-cli`
|
|
78
|
+
- Codex CLI 불필요
|
|
@@ -0,0 +1,97 @@
|
|
|
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
|
+
| cli-route.sh | ✅ v1.5 |
|
|
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 경로에 공백 | 큰따옴표로 감싸기 |
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: verify-implementation
|
|
3
|
+
description: 프로젝트의 모든 verify 스킬을 순차 실행하여 통합 검증 보고서를 생성합니다. 기능 구현 후, PR 전, 코드 리뷰 시 사용.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
argument-hint: "[선택사항: 특정 verify 스킬 이름]"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# verify-implementation — 통합 구현 검증
|
|
9
|
+
|
|
10
|
+
## 목적
|
|
11
|
+
|
|
12
|
+
프로젝트에 등록된 모든 `verify-*` 스킬을 순차적으로 실행하여 통합 검증을 수행합니다:
|
|
13
|
+
|
|
14
|
+
- 각 스킬의 Workflow에 정의된 검사를 실행
|
|
15
|
+
- 각 스킬의 Exceptions를 참조하여 false positive 방지
|
|
16
|
+
- 발견된 이슈에 대해 수정 방법을 제시
|
|
17
|
+
- 사용자 승인 후 수정 적용 및 재검증
|
|
18
|
+
|
|
19
|
+
## OMC 호환
|
|
20
|
+
|
|
21
|
+
이 스킬은 OMC 파이프라인에서 **team-verify 단계의 보완 도구**로 사용 가능합니다:
|
|
22
|
+
|
|
23
|
+
- **실행 순서 권장**: `/verify-implementation` (프로젝트 규칙) → OMC `verifier` (일반 품질)
|
|
24
|
+
- **MCP-First 연동**: 이슈 리포트를 `ask_codex`(code-reviewer)에 전달하여 심층 리뷰 가능
|
|
25
|
+
- OMC `quality-reviewer`, `security-reviewer`는 **범용** → verify 스킬은 **프로젝트 고유 규칙** 검증
|
|
26
|
+
- OMC `/code-review`와 결합 시 프로젝트 규칙 + 범용 품질을 한 번에 확인
|
|
27
|
+
|
|
28
|
+
## 실행 시점
|
|
29
|
+
|
|
30
|
+
- 새로운 기능을 구현한 후
|
|
31
|
+
- Pull Request를 생성하기 전
|
|
32
|
+
- 코드 리뷰 중
|
|
33
|
+
- 코드베이스 규칙 준수 여부를 감사할 때
|
|
34
|
+
|
|
35
|
+
## 실행 대상 스킬
|
|
36
|
+
|
|
37
|
+
이 스킬이 순차 실행하는 검증 스킬 목록입니다. `/manage-skills`가 스킬을 생성/삭제할 때 이 목록을 자동 업데이트합니다.
|
|
38
|
+
|
|
39
|
+
(아직 등록된 검증 스킬이 없습니다)
|
|
40
|
+
|
|
41
|
+
<!-- 스킬이 추가되면 아래 형식으로 등록:
|
|
42
|
+
| # | 스킬 | 설명 |
|
|
43
|
+
|---|------|------|
|
|
44
|
+
| 1 | `verify-example` | 예시 검증 설명 |
|
|
45
|
+
-->
|
|
46
|
+
|
|
47
|
+
## 워크플로우
|
|
48
|
+
|
|
49
|
+
### Step 1: 소개
|
|
50
|
+
|
|
51
|
+
**실행 대상 스킬** 테이블을 확인합니다. 선택적 인수가 있으면 해당 스킬만 필터링합니다.
|
|
52
|
+
|
|
53
|
+
**등록된 스킬이 0개인 경우:**
|
|
54
|
+
|
|
55
|
+
```markdown
|
|
56
|
+
## 구현 검증
|
|
57
|
+
|
|
58
|
+
검증 스킬이 없습니다. `/manage-skills`를 실행하여 프로젝트에 맞는 검증 스킬을 생성하세요.
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Step 2: 순차 실행
|
|
62
|
+
|
|
63
|
+
각 스킬에 대해:
|
|
64
|
+
|
|
65
|
+
1. `.claude/skills/verify-<name>/SKILL.md`를 읽고 Workflow/Exceptions/Related Files 파싱
|
|
66
|
+
2. Workflow의 각 검사를 순서대로 실행 (Grep, Glob, Read, Bash)
|
|
67
|
+
3. 탐지 결과를 PASS/FAIL 기준에 대조
|
|
68
|
+
4. Exceptions에 해당하면 면제 처리
|
|
69
|
+
5. FAIL이면 이슈 기록 (파일 경로, 라인 번호, 문제, 수정 방법)
|
|
70
|
+
|
|
71
|
+
```markdown
|
|
72
|
+
### verify-<name> 검증 완료
|
|
73
|
+
|
|
74
|
+
- 검사 항목: N개
|
|
75
|
+
- 통과: X개
|
|
76
|
+
- 이슈: Y개
|
|
77
|
+
- 면제: Z개
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Step 3: 통합 보고서
|
|
81
|
+
|
|
82
|
+
```markdown
|
|
83
|
+
## 구현 검증 보고서
|
|
84
|
+
|
|
85
|
+
### 요약
|
|
86
|
+
|
|
87
|
+
| 검증 스킬 | 상태 | 이슈 수 |
|
|
88
|
+
|-----------|------|---------|
|
|
89
|
+
| verify-<name1> | PASS / X개 이슈 | N |
|
|
90
|
+
| verify-<name2> | PASS / X개 이슈 | N |
|
|
91
|
+
|
|
92
|
+
**발견된 총 이슈: X개**
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**이슈 발견 시:**
|
|
96
|
+
|
|
97
|
+
```markdown
|
|
98
|
+
### 발견된 이슈
|
|
99
|
+
|
|
100
|
+
| # | 스킬 | 파일 | 문제 | 수정 방법 |
|
|
101
|
+
|---|------|------|------|-----------|
|
|
102
|
+
| 1 | verify-<name> | `path:42` | 문제 설명 | 수정 코드 |
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Step 4: 사용자 액션 확인
|
|
106
|
+
|
|
107
|
+
`AskUserQuestion`으로 확인:
|
|
108
|
+
1. **전체 수정** — 모든 권장 수정사항 자동 적용
|
|
109
|
+
2. **개별 수정** — 각 수정사항 하나씩 검토
|
|
110
|
+
3. **건너뛰기** — 변경 없이 종료
|
|
111
|
+
|
|
112
|
+
### Step 5: 수정 적용
|
|
113
|
+
|
|
114
|
+
사용자 선택에 따라 수정 적용 + 진행 상황 표시.
|
|
115
|
+
|
|
116
|
+
### Step 6: 수정 후 재검증
|
|
117
|
+
|
|
118
|
+
이슈가 있었던 스킬만 재실행하여 Before/After 비교:
|
|
119
|
+
|
|
120
|
+
```markdown
|
|
121
|
+
| 검증 스킬 | 수정 전 | 수정 후 |
|
|
122
|
+
|-----------|---------|---------|
|
|
123
|
+
| verify-<name> | X개 이슈 | PASS |
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## 예외사항
|
|
127
|
+
|
|
128
|
+
1. **등록된 스킬이 없는 프로젝트** — 안내 메시지 표시 후 종료
|
|
129
|
+
2. **스킬 자체적 예외** — 각 verify 스킬의 Exceptions에 정의된 패턴은 이슈 아님
|
|
130
|
+
3. **verify-implementation 자체** — 실행 대상에 자기 자신 미포함
|
|
131
|
+
4. **manage-skills** — `verify-`로 시작하지 않으므로 실행 대상 아님
|
|
132
|
+
|
|
133
|
+
## 관련 파일
|
|
134
|
+
|
|
135
|
+
| File | Purpose |
|
|
136
|
+
|------|---------|
|
|
137
|
+
| `.claude/skills/manage-skills/SKILL.md` | 스킬 유지보수 |
|
|
138
|
+
| `CLAUDE.md` | 프로젝트 지침 |
|