triflux 8.5.0 → 8.6.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/bin/triflux.mjs +6 -4
- package/hub/team/backend.mjs +1 -1
- package/hub/team/psmux.mjs +1 -1
- package/hub/team/tui-viewer.mjs +4 -1
- package/hub/team/tui.mjs +7 -2
- package/package.json +1 -1
- package/scripts/demo-tui.mjs +59 -0
- package/scripts/headless-guard.mjs +1 -1
- package/scripts/tfx-route-worker.mjs +6 -2
- package/skills/tfx-analysis/SKILL.md +101 -101
- package/skills/tfx-autopilot/SKILL.md +112 -112
- package/skills/tfx-autoroute/SKILL.md +184 -184
- package/skills/tfx-consensus/SKILL.md +114 -112
- package/skills/tfx-debate/SKILL.md +9 -9
- package/skills/tfx-deep-analysis/SKILL.md +191 -186
- package/skills/tfx-deep-plan/SKILL.md +20 -16
- package/skills/tfx-deep-qa/SKILL.md +14 -13
- package/skills/tfx-deep-research/SKILL.md +9 -9
- package/skills/tfx-deep-review/SKILL.md +96 -91
- package/skills/tfx-fullcycle/SKILL.md +18 -19
- package/skills/tfx-panel/SKILL.md +6 -6
- package/skills/tfx-qa/SKILL.md +117 -117
- package/skills/tfx-review/SKILL.md +51 -51
|
@@ -1,91 +1,96 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: tfx-deep-review
|
|
3
|
-
description: "철저한 코드 리뷰가 필요할 때 사용한다. '꼼꼼히 리뷰', 'deep review', '심층 리뷰', '보안까지 리뷰', '다각도 리뷰', '중요한 변경이라 제대로 봐줘' 같은 요청에 사용. 보안/성능/가독성 3관점 독립 검증이 필요한 중요 코드 변경에 적극 활용."
|
|
4
|
-
triggers:
|
|
5
|
-
- deep review
|
|
6
|
-
- 심층 리뷰
|
|
7
|
-
- multi review
|
|
8
|
-
- deep-review
|
|
9
|
-
- 철저한 리뷰
|
|
10
|
-
argument-hint: "[파일 경로 또는 변경 설명]"
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# tfx-deep-review — Tri-CLI Deep Code Review
|
|
14
|
-
|
|
15
|
-
> 3-CLI 독립 리뷰 → 교차검증 → 2+ 합의 항목만 보고. Diffray + Calimero 영감.
|
|
16
|
-
|
|
17
|
-
## 핵심 원리
|
|
18
|
-
|
|
19
|
-
**Anti-Herding**: Round 1에서 3개 CLI가 서로의 결과를 보지 않고 독립 리뷰.
|
|
20
|
-
**Consensus Only**: 2개 이상 CLI가 동일 이슈를 지적한 항목만 최종 보고 → false-positive 87% 감소.
|
|
21
|
-
|
|
22
|
-
## 워크플로우
|
|
23
|
-
|
|
24
|
-
### Step 1: 리뷰 대상 수집
|
|
25
|
-
```
|
|
26
|
-
git diff (staged + unstaged) 또는 지정 파일 수집
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### Step 2: 3-CLI 독립 리뷰 (동시, 상호 비공개)
|
|
30
|
-
|
|
31
|
-
```
|
|
32
|
-
Claude Opus (Agent, background):
|
|
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
|
-
|
|
1
|
+
---
|
|
2
|
+
name: tfx-deep-review
|
|
3
|
+
description: "철저한 코드 리뷰가 필요할 때 사용한다. '꼼꼼히 리뷰', 'deep review', '심층 리뷰', '보안까지 리뷰', '다각도 리뷰', '중요한 변경이라 제대로 봐줘' 같은 요청에 사용. 보안/성능/가독성 3관점 독립 검증이 필요한 중요 코드 변경에 적극 활용."
|
|
4
|
+
triggers:
|
|
5
|
+
- deep review
|
|
6
|
+
- 심층 리뷰
|
|
7
|
+
- multi review
|
|
8
|
+
- deep-review
|
|
9
|
+
- 철저한 리뷰
|
|
10
|
+
argument-hint: "[파일 경로 또는 변경 설명]"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# tfx-deep-review — Tri-CLI Deep Code Review
|
|
14
|
+
|
|
15
|
+
> 3-CLI 독립 리뷰 → 교차검증 → 2+ 합의 항목만 보고. Diffray + Calimero 영감.
|
|
16
|
+
|
|
17
|
+
## 핵심 원리
|
|
18
|
+
|
|
19
|
+
**Anti-Herding**: Round 1에서 3개 CLI가 서로의 결과를 보지 않고 독립 리뷰.
|
|
20
|
+
**Consensus Only**: 2개 이상 CLI가 동일 이슈를 지적한 항목만 최종 보고 → false-positive 87% 감소.
|
|
21
|
+
|
|
22
|
+
## 워크플로우
|
|
23
|
+
|
|
24
|
+
### Step 1: 리뷰 대상 수집
|
|
25
|
+
```
|
|
26
|
+
git diff (staged + unstaged) 또는 지정 파일 수집
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Step 2: 3-CLI 독립 리뷰 (동시, 상호 비공개)
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
Claude Opus (Agent, background):
|
|
33
|
+
Agent(subagent_type="oh-my-claudecode:code-reviewer", run_in_background=true)
|
|
34
|
+
관점: 로직 결함, 아키텍처 위반, 설계 패턴
|
|
35
|
+
"코드 리뷰어로서 로직/아키텍처 관점에서 분석하라.
|
|
36
|
+
JSON: { findings: [{ id, file, line, severity, category, description, suggestion }] }"
|
|
37
|
+
|
|
38
|
+
CLI 워커 headless dispatch (Codex + Gemini 동시, MANDATORY):
|
|
39
|
+
Bash("tfx multi --teammate-mode headless --auto-attach --dashboard \
|
|
40
|
+
--assign 'codex:{아래 Codex 프롬프트}:reviewer' \
|
|
41
|
+
--assign 'gemini:{아래 Gemini 프롬프트}:reviewer' \
|
|
42
|
+
--timeout 600")
|
|
43
|
+
|
|
44
|
+
Codex 프롬프트:
|
|
45
|
+
관점: 보안 취약점, 성능 병목, 에러 핸들링
|
|
46
|
+
"보안/성능 전문가로서 분석하라. OWASP Top 10, O(n²) 패턴, 누락된 에러 핸들링.
|
|
47
|
+
JSON: { findings: [...] }"
|
|
48
|
+
|
|
49
|
+
Gemini 프롬프트:
|
|
50
|
+
관점: 가독성, 문서화, 네이밍, DX
|
|
51
|
+
"코드 품질 전문가로서 분석하라. 가독성, 네이밍 컨벤션, 주석 필요성, 타입 안전성.
|
|
52
|
+
JSON: { findings: [...] }"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Step 3: Consensus Scoring
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
모든 findings를 수집하여 유사도 비교:
|
|
59
|
+
- 동일 파일+라인±5 + 유사 카테고리 → 동일 이슈로 간주
|
|
60
|
+
- 3/3 합의 → severity 유지
|
|
61
|
+
- 2/3 합의 → severity 유지, 반대 의견 첨부
|
|
62
|
+
- 1/3만 지적 → UNVERIFIED 표시 (참고용, 별도 섹션)
|
|
63
|
+
|
|
64
|
+
consensus_score = consensus_items / total_unique_items × 100
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Step 4: 종합 보고서
|
|
68
|
+
|
|
69
|
+
```markdown
|
|
70
|
+
## Deep Code Review: {target}
|
|
71
|
+
**Consensus Score**: {score}% | **Reviewers**: Claude/Codex/Gemini
|
|
72
|
+
|
|
73
|
+
### Critical (3/3 합의)
|
|
74
|
+
- [C1] `{file}:{line}` — {description}
|
|
75
|
+
- Claude: {detail} | Codex: {detail} | Gemini: {detail}
|
|
76
|
+
- **Fix**: {suggestion}
|
|
77
|
+
|
|
78
|
+
### High (2/3 합의)
|
|
79
|
+
- [H1] `{file}:{line}` — {description}
|
|
80
|
+
- 합의: {agreers} | 반대: {dissenter}: "{reason}"
|
|
81
|
+
|
|
82
|
+
### Verified Medium
|
|
83
|
+
- ...
|
|
84
|
+
|
|
85
|
+
### Unverified (1/3만 지적, 참고용)
|
|
86
|
+
- [U1] `{file}:{line}` — {description} (by {single_cli})
|
|
87
|
+
|
|
88
|
+
### 통계
|
|
89
|
+
| CLI | 발견 수 | 합의 기여율 |
|
|
90
|
+
|-----|---------|------------|
|
|
91
|
+
| Claude | {n} | {%} |
|
|
92
|
+
| Codex | {n} | {%} |
|
|
93
|
+
| Gemini | {n} | {%} |
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## 토큰: ~25K
|
|
@@ -58,19 +58,19 @@ Claude Opus (Planner, background):
|
|
|
58
58
|
태스크 분해, 순서, 의존성, TDD 전략 포함.
|
|
59
59
|
JSON: { tasks, order, dependencies, tdd_strategy, risks }"
|
|
60
60
|
|
|
61
|
-
Codex
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
> **MANDATORY: Codex/Gemini 계획 라운드는 headless dispatch로 실행**
|
|
62
|
+
|
|
63
|
+
CLI 워커 headless dispatch (Bash, background):
|
|
64
|
+
Bash("tfx multi --teammate-mode headless --auto-attach --dashboard \
|
|
65
|
+
--assign 'codex:시니어 엔지니어로서 기술적 설계를 작성하라:
|
|
64
66
|
기능: {expanded_requirements}
|
|
65
67
|
파일 구조, API 인터페이스, 데이터 모델 포함.
|
|
66
|
-
JSON: { design, file_changes, interfaces, test_plan }
|
|
67
|
-
|
|
68
|
-
Gemini (Critic, background):
|
|
69
|
-
gemini -y -p \
|
|
70
|
-
"QA 전문가로서 구현 계획의 리스크를 분석하라:
|
|
68
|
+
JSON: { design, file_changes, interfaces, test_plan }:architect' \
|
|
69
|
+
--assign 'gemini:QA 전문가로서 구현 계획의 리스크를 분석하라:
|
|
71
70
|
기능: {expanded_requirements}
|
|
72
71
|
엣지 케이스, 보안, 성능, 접근성 우려 포함.
|
|
73
|
-
JSON: { edge_cases, security_risks, performance, accessibility, test_cases }
|
|
72
|
+
JSON: { edge_cases, security_risks, performance, accessibility, test_cases }:critic' \
|
|
73
|
+
--timeout 600")
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
3개 결과를 tfx-consensus 프로토콜로 합의 도출:
|
|
@@ -115,19 +115,18 @@ Claude (기능 + 엣지케이스, background):
|
|
|
115
115
|
엣지 케이스 테스트 시나리오 제안.
|
|
116
116
|
JSON: { criteria_results, edge_case_findings, overall_pass }"
|
|
117
117
|
|
|
118
|
-
Codex
|
|
119
|
-
codex exec review --profile thorough \
|
|
120
|
-
--dangerously-bypass-approvals-and-sandbox --skip-git-repo-check \
|
|
121
|
-
"보안/성능 관점에서 변경사항을 리뷰하라:
|
|
122
|
-
OWASP Top 10, 성능 병목, 에러 핸들링, 리소스 누수 확인.
|
|
123
|
-
JSON: { security_findings, performance_findings, overall_pass }"
|
|
118
|
+
> **MANDATORY: Codex/Gemini QA 리뷰는 headless dispatch로 실행**
|
|
124
119
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
120
|
+
CLI 워커 headless dispatch (Bash, background):
|
|
121
|
+
Bash("tfx multi --teammate-mode headless --auto-attach --dashboard \
|
|
122
|
+
--assign 'codex:보안/성능 관점에서 변경사항을 리뷰하라:
|
|
123
|
+
OWASP Top 10, 성능 병목, 에러 핸들링, 리소스 누수 확인.
|
|
124
|
+
JSON: { security_findings, performance_findings, overall_pass }:verifier' \
|
|
125
|
+
--assign 'gemini:UX/접근성 관점에서 변경사항을 리뷰하라:
|
|
128
126
|
UI 변경 있으면: 접근성, 반응형, 사용성.
|
|
129
127
|
API 변경 있으면: DX, 문서화, 일관성.
|
|
130
|
-
JSON: { ux_findings, accessibility_findings, overall_pass }
|
|
128
|
+
JSON: { ux_findings, accessibility_findings, overall_pass }:verifier' \
|
|
129
|
+
--timeout 600")
|
|
131
130
|
```
|
|
132
131
|
|
|
133
132
|
### Phase 5: Validation (Consensus >= 70)
|
|
@@ -99,13 +99,13 @@ Claude (Agent, background):
|
|
|
99
99
|
각 전문가의 고유 관점에서 분석하세요.
|
|
100
100
|
JSON: { experts: [{ name, position, reasoning, concerns, recommendation, confidence }] }"
|
|
101
101
|
|
|
102
|
-
Codex
|
|
103
|
-
codex exec --dangerously-bypass-approvals-and-sandbox --skip-git-repo-check \
|
|
104
|
-
"당신은 {expert_3.name}과 {expert_4.name}입니다. {topic}에 대해 각 전문가 관점으로..."
|
|
102
|
+
> **MANDATORY: Codex/Gemini 전문가 분석은 headless dispatch로 실행**
|
|
105
103
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
104
|
+
CLI 워커 headless dispatch (Bash, background):
|
|
105
|
+
Bash("tfx multi --teammate-mode headless --auto-attach --dashboard \
|
|
106
|
+
--assign 'codex:당신은 {expert_3.name}과 {expert_4.name}입니다. {topic}에 대해 각 전문가 관점으로...:analyst' \
|
|
107
|
+
--assign 'gemini:당신은 {expert_5.name}과 {expert_6.name}입니다. {topic}에 대해 각 전문가 관점으로...:analyst' \
|
|
108
|
+
--timeout 600")
|
|
109
109
|
```
|
|
110
110
|
|
|
111
111
|
### Step 3: 패널 토론 시뮬레이션
|
package/skills/tfx-qa/SKILL.md
CHANGED
|
@@ -1,117 +1,117 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: tfx-qa
|
|
3
|
-
description: "테스트 실행하고 실패하면 수정해서 통과시켜야 할 때 사용한다. 'qa', '검증해', '테스트 돌려', 'test-fix', '테스트 통과시켜' 같은 요청에 반드시 사용. 테스트 실패를 반복 수정하여 전부 통과시켜야 할 때 적극 활용."
|
|
4
|
-
triggers:
|
|
5
|
-
- qa
|
|
6
|
-
- 검증
|
|
7
|
-
- 테스트 검증
|
|
8
|
-
- test-fix
|
|
9
|
-
argument-hint: "[테스트 명령 또는 파일 경로]"
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# tfx-qa — Light Test-Fix Cycle
|
|
13
|
-
|
|
14
|
-
> 테스트 실행 → 실패 분석 → 자동 수정 → 재실행. 최대 3회. OMC ultraqa 영감.
|
|
15
|
-
|
|
16
|
-
## 용도
|
|
17
|
-
|
|
18
|
-
- 테스트 실행 후 실패 자동 수정
|
|
19
|
-
- CI 실패 빠른 해결
|
|
20
|
-
- 리팩터링 후 회귀 검증 + 수정
|
|
21
|
-
- "테스트 돌려서 깨진 거 고쳐" 류의 요청
|
|
22
|
-
|
|
23
|
-
## 워크플로우
|
|
24
|
-
|
|
25
|
-
### Step 1: 테스트 대상 식별
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
우선순위:
|
|
29
|
-
1. 사용자가 테스트 명령 지정 → 그대로 실행
|
|
30
|
-
2. 사용자가 파일 지정 → 해당 파일의 테스트 탐색
|
|
31
|
-
3. 지정 없음 → 프로젝트 테스트 전체 (npm test / pytest 등 자동 감지)
|
|
32
|
-
|
|
33
|
-
자동 감지:
|
|
34
|
-
package.json의 "test" 스크립트 → npm test
|
|
35
|
-
pytest.ini / pyproject.toml → pytest
|
|
36
|
-
Makefile의 test 타깃 → make test
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### Step 2: 테스트 실행 (Round 1)
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
|
|
43
|
-
"다음 테스트를 실행하고 결과를 보고하라:
|
|
44
|
-
명령: {test_command}
|
|
45
|
-
|
|
46
|
-
출력 형식:
|
|
47
|
-
- 총 테스트 수
|
|
48
|
-
- 통과/실패/스킵 수
|
|
49
|
-
- 실패한 테스트 목록 (파일:테스트명:에러 메시지)
|
|
50
|
-
- 실패 원인 분석 (각 실패별)"
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
### Step 3: 실패 수정 + 재실행 루프
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
MAX_RETRIES = 3
|
|
57
|
-
retry = 0
|
|
58
|
-
|
|
59
|
-
WHILE (failures > 0 AND retry < MAX_RETRIES):
|
|
60
|
-
retry++
|
|
61
|
-
|
|
62
|
-
Codex로 실패 수정:
|
|
63
|
-
|
|
64
|
-
"다음 테스트 실패를 수정하라:
|
|
65
|
-
실패 목록: {failures}
|
|
66
|
-
|
|
67
|
-
규칙:
|
|
68
|
-
- 테스트 코드가 아닌 구현 코드를 수정하라 (테스트가 정확한 경우)
|
|
69
|
-
- 테스트 자체가 잘못된 경우만 테스트를 수정하라
|
|
70
|
-
- 수정 후 해당 테스트를 다시 실행하여 확인하라"
|
|
71
|
-
|
|
72
|
-
재실행하여 결과 확인
|
|
73
|
-
|
|
74
|
-
END WHILE
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### Step 4: 결과 보고
|
|
78
|
-
|
|
79
|
-
```markdown
|
|
80
|
-
## QA 결과: {test_target}
|
|
81
|
-
|
|
82
|
-
### 실행 요약
|
|
83
|
-
| 라운드 | 통과 | 실패 | 수정 |
|
|
84
|
-
|--------|------|------|------|
|
|
85
|
-
| Round 1 | {n} | {n} | — |
|
|
86
|
-
| Round 2 | {n} | {n} | {수정 내용} |
|
|
87
|
-
| Round 3 | {n} | {n} | {수정 내용} |
|
|
88
|
-
|
|
89
|
-
### 최종 결과
|
|
90
|
-
- 테스트: {pass}/{total} 통과
|
|
91
|
-
- 수정된 파일: {list}
|
|
92
|
-
- 미해결 실패: {list, 있으면}
|
|
93
|
-
|
|
94
|
-
### 수정 상세
|
|
95
|
-
- `{file}:{line}` — {무엇을 왜 수정했는지}
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
3회 후에도 실패가 남으면 미해결 목록 + 원인 분석을 사용자에게 보고.
|
|
99
|
-
|
|
100
|
-
## 토큰 예산
|
|
101
|
-
|
|
102
|
-
| 단계 | 토큰 |
|
|
103
|
-
|------|------|
|
|
104
|
-
| Step 1 (식별) | ~300 |
|
|
105
|
-
| Step 2 (실행) | ~1.5K |
|
|
106
|
-
| Step 3 (수정, 회당) | ~1.5K |
|
|
107
|
-
| Step 4 (보고) | ~500 |
|
|
108
|
-
| **총합 (최대 3회)** | **~5K** |
|
|
109
|
-
|
|
110
|
-
## 사용 예
|
|
111
|
-
|
|
112
|
-
```
|
|
113
|
-
/tfx-qa
|
|
114
|
-
/tfx-qa "npm test -- --grep auth"
|
|
115
|
-
/tfx-qa "pytest tests/test_api.py -v"
|
|
116
|
-
/tfx-qa "깨진 테스트 고쳐줘"
|
|
117
|
-
```
|
|
1
|
+
---
|
|
2
|
+
name: tfx-qa
|
|
3
|
+
description: "테스트 실행하고 실패하면 수정해서 통과시켜야 할 때 사용한다. 'qa', '검증해', '테스트 돌려', 'test-fix', '테스트 통과시켜' 같은 요청에 반드시 사용. 테스트 실패를 반복 수정하여 전부 통과시켜야 할 때 적극 활용."
|
|
4
|
+
triggers:
|
|
5
|
+
- qa
|
|
6
|
+
- 검증
|
|
7
|
+
- 테스트 검증
|
|
8
|
+
- test-fix
|
|
9
|
+
argument-hint: "[테스트 명령 또는 파일 경로]"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# tfx-qa — Light Test-Fix Cycle
|
|
13
|
+
|
|
14
|
+
> 테스트 실행 → 실패 분석 → 자동 수정 → 재실행. 최대 3회. OMC ultraqa 영감.
|
|
15
|
+
|
|
16
|
+
## 용도
|
|
17
|
+
|
|
18
|
+
- 테스트 실행 후 실패 자동 수정
|
|
19
|
+
- CI 실패 빠른 해결
|
|
20
|
+
- 리팩터링 후 회귀 검증 + 수정
|
|
21
|
+
- "테스트 돌려서 깨진 거 고쳐" 류의 요청
|
|
22
|
+
|
|
23
|
+
## 워크플로우
|
|
24
|
+
|
|
25
|
+
### Step 1: 테스트 대상 식별
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
우선순위:
|
|
29
|
+
1. 사용자가 테스트 명령 지정 → 그대로 실행
|
|
30
|
+
2. 사용자가 파일 지정 → 해당 파일의 테스트 탐색
|
|
31
|
+
3. 지정 없음 → 프로젝트 테스트 전체 (npm test / pytest 등 자동 감지)
|
|
32
|
+
|
|
33
|
+
자동 감지:
|
|
34
|
+
package.json의 "test" 스크립트 → npm test
|
|
35
|
+
pytest.ini / pyproject.toml → pytest
|
|
36
|
+
Makefile의 test 타깃 → make test
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Step 2: 테스트 실행 (Round 1)
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
bash ~/.claude/scripts/tfx-route.sh codex \
|
|
43
|
+
"다음 테스트를 실행하고 결과를 보고하라:
|
|
44
|
+
명령: {test_command}
|
|
45
|
+
|
|
46
|
+
출력 형식:
|
|
47
|
+
- 총 테스트 수
|
|
48
|
+
- 통과/실패/스킵 수
|
|
49
|
+
- 실패한 테스트 목록 (파일:테스트명:에러 메시지)
|
|
50
|
+
- 실패 원인 분석 (각 실패별)" implement
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Step 3: 실패 수정 + 재실행 루프
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
MAX_RETRIES = 3
|
|
57
|
+
retry = 0
|
|
58
|
+
|
|
59
|
+
WHILE (failures > 0 AND retry < MAX_RETRIES):
|
|
60
|
+
retry++
|
|
61
|
+
|
|
62
|
+
Codex로 실패 수정:
|
|
63
|
+
bash ~/.claude/scripts/tfx-route.sh codex \
|
|
64
|
+
"다음 테스트 실패를 수정하라:
|
|
65
|
+
실패 목록: {failures}
|
|
66
|
+
|
|
67
|
+
규칙:
|
|
68
|
+
- 테스트 코드가 아닌 구현 코드를 수정하라 (테스트가 정확한 경우)
|
|
69
|
+
- 테스트 자체가 잘못된 경우만 테스트를 수정하라
|
|
70
|
+
- 수정 후 해당 테스트를 다시 실행하여 확인하라" implement
|
|
71
|
+
|
|
72
|
+
재실행하여 결과 확인
|
|
73
|
+
|
|
74
|
+
END WHILE
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Step 4: 결과 보고
|
|
78
|
+
|
|
79
|
+
```markdown
|
|
80
|
+
## QA 결과: {test_target}
|
|
81
|
+
|
|
82
|
+
### 실행 요약
|
|
83
|
+
| 라운드 | 통과 | 실패 | 수정 |
|
|
84
|
+
|--------|------|------|------|
|
|
85
|
+
| Round 1 | {n} | {n} | — |
|
|
86
|
+
| Round 2 | {n} | {n} | {수정 내용} |
|
|
87
|
+
| Round 3 | {n} | {n} | {수정 내용} |
|
|
88
|
+
|
|
89
|
+
### 최종 결과
|
|
90
|
+
- 테스트: {pass}/{total} 통과
|
|
91
|
+
- 수정된 파일: {list}
|
|
92
|
+
- 미해결 실패: {list, 있으면}
|
|
93
|
+
|
|
94
|
+
### 수정 상세
|
|
95
|
+
- `{file}:{line}` — {무엇을 왜 수정했는지}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
3회 후에도 실패가 남으면 미해결 목록 + 원인 분석을 사용자에게 보고.
|
|
99
|
+
|
|
100
|
+
## 토큰 예산
|
|
101
|
+
|
|
102
|
+
| 단계 | 토큰 |
|
|
103
|
+
|------|------|
|
|
104
|
+
| Step 1 (식별) | ~300 |
|
|
105
|
+
| Step 2 (실행) | ~1.5K |
|
|
106
|
+
| Step 3 (수정, 회당) | ~1.5K |
|
|
107
|
+
| Step 4 (보고) | ~500 |
|
|
108
|
+
| **총합 (최대 3회)** | **~5K** |
|
|
109
|
+
|
|
110
|
+
## 사용 예
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
/tfx-qa
|
|
114
|
+
/tfx-qa "npm test -- --grep auth"
|
|
115
|
+
/tfx-qa "pytest tests/test_api.py -v"
|
|
116
|
+
/tfx-qa "깨진 테스트 고쳐줘"
|
|
117
|
+
```
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: tfx-review
|
|
3
|
-
description: "코드 리뷰가 필요할 때 사용한다. 'review', '리뷰해줘', '코드 봐줘', '이거 괜찮아?', 'PR 리뷰', '변경사항 확인' 같은 요청에 반드시 사용. git diff, 특정 파일, 또는 최근 변경에 대한 빠른 피드백이 필요할 때 적극 활용."
|
|
4
|
-
triggers:
|
|
5
|
-
- review
|
|
6
|
-
- 리뷰
|
|
7
|
-
- 코드 리뷰
|
|
8
|
-
- code review
|
|
9
|
-
argument-hint: "[파일 경로 또는 변경 설명]"
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# tfx-review — Light Code Review
|
|
13
|
-
|
|
14
|
-
> Codex 단일 리뷰로 빠른 피드백. 토큰 최소화.
|
|
15
|
-
|
|
16
|
-
## 워크플로우
|
|
17
|
-
|
|
18
|
-
### Step 1: 리뷰 대상 식별
|
|
19
|
-
```
|
|
20
|
-
우선순위:
|
|
21
|
-
1. 사용자가 파일 경로 지정 → 해당 파일
|
|
22
|
-
2. git diff (staged + unstaged) → 변경된 파일
|
|
23
|
-
3. 최근 커밋 → git diff HEAD~1
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
### Step 2: Codex 리뷰 실행
|
|
27
|
-
```bash
|
|
28
|
-
|
|
29
|
-
"다음 코드 변경을 리뷰하라. 심각도별 분류(critical/high/medium/low).
|
|
30
|
-
체크: 로직 결함, 보안 취약점, 성능 문제, SOLID 위반, 에러 핸들링.
|
|
31
|
-
변경사항: {diff_or_file_content}"
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### Step 3: 결과 포맷
|
|
35
|
-
```markdown
|
|
36
|
-
## Code Review: {target}
|
|
37
|
-
|
|
38
|
-
### Critical (즉시 수정)
|
|
39
|
-
- [C1] {파일:라인} — {설명}
|
|
40
|
-
|
|
41
|
-
### High (수정 권장)
|
|
42
|
-
- [H1] {파일:라인} — {설명}
|
|
43
|
-
|
|
44
|
-
### Medium (개선 제안)
|
|
45
|
-
- [M1] {파일:라인} — {설명}
|
|
46
|
-
|
|
47
|
-
### Summary
|
|
48
|
-
{전체 코드 품질 평가 1-2줄}
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## 토큰: ~8K
|
|
1
|
+
---
|
|
2
|
+
name: tfx-review
|
|
3
|
+
description: "코드 리뷰가 필요할 때 사용한다. 'review', '리뷰해줘', '코드 봐줘', '이거 괜찮아?', 'PR 리뷰', '변경사항 확인' 같은 요청에 반드시 사용. git diff, 특정 파일, 또는 최근 변경에 대한 빠른 피드백이 필요할 때 적극 활용."
|
|
4
|
+
triggers:
|
|
5
|
+
- review
|
|
6
|
+
- 리뷰
|
|
7
|
+
- 코드 리뷰
|
|
8
|
+
- code review
|
|
9
|
+
argument-hint: "[파일 경로 또는 변경 설명]"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# tfx-review — Light Code Review
|
|
13
|
+
|
|
14
|
+
> Codex 단일 리뷰로 빠른 피드백. 토큰 최소화.
|
|
15
|
+
|
|
16
|
+
## 워크플로우
|
|
17
|
+
|
|
18
|
+
### Step 1: 리뷰 대상 식별
|
|
19
|
+
```
|
|
20
|
+
우선순위:
|
|
21
|
+
1. 사용자가 파일 경로 지정 → 해당 파일
|
|
22
|
+
2. git diff (staged + unstaged) → 변경된 파일
|
|
23
|
+
3. 최근 커밋 → git diff HEAD~1
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Step 2: Codex 리뷰 실행
|
|
27
|
+
```bash
|
|
28
|
+
bash ~/.claude/scripts/tfx-route.sh codex \
|
|
29
|
+
"다음 코드 변경을 리뷰하라. 심각도별 분류(critical/high/medium/low).
|
|
30
|
+
체크: 로직 결함, 보안 취약점, 성능 문제, SOLID 위반, 에러 핸들링.
|
|
31
|
+
변경사항: {diff_or_file_content}" review
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Step 3: 결과 포맷
|
|
35
|
+
```markdown
|
|
36
|
+
## Code Review: {target}
|
|
37
|
+
|
|
38
|
+
### Critical (즉시 수정)
|
|
39
|
+
- [C1] {파일:라인} — {설명}
|
|
40
|
+
|
|
41
|
+
### High (수정 권장)
|
|
42
|
+
- [H1] {파일:라인} — {설명}
|
|
43
|
+
|
|
44
|
+
### Medium (개선 제안)
|
|
45
|
+
- [M1] {파일:라인} — {설명}
|
|
46
|
+
|
|
47
|
+
### Summary
|
|
48
|
+
{전체 코드 품질 평가 1-2줄}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## 토큰: ~8K
|