triflux 7.1.4 → 7.2.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.
Files changed (73) hide show
  1. package/.claude-plugin/marketplace.json +31 -31
  2. package/.claude-plugin/plugin.json +22 -23
  3. package/bin/triflux.mjs +18 -5
  4. package/hooks/keyword-rules.json +393 -361
  5. package/hub/bridge.mjs +799 -786
  6. package/hub/delegator/contracts.mjs +37 -38
  7. package/hub/delegator/schema/delegator-tools.schema.json +250 -250
  8. package/hub/delegator/service.mjs +307 -302
  9. package/hub/intent.mjs +108 -11
  10. package/hub/lib/process-utils.mjs +20 -0
  11. package/hub/pipe.mjs +589 -589
  12. package/hub/pipeline/gates/confidence.mjs +1 -1
  13. package/hub/pipeline/gates/selfcheck.mjs +2 -4
  14. package/hub/pipeline/state.mjs +191 -187
  15. package/hub/pipeline/transitions.mjs +124 -120
  16. package/hub/public/dashboard.html +355 -349
  17. package/hub/quality/deslop.mjs +5 -3
  18. package/hub/reflexion.mjs +5 -1
  19. package/hub/research.mjs +6 -1
  20. package/hub/router.mjs +791 -782
  21. package/hub/server.mjs +893 -822
  22. package/hub/store.mjs +807 -778
  23. package/hub/team/agent-map.json +10 -0
  24. package/hub/team/ansi.mjs +3 -4
  25. package/hub/team/cli/commands/control.mjs +43 -43
  26. package/hub/team/cli/commands/interrupt.mjs +36 -36
  27. package/hub/team/cli/commands/kill.mjs +3 -3
  28. package/hub/team/cli/commands/send.mjs +37 -37
  29. package/hub/team/cli/commands/start/index.mjs +18 -8
  30. package/hub/team/cli/commands/start/parse-args.mjs +3 -1
  31. package/hub/team/cli/commands/start/start-headless.mjs +4 -1
  32. package/hub/team/cli/commands/status.mjs +87 -87
  33. package/hub/team/cli/commands/stop.mjs +1 -1
  34. package/hub/team/cli/commands/task.mjs +1 -1
  35. package/hub/team/cli/index.mjs +41 -39
  36. package/hub/team/cli/manifest.mjs +29 -28
  37. package/hub/team/cli/services/hub-client.mjs +37 -0
  38. package/hub/team/cli/services/state-store.mjs +26 -12
  39. package/hub/team/dashboard.mjs +11 -4
  40. package/hub/team/handoff.mjs +12 -0
  41. package/hub/team/headless.mjs +202 -200
  42. package/hub/team/native-supervisor.mjs +386 -346
  43. package/hub/team/nativeProxy.mjs +680 -692
  44. package/hub/team/staleState.mjs +361 -369
  45. package/hub/team/tui-viewer.mjs +27 -3
  46. package/hub/team/tui.mjs +1 -0
  47. package/hub/token-mode.mjs +114 -24
  48. package/hub/workers/delegator-mcp.mjs +1059 -1057
  49. package/hud/colors.mjs +88 -0
  50. package/hud/constants.mjs +78 -0
  51. package/hud/hud-qos-status.mjs +206 -1872
  52. package/hud/providers/claude.mjs +309 -0
  53. package/hud/providers/codex.mjs +151 -0
  54. package/hud/providers/gemini.mjs +320 -0
  55. package/hud/renderers.mjs +424 -0
  56. package/hud/terminal.mjs +140 -0
  57. package/hud/utils.mjs +271 -0
  58. package/package.json +1 -2
  59. package/scripts/__tests__/keyword-detector.test.mjs +234 -234
  60. package/scripts/headless-guard-fast.sh +21 -0
  61. package/scripts/headless-guard.mjs +26 -6
  62. package/scripts/lib/keyword-rules.mjs +166 -168
  63. package/scripts/setup.mjs +725 -690
  64. package/scripts/tfx-route-post.mjs +424 -424
  65. package/scripts/tfx-route.sh +1671 -1650
  66. package/scripts/tmp-cleanup.mjs +74 -0
  67. package/skills/tfx-auto/SKILL.md +279 -278
  68. package/skills/tfx-auto-codex/SKILL.md +98 -77
  69. package/skills/tfx-codex/SKILL.md +65 -65
  70. package/skills/tfx-gemini/SKILL.md +83 -82
  71. package/skills/tfx-hub/SKILL.md +205 -136
  72. package/skills/tfx-multi/SKILL.md +11 -5
  73. package/.mcp.json +0 -8
@@ -1,136 +1,205 @@
1
- ---
2
- name: tfx-hub
3
- description: >
4
- tfx-hub MCP 메시지 버스 관리. CLI 에이전트 간 실시간 통신 허브를 시작/중지/상태확인하고,
5
- hub 도메인의 자유형 작업도 처리합니다.
6
- Use when: hub, 허브, 메시지 버스, message bus, 브릿지, bridge, MCP 서버 관리, 에이전트 통신
7
- triggers:
8
- - tfx-hub
9
- argument-hint: "<start|stop|status|자유형 작업 설명>"
10
- ---
11
-
12
- # tfx-hub — MCP 메시지 버스 관리 + 개방형 작업
13
-
14
- > CLI 에이전트(Codex/Gemini/Claude) 간 실시간 메시지 허브를 관리합니다.
15
- > **커맨드 매칭 + fallthrough**: start/stop/status에 매칭되면 즉시 실행,
16
- > 매칭 안 되면 **hub 도메인 컨텍스트를 활용한 범용 작업**으로 처리합니다.
17
-
18
- ## 입력 해석 규칙
19
-
20
- ```
21
- /tfx-hub start → 커맨드 매칭 → 허브 시작
22
- /tfx-hub stop → 커맨드 매칭 → 허브 중지
23
- /tfx-hub status → 커맨드 매칭 → 상태 확인
24
- /tfx-hub 테스트해줘 → fallthrough → hub 관련 범용 작업으로 처리
25
- /tfx-hub 문서 저장해 → fallthrough → hub 관련 범용 작업으로 처리
26
- /tfx-hub 브릿지 분석해 → fallthrough → hub 관련 범용 작업으로 처리
27
- ```
28
-
29
- **fallthrough 규칙**: 인자가 start/stop/status/--port 등 커맨드 키워드에 매칭되지 않으면,
30
- 사용자의 입력을 **hub/브릿지/메시지버스 도메인의 자유형 작업**으로 해석한다.
31
-
32
- fallthrough 라우팅:
33
- ```bash
34
- # tfx-route.sh 경유 (권장)
35
- Bash("bash ~/.claude/scripts/tfx-route.sh {에이전트} '{hub 컨텍스트 + 작업}' {mcp_profile}")
36
-
37
- # codex 직접 호출 시 — 반드시 exec 서브커맨드 포함
38
- Bash("codex exec --dangerously-bypass-approvals-and-sandbox --skip-git-repo-check '{작업}'")
39
- Bash("codex --profile xhigh exec --dangerously-bypass-approvals-and-sandbox --skip-git-repo-check '{작업}'")
40
- # ↑ --profile은 exec 앞에, --skip-git-repo-check은 exec 뒤에
41
-
42
- # Claude 네이티브 (탐색/검증)
43
- Agent(subagent_type="oh-my-claudecode:explore", prompt="{작업}")
44
- ```
45
-
46
- ## 커맨드
47
-
48
- ### start — 허브 시작
49
-
50
- ```bash
51
- Bash("node hub/server.mjs", run_in_background=true)
52
- ```
53
-
54
- - Streamable HTTP MCP 서버를 `http://127.0.0.1:27888/mcp` 에서 시작
55
- - SQLite WAL DB: `~/.claude/cache/tfx-hub/state.db`
56
- - PID 파일: `~/.claude/cache/tfx-hub/hub.pid`
57
- - 환경변수: `TFX_HUB_PORT` (포트), `TFX_HUB_DB` (DB 경로)
58
-
59
- ### stop — 허브 중지
60
-
61
- ```bash
62
- # PID 파일에서 프로세스 ID 읽어서 종료
63
- Bash("node -e \"
64
- const fs = require('fs');
65
- const path = require('path');
66
- const pidFile = path.join(require('os').homedir(), '.claude/cache/tfx-hub/hub.pid');
67
- if (fs.existsSync(pidFile)) {
68
- const info = JSON.parse(fs.readFileSync(pidFile, 'utf8'));
69
- process.kill(info.pid, 'SIGTERM');
70
- console.log('tfx-hub 종료 (PID ' + info.pid + ')');
71
- } else {
72
- console.log('tfx-hub 미실행');
73
- }
74
- \"")
75
- ```
76
-
77
- ### status — 상태 확인
78
-
79
- ```bash
80
- # HTTP 상태 엔드포인트 조회
81
- Bash("curl -s http://127.0.0.1:27888/status 2>/dev/null || echo '{\"error\":\"hub 미실행\"}'")
82
- ```
83
-
84
- ## 각 CLI 등록 방법
85
-
86
- 허브 시작 후 각 CLI에 MCP 서버로 등록:
87
-
88
- ```bash
89
- # Codex
90
- codex mcp add tfx-hub --url http://127.0.0.1:27888/mcp
91
-
92
- # Gemini (settings.json)
93
- # mcpServers.tfx-hub.url = "http://127.0.0.1:27888/mcp"
94
-
95
- # Claude
96
- claude mcp add --transport http tfx-hub http://127.0.0.1:27888/mcp
97
- ```
98
-
99
- ## MCP 도구 (8개)
100
-
101
- | 도구 | 설명 |
102
- |------|------|
103
- | `register` | 에이전트 등록 + lease 발급 |
104
- | `status` | 허브/에이전트/큐 상태 조회 |
105
- | `publish` | 이벤트/응답 메시지 발행 |
106
- | `ask` | 다른 에이전트에게 질문 (request/reply) |
107
- | `poll_messages` | 수신함에서 메시지 폴링 |
108
- | `handoff` | 작업 인계 |
109
- | `request_human_input` | 사용자 입력 요청 (CAPTCHA/승인) |
110
- | `submit_human_input` | 사용자 입력 응답 |
111
-
112
- ## 브릿지 REST 엔드포인트 (4개)
113
-
114
- | 엔드포인트 | 설명 |
115
- |-----------|------|
116
- | `POST /bridge/register` | 에이전트 등록 (프로세스 수명 기반 lease) |
117
- | `POST /bridge/result` | 결과 발행 (topic fanout) |
118
- | `POST /bridge/context` | 선행 컨텍스트 폴링 (auto_ack) |
119
- | `POST /bridge/deregister` | 에이전트 offline 마킹 |
120
-
121
- ## 프로젝트 구조
122
-
123
- ```
124
- hub/
125
- ├── server.mjs # MCP 서버 + REST 브릿지 엔드포인트
126
- ├── store.mjs # SQLite WAL 상태 저장소
127
- ├── router.mjs # Actor mailbox 라우터 + QoS
128
- ├── tools.mjs # MCP 도구 8개 정의
129
- ├── hitl.mjs # Human-in-the-Loop 매니저
130
- ├── bridge.mjs # tfx-route.sh ↔ hub 브릿지 CLI
131
- └── schema.sql # DB 스키마
132
- ```
133
-
134
- ## 상태
135
-
136
- **dev 전용** 로컬 테스트 목적. 프로덕션 배포 전 안정화 필요.
1
+ ---
2
+ name: tfx-hub
3
+ description: >
4
+ tfx-hub MCP 메시지 버스 관리. CLI 에이전트 간 실시간 통신 허브를 시작/중지/상태확인하고,
5
+ hub 도메인의 자유형 작업도 처리합니다.
6
+ Use when: hub, 허브, 메시지 버스, message bus, 브릿지, bridge, MCP 서버 관리, 에이전트 통신
7
+ triggers:
8
+ - tfx-hub
9
+ argument-hint: "<start|stop|status|자유형 작업 설명>"
10
+ ---
11
+
12
+ # tfx-hub — MCP 메시지 버스 관리 + 개방형 작업
13
+
14
+ > CLI 에이전트(Codex/Gemini/Claude) 간 실시간 메시지 허브를 관리합니다.
15
+ > **커맨드 매칭 + fallthrough**: start/stop/status에 매칭되면 즉시 실행,
16
+ > 매칭 안 되면 **hub 도메인 컨텍스트를 활용한 범용 작업**으로 처리합니다.
17
+
18
+ ## 입력 해석 규칙
19
+
20
+ ```
21
+ /tfx-hub start → 커맨드 매칭 → 허브 시작
22
+ /tfx-hub stop → 커맨드 매칭 → 허브 중지
23
+ /tfx-hub status → 커맨드 매칭 → 상태 확인
24
+ /tfx-hub 테스트해줘 → fallthrough → hub 관련 범용 작업으로 처리
25
+ /tfx-hub 문서 저장해 → fallthrough → hub 관련 범용 작업으로 처리
26
+ /tfx-hub 브릿지 분석해 → fallthrough → hub 관련 범용 작업으로 처리
27
+ ```
28
+
29
+ **fallthrough 규칙**: 인자가 start/stop/status/--port 등 커맨드 키워드에 매칭되지 않으면,
30
+ 사용자의 입력을 **hub/브릿지/메시지버스 도메인의 자유형 작업**으로 해석한다.
31
+
32
+ fallthrough 라우팅:
33
+ ```bash
34
+ # tfx-route.sh 경유 (권장)
35
+ Bash("bash ~/.claude/scripts/tfx-route.sh {에이전트} '{hub 컨텍스트 + 작업}' {mcp_profile}")
36
+
37
+ # codex 직접 호출 시 — 반드시 exec 서브커맨드 포함
38
+ Bash("codex exec --dangerously-bypass-approvals-and-sandbox --skip-git-repo-check '{작업}'")
39
+ Bash("codex --profile xhigh exec --dangerously-bypass-approvals-and-sandbox --skip-git-repo-check '{작업}'")
40
+ # ↑ --profile은 exec 앞에, --skip-git-repo-check은 exec 뒤에
41
+
42
+ # Claude 네이티브 (탐색/검증)
43
+ Agent(subagent_type="oh-my-claudecode:explore", prompt="{작업}")
44
+ ```
45
+
46
+ ## 커맨드
47
+
48
+ ### start — 허브 시작
49
+
50
+ ```bash
51
+ Bash("node hub/server.mjs", run_in_background=true)
52
+ ```
53
+
54
+ - Streamable HTTP MCP 서버를 `http://127.0.0.1:27888/mcp` 에서 시작
55
+ - SQLite WAL DB: `~/.claude/cache/tfx-hub/state.db`
56
+ - PID 파일: `~/.claude/cache/tfx-hub/hub.pid`
57
+ - 환경변수: `TFX_HUB_PORT` (포트), `TFX_HUB_DB` (DB 경로)
58
+
59
+ ### stop — 허브 중지
60
+
61
+ ```bash
62
+ # PID 파일에서 프로세스 ID 읽어서 종료
63
+ Bash("node -e \"
64
+ const fs = require('fs');
65
+ const path = require('path');
66
+ const pidFile = path.join(require('os').homedir(), '.claude/cache/tfx-hub/hub.pid');
67
+ if (fs.existsSync(pidFile)) {
68
+ const info = JSON.parse(fs.readFileSync(pidFile, 'utf8'));
69
+ process.kill(info.pid, 'SIGTERM');
70
+ console.log('tfx-hub 종료 (PID ' + info.pid + ')');
71
+ } else {
72
+ console.log('tfx-hub 미실행');
73
+ }
74
+ \"")
75
+ ```
76
+
77
+ ### status — 상태 확인
78
+
79
+ ```bash
80
+ # HTTP 상태 엔드포인트 조회
81
+ Bash("curl -s http://127.0.0.1:27888/status 2>/dev/null || echo '{\"error\":\"hub 미실행\"}'")
82
+ ```
83
+
84
+ ## 각 CLI 등록 방법
85
+
86
+ 허브 시작 후 각 CLI에 MCP 서버로 등록:
87
+
88
+ ```bash
89
+ # Codex
90
+ codex mcp add tfx-hub --url http://127.0.0.1:27888/mcp
91
+
92
+ # Gemini (settings.json)
93
+ # mcpServers.tfx-hub.url = "http://127.0.0.1:27888/mcp"
94
+
95
+ # Claude
96
+ claude mcp add --transport http tfx-hub http://127.0.0.1:27888/mcp
97
+ ```
98
+
99
+ ## MCP 도구 (20개)
100
+
101
+ ### Core 기본 통신
102
+
103
+ | 도구 | 설명 |
104
+ |------|------|
105
+ | `register` | 에이전트 등록 + lease 발급 |
106
+ | `status` | 허브/에이전트/큐/트레이스 상태 조회 |
107
+ | `publish` | 이벤트/응답 메시지 발행 (topic fanout 지원) |
108
+ | `ask` | 다른 에이전트에게 질문 (request/reply, await_response_ms 폴링 지원) |
109
+ | `handoff` | 작업 인계 (acceptance_criteria 지정 가능) |
110
+ | `poll_messages` | 수신함에서 메시지 폴링 **(Deprecated — Named Pipe 사용)** |
111
+
112
+ ### Assign 비차단 작업 할당
113
+
114
+ | 도구 | 설명 |
115
+ |------|------|
116
+ | `assign_async` | AWS CAO 스타일 비차단 job 생성 + 워커 실시간 전달 |
117
+ | `assign_result` | job 진행/완료 결과 보고 |
118
+ | `assign_status` | job 단건 상태 또는 목록 조회 |
119
+
120
+ ### Team — Claude Native Teams 프록시
121
+
122
+ | 도구 | 설명 |
123
+ |------|------|
124
+ | `team_info` | Teams 메타/멤버/경로 정보 조회 |
125
+ | `team_task_list` | task 목록 조회 (owner/status 필터) |
126
+ | `team_task_update` | task claim/update |
127
+ | `team_send_message` | Teams inbox에 메시지 append |
128
+
129
+ ### Pipeline 파이프라인 관리
130
+
131
+ | 도구 | 설명 |
132
+ |------|------|
133
+ | `pipeline_init` | 새 파이프라인 초기화 |
134
+ | `pipeline_state` | 파이프라인 상태 조회 |
135
+ | `pipeline_advance` | 다음 단계로 전이 (전이 규칙 + fix loop 바운딩) |
136
+ | `pipeline_advance_gated` | HITL 승인 게이트 포함 전이 |
137
+ | `pipeline_list` | 활성 파이프라인 목록 조회 |
138
+
139
+ ### HITL — Human-in-the-Loop
140
+
141
+ | 도구 | 설명 |
142
+ |------|------|
143
+ | `request_human_input` | 사용자 입력 요청 (CAPTCHA/승인/자격증명/선택/텍스트) |
144
+ | `submit_human_input` | 사용자 입력 응답 (accept/decline/cancel) |
145
+
146
+ ## 브릿지 REST 엔드포인트 (4개)
147
+
148
+ | 엔드포인트 | 설명 |
149
+ |-----------|------|
150
+ | `POST /bridge/register` | 에이전트 등록 (프로세스 수명 기반 lease) |
151
+ | `POST /bridge/result` | 결과 발행 (topic fanout) |
152
+ | `POST /bridge/context` | 선행 컨텍스트 폴링 (auto_ack) |
153
+ | `POST /bridge/deregister` | 에이전트 offline 마킹 |
154
+
155
+ ## 프로젝트 구조
156
+
157
+ ```
158
+ hub/
159
+ ├── server.mjs # MCP 서버 + REST 브릿지 엔드포인트
160
+ ├── store.mjs # SQLite WAL 상태 저장소
161
+ ├── router.mjs # Actor mailbox 라우터 + QoS
162
+ ├── tools.mjs # MCP 도구 20개 정의
163
+ ├── hitl.mjs # Human-in-the-Loop 매니저
164
+ ├── bridge.mjs # tfx-route.sh ↔ hub 브릿지 CLI
165
+ ├── schema.sql # DB 스키마
166
+ ├── paths.mjs # 경로 상수 (PID 파일, DB 경로 등)
167
+ ├── pipe.mjs # Named Pipe 서버 (push 구독 채널)
168
+ ├── assign-callbacks.mjs # assign job 콜백 처리
169
+ ├── intent.mjs # 인텐트 파싱
170
+ ├── reflexion.mjs # reflexion 루프
171
+ ├── research.mjs # 리서치 프록시
172
+ ├── token-mode.mjs # 토큰 모드 관리
173
+ ├── pipeline/ # 파이프라인 엔진
174
+ │ ├── index.mjs # createPipeline() 팩토리
175
+ │ ├── state.mjs # 파이프라인 상태 CRUD
176
+ │ ├── transitions.mjs # 전이 규칙
177
+ │ └── gates/ # HITL 게이트 (selfcheck, confidence)
178
+ ├── delegator/ # 작업 위임 레이어
179
+ │ ├── index.mjs
180
+ │ ├── service.mjs
181
+ │ ├── contracts.mjs
182
+ │ └── tool-definitions.mjs
183
+ ├── team/ # Claude Native Teams 통합
184
+ │ ├── nativeProxy.mjs # Teams MCP 프록시
185
+ │ ├── orchestrator.mjs # 팀 오케스트레이터
186
+ │ ├── session.mjs # 세션 관리
187
+ │ ├── dashboard.mjs # TUI 대시보드
188
+ │ ├── tui.mjs # TUI 렌더러
189
+ │ └── cli/ # tfx team CLI 커맨드
190
+ ├── workers/ # CLI 워커 어댑터
191
+ │ ├── factory.mjs
192
+ │ ├── claude-worker.mjs
193
+ │ ├── codex-mcp.mjs
194
+ │ ├── gemini-worker.mjs
195
+ │ └── delegator-mcp.mjs
196
+ ├── middleware/ # 요청 미들웨어
197
+ │ └── request-logger.mjs
198
+ ├── quality/ # 품질 검사
199
+ │ └── deslop.mjs
200
+ └── public/ # 정적 자산 (대시보드 HTML, 트레이 아이콘)
201
+ ```
202
+
203
+ ## 상태
204
+
205
+ **dev 전용** — 로컬 테스트 목적. 프로덕션 배포 전 안정화 필요.
@@ -83,13 +83,13 @@ preflight와 Agent 생성을 병렬로 실행하여 사용자 체감 지연을
83
83
  **실행 명령 (Lead가 호출하는 유일한 명령):**
84
84
 
85
85
  ```
86
- Bash("tfx multi --teammate-mode headless --auto-attach --assign 'codex:{프롬프트1}:{역할1}' --assign 'gemini:{프롬프트2}:{역할2}' --timeout 600")
86
+ Bash("tfx multi --teammate-mode headless --auto-attach --dashboard --assign 'codex:{프롬프트1}:{역할1}' --assign 'gemini:{프롬프트2}:{역할2}' --timeout 600")
87
87
  ```
88
88
 
89
89
  **예시:**
90
90
 
91
91
  ```
92
- Bash("tfx multi --teammate-mode headless --auto-attach --assign 'codex:코드 리뷰하고 개선 사항 제안:reviewer' --assign 'gemini:API 문서 작성:writer' --assign 'codex:보안 취약점 분석:security' --timeout 600")
92
+ Bash("tfx multi --teammate-mode headless --auto-attach --dashboard --assign 'codex:코드 리뷰하고 개선 사항 제안:reviewer' --assign 'gemini:API 문서 작성:writer' --assign 'codex:보안 취약점 분석:security' --timeout 600")
93
93
  ```
94
94
 
95
95
  **Claude 워커가 Read/Edit 필요한 경우 (하이브리드):**
@@ -98,7 +98,7 @@ Claude 워커는 headless에서 실행 불가 (Read/Edit 도구 필요). CLI 워
98
98
 
99
99
  ```
100
100
  # 1. CLI 워커를 headless로 dispatch
101
- Bash("tfx multi --teammate-mode headless --auto-attach --assign 'codex:{프롬프트}:{역할}' --assign 'gemini:{프롬프트}:{역할}' --timeout 600")
101
+ Bash("tfx multi --teammate-mode headless --auto-attach --dashboard --assign 'codex:{프롬프트}:{역할}' --assign 'gemini:{프롬프트}:{역할}' --timeout 600")
102
102
 
103
103
  # 2. Claude 워커를 Agent로 병렬 실행 (headless Bash와 동시에 spawn)
104
104
  Agent(subagent_type="...", prompt="...", run_in_background=true)
@@ -107,9 +107,9 @@ Agent(subagent_type="...", prompt="...", run_in_background=true)
107
107
  **결정 로직:**
108
108
  ```
109
109
  if 모든 워커가 CLI (codex/gemini):
110
- → Bash("tfx multi --teammate-mode headless --auto-attach --assign ...")
110
+ → Bash("tfx multi --teammate-mode headless --auto-attach --dashboard --assign ...")
111
111
  elif CLI + Claude 혼합:
112
- → CLI 워커: Bash("tfx multi --teammate-mode headless --assign ...")
112
+ → CLI 워커: Bash("tfx multi --teammate-mode headless --auto-attach --dashboard --assign ...")
113
113
  → Claude 워커: Agent(subagent_type, run_in_background=true)
114
114
  elif psmux 미설치:
115
115
  → Phase 3-fallback (아래)
@@ -118,7 +118,9 @@ elif psmux 미설치:
118
118
  **headless 엔진이 자동으로 수행하는 것:**
119
119
  - psmux 세션 생성 + progressive split-window
120
120
  - Windows Terminal 자동 팝업 (autoAttach)
121
+ - `--dashboard` TUI 대시보드 자동 표시 (headless-guard가 기본 주입)
121
122
  - triflux 테마 적용 (Catppuccin Mocha status bar)
123
+ - 워커 요약 dashboard 스플릿
122
124
  - CLI 명령 dispatch + 완료 토큰 폴링
123
125
  - 결과 수집 + JSON stdout 출력
124
126
  - 세션 정리
@@ -137,6 +139,10 @@ headless stdout 출력에서 성공/실패 워커를 파싱.
137
139
  psmux가 없는 환경에서만 사용. Agent slim wrapper로 CLI를 실행.
138
140
  `hub/team/native.mjs`의 `buildSlimWrapperPrompt()` 기반.
139
141
 
142
+ **팀 이름 생성 (`generateTeamName`):**
143
+ `tfx-${Date.now().toString(36).slice(-4)}${Math.random().toString(36).slice(2, 6)}`
144
+ 타임스탬프 base36 끝 4자 + 난수 4자 조합. 예: `tfx-p1q2r3s4`.
145
+
140
146
  > 래퍼 규칙 상세 → [`references/agent-wrapper-rules.md`](references/agent-wrapper-rules.md)
141
147
 
142
148
  ## 전제 조건
package/.mcp.json DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "mcpServers": {
3
- "tfx-hub": {
4
- "type": "url",
5
- "url": "http://127.0.0.1:27888/mcp"
6
- }
7
- }
8
- }