triflux 10.20.1 → 10.21.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/CLAUDE.md +174 -0
- package/README.ko.md +34 -42
- package/README.md +30 -36
- package/bin/tfx-doctor-tui.mjs +0 -0
- package/bin/tfx-doctor.mjs +0 -0
- package/bin/tfx-profile.mjs +0 -0
- package/bin/tfx-setup-tui.mjs +0 -0
- package/bin/tfx-setup.mjs +0 -0
- package/bin/triflux.mjs +69 -7
- package/hooks/hook-orchestrator.mjs +1 -1
- package/hooks/hook-registry.json +63 -2
- package/hooks/hooks.json +37 -1
- package/hooks/keyword-rules.json +1 -1
- package/hooks/permission-safe-allow.mjs +233 -0
- package/hooks/pipeline-stop.mjs +355 -16
- package/hooks/post-tool-tips.mjs +306 -0
- package/hooks/session-end-cleanup.mjs +201 -0
- package/hooks/subagent-tracker.mjs +267 -0
- package/hooks/subagent-verifier.mjs +4 -0
- package/hub/account-broker.mjs +297 -8
- package/hub/cli-adapter-base.mjs +34 -1
- package/hub/codex-adapter.mjs +66 -2
- package/hub/dynamic-routing-engine.mjs +511 -0
- package/hub/lib/prompt-tmp.mjs +33 -0
- package/hub/lib/spawn-trace.mjs +5 -1
- package/hub/routing-snapshot.mjs +261 -0
- package/hub/server.mjs +51 -4
- package/hub/team/cli/services/native-control.mjs +1 -0
- package/hub/team/conductor.mjs +161 -32
- package/hub/team/execution-mode.mjs +34 -30
- package/hub/team/headless.mjs +8 -6
- package/hub/team/launcher-template.mjs +5 -0
- package/hub/team/native-supervisor.mjs +20 -7
- package/hub/team/psmux.mjs +57 -30
- package/hub/team/swarm-cli.mjs +98 -4
- package/hub/team/swarm-hypervisor.mjs +171 -10
- package/hub/team/swarm-locks.mjs +7 -2
- package/hub/team/swarm-preflight.mjs +317 -0
- package/hub/team/tui-viewer.mjs +2 -1
- package/hub/team/worker-sandbox.mjs +93 -0
- package/hub/team/worktree-lifecycle.mjs +49 -8
- package/hub/workers/delegator-mcp.mjs +14 -1
- package/package.json +23 -67
- package/references/cli-parameter-reference.md +240 -0
- package/references/codex-plugin-cc-analysis.md +706 -0
- package/references/codex-plugin-cc-code-patterns.md +468 -0
- package/scripts/__tests__/gen-skill-docs.test.mjs +4 -0
- package/scripts/__tests__/setup-cleanup-stale-skills.test.mjs +19 -1
- package/scripts/__tests__/skill-surface.test.mjs +61 -0
- package/scripts/check-codex-config-stable.mjs +166 -38
- package/scripts/doctor-dynamic-routing.mjs +87 -0
- package/scripts/gen-skill-manifest.mjs +3 -0
- package/scripts/lib/dynamic-route-cli.mjs +107 -0
- package/scripts/lib/psmux-info.mjs +59 -4
- package/scripts/lib/skill-template.mjs +2 -0
- package/scripts/pack.mjs +3 -0
- package/scripts/session-spawn-helper.mjs +2 -1
- package/scripts/setup.mjs +12 -4
- package/scripts/tfx-route.sh +36 -0
- package/skills/star-prompt/skill.json +1 -1
- package/skills/tfx-analysis/skill.json +11 -3
- package/skills/tfx-auto/SKILL.md +8 -8
- package/skills/tfx-auto/SKILL.md.tmpl +8 -8
- package/skills/tfx-auto/skill.json +2 -2
- package/skills/tfx-autopilot/skill.json +9 -4
- package/skills/tfx-consensus/skill.json +4 -3
- package/skills/tfx-debate/skill.json +11 -4
- package/skills/tfx-doctor/skill.json +3 -1
- package/skills/tfx-fullcycle/skill.json +10 -4
- package/skills/tfx-hooks/skill.json +3 -1
- package/skills/tfx-hub/skill.json +5 -3
- package/skills/tfx-index/skill.json +6 -1
- package/skills/tfx-interview/skill.json +6 -1
- package/skills/tfx-multi/skill.json +7 -3
- package/skills/tfx-panel/skill.json +11 -4
- package/skills/tfx-persist/skill.json +11 -4
- package/skills/tfx-plan/skill.json +13 -3
- package/skills/tfx-profile/skill.json +3 -1
- package/skills/tfx-prune/skill.json +7 -1
- package/skills/tfx-psmux-rules/SKILL.md +2 -0
- package/skills/tfx-psmux-rules/SKILL.md.tmpl +22 -307
- package/skills/tfx-psmux-rules/skill.json +7 -2
- package/skills/tfx-qa/skill.json +12 -3
- package/skills/tfx-ralph/skill.json +4 -1
- package/skills/tfx-remote/skill.json +8 -0
- package/skills/tfx-remote-setup/SKILL.md +2 -0
- package/skills/tfx-remote-setup/SKILL.md.tmpl +23 -570
- package/skills/tfx-remote-setup/skill.json +7 -3
- package/skills/tfx-remote-spawn/SKILL.md +2 -0
- package/skills/tfx-remote-spawn/SKILL.md.tmpl +31 -242
- package/skills/tfx-remote-spawn/skill.json +7 -3
- package/skills/tfx-research/skill.json +11 -4
- package/skills/tfx-review/skill.json +12 -3
- package/skills/tfx-setup/skill.json +3 -1
- package/skills/tfx-ship/skill.json +13 -0
- package/skills/tfx-swarm/skill.json +13 -0
- package/skills/tfx-wt/skill.json +12 -0
- package/.claude-plugin/marketplace.json +0 -34
- package/.claude-plugin/plugin.json +0 -22
- package/config/mcp-registry.json +0 -44
- package/skills/tfx-harness/SKILL.md +0 -85
- package/skills/tfx-harness/SKILL.md.tmpl +0 -75
- package/skills/tfx-harness/skill.json +0 -16
- package/tui/codex-profile.mjs +0 -459
- package/tui/core.mjs +0 -266
- package/tui/doctor.mjs +0 -375
- package/tui/gemini-profile.mjs +0 -299
- package/tui/monitor-data.mjs +0 -152
- package/tui/monitor.mjs +0 -317
- package/tui/setup.mjs +0 -599
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# triflux — Claude Code 운영 가이드
|
|
2
|
+
|
|
3
|
+
<core-systems>
|
|
4
|
+
## 핵심 스킬 시스템 (항상 인지)
|
|
5
|
+
|
|
6
|
+
이 프로젝트는 3개의 스킬 시스템을 동시에 사용한다. 어떤 작업이든 해당 시스템의 스킬이 있는지 먼저 확인한다.
|
|
7
|
+
|
|
8
|
+
| 시스템 | 접두사 | 용도 | 스킬 수 |
|
|
9
|
+
|--------|--------|------|---------|
|
|
10
|
+
| **triflux** | `/tfx-*` | CLI 라우팅, 멀티모델 오케스트레이션, 스웜, 원격 실행 | ~40개 |
|
|
11
|
+
| **gstack** | `/` (접두사 없음) | QA, ship, investigate, design, review, checkpoint | ~35개 |
|
|
12
|
+
| **omc** | `/oh-my-claudecode:*` | autopilot, ralph, team, ultrawork, ccg | ~25개 |
|
|
13
|
+
|
|
14
|
+
스킬을 모르면 자연어 라우팅(`.claude/rules/tfx-routing.md`)으로 자동 매핑된다.
|
|
15
|
+
세션 종료 전 메모리 파일이 3개+ 변경됐으면 `/memory-hygiene` 제안을 검토한다.
|
|
16
|
+
</core-systems>
|
|
17
|
+
|
|
18
|
+
<psmux-wt>
|
|
19
|
+
## psmux/WT 규칙
|
|
20
|
+
|
|
21
|
+
psmux 세션·WT 패인을 생성/조작/정리할 때 `tfx-psmux-rules` 스킬을 참조한다.
|
|
22
|
+
WT 프리징 방지: exit → sleep 2 → kill 순서. 바로 kill하지 않는다.
|
|
23
|
+
|
|
24
|
+
### wt.exe → wt-manager 경유
|
|
25
|
+
|
|
26
|
+
safety-guard가 `wt.exe`, `wt new-tab`, `wt split-pane`, `Start-Process wt`를 차단한다.
|
|
27
|
+
`hub/team/wt-manager.mjs`의 API를 사용한다.
|
|
28
|
+
|
|
29
|
+
| 용도 | API |
|
|
30
|
+
|------|-----|
|
|
31
|
+
| 새 탭 | `createTab({ title, command, profile, cwd })` |
|
|
32
|
+
| 패인 분할 | `splitPane({ direction: 'H'\|'V', title, command })` |
|
|
33
|
+
| 다중 배치 | `applySplitLayout([{ title, command, direction }])` |
|
|
34
|
+
| 탭 정리 | `closeTab(title)` / `closeStale({ olderThanMs, titlePattern })` |
|
|
35
|
+
|
|
36
|
+
차단과 대안은 항상 쌍으로 존재해야 한다. 차단만 추가하고 대안을 안 만들면 데드락.
|
|
37
|
+
|
|
38
|
+
### raw `psmux kill-session` → psmux wrapper 경유
|
|
39
|
+
|
|
40
|
+
safety-guard가 raw `psmux kill-session`을 차단한다.
|
|
41
|
+
세션 정리는 `hub/team/psmux.mjs` 공개 API 또는 internal wrapper로 우회한다.
|
|
42
|
+
|
|
43
|
+
| 용도 | API / 래퍼 |
|
|
44
|
+
|------|------------|
|
|
45
|
+
| 세션 조회 | `listSessions({ filterTitle?, olderThanMs? })` |
|
|
46
|
+
| title prefix / regex kill | `killSessionByTitle(titlePattern)` |
|
|
47
|
+
| stale idle 세션 정리 | `pruneStale({ olderThanMs, dryRun })` |
|
|
48
|
+
| Bash 훅 우회용 래퍼 | `node hub/team/psmux.mjs --internal kill-by-title <prefix\|/regex/>` |
|
|
49
|
+
|
|
50
|
+
### psmux에서 Codex 실행
|
|
51
|
+
|
|
52
|
+
| 방식 | 동작 | 이유 |
|
|
53
|
+
|------|------|------|
|
|
54
|
+
| `codex` (interactive) | 불가 | psmux에서 TTY를 못 잡음 |
|
|
55
|
+
| `codex < prompt.md` | 불가 | "stdin is not a terminal" |
|
|
56
|
+
| `codex exec "$(cat prompt.md)" -s danger-full-access --dangerously-bypass-approvals-and-sandbox` | 사용 | 유일한 안전 경로 |
|
|
57
|
+
|
|
58
|
+
`codex exec`는 config.toml `approval_mode`를 무시하므로 `--dangerously-bypass-approvals-and-sandbox` 필수.
|
|
59
|
+
`-s` 유효값: read-only, workspace-write, danger-full-access.
|
|
60
|
+
</psmux-wt>
|
|
61
|
+
|
|
62
|
+
<codex-config>
|
|
63
|
+
## Codex config.toml
|
|
64
|
+
|
|
65
|
+
config.toml에 이미 설정된 값은 CLI 플래그로 중복 지정하지 않는다.
|
|
66
|
+
|
|
67
|
+
| config.toml에 있으면 | CLI에서 생략 |
|
|
68
|
+
|---------------------|-------------|
|
|
69
|
+
| `approval_mode = "auto"` | `-a`, `--full-auto` |
|
|
70
|
+
| `sandbox = "workspace-write"` | `-s`, `--full-auto` |
|
|
71
|
+
|
|
72
|
+
안전 패턴: config.toml에 기본값을 두고, CLI에서는 `--profile` 선택만 한다.
|
|
73
|
+
</codex-config>
|
|
74
|
+
|
|
75
|
+
<account-broker>
|
|
76
|
+
## AccountBroker (계정 브로커)
|
|
77
|
+
|
|
78
|
+
conductor, headless, swarm-hypervisor가 하나의 AccountBroker 싱글턴을 공유한다.
|
|
79
|
+
|
|
80
|
+
| 항목 | 설명 |
|
|
81
|
+
|------|------|
|
|
82
|
+
| 계정별 CircuitBreaker | 장애 격리 — 한 계정 오류가 다른 계정에 전파되지 않음 |
|
|
83
|
+
| busy 플래그 | 동일 계정 이중 임대(double-lease) 방지 |
|
|
84
|
+
| `/broker/reload` | 장시간 세션 중 accounts.json 핫리로드. active lease ownership은 reload 후에도 보존 |
|
|
85
|
+
| Adapter no-lease 정책 | headless adapter는 broker가 비활성/empty이면 기본 CLI auth path로 실행, broker가 enabled인데 lease가 없으면 `circuit_open` 실패 |
|
|
86
|
+
| Conductor no-lease 정책 | 로컬 Conductor 세션은 `broker_no_lease`를 event log에 남기고 spawn은 계속 진행. accountId가 없으므로 release는 호출하지 않음 |
|
|
87
|
+
| Public snapshot 정책 | `/broker/snapshot`과 dashboard는 `publicSnapshot()`만 사용. `env`, `authFile`, `profile`, `host`, 파일 경로, raw failure timestamp는 공개하지 않음 |
|
|
88
|
+
| Diagnostic 이벤트 | `securityViolation`, `authSyncError`는 hub가 redacted warn 로그(`broker.security_violation`, `broker.auth_sync_error`)로 처리 |
|
|
89
|
+
| EventEmitter 이벤트 | `lease`, `release`, `cooldown`, `tierFallback`, `circuitOpen`, `circuitClose`, `noAvailableAccounts` — HUD 연동용 |
|
|
90
|
+
</account-broker>
|
|
91
|
+
|
|
92
|
+
<remote>
|
|
93
|
+
## 원격 실행
|
|
94
|
+
|
|
95
|
+
### 스킬 구분
|
|
96
|
+
|
|
97
|
+
| 스킬 | 대상 | 방식 |
|
|
98
|
+
|------|------|------|
|
|
99
|
+
| tfx-codex-swarm | 로컬 전용 | 로컬 worktree + psmux |
|
|
100
|
+
| tfx-remote-spawn | Claude Code 원격 | SSH → Claude Code 세션 → 내부 tfx 라우팅 |
|
|
101
|
+
|
|
102
|
+
codex를 SSH 너머로 직접 실행하지 않는다. config.toml 충돌 + TTY 문제.
|
|
103
|
+
원격에서 codex가 필요하면: remote-spawn → Claude Code → Claude가 내부에서 codex 호출.
|
|
104
|
+
|
|
105
|
+
### SSH 패턴
|
|
106
|
+
|
|
107
|
+
hosts.json `os` 필드로 대상 셸을 판단한다. safety-guard도 이 필드를 참조.
|
|
108
|
+
|
|
109
|
+
| 대상 OS | 셸 | 패턴 |
|
|
110
|
+
|---------|-----|------|
|
|
111
|
+
| windows | PowerShell | scp + `pwsh -File` 필수. `$var` → `$env:VAR`, `2>/dev/null` → `2>$null` |
|
|
112
|
+
| darwin | zsh | 인라인 가능. brew PATH 주의 (`/opt/homebrew/bin`) |
|
|
113
|
+
| linux | bash | 인라인 가능. 표준 POSIX |
|
|
114
|
+
|
|
115
|
+
- `~` → `$HOME` 변환은 모든 OS 공통
|
|
116
|
+
</remote>
|
|
117
|
+
|
|
118
|
+
<headless-retrieval>
|
|
119
|
+
## Headless 결과 회수
|
|
120
|
+
|
|
121
|
+
background로 실행한 headless 결과는 **반드시 task-notification 완료 후** 읽는다.
|
|
122
|
+
|
|
123
|
+
| 패턴 | 올바름 | 이유 |
|
|
124
|
+
|------|--------|------|
|
|
125
|
+
| task-notification 후 output 파일 읽기 | YES | 프로세스 종료 = 워커 전부 완료 |
|
|
126
|
+
| task-notification 전 output 파일 tail | NO | 시작 메시지만 보이고 "실패"로 오진 |
|
|
127
|
+
| psmux capture-pane으로 중간 체크 | NO | 워커 진행 중이면 빈 화면일 수 있음 |
|
|
128
|
+
|
|
129
|
+
완료 마커: `=== HEADLESS_COMPLETE succeeded=N failed=N total=N ===`
|
|
130
|
+
워커 상세: `$TMPDIR/tfx-headless/{sessionName}-worker-N.txt`
|
|
131
|
+
</headless-retrieval>
|
|
132
|
+
|
|
133
|
+
<cross-review>
|
|
134
|
+
## 교차 검증
|
|
135
|
+
|
|
136
|
+
- Claude 작성 코드 → Codex 리뷰
|
|
137
|
+
- Codex 작성 코드 → Claude 리뷰
|
|
138
|
+
- 동일 모델 self-approve 하지 않는다
|
|
139
|
+
- git commit 전 미검증 파일 감지 시 nudge
|
|
140
|
+
</cross-review>
|
|
141
|
+
|
|
142
|
+
<session-context>
|
|
143
|
+
## 맥락 이탈 판단
|
|
144
|
+
|
|
145
|
+
현재 세션 맥락과 무관한 요청이 감지되면 psmux 격리를 제안한다.
|
|
146
|
+
|
|
147
|
+
| 확신도 | 신호 | 행동 |
|
|
148
|
+
|--------|------|------|
|
|
149
|
+
| 확실 | "새 탭", "별도로", "새 세션" | 바로 psmux spawn |
|
|
150
|
+
| 높음 | 다른 프로젝트/스택 언급 | 분리 제안 |
|
|
151
|
+
| 중간 | 작업 유형 전환 | 분리 제안 + 현재 세션 옵션 |
|
|
152
|
+
| 낮음 | 현재 작업 연장 | 세션 유지 |
|
|
153
|
+
</session-context>
|
|
154
|
+
|
|
155
|
+
## 세부 규칙은 `.claude/rules/` 참조
|
|
156
|
+
|
|
157
|
+
| 파일 | 내용 |
|
|
158
|
+
|------|------|
|
|
159
|
+
| `.claude/rules/tfx-routing.md` | 자연어 → 스킬 라우팅, CLI 라우팅 Layer 1~3, 충돌 해소 |
|
|
160
|
+
| `.claude/rules/tfx-execution-skill-map.md` | tfx-auto / multi / swarm 실행 엔진 매핑, 격리 기준, 안티패턴 |
|
|
161
|
+
| `.claude/rules/tfx-autoplan-principles.md` | gstack autoplan의 6 decision principles, phase 우선순위, 충돌 해소 규칙 추출본 |
|
|
162
|
+
| `.claude/rules/tfx-update-logic.md` | triflux / OMC / gstack / Codex / Gemini 업데이트 로직 |
|
|
163
|
+
| `.claude/rules/tfx-stack-coexistence.md` | gstack / superpowers / triflux 공존 원칙, 레이어 분리, 의존 방향, 충돌 해소 |
|
|
164
|
+
| `.claude/rules/tfx-mirror-policy.md` | packages/ 3-layer mirror 정책 (core 단순 cp / remote import 변환 / triflux byte-identical), tests 제외 룰, drift 차단 |
|
|
165
|
+
|
|
166
|
+
Claude Code는 `.claude/rules/*.md` 를 자동 로드한다. Codex CLI는 `@import` 미지원이므로 필요 시 `AGENTS.md` 를 독립 유지한다.
|
|
167
|
+
|
|
168
|
+
## GBrain Configuration (configured by /setup-gbrain)
|
|
169
|
+
- Engine: pglite
|
|
170
|
+
- Config file: ~/.gbrain/config.json (mode 0600)
|
|
171
|
+
- Setup date: 2026-04-25
|
|
172
|
+
- MCP registered: yes (user scope, absolute path)
|
|
173
|
+
- Memory sync: artifacts-only (repo: github.com/tellang/gstack-brain-tellang)
|
|
174
|
+
- Current repo policy: read-write (github.com/tellang/triflux)
|
package/README.ko.md
CHANGED
|
@@ -10,15 +10,15 @@
|
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
12
12
|
<strong>Consensus Intelligence 기반 Tri-CLI 오케스트레이션</strong><br>
|
|
13
|
-
<em>Claude + Codex + Gemini —
|
|
13
|
+
<em>Claude + Codex + Gemini — 13개 공개 코어 스킬, 11개 호환 alias, 자연어 라우팅, 교차 모델 리뷰.</em>
|
|
14
14
|
</p>
|
|
15
15
|
|
|
16
16
|
<p align="center">
|
|
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
|
-
<img src="https://img.shields.io/badge/skills-
|
|
21
|
-
<sub>+
|
|
20
|
+
<img src="https://img.shields.io/badge/skills-13_core-F5C242?style=flat-square" alt="13개 코어 스킬">
|
|
21
|
+
<sub>+ 11개 호환 alias</sub>
|
|
22
22
|
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-374151?style=flat-square" alt="License: MIT"></a>
|
|
23
23
|
</p>
|
|
24
24
|
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
<p align="center">
|
|
30
30
|
<a href="#빠른-시작">빠른 시작</a> ·
|
|
31
31
|
<a href="#tri-cli-합의-엔진">Tri-CLI 합의 엔진</a> ·
|
|
32
|
-
<a href="#전체-
|
|
32
|
+
<a href="#전체-13개-코어-스킬-호환-alias-포함">전체 13개 스킬</a> ·
|
|
33
33
|
<a href="#아키텍처">아키텍처</a> ·
|
|
34
34
|
<a href="#deep-vs-light">Deep vs Light</a> ·
|
|
35
35
|
<a href="#보안">보안</a>
|
|
@@ -57,15 +57,14 @@ npm install -g triflux
|
|
|
57
57
|
### 사용법
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
|
-
#
|
|
60
|
+
# Deep 기본값 — 3자 합의로 실행
|
|
61
61
|
/tfx-research "React 19 Server Actions best practices"
|
|
62
62
|
/tfx-review
|
|
63
63
|
/tfx-plan "add JWT auth middleware"
|
|
64
64
|
|
|
65
|
-
#
|
|
66
|
-
/tfx-
|
|
67
|
-
/tfx-
|
|
68
|
-
/tfx-deep-plan "migrate REST to GraphQL"
|
|
65
|
+
# Quick opt-out — 단일 모델로 빠르게 실행
|
|
66
|
+
/tfx-review --quick
|
|
67
|
+
/tfx-plan "add JWT auth middleware" --quick
|
|
69
68
|
|
|
70
69
|
# Debate — 3개의 독립적인 의견을 확보
|
|
71
70
|
/tfx-debate "Redis vs PostgreSQL LISTEN/NOTIFY for real-time events"
|
|
@@ -77,7 +76,7 @@ npm install -g triflux
|
|
|
77
76
|
/tfx-multi "refactor auth + update UI + add tests"
|
|
78
77
|
|
|
79
78
|
# Remote — setup, spawn, attach, resume를 하나의 표면으로
|
|
80
|
-
/tfx-remote
|
|
79
|
+
/tfx-remote setup # 인터랙티브 호스트 설정 위저드 (Tailscale + SSH)
|
|
81
80
|
/tfx-remote spawn ultra4 "보안 리뷰 실행" # 원격 호스트에서 세션 실행
|
|
82
81
|
```
|
|
83
82
|
|
|
@@ -89,9 +88,9 @@ npm install -g triflux
|
|
|
89
88
|
|
|
90
89
|
### v10.11.0 주요 특징
|
|
91
90
|
|
|
92
|
-
- **자연어 라우팅** — "리뷰해줘"라고 말하면 `/tfx-review`가 자동 호출.
|
|
91
|
+
- **자연어 라우팅** — "리뷰해줘"라고 말하면 `/tfx-review`가 자동 호출. 기본은 Deep이고 `--quick`으로 빠른 경로를 명시
|
|
93
92
|
- **교차 모델 리뷰** — Claude가 작성하면 Codex가 리뷰, Codex가 작성하면 Claude가 리뷰. 동일 모델 self-approve 차단. 커밋 전 미검증 파일 nudge
|
|
94
|
-
- **정확한 카탈로그** —
|
|
93
|
+
- **정확한 카탈로그** — 33개 스킬 파일 기준 `13 public core + 11 compatibility alias + 9 internal helper`
|
|
95
94
|
- **Phase 3** — `--retry ralph`, `--retry auto-escalate`, `--lead codex`, `--max-iterations N`, 4단계 `DEFAULT_ESCALATION_CHAIN`
|
|
96
95
|
- **Phase 4** — `tfx-auto --shape debate|panel|consensus`, `tfx-remote` 단일 진입점, `tfx-psmux-rules`는 `.claude/rules/tfx-psmux.md`로 이동
|
|
97
96
|
- **하위 호환성 유지** — `tfx-persist`, `tfx-debate`, `tfx-multi`, `tfx-remote-spawn` 같은 기존 이름은 thin alias로 계속 지원
|
|
@@ -142,44 +141,39 @@ Phase 4 이후에는 `tfx-auto`가 하나의 front door 역할을 맡습니다.
|
|
|
142
141
|
|
|
143
142
|
---
|
|
144
143
|
|
|
145
|
-
## 전체
|
|
144
|
+
## 전체 13개 코어 스킬 (호환 alias 포함)
|
|
146
145
|
|
|
147
146
|
### 리서치
|
|
148
147
|
|
|
149
148
|
| 스킬 | 상태 | 설명 |
|
|
150
149
|
|------|------|------|
|
|
151
|
-
| `tfx-
|
|
152
|
-
| `tfx-find` | Active | 파일, 심볼, 패턴 중심의 빠른 코드베이스 탐색 |
|
|
150
|
+
| `tfx-index` | Core | 프로젝트 인덱싱과 컨텍스트 압축 |
|
|
153
151
|
|
|
154
|
-
|
|
152
|
+
내부 라우팅 helper: `tfx-research`, `tfx-find`
|
|
155
153
|
|
|
156
154
|
### 분석 및 계획
|
|
157
155
|
|
|
158
156
|
| 스킬 | 상태 | 설명 |
|
|
159
157
|
|------|------|------|
|
|
160
|
-
|
|
|
161
|
-
| `tfx-plan` | Active | 빠른 구현 계획 수립 |
|
|
162
|
-
| `tfx-interview` | Active | 소크라테스식 요구사항 탐색 |
|
|
158
|
+
| _독립 공개 표면 없음_ | — | 분석, 계획, 인터뷰는 내부 helper로 라우팅 |
|
|
163
159
|
|
|
164
|
-
|
|
160
|
+
내부 라우팅 helper: `tfx-analysis`, `tfx-plan`, `tfx-interview`
|
|
165
161
|
|
|
166
162
|
### 실행
|
|
167
163
|
|
|
168
164
|
| 스킬 | 상태 | 설명 |
|
|
169
165
|
|------|------|------|
|
|
170
|
-
| `tfx-auto` |
|
|
166
|
+
| `tfx-auto` | Core | 플래그 기반 라우팅과 legacy surface folding을 담당하는 통합 CLI 오케스트레이터 |
|
|
171
167
|
|
|
172
|
-
|
|
168
|
+
호환 alias: `tfx-autopilot`, `tfx-fullcycle`, `tfx-multi`, `tfx-persist`, `tfx-swarm`
|
|
173
169
|
|
|
174
170
|
### 리뷰 및 QA
|
|
175
171
|
|
|
176
172
|
| 스킬 | 상태 | 설명 |
|
|
177
173
|
|------|------|------|
|
|
178
|
-
|
|
|
179
|
-
| `tfx-qa` | Active | Test → Fix → Retest 순환 (최대 3회) |
|
|
180
|
-
| `tfx-prune` | Active | AI slop 제거, dead code 및 과한 추상화 정리 |
|
|
174
|
+
| _독립 공개 표면 없음_ | — | 리뷰, QA, 정리는 내부 helper로 라우팅 |
|
|
181
175
|
|
|
182
|
-
|
|
176
|
+
내부 라우팅 helper: `tfx-review`, `tfx-qa`, `tfx-prune`
|
|
183
177
|
|
|
184
178
|
### 토론 및 의사결정
|
|
185
179
|
|
|
@@ -187,35 +181,33 @@ Aliases (fold into `tfx-auto` flags): `tfx-deep-review`, `tfx-deep-qa`
|
|
|
187
181
|
|------|------|------|
|
|
188
182
|
| _독립 active 표면 없음_ | — | debate, consensus, panel은 이제 `tfx-auto --mode consensus`의 출력 shape로 통합 |
|
|
189
183
|
|
|
190
|
-
|
|
184
|
+
호환 alias: `tfx-consensus`, `tfx-debate`, `tfx-panel`
|
|
191
185
|
|
|
192
186
|
### 지속 실행 및 라우팅
|
|
193
187
|
|
|
194
188
|
| 스킬 | 상태 | 설명 |
|
|
195
189
|
|------|------|------|
|
|
196
|
-
| `tfx-
|
|
197
|
-
| `tfx-
|
|
198
|
-
| `tfx-profile` | Active | Codex/Gemini CLI 프로필 관리 |
|
|
190
|
+
| `tfx-hooks` | Core | Claude Code hook priority 관리 |
|
|
191
|
+
| `tfx-profile` | Core | Codex/Gemini CLI 프로필 관리 |
|
|
199
192
|
|
|
200
|
-
|
|
193
|
+
내부 라우팅 helper: `tfx-ralph`
|
|
201
194
|
|
|
202
195
|
### 오케스트레이션
|
|
203
196
|
|
|
204
197
|
| 스킬 | 상태 | 설명 |
|
|
205
198
|
|------|------|------|
|
|
206
|
-
| `tfx-hub` |
|
|
207
|
-
| `
|
|
208
|
-
| `merge-worktree` | Active | swarm 결과용 worktree merge helper |
|
|
199
|
+
| `tfx-hub` | Core | MCP 메시지 버스 관리 |
|
|
200
|
+
| `merge-worktree` | Core | swarm 결과용 worktree merge helper |
|
|
209
201
|
|
|
210
|
-
|
|
202
|
+
Swarm 실행은 `tfx-auto --parallel swarm` 과 `tfx swarm` CLI로 노출된다.
|
|
211
203
|
|
|
212
204
|
### 원격
|
|
213
205
|
|
|
214
206
|
| 스킬 | 상태 | 설명 |
|
|
215
207
|
|------|------|------|
|
|
216
|
-
| `tfx-remote` |
|
|
208
|
+
| `tfx-remote` | Core | setup, spawn, list, attach, send, resume, probe, rules를 묶는 원격 command family |
|
|
217
209
|
|
|
218
|
-
|
|
210
|
+
호환 alias: `tfx-remote-spawn`, `tfx-remote-setup`, `tfx-psmux-rules` — Phase 4에서 `.claude/rules/tfx-psmux.md`로 이동
|
|
219
211
|
|
|
220
212
|
### 메타
|
|
221
213
|
|
|
@@ -225,6 +217,7 @@ Aliases (fold into active surfaces): `tfx-remote-spawn`, `tfx-remote-setup`, `tf
|
|
|
225
217
|
| `tfx-setup` | Active | 초기 설정 마법사 |
|
|
226
218
|
| `tfx-doctor` | Active | 진단 및 자동 복구 |
|
|
227
219
|
| `tfx-ship` | Active | ship workflow orchestration |
|
|
220
|
+
| `tfx-wt` | Active | Windows Terminal 탭/패인 제어 |
|
|
228
221
|
| `star-prompt` | Active | postinstall GitHub star prompt |
|
|
229
222
|
|
|
230
223
|
---
|
|
@@ -316,15 +309,14 @@ npm install -g triflux
|
|
|
316
309
|
### 사용법
|
|
317
310
|
|
|
318
311
|
```bash
|
|
319
|
-
#
|
|
312
|
+
# Deep 기본값 — 3자 합의로 실행
|
|
320
313
|
/tfx-research "React 19 Server Actions best practices"
|
|
321
314
|
/tfx-review
|
|
322
315
|
/tfx-plan "add JWT auth middleware"
|
|
323
316
|
|
|
324
|
-
#
|
|
325
|
-
/tfx-
|
|
326
|
-
/tfx-
|
|
327
|
-
/tfx-deep-plan "migrate REST to GraphQL"
|
|
317
|
+
# Quick opt-out — 단일 모델로 빠르게 실행
|
|
318
|
+
/tfx-review --quick
|
|
319
|
+
/tfx-plan "add JWT auth middleware" --quick
|
|
328
320
|
|
|
329
321
|
# Debate — 3개의 독립적인 의견을 확보
|
|
330
322
|
/tfx-debate "Redis vs PostgreSQL LISTEN/NOTIFY for real-time events"
|
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<h3 align="center">Tri-CLI Orchestration with Consensus Intelligence</h3>
|
|
12
12
|
|
|
13
13
|
<p align="center">
|
|
14
|
-
Route tasks across <strong>Claude + Codex + Gemini</strong> —
|
|
14
|
+
Route tasks across <strong>Claude + Codex + Gemini</strong> — 13 public core skills, natural language routing,<br>
|
|
15
15
|
cross-model review, and reflexion-based adaptive learning.
|
|
16
16
|
</p>
|
|
17
17
|
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
<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>
|
|
20
20
|
<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>
|
|
21
21
|
<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>
|
|
22
|
-
<img src="https://img.shields.io/badge/skills-
|
|
23
|
-
<sub>+
|
|
22
|
+
<img src="https://img.shields.io/badge/skills-13_core-F5C242?style=flat-square" alt="13 core skills">
|
|
23
|
+
<sub>+ 11 compatibility aliases</sub>
|
|
24
24
|
<img src="https://img.shields.io/badge/node-%3E%3D18-374151?style=flat-square" alt="Node >= 18">
|
|
25
25
|
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-374151?style=flat-square" alt="License: MIT"></a>
|
|
26
26
|
</p>
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
<a href="#quick-start">Quick Start</a> ·
|
|
34
34
|
<a href="#core-engine">Core Engine</a> ·
|
|
35
35
|
<a href="#killer-skills">Killer Skills</a> ·
|
|
36
|
-
<a href="#all-
|
|
36
|
+
<a href="#all-13-core-skills-plus-compatibility-aliases">All 13 Skills</a> ·
|
|
37
37
|
<a href="#deep-vs-light">Deep vs Light</a> ·
|
|
38
38
|
<a href="#architecture">Architecture</a> ·
|
|
39
39
|
<a href="#security">Security</a>
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
|
|
46
46
|
Most AI coding tools talk to **one model**. triflux talks to **three** — and makes them argue.
|
|
47
47
|
|
|
48
|
-
triflux is not a collection of skills. It is a **multi-model parallel orchestration harness**. The
|
|
48
|
+
triflux is not a collection of skills. It is a **multi-model parallel orchestration harness**. The 13 public core skills, 11 compatibility aliases, and internal routed helpers are what it does. The harness — consensus engine, message bus, router, and security guard — is what makes it different.
|
|
49
49
|
|
|
50
50
|
Every Deep skill runs Claude, Codex, and Gemini **independently** (no cross-visibility), then cross-validates their findings. Only consensus-verified results survive. The result: **87% fewer false positives** compared to single-model review.
|
|
51
51
|
|
|
@@ -54,10 +54,10 @@ Phase 4 folds the legacy surface into one front door: `tfx-auto` with flag-based
|
|
|
54
54
|
You don't need to memorize commands. Say what you want in natural language — triflux routes to the right skill automatically:
|
|
55
55
|
|
|
56
56
|
```
|
|
57
|
-
"review this" → /tfx-review (
|
|
58
|
-
"review this
|
|
57
|
+
"review this" → /tfx-review (Deep by default — 3-party consensus)
|
|
58
|
+
"review this --quick" → /tfx-review --quick (quick opt-out)
|
|
59
59
|
"리뷰해줘" → /tfx-review (Korean works too)
|
|
60
|
-
"제대로 리뷰해" → /tfx-
|
|
60
|
+
"제대로 리뷰해" → /tfx-review (depth modifier detected)
|
|
61
61
|
```
|
|
62
62
|
|
|
63
63
|
---
|
|
@@ -83,8 +83,8 @@ Then run `tfx setup` to configure your environment.
|
|
|
83
83
|
|
|
84
84
|
```bash
|
|
85
85
|
# 3-party consensus — three models argue, only consensus survives
|
|
86
|
-
/tfx-
|
|
87
|
-
/tfx-
|
|
86
|
+
/tfx-review
|
|
87
|
+
/tfx-plan "migrate REST to GraphQL"
|
|
88
88
|
|
|
89
89
|
# Swarm — split PRD into shards, parallel worktree execution
|
|
90
90
|
/tfx-swarm
|
|
@@ -266,13 +266,13 @@ Each shard gets its own git worktree, file-lease enforcement prevents conflicts,
|
|
|
266
266
|
/tfx-auto "implement full auth flow with tests" --retry ralph --max-iterations 10
|
|
267
267
|
```
|
|
268
268
|
|
|
269
|
-
### 3-Party Consensus Reviews — `tfx-
|
|
269
|
+
### 3-Party Consensus Reviews — `tfx-review` / `tfx-plan`
|
|
270
270
|
|
|
271
271
|
The bread-and-butter Deep skills. Three models independently review your code or plan your implementation, then cross-validate. Only consensus-verified findings survive.
|
|
272
272
|
|
|
273
273
|
```bash
|
|
274
|
-
/tfx-
|
|
275
|
-
/tfx-
|
|
274
|
+
/tfx-review # 3-party code review by default
|
|
275
|
+
/tfx-plan "migrate to GraphQL" # 3-party planning by default
|
|
276
276
|
```
|
|
277
277
|
|
|
278
278
|
### Structured Debate — `tfx-debate` (alias for `tfx-auto --mode consensus --shape debate`)
|
|
@@ -285,7 +285,7 @@ Three models take independent positions on a technical question, debate, and con
|
|
|
285
285
|
|
|
286
286
|
---
|
|
287
287
|
|
|
288
|
-
## All
|
|
288
|
+
## All 13 Core Skills (plus compatibility aliases)
|
|
289
289
|
|
|
290
290
|
<details>
|
|
291
291
|
<summary>Expand full skill list</summary>
|
|
@@ -294,38 +294,33 @@ Three models take independent positions on a technical question, debate, and con
|
|
|
294
294
|
|
|
295
295
|
| Skill | Type | Description |
|
|
296
296
|
|-------|------|-------------|
|
|
297
|
-
| `tfx-
|
|
298
|
-
| `tfx-find` | Active | Fast codebase search — files, symbols, patterns |
|
|
297
|
+
| `tfx-index` | Core | Project indexing and context compression |
|
|
299
298
|
|
|
300
|
-
|
|
299
|
+
Internal routed helpers: `tfx-research`, `tfx-find`
|
|
301
300
|
|
|
302
301
|
### Analysis & Planning
|
|
303
302
|
|
|
304
303
|
| Skill | Type | Description |
|
|
305
304
|
|-------|------|-------------|
|
|
306
|
-
|
|
|
307
|
-
| `tfx-plan` | Active | Quick implementation plan |
|
|
308
|
-
| `tfx-interview` | Active | Socratic requirements exploration |
|
|
305
|
+
| _No standalone public surface_ | — | Analysis, planning, and interview route through internal helpers |
|
|
309
306
|
|
|
310
|
-
|
|
307
|
+
Internal routed helpers: `tfx-analysis`, `tfx-plan`, `tfx-interview`
|
|
311
308
|
|
|
312
309
|
### Execution
|
|
313
310
|
|
|
314
311
|
| Skill | Type | Description |
|
|
315
312
|
|-------|------|-------------|
|
|
316
|
-
| `tfx-auto` |
|
|
313
|
+
| `tfx-auto` | Core | Unified CLI orchestrator — auto-triage, flag-based routing, and legacy surface folding |
|
|
317
314
|
|
|
318
|
-
|
|
315
|
+
Compatibility aliases: `tfx-autopilot`, `tfx-fullcycle`, `tfx-multi`, `tfx-persist`, `tfx-swarm`
|
|
319
316
|
|
|
320
317
|
### Review & QA
|
|
321
318
|
|
|
322
319
|
| Skill | Type | Description |
|
|
323
320
|
|-------|------|-------------|
|
|
324
|
-
|
|
|
325
|
-
| `tfx-qa` | Active | Test → Fix → Retest cycle (max 3 rounds) |
|
|
326
|
-
| `tfx-prune` | Active | AI slop removal — dead code, over-abstraction cleanup |
|
|
321
|
+
| _No standalone public surface_ | — | Review, QA, and cleanup route through internal helpers |
|
|
327
322
|
|
|
328
|
-
|
|
323
|
+
Internal routed helpers: `tfx-review`, `tfx-qa`, `tfx-prune`
|
|
329
324
|
|
|
330
325
|
### Debate & Decision
|
|
331
326
|
|
|
@@ -333,27 +328,25 @@ Aliases (fold into `tfx-auto` flags): `tfx-deep-review`, `tfx-deep-qa`
|
|
|
333
328
|
|-------|------|-------------|
|
|
334
329
|
| _No standalone active surface_ | — | Debate, consensus, and panel shapes now route through `tfx-auto --mode consensus` |
|
|
335
330
|
|
|
336
|
-
|
|
331
|
+
Compatibility aliases: `tfx-consensus`, `tfx-debate`, `tfx-panel`
|
|
337
332
|
|
|
338
333
|
### Persistence & Routing
|
|
339
334
|
|
|
340
335
|
| Skill | Type | Description |
|
|
341
336
|
|-------|------|-------------|
|
|
342
|
-
| `tfx-
|
|
343
|
-
| `tfx-
|
|
344
|
-
| `tfx-profile` | Active | Codex/Gemini CLI profile management |
|
|
337
|
+
| `tfx-hooks` | Core | Claude Code hook priority manager |
|
|
338
|
+
| `tfx-profile` | Core | Codex/Gemini CLI profile management |
|
|
345
339
|
|
|
346
|
-
|
|
340
|
+
Internal routed helper: `tfx-ralph`
|
|
347
341
|
|
|
348
342
|
### Orchestration & Infrastructure
|
|
349
343
|
|
|
350
344
|
| Skill | Description |
|
|
351
345
|
|-------|-------------|
|
|
352
346
|
| `tfx-hub` | MCP message bus — Named Pipe & HTTP bridge |
|
|
353
|
-
| `tfx-codex-swarm` | Codex swarm execution surface |
|
|
354
347
|
| `merge-worktree` | Worktree merge helper for swarm results |
|
|
355
348
|
|
|
356
|
-
|
|
349
|
+
Swarm execution is exposed through `tfx-auto --parallel swarm` and the `tfx swarm` CLI.
|
|
357
350
|
|
|
358
351
|
### Remote
|
|
359
352
|
|
|
@@ -361,7 +354,7 @@ Aliases (fold into active surfaces): `tfx-multi`, `tfx-swarm`
|
|
|
361
354
|
|-------|-------------|
|
|
362
355
|
| `tfx-remote` | Unified remote command family — setup, spawn, list, attach, send, resume, probe, rules |
|
|
363
356
|
|
|
364
|
-
|
|
357
|
+
Compatibility aliases: `tfx-remote-spawn`, `tfx-remote-setup`, `tfx-psmux-rules` — rules moved to `.claude/rules/tfx-psmux.md` in Phase 4
|
|
365
358
|
|
|
366
359
|
### Meta & Tooling
|
|
367
360
|
|
|
@@ -371,6 +364,7 @@ Aliases (fold into active surfaces): `tfx-remote-spawn`, `tfx-remote-setup`, `tf
|
|
|
371
364
|
| `tfx-setup` | Initial setup wizard |
|
|
372
365
|
| `tfx-doctor` | Diagnostics and auto-repair |
|
|
373
366
|
| `tfx-ship` | Ship workflow orchestration |
|
|
367
|
+
| `tfx-wt` | Windows Terminal tab/pane control |
|
|
374
368
|
| `star-prompt` | GitHub star prompt for postinstall |
|
|
375
369
|
|
|
376
370
|
</details>
|
|
@@ -494,7 +488,7 @@ The monitor visualizes:
|
|
|
494
488
|
- **Consensus shapes** — `--shape consensus|debate|panel` folds ensemble behaviors into the main router
|
|
495
489
|
- **Remote consolidation** — `tfx-remote` becomes the single remote surface while `tfx-remote-spawn` remains a thin alias
|
|
496
490
|
- **Rules relocation** — `tfx-psmux-rules` moved out of the skill surface to `.claude/rules/tfx-psmux.md`
|
|
497
|
-
- **Legacy compatibility** —
|
|
491
|
+
- **Legacy compatibility** — 11 compatibility aliases remain for transition safety and are slated for later removal
|
|
498
492
|
|
|
499
493
|
</details>
|
|
500
494
|
|
package/bin/tfx-doctor-tui.mjs
CHANGED
|
File without changes
|
package/bin/tfx-doctor.mjs
CHANGED
|
File without changes
|
package/bin/tfx-profile.mjs
CHANGED
|
File without changes
|
package/bin/tfx-setup-tui.mjs
CHANGED
|
File without changes
|
package/bin/tfx-setup.mjs
CHANGED
|
File without changes
|