triflux 8.6.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/hub/team/ansi.mjs +134 -11
- package/hub/team/tui.mjs +288 -53
- 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
|
@@ -15,12 +15,22 @@ argument-hint: "[파일 경로 또는 git diff 범위]"
|
|
|
15
15
|
> OMC ai-slop-cleaner 오마주. 핵심 차별점: 단일 판단이 아닌 **3자 독립 감지 + 합의** 기반 제거.
|
|
16
16
|
> "AI가 만든 슬롭은 AI 3명이 합의해야 슬롭이다."
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## HARD RULES
|
|
19
19
|
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
-
|
|
20
|
+
> headless-guard가 이 규칙 위반을 **자동 차단**한다. 우회 불가.
|
|
21
|
+
|
|
22
|
+
1. **`codex exec` / `gemini -p` 직접 호출 절대 금지**
|
|
23
|
+
2. Codex·Gemini → `Bash("tfx multi --teammate-mode headless --auto-attach --dashboard --assign 'cli:프롬프트:역할' --timeout 600")` **만** 사용
|
|
24
|
+
3. Claude → `Agent(run_in_background=true)`
|
|
25
|
+
4. Bash + Agent를 같은 메시지에서 동시 호출하여 병렬 실행
|
|
26
|
+
|
|
27
|
+
## MODEL ROLES
|
|
28
|
+
|
|
29
|
+
| CLI | 역할 | 감지 관점 |
|
|
30
|
+
|-----|------|----------|
|
|
31
|
+
| Claude (Opus) | 코드 품질 분석 + 합의 중재 | 설계 원칙, 코드 구조, 불필요 추상화 |
|
|
32
|
+
| Codex | AI 슬롭 탐지 | 구현 효율, 중복 패턴, 과잉 에러 핸들링 |
|
|
33
|
+
| Gemini | 가독성 평가 | 가독성/DX, 과잉 주석, 과잉 타입 |
|
|
24
34
|
|
|
25
35
|
## 슬롭 카테고리
|
|
26
36
|
|
|
@@ -34,118 +44,99 @@ argument-hint: "[파일 경로 또는 git diff 범위]"
|
|
|
34
44
|
| 사용되지 않는 코드 | import 했지만 사용 안 함 | dead imports, unused variables |
|
|
35
45
|
| 과잉 로깅 | 불필요한 console.log/debug | `console.log("here")` |
|
|
36
46
|
|
|
37
|
-
##
|
|
47
|
+
## EXECUTION STEPS
|
|
38
48
|
|
|
39
49
|
### Step 0: 슬롭 제거 범위 선택
|
|
40
50
|
|
|
41
|
-
인자 없이 호출된
|
|
51
|
+
인자 없이 호출된 경우 사용자에게 범위를 선택받는다:
|
|
42
52
|
|
|
43
53
|
```
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
2. 전체 프로젝트
|
|
48
|
-
3. 특정 디렉토리 지정
|
|
54
|
+
1. 최근 변경 파일만 (git diff)
|
|
55
|
+
2. 전체 프로젝트
|
|
56
|
+
3. 특정 디렉토리 지정
|
|
49
57
|
```
|
|
50
58
|
|
|
51
|
-
- 1번
|
|
52
|
-
- 2번
|
|
53
|
-
- 3번
|
|
59
|
+
- 1번 → `git diff HEAD`로 최근 변경 파일 대상
|
|
60
|
+
- 2번 → 프로젝트 전체 소스 파일 대상 (대규모 주의 경고 표시)
|
|
61
|
+
- 3번 → 추가 AskUserQuestion으로 대상 디렉토리 경로 입력받음
|
|
54
62
|
|
|
55
63
|
파일 경로나 git diff 범위가 인자로 이미 제공된 경우 이 단계를 건너뛴다.
|
|
56
64
|
|
|
57
65
|
### Step 1: 대상 파일 수집
|
|
58
66
|
|
|
59
|
-
|
|
60
|
-
입력에 따라 대상 결정:
|
|
61
|
-
|
|
67
|
+
대상 결정 우선순위:
|
|
62
68
|
1. 파일 경로 지정 → 해당 파일만
|
|
63
69
|
2. git diff 범위 지정 → diff에 포함된 파일
|
|
64
|
-
3. 입력 없음 → git diff HEAD
|
|
70
|
+
3. 입력 없음 → `git diff --name-only HEAD~1`로 최근 변경 파일
|
|
65
71
|
4. "all" → 프로젝트 전체 소스 파일 (주의: 대규모)
|
|
66
72
|
|
|
67
|
-
|
|
68
|
-
Bash("git diff --name-only HEAD~1") 또는 지정된 범위
|
|
69
|
-
→ 소스 파일만 필터 (.ts, .js, .mjs, .tsx, .py 등)
|
|
70
|
-
→ node_modules, dist, build 제외
|
|
71
|
-
```
|
|
73
|
+
소스 파일만 필터: `.ts`, `.js`, `.mjs`, `.tsx`, `.py` 등. `node_modules`, `dist`, `build` 제외.
|
|
72
74
|
|
|
73
75
|
### Step 2: 3자 독립 슬롭 감지 (Anti-Herding)
|
|
74
76
|
|
|
75
|
-
|
|
77
|
+
**아래 2개 도구를 반드시 같은 응답에서 동시에 호출하라.**
|
|
76
78
|
|
|
79
|
+
Claude (Agent, background):
|
|
80
|
+
```
|
|
81
|
+
Agent(
|
|
82
|
+
subagent_type="claude-sonnet-4-5",
|
|
83
|
+
model="opus",
|
|
84
|
+
run_in_background=true,
|
|
85
|
+
prompt="다음 파일에서 AI 슬롭을 감지하세요. 코드 품질 관점으로 분석합니다.
|
|
86
|
+
슬롭 정의: 불필요 추상화, 중복, 과잉 에러핸들링, 과잉 주석, 과잉 타입, 미사용 코드, 과잉 로깅.
|
|
87
|
+
파일: {file_content}
|
|
88
|
+
각 발견에 대해 JSON: [{ id, category, line_start, line_end, description, severity, suggested_fix }]
|
|
89
|
+
severity: critical(기능에 영향) | high(가독성 심각) | medium(개선) | low(취향)
|
|
90
|
+
슬롭이 아닌 것은 보고하지 마세요. 과탐(false positive)보다 미탐이 낫습니다."
|
|
91
|
+
)
|
|
77
92
|
```
|
|
78
|
-
공통 프롬프트 (각 CLI에 동일하게):
|
|
79
|
-
"다음 파일에서 AI 슬롭을 감지하세요.
|
|
80
|
-
슬롭 정의: 불필요 추상화, 중복, 과잉 에러핸들링, 과잉 주석, 과잉 타입,
|
|
81
|
-
미사용 코드, 과잉 로깅.
|
|
82
|
-
|
|
83
|
-
파일: {file_content}
|
|
84
|
-
|
|
85
|
-
각 발견에 대해:
|
|
86
|
-
{ id, category, line_start, line_end, description, severity, suggested_fix }
|
|
87
|
-
severity: critical(기능에 영향) | high(가독성 심각) | medium(개선) | low(취향)
|
|
88
|
-
|
|
89
|
-
슬롭이 아닌 것은 보고하지 마세요. 과탐(false positive)보다 미탐이 낫습니다."
|
|
90
93
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
Codex + Gemini (Bash, background):
|
|
95
|
+
```
|
|
96
|
+
Bash("tfx multi --teammate-mode headless --auto-attach --dashboard \
|
|
97
|
+
--assign 'codex:다음 파일에서 AI 슬롭을 감지하세요. 구현 효율 관점(중복 패턴, 과잉 에러핸들링, 미사용 코드)으로 분석. 파일: {file_content}. JSON: [{id,category,line_start,line_end,description,severity,suggested_fix}]. severity: critical|high|medium|low. 과탐보다 미탐이 낫습니다.:slop-detector' \
|
|
98
|
+
--assign 'gemini:다음 파일에서 AI 슬롭을 감지하세요. 가독성/DX 관점(과잉 주석, 과잉 타입, 불필요 추상화)으로 분석. 파일: {file_content}. JSON: [{id,category,line_start,line_end,description,severity,suggested_fix}]. severity: critical|high|medium|low. 과탐보다 미탐이 낫습니다.:readability-reviewer' \
|
|
99
|
+
--timeout 600")
|
|
95
100
|
```
|
|
96
101
|
|
|
97
102
|
### Step 3: 합의 필터링
|
|
98
103
|
|
|
99
|
-
|
|
104
|
+
3개 CLI 결과를 교차검증한다:
|
|
100
105
|
|
|
101
106
|
```
|
|
102
107
|
for each finding in ALL results:
|
|
103
108
|
agreement = count(CLIs that found same or similar slop at same location)
|
|
104
109
|
|
|
105
110
|
if agreement >= 2:
|
|
106
|
-
→ "CONFIRMED SLOP"
|
|
111
|
+
→ "CONFIRMED SLOP" — 제거 대상
|
|
107
112
|
elif agreement == 1:
|
|
108
|
-
→ "UNCONFIRMED"
|
|
109
|
-
|
|
110
|
-
원칙: 2+ 합의된 항목만 제거한다.
|
|
111
|
-
1개 CLI만 지적한 항목은 무시한다 (과탐 방지).
|
|
113
|
+
→ "UNCONFIRMED" — 제거하지 않음 (과탐 방지)
|
|
112
114
|
```
|
|
113
115
|
|
|
116
|
+
원칙: 2+ 합의된 항목만 제거한다. 1개 CLI만 지적한 항목은 무시한다.
|
|
117
|
+
|
|
114
118
|
### Step 4: 슬롭 제거
|
|
115
119
|
|
|
116
|
-
확정된
|
|
120
|
+
확정된 슬롭을 안전 순서대로 제거한다:
|
|
117
121
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
5. 중복 코드 통합
|
|
125
|
-
6. 불필요 추상화 제거 (가장 위험 — 인터페이스 변경 가능)
|
|
126
|
-
|
|
127
|
-
각 제거 후:
|
|
128
|
-
- 변경 내용을 기록
|
|
129
|
-
- 제거 이유를 주석으로 남기지 않음 (그것 자체가 슬롭)
|
|
130
|
-
```
|
|
122
|
+
1. 과잉 주석 제거 (가장 안전)
|
|
123
|
+
2. 미사용 코드/import 제거
|
|
124
|
+
3. 과잉 로깅 제거
|
|
125
|
+
4. 과잉 에러핸들링 간소화
|
|
126
|
+
5. 중복 코드 통합
|
|
127
|
+
6. 불필요 추상화 제거 (가장 위험 — 인터페이스 변경 가능)
|
|
131
128
|
|
|
132
|
-
|
|
129
|
+
각 제거 후 변경 내용을 기록한다. 제거 이유를 주석으로 남기지 않는다 (그것 자체가 슬롭).
|
|
133
130
|
|
|
134
|
-
|
|
135
|
-
제거 후 안전성 검증:
|
|
136
|
-
|
|
137
|
-
1. 기존 테스트 실행
|
|
138
|
-
Bash("npm test" 또는 프로젝트 테스트 명령)
|
|
131
|
+
### Step 5: 회귀 테스트
|
|
139
132
|
|
|
140
|
-
|
|
141
|
-
→ 해당 제거를 롤백
|
|
142
|
-
→ 롤백된 항목을 "위험 — 수동 검토 필요"로 표시
|
|
133
|
+
제거 후 안전성을 검증한다:
|
|
143
134
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
135
|
+
1. 기존 테스트 실행: `Bash("npm test")` (또는 프로젝트 테스트 명령)
|
|
136
|
+
2. 테스트 실패 시 → 해당 제거를 롤백 → 롤백된 항목을 "위험 — 수동 검토 필요"로 표시
|
|
137
|
+
3. 테스트 통과 시 → 제거 확정
|
|
147
138
|
|
|
148
|
-
### Step 6: 보고서
|
|
139
|
+
### Step 6: 보고서 출력
|
|
149
140
|
|
|
150
141
|
```markdown
|
|
151
142
|
## Deslop 보고서
|
|
@@ -175,7 +166,13 @@ for each finding in ALL results:
|
|
|
175
166
|
통과: {pass}/{total} | 실패: {fail} | 롤백: {rollback}
|
|
176
167
|
```
|
|
177
168
|
|
|
178
|
-
##
|
|
169
|
+
## ERROR RECOVERY
|
|
170
|
+
|
|
171
|
+
- Codex/Gemini 타임아웃(600s 초과) → Claude Agent 단독으로 2자 합의 기준(단독 감지도 제거 대상) 적용
|
|
172
|
+
- 테스트 명령 없음 → Step 5 건너뜀, 보고서에 "테스트 미실행 — 수동 검증 필요" 표시
|
|
173
|
+
- 파일 파싱 오류 → 해당 파일 스킵 후 보고서에 "파싱 실패" 기록
|
|
174
|
+
|
|
175
|
+
## TOKEN BUDGET
|
|
179
176
|
|
|
180
177
|
| 단계 | 토큰 |
|
|
181
178
|
|------|------|
|