triflux 10.4.0 → 10.7.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.
Files changed (391) hide show
  1. package/.claude-plugin/marketplace.json +34 -0
  2. package/.claude-plugin/plugin.json +22 -0
  3. package/bin/tfx-doctor-tui.mjs +1 -1
  4. package/bin/tfx-doctor.mjs +6 -1
  5. package/bin/tfx-profile.mjs +1 -1
  6. package/bin/tfx-setup-tui.mjs +1 -1
  7. package/bin/tfx-setup.mjs +6 -1
  8. package/bin/triflux.mjs +2396 -1140
  9. package/config/mcp-registry.json +29 -0
  10. package/hooks/agent-route-guard.mjs +12 -8
  11. package/hooks/cross-review-tracker.mjs +21 -8
  12. package/hooks/error-context.mjs +19 -7
  13. package/hooks/hook-adaptive-collector.mjs +18 -16
  14. package/hooks/hook-manager.mjs +93 -32
  15. package/hooks/hook-orchestrator.mjs +108 -24
  16. package/hooks/hook-registry.json +267 -256
  17. package/hooks/keyword-rules.json +6 -10
  18. package/hooks/lib/resolve-root.mjs +1 -1
  19. package/hooks/mcp-config-watcher.mjs +6 -2
  20. package/hooks/pipeline-stop.mjs +3 -6
  21. package/hooks/safety-guard.mjs +99 -28
  22. package/hooks/session-start-fast.mjs +143 -0
  23. package/hooks/subagent-verifier.mjs +5 -4
  24. package/hub/account-broker.mjs +256 -60
  25. package/hub/adaptive-diagnostic.mjs +75 -48
  26. package/hub/adaptive-inject.mjs +96 -58
  27. package/hub/adaptive-memory.mjs +156 -42
  28. package/hub/adaptive.mjs +60 -31
  29. package/hub/assign-callbacks.mjs +163 -126
  30. package/hub/bridge.mjs +0 -1
  31. package/hub/cli-adapter-base.mjs +200 -48
  32. package/hub/codex-adapter.mjs +76 -96
  33. package/hub/codex-compat.mjs +3 -3
  34. package/hub/codex-preflight.mjs +63 -37
  35. package/hub/delegator/contracts.mjs +19 -23
  36. package/hub/delegator/index.mjs +14 -14
  37. package/hub/delegator/service.mjs +88 -64
  38. package/hub/delegator/tool-definitions.mjs +35 -35
  39. package/hub/fullcycle.mjs +33 -17
  40. package/hub/gemini-adapter.mjs +69 -94
  41. package/hub/hitl.mjs +202 -143
  42. package/hub/intent.mjs +161 -38
  43. package/hub/lib/cache-guard.mjs +43 -17
  44. package/hub/lib/mcp-response-cache.mjs +66 -32
  45. package/hub/lib/memory-store.mjs +285 -111
  46. package/hub/lib/path-utils.mjs +35 -37
  47. package/hub/lib/process-utils.mjs +106 -37
  48. package/hub/lib/spawn-trace.mjs +527 -0
  49. package/hub/lib/ssh-command.mjs +34 -4
  50. package/hub/lib/ssh-retry.mjs +5 -1
  51. package/hub/lib/uuidv7.mjs +4 -3
  52. package/hub/memory-doctor.mjs +266 -106
  53. package/hub/middleware/request-logger.mjs +61 -34
  54. package/hub/paths.mjs +9 -9
  55. package/hub/pipeline/gates/confidence.mjs +34 -15
  56. package/hub/pipeline/gates/consensus.mjs +27 -15
  57. package/hub/pipeline/gates/index.mjs +7 -3
  58. package/hub/pipeline/gates/selfcheck.mjs +57 -19
  59. package/hub/pipeline/index.mjs +77 -42
  60. package/hub/pipeline/state.mjs +10 -10
  61. package/hub/pipeline/transitions.mjs +40 -23
  62. package/hub/platform.mjs +57 -48
  63. package/hub/promote-penalties.mjs +25 -7
  64. package/hub/quality/deslop.mjs +70 -49
  65. package/hub/research.mjs +32 -25
  66. package/hub/router.mjs +924 -791
  67. package/hub/routing/complexity.mjs +132 -29
  68. package/hub/routing/index.mjs +17 -12
  69. package/hub/routing/q-learning.mjs +76 -28
  70. package/hub/server.mjs +4 -4
  71. package/hub/session-fingerprint.mjs +127 -61
  72. package/hub/state.mjs +84 -43
  73. package/hub/store-adapter.mjs +59 -26
  74. package/hub/store.mjs +356 -153
  75. package/hub/team/agent-map.json +22 -7
  76. package/hub/team/ansi.mjs +186 -122
  77. package/hub/team/backend.mjs +28 -10
  78. package/hub/team/cli/commands/attach.mjs +57 -37
  79. package/hub/team/cli/commands/control.mjs +29 -8
  80. package/hub/team/cli/commands/debug.mjs +95 -74
  81. package/hub/team/cli/commands/focus.mjs +80 -53
  82. package/hub/team/cli/commands/interrupt.mjs +18 -6
  83. package/hub/team/cli/commands/kill.mjs +16 -5
  84. package/hub/team/cli/commands/list.mjs +31 -24
  85. package/hub/team/cli/commands/send.mjs +19 -6
  86. package/hub/team/cli/commands/start/index.mjs +154 -31
  87. package/hub/team/cli/commands/start/parse-args.mjs +38 -11
  88. package/hub/team/cli/commands/start/start-headless.mjs +112 -36
  89. package/hub/team/cli/commands/start/start-in-process.mjs +50 -40
  90. package/hub/team/cli/commands/start/start-mux.mjs +122 -73
  91. package/hub/team/cli/commands/start/start-wt.mjs +86 -69
  92. package/hub/team/cli/commands/status.mjs +43 -14
  93. package/hub/team/cli/commands/stop.mjs +11 -4
  94. package/hub/team/cli/commands/task.mjs +8 -3
  95. package/hub/team/cli/commands/tasks.mjs +13 -13
  96. package/hub/team/cli/index.mjs +2 -2
  97. package/hub/team/cli/manifest.mjs +38 -8
  98. package/hub/team/cli/render.mjs +52 -30
  99. package/hub/team/cli/services/attach-fallback.mjs +74 -54
  100. package/hub/team/cli/services/hub-client.mjs +42 -14
  101. package/hub/team/cli/services/member-selector.mjs +37 -30
  102. package/hub/team/cli/services/native-control.mjs +143 -116
  103. package/hub/team/cli/services/runtime-mode.mjs +2 -1
  104. package/hub/team/cli/services/state-store.mjs +25 -8
  105. package/hub/team/cli/services/task-model.mjs +40 -30
  106. package/hub/team/conductor-mesh-bridge.mjs +24 -23
  107. package/hub/team/conductor.mjs +8 -4
  108. package/hub/team/dashboard-anchor.mjs +4 -5
  109. package/hub/team/dashboard-layout.mjs +3 -1
  110. package/hub/team/dashboard-open.mjs +41 -21
  111. package/hub/team/dashboard.mjs +76 -28
  112. package/hub/team/event-log.mjs +18 -10
  113. package/hub/team/handoff.mjs +31 -15
  114. package/hub/team/headless.mjs +2 -1
  115. package/hub/team/health-probe.mjs +69 -54
  116. package/hub/team/launcher-template.mjs +16 -13
  117. package/hub/team/native-supervisor.mjs +65 -21
  118. package/hub/team/native.mjs +74 -35
  119. package/hub/team/nativeProxy.mjs +184 -113
  120. package/hub/team/notify.mjs +120 -77
  121. package/hub/team/orchestrator.mjs +166 -161
  122. package/hub/team/pane.mjs +12 -7
  123. package/hub/team/process-cleanup.mjs +25 -16
  124. package/hub/team/psmux.mjs +491 -201
  125. package/hub/team/remote-probe.mjs +68 -52
  126. package/hub/team/remote-session.mjs +117 -59
  127. package/hub/team/remote-watcher.mjs +61 -33
  128. package/hub/team/routing.mjs +51 -25
  129. package/hub/team/runtime-strategy.mjs +3 -1
  130. package/hub/team/session.mjs +675 -611
  131. package/hub/team/shared.mjs +13 -13
  132. package/hub/team/staleState.mjs +72 -30
  133. package/hub/team/swarm-locks.mjs +15 -13
  134. package/hub/team/swarm-planner.mjs +32 -21
  135. package/hub/team/swarm-reconciler.mjs +48 -23
  136. package/hub/team/tui-lite.mjs +266 -68
  137. package/hub/team/tui-remote-adapter.mjs +14 -10
  138. package/hub/team/tui-viewer.mjs +99 -43
  139. package/hub/team/tui.mjs +708 -271
  140. package/hub/team/worktree-lifecycle.mjs +152 -58
  141. package/hub/team/wt-manager.mjs +24 -14
  142. package/hub/token-mode.mjs +71 -71
  143. package/hub/tray.mjs +411 -368
  144. package/hub/workers/claude-worker.mjs +162 -118
  145. package/hub/workers/codex-mcp.mjs +558 -507
  146. package/hub/workers/delegator-mcp.mjs +507 -333
  147. package/hub/workers/factory.mjs +21 -21
  148. package/hub/workers/gemini-worker.mjs +115 -84
  149. package/hub/workers/interface.mjs +6 -1
  150. package/hub/workers/worker-utils.mjs +21 -14
  151. package/hud/colors.mjs +27 -9
  152. package/hud/constants.mjs +162 -26
  153. package/hud/context-monitor.mjs +82 -41
  154. package/hud/hud-qos-status.mjs +129 -49
  155. package/hud/mission-board.mjs +6 -3
  156. package/hud/providers/claude.mjs +226 -115
  157. package/hud/providers/codex.mjs +62 -22
  158. package/hud/providers/gemini.mjs +168 -56
  159. package/hud/renderers.mjs +384 -119
  160. package/hud/terminal.mjs +101 -31
  161. package/hud/utils.mjs +78 -38
  162. package/mesh/index.mjs +11 -5
  163. package/mesh/mesh-budget.mjs +18 -9
  164. package/mesh/mesh-heartbeat.mjs +1 -1
  165. package/mesh/mesh-queue.mjs +3 -5
  166. package/mesh/mesh-router.mjs +5 -4
  167. package/package.json +56 -21
  168. package/scripts/__tests__/gen-skill-docs.test.mjs +36 -7
  169. package/scripts/__tests__/keyword-detector.test.mjs +77 -28
  170. package/scripts/__tests__/mcp-guard-engine.test.mjs +58 -20
  171. package/scripts/__tests__/remote-spawn-transfer.test.mjs +30 -19
  172. package/scripts/__tests__/remote-spawn.test.mjs +10 -4
  173. package/scripts/__tests__/session-start-fast.test.mjs +36 -0
  174. package/scripts/__tests__/skill-template.test.mjs +98 -50
  175. package/scripts/__tests__/smoke.test.mjs +1 -1
  176. package/scripts/__tests__/spawn-trace.test.mjs +102 -0
  177. package/scripts/__tests__/tfx-doctor-diagnose.test.mjs +48 -0
  178. package/scripts/cache-doctor.mjs +11 -4
  179. package/scripts/cache-warmup.mjs +96 -37
  180. package/scripts/claudemd-sync.mjs +27 -17
  181. package/scripts/codex-gateway-preflight.mjs +52 -37
  182. package/scripts/codex-mcp-gateway-sync.mjs +59 -39
  183. package/scripts/config-audit.mjs +232 -0
  184. package/scripts/convert-to-tmpl.mjs +54 -0
  185. package/scripts/cross-review-gate.mjs +35 -12
  186. package/scripts/cross-review-tracker.mjs +21 -8
  187. package/scripts/demo.mjs +35 -17
  188. package/scripts/doctor-diagnose.mjs +284 -0
  189. package/scripts/gen-skill-docs.mjs +7 -2
  190. package/scripts/gen-skill-manifest.mjs +2 -1
  191. package/scripts/headless-guard.mjs +86 -48
  192. package/scripts/hub-ensure.mjs +139 -120
  193. package/scripts/keyword-detector.mjs +293 -272
  194. package/scripts/keyword-rules-expander.mjs +538 -521
  195. package/scripts/lib/claudemd-scanner.mjs +6 -1
  196. package/scripts/lib/context.mjs +3 -3
  197. package/scripts/lib/cross-review-utils.mjs +6 -3
  198. package/scripts/lib/env-probe.mjs +47 -28
  199. package/scripts/lib/gemini-profiles.mjs +44 -10
  200. package/scripts/lib/handoff.mjs +33 -17
  201. package/scripts/lib/hook-utils.mjs +8 -6
  202. package/scripts/lib/keyword-rules.mjs +43 -19
  203. package/scripts/lib/logger.mjs +24 -24
  204. package/scripts/lib/mcp-filter.mjs +377 -239
  205. package/scripts/lib/mcp-guard-engine.mjs +194 -79
  206. package/scripts/lib/mcp-manifest.mjs +23 -13
  207. package/scripts/lib/mcp-server-catalog.mjs +355 -118
  208. package/scripts/lib/psmux-info.mjs +11 -6
  209. package/scripts/lib/remote-spawn-transfer.mjs +44 -14
  210. package/scripts/lib/skill-template.mjs +30 -7
  211. package/scripts/mcp-check.mjs +58 -39
  212. package/scripts/mcp-gateway-config.mjs +83 -39
  213. package/scripts/mcp-gateway-ensure.mjs +43 -35
  214. package/scripts/mcp-gateway-integration-test.mjs +70 -58
  215. package/scripts/mcp-gateway-start.mjs +126 -60
  216. package/scripts/mcp-gateway-verify.mjs +24 -22
  217. package/scripts/mcp-safety-guard.mjs +44 -11
  218. package/scripts/notion-read.mjs +669 -554
  219. package/scripts/pack.mjs +94 -89
  220. package/scripts/preflight-cache.mjs +27 -10
  221. package/scripts/preinstall.mjs +42 -13
  222. package/scripts/remote-spawn.mjs +309 -94
  223. package/scripts/run.cjs +8 -5
  224. package/scripts/session-spawn-helper.mjs +130 -39
  225. package/scripts/session-stale-cleanup.mjs +123 -0
  226. package/scripts/setup.mjs +941 -492
  227. package/scripts/test-lock.mjs +20 -7
  228. package/scripts/test-tfx-route-no-claude-native.mjs +61 -57
  229. package/scripts/tfx-batch-stats.mjs +117 -96
  230. package/scripts/tfx-gate-activate.mjs +11 -4
  231. package/scripts/tfx-route-post.mjs +87 -20
  232. package/scripts/tfx-route-worker.mjs +57 -51
  233. package/scripts/tfx-route.sh +41 -124
  234. package/scripts/tmp-cleanup.mjs +21 -7
  235. package/scripts/token-snapshot.mjs +204 -85
  236. package/skills/.omc/state/idle-notif-cooldown.json +1 -1
  237. package/skills/.omc/state/last-tool-error.json +1 -1
  238. package/skills/.omc/state/subagent-tracking.json +1 -1
  239. package/skills/_templates/base.md +1 -6
  240. package/skills/merge-worktree/SKILL.md.tmpl +144 -0
  241. package/skills/shared/telemetry-segment.md +6 -0
  242. package/skills/star-prompt/SKILL.md.tmpl +222 -0
  243. package/skills/tfx-analysis/SKILL.md.tmpl +107 -0
  244. package/skills/tfx-analysis/skill.json +1 -6
  245. package/skills/tfx-auto/SKILL.md +1 -0
  246. package/skills/{tfx-workspace/skill-snapshot/tfx-auto-codex/SKILL.md → tfx-auto-codex/SKILL.md.tmpl} +33 -4
  247. package/skills/tfx-auto-codex/skill.json +1 -3
  248. package/skills/tfx-autopilot/SKILL.md.tmpl +116 -0
  249. package/skills/tfx-autopilot/skill.json +1 -5
  250. package/skills/tfx-autoresearch/SKILL.md.tmpl +136 -0
  251. package/skills/tfx-autoroute/SKILL.md.tmpl +189 -0
  252. package/skills/tfx-autoroute/skill.json +1 -7
  253. package/skills/tfx-codex/SKILL.md +1 -0
  254. package/skills/tfx-codex/skill.json +1 -3
  255. package/skills/tfx-codex-swarm/SKILL.md.tmpl +16 -0
  256. package/skills/tfx-codex-swarm/evals/evals.json +1 -1
  257. package/skills/tfx-codex-swarm/skill.json +1 -4
  258. package/skills/tfx-codex-swarm-workspace/iteration-1/benchmark.json +54 -12
  259. package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/with_skill/grading.json +35 -7
  260. package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/without_skill/grading.json +35 -7
  261. package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/with_skill/grading.json +25 -5
  262. package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/without_skill/grading.json +25 -5
  263. package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/with_skill/grading.json +20 -4
  264. package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/without_skill/grading.json +16 -4
  265. package/skills/tfx-consensus/SKILL.md.tmpl +146 -0
  266. package/skills/tfx-debate/SKILL.md.tmpl +192 -0
  267. package/skills/tfx-debate/skill.json +1 -7
  268. package/skills/tfx-deep-analysis/SKILL.md.tmpl +228 -0
  269. package/skills/tfx-deep-analysis/skill.json +1 -5
  270. package/skills/tfx-deep-interview/SKILL.md.tmpl +203 -0
  271. package/skills/tfx-deep-plan/SKILL.md.tmpl +282 -0
  272. package/skills/tfx-deep-qa/SKILL.md.tmpl +165 -0
  273. package/skills/tfx-deep-qa/skill.json +1 -6
  274. package/skills/tfx-deep-research/SKILL.md.tmpl +217 -0
  275. package/skills/tfx-deep-review/SKILL.md.tmpl +179 -0
  276. package/skills/tfx-doctor/SKILL.md +21 -0
  277. package/skills/tfx-doctor/SKILL.md.tmpl +172 -0
  278. package/skills/tfx-doctor/skill.json +1 -3
  279. package/skills/tfx-find/SKILL.md +1 -0
  280. package/skills/tfx-forge/SKILL.md.tmpl +187 -0
  281. package/skills/tfx-fullcycle/SKILL.md.tmpl +286 -0
  282. package/skills/tfx-fullcycle/skill.json +1 -6
  283. package/skills/{tfx-workspace/skill-snapshot/tfx-gemini/SKILL.md → tfx-gemini/SKILL.md.tmpl} +16 -7
  284. package/skills/tfx-gemini/skill.json +1 -3
  285. package/skills/tfx-hooks/SKILL.md.tmpl +216 -0
  286. package/skills/tfx-hooks/skill.json +1 -3
  287. package/skills/tfx-hub/SKILL.md.tmpl +212 -0
  288. package/skills/tfx-hub/skill.json +1 -3
  289. package/skills/tfx-index/SKILL.md +1 -0
  290. package/skills/tfx-index/skill.json +1 -6
  291. package/skills/tfx-interview/SKILL.md.tmpl +285 -0
  292. package/skills/tfx-multi/SKILL.md.tmpl +183 -0
  293. package/skills/tfx-multi/skill.json +1 -3
  294. package/skills/tfx-panel/SKILL.md.tmpl +189 -0
  295. package/skills/tfx-panel/skill.json +1 -7
  296. package/skills/tfx-persist/SKILL.md.tmpl +270 -0
  297. package/skills/tfx-persist/skill.json +1 -7
  298. package/skills/tfx-plan/SKILL.md +1 -0
  299. package/skills/tfx-plan/skill.json +1 -6
  300. package/skills/tfx-profile/SKILL.md.tmpl +239 -0
  301. package/skills/tfx-profile/skill.json +1 -3
  302. package/skills/tfx-prune/SKILL.md.tmpl +200 -0
  303. package/skills/tfx-prune/skill.json +1 -7
  304. package/skills/tfx-psmux-rules/SKILL.md.tmpl +326 -0
  305. package/skills/tfx-psmux-rules/skill.json +1 -4
  306. package/skills/tfx-qa/SKILL.md +1 -0
  307. package/skills/tfx-qa/skill.json +1 -6
  308. package/skills/tfx-ralph/SKILL.md.tmpl +28 -0
  309. package/skills/tfx-ralph/skill.json +1 -4
  310. package/skills/tfx-remote-setup/SKILL.md.tmpl +576 -0
  311. package/skills/tfx-remote-setup/skill.json +1 -3
  312. package/skills/tfx-remote-spawn/SKILL.md.tmpl +263 -0
  313. package/skills/tfx-remote-spawn/references/hosts.json +16 -16
  314. package/skills/tfx-remote-spawn/skill.json +1 -4
  315. package/skills/tfx-research/SKILL.md +1 -0
  316. package/skills/tfx-review/SKILL.md +1 -0
  317. package/skills/tfx-review/skill.json +1 -6
  318. package/skills/tfx-setup/SKILL.md.tmpl +504 -0
  319. package/skills/tfx-setup/skill.json +1 -3
  320. package/skills/tfx-swarm/SKILL.md +22 -0
  321. package/skills/tfx-swarm/SKILL.md.tmpl +218 -0
  322. package/tui/codex-profile.mjs +457 -0
  323. package/tui/core.mjs +266 -0
  324. package/tui/doctor.mjs +375 -0
  325. package/tui/gemini-profile.mjs +299 -0
  326. package/tui/monitor-data.mjs +152 -0
  327. package/tui/monitor.mjs +339 -0
  328. package/tui/setup.mjs +533 -0
  329. package/CLAUDE.md +0 -193
  330. package/references/hosts.json +0 -33
  331. package/skills/tfx-workspace/async-tests/run-tests.sh +0 -203
  332. package/skills/tfx-workspace/evals/evals.json +0 -79
  333. package/skills/tfx-workspace/iteration-1/benchmark.json +0 -162
  334. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/eval_metadata.json +0 -11
  335. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/old_skill/grading.json +0 -9
  336. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/old_skill/outputs/analysis.md +0 -154
  337. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/old_skill/timing.json +0 -5
  338. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/with_skill/grading.json +0 -9
  339. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/with_skill/outputs/analysis.md +0 -126
  340. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/with_skill/timing.json +0 -5
  341. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/eval_metadata.json +0 -11
  342. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/old_skill/grading.json +0 -9
  343. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/old_skill/outputs/analysis.md +0 -119
  344. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/old_skill/timing.json +0 -5
  345. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/with_skill/grading.json +0 -9
  346. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/with_skill/outputs/analysis.md +0 -115
  347. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/with_skill/timing.json +0 -5
  348. package/skills/tfx-workspace/iteration-1/hub-start-sequence/eval_metadata.json +0 -10
  349. package/skills/tfx-workspace/iteration-1/hub-start-sequence/old_skill/grading.json +0 -8
  350. package/skills/tfx-workspace/iteration-1/hub-start-sequence/old_skill/outputs/analysis.md +0 -86
  351. package/skills/tfx-workspace/iteration-1/hub-start-sequence/old_skill/timing.json +0 -5
  352. package/skills/tfx-workspace/iteration-1/hub-start-sequence/with_skill/grading.json +0 -8
  353. package/skills/tfx-workspace/iteration-1/hub-start-sequence/with_skill/outputs/analysis.md +0 -81
  354. package/skills/tfx-workspace/iteration-1/hub-start-sequence/with_skill/timing.json +0 -5
  355. package/skills/tfx-workspace/iteration-1/multi-team-creation/eval_metadata.json +0 -12
  356. package/skills/tfx-workspace/iteration-1/multi-team-creation/old_skill/grading.json +0 -10
  357. package/skills/tfx-workspace/iteration-1/multi-team-creation/old_skill/outputs/analysis.md +0 -316
  358. package/skills/tfx-workspace/iteration-1/multi-team-creation/old_skill/timing.json +0 -5
  359. package/skills/tfx-workspace/iteration-1/multi-team-creation/with_skill/grading.json +0 -10
  360. package/skills/tfx-workspace/iteration-1/multi-team-creation/with_skill/outputs/analysis.md +0 -352
  361. package/skills/tfx-workspace/iteration-1/multi-team-creation/with_skill/timing.json +0 -5
  362. package/skills/tfx-workspace/iteration-1/review.html +0 -1325
  363. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/eval_metadata.json +0 -12
  364. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/old_skill/grading.json +0 -10
  365. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/old_skill/outputs/analysis.md +0 -97
  366. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/old_skill/timing.json +0 -5
  367. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/with_skill/grading.json +0 -10
  368. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/with_skill/outputs/analysis.md +0 -94
  369. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/with_skill/timing.json +0 -5
  370. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/eval_metadata.json +0 -12
  371. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/old_skill/grading.json +0 -10
  372. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/old_skill/outputs/analysis.md +0 -209
  373. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/old_skill/timing.json +0 -5
  374. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/with_skill/grading.json +0 -10
  375. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/with_skill/outputs/analysis.md +0 -193
  376. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/with_skill/timing.json +0 -5
  377. package/skills/tfx-workspace/iteration-2/benchmark.json +0 -62
  378. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/eval_metadata.json +0 -13
  379. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/old_skill/grading.json +0 -11
  380. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/old_skill/outputs/analysis.md +0 -382
  381. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/old_skill/timing.json +0 -5
  382. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/with_skill/grading.json +0 -11
  383. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/with_skill/outputs/analysis.md +0 -333
  384. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/with_skill/timing.json +0 -5
  385. package/skills/tfx-workspace/iteration-2/review.html +0 -1325
  386. package/skills/tfx-workspace/skill-snapshot/tfx-auto/SKILL.md +0 -217
  387. package/skills/tfx-workspace/skill-snapshot/tfx-codex/SKILL.md +0 -65
  388. package/skills/tfx-workspace/skill-snapshot/tfx-doctor/SKILL.md +0 -94
  389. package/skills/tfx-workspace/skill-snapshot/tfx-hub/SKILL.md +0 -133
  390. package/skills/tfx-workspace/skill-snapshot/tfx-multi/SKILL.md +0 -426
  391. package/skills/tfx-workspace/skill-snapshot/tfx-setup/SKILL.md +0 -101
@@ -1,217 +0,0 @@
1
- ---
2
- name: tfx-auto
3
- description: 통합 CLI 오케스트레이터. 커맨드 숏컷(단일) + 자동 분류/분해(병렬) + 수동 병렬. tfx-route.sh 기반.
4
- triggers:
5
- - tfx-auto
6
- - implement
7
- - build
8
- - research
9
- - brainstorm
10
- - design
11
- - test
12
- - analyze
13
- - troubleshoot
14
- - improve
15
- - cleanup
16
- - explain
17
- - document
18
- - pm
19
- - reflect
20
- - estimate
21
- - spec-panel
22
- - business-panel
23
- - index-repo
24
- argument-hint: "<command|task> [args...]"
25
- ---
26
-
27
- # tfx-auto — 통합 CLI 오케스트레이터
28
-
29
- > **MANDATORY RULES**
30
- >
31
- > 1. **실행**: CLI 에이전트는 반드시 `Bash("bash ~/.claude/scripts/tfx-route.sh ...")`. Claude 네이티브(explore/verifier/test-engineer/qa-tester)만 `Agent()`.
32
- > 2. **비용**: Codex 우선 → Gemini → Claude 최후 수단. `claude` 선택 전 "Codex로 가능한가?" 재확인.
33
- > 3. **DAG**: SEQUENTIAL/DAG이면 레벨 기반 순차 실행. `.omc/context/{sid}/` 생성, context_output 저장, 실패 시 후속 SKIP.
34
- > 4. **트리아지**: Codex `--full-auto` 분류 + Opus 인라인 분해. Agent 스폰 금지.
35
-
36
- ## 모드
37
-
38
- | 입력 형식 | 모드 | 트리아지 |
39
- |-----------|------|----------|
40
- | `/implement JWT 추가` | 커맨드 숏컷 | 없음 (즉시 실행) |
41
- | `/tfx-auto "리팩터링 + UI"` | 자동 | Codex 분류 → Opus 분해 |
42
- | `/tfx-auto 3:codex "리뷰"` | 수동 | Opus 분해만 |
43
-
44
- ## 커맨드 숏컷
45
-
46
- 커맨드명 매칭 시 트리아지 없이 즉시 실행. 패턴: `Bash("bash ~/.claude/scripts/tfx-route.sh {에이전트} '{PROMPT}' {MCP}")`.
47
-
48
- ### Codex 직행
49
-
50
- | 커맨드 | 에이전트 | MCP |
51
- |--------|---------|-----|
52
- | `implement` | executor | implement |
53
- | `build` | build-fixer | implement |
54
- | `research` | document-specialist | analyze |
55
- | `brainstorm` | analyst | analyze |
56
- | `design` | architect | analyze |
57
- | `troubleshoot` | debugger | implement |
58
- | `cleanup` | executor | implement |
59
- | `pm` | planner | analyze |
60
-
61
- ### 2단계: `improve`
62
-
63
- 1단계 `code-reviewer '{PROMPT}' review` → 사용자 승인 → 2단계 `executor '리뷰 반영: {요약}' implement`
64
-
65
- ### 병렬
66
-
67
- | 커맨드 | 에이전트들 (병렬, run_in_background=true) | MCP |
68
- |--------|------------------------------------------|-----|
69
- | `analyze` | quality-reviewer + security-reviewer | review |
70
- | `spec-panel` | architect + analyst + critic | analyze |
71
- | `business-panel` | analyst + architect | analyze |
72
-
73
- ### Gemini 직행
74
-
75
- | 커맨드 | 에이전트 | MCP |
76
- |--------|---------|-----|
77
- | `explain` | writer | docs |
78
- | `document` | writer | docs |
79
-
80
- ### Claude 네이티브
81
-
82
- | 커맨드 | 실행 |
83
- |--------|------|
84
- | `test` | `Agent(subagent_type="oh-my-claudecode:test-engineer", model="sonnet")` |
85
- | `reflect` | `Agent(subagent_type="oh-my-claudecode:verifier", model="sonnet")` |
86
-
87
- ### 복합
88
-
89
- | 커맨드 | 흐름 |
90
- |--------|------|
91
- | `estimate` | explore(haiku) → analyst(codex): 영향범위, 복잡도(S/M/L/XL), 리스크 |
92
- | `index-repo` | explore(haiku) × 2 → Write(PROJECT_INDEX.md). mode=quick/update/full |
93
-
94
- ## 트리아지
95
-
96
- **자동 모드:**
97
- 1. Codex 분류: `codex exec --full-auto --skip-git-repo-check` → JSON `{parts: [{description, agent: "codex|gemini|claude"}]}`
98
- 2. Opus 인라인 분해: `{graph_type: "INDEPENDENT|SEQUENTIAL|DAG", subtasks: [{id, description, scope, agent, mcp_profile, depends_on, context_output, context_input}]}`
99
- 3. 실패 시 Opus가 직접 분류+분해
100
-
101
- **수동 모드 (`N:agent_type`):** Codex 분류 건너뜀 → Opus가 N개 서브태스크 분해. N > 10 거부.
102
-
103
- ## 멀티 태스크 라우팅 (트리아지 후)
104
-
105
- > **트리아지 결과 서브태스크가 2개 이상이면 tfx-multi Native Teams 모드로 자동 전환한다.**
106
-
107
- | 서브태스크 수 | 실행 경로 | 이유 |
108
- |--------------|----------|------|
109
- | 1개 | tfx-auto 직접 실행 (아래 "실행" 섹션) | 팀 오버헤드 불필요, 경량 fire-and-forget |
110
- | 2개+ | **tfx-multi Phase 3** (TeamCreate → TaskCreate → Agent 래퍼) | Shift+Down 네비게이션, 상태 추적, fallback |
111
-
112
- **전환 방법:** 트리아지 완료 후 서브태스크 배열을 그대로 tfx-multi Phase 3에 전달한다.
113
- tfx-multi의 Phase 2(트리아지)는 건너뛰고 Phase 3a(TeamCreate)부터 시작한다.
114
-
115
- ```
116
- if subtasks.length >= 2:
117
- → tfx-multi Phase 3 실행 (트리아지 결과 재사용)
118
- → TeamCreate → TaskCreate × N → Agent 래퍼 spawn (Phase 3a~3c)
119
- → Phase 4 결과 수집 → Phase 5 정리
120
- else:
121
- → tfx-auto 직접 실행 (아래)
122
- ```
123
-
124
- ## 실행
125
-
126
- ### CLI 에이전트 (Codex/Gemini)
127
-
128
- ```bash
129
- # Level 0 / INDEPENDENT
130
- Bash("bash ~/.claude/scripts/tfx-route.sh {agent} '{prompt}' {mcp_profile}", run_in_background=true)
131
-
132
- # Level 1+ (컨텍스트 의존) — 4번째=timeout(빈값), 5번째=context_file
133
- Bash("bash ~/.claude/scripts/tfx-route.sh {agent} '{prompt}' {mcp_profile} '' .omc/context/{sid}/combined-{tid}.md", run_in_background=true)
134
- ```
135
-
136
- ### Claude 네이티브
137
-
138
- ```
139
- Agent(subagent_type="oh-my-claudecode:{agent}", model="{model}", prompt="{prompt}", run_in_background=true)
140
- # 컨텍스트 있으면 prompt에 <prior_context>...</prior_context> 추가
141
- ```
142
-
143
- ### 에이전트 매핑
144
-
145
- | 입력 | CLI | MCP |
146
- |------|-----|-----|
147
- | codex / executor / debugger / deep-executor | Codex | implement |
148
- | architect / planner / critic / analyst | Codex (xhigh) | analyze |
149
- | scientist / document-specialist | Codex | analyze |
150
- | code-reviewer / security-reviewer / quality-reviewer | Codex (review) | review |
151
- | gemini / designer / writer | Gemini | docs |
152
- | claude / explore / verifier / test-engineer / qa-tester | Claude native | — |
153
-
154
- ### MCP 프로필 자동 결정
155
-
156
- | 에이전트 | MCP |
157
- |----------|-----|
158
- | executor, build-fixer, debugger, deep-executor | implement |
159
- | architect, planner, critic, analyst, scientist, document-specialist | analyze |
160
- | code-reviewer, security-reviewer, quality-reviewer | review |
161
- | designer, writer | docs |
162
-
163
- ### 결과 파싱
164
-
165
- 여기서 `failed`는 `tfx-route.sh`/CLI 종료 결과를 뜻한다. Claude Code `TaskUpdate` 상태값이 아니다.
166
-
167
- | exit_code + status | 사용할 출력 |
168
- |--------------------|-----------|
169
- | 0 + success | `=== OUTPUT ===` 섹션 |
170
- | 124 + timeout | `=== PARTIAL OUTPUT ===` |
171
- | ≠0 + failed | STDERR → Claude fallback |
172
-
173
- OUTPUT 추출: `echo "$result" | sed -n '/^=== OUTPUT ===/,/^=== /{/^=== OUTPUT ===/d;/^=== /d;p}'`
174
-
175
- ### 실패 처리
176
-
177
- 1차 → `Agent(subagent_type="oh-my-claudecode:executor", model="sonnet")` fallback.
178
- 2차 연속 실패 → 실패 보고 + 성공 결과만 종합.
179
-
180
- ### 보고 형식
181
-
182
- ```markdown
183
- ## tfx-auto 완료
184
- **모드**: {auto|manual} | **그래프**: {type} | **레벨**: {N}
185
- | # | 서브태스크 | Agent | CLI | MCP | 레벨 | 상태 | 시간 |
186
- ### 워커 {n}: {제목}
187
- (출력 요약)
188
- ### Token Savings Report
189
- (node ~/.claude/scripts/token-snapshot.mjs report {session-id})
190
- ```
191
-
192
- ## 필수 조건
193
-
194
- - `~/.claude/scripts/tfx-route.sh` (필수)
195
- - codex: `npm install -g @openai/codex` | gemini: `npm install -g @google/gemini-cli`
196
-
197
- ## 에러 레퍼런스
198
-
199
- | 에러 | 처리 |
200
- |------|------|
201
- | `tfx-route.sh: not found` | tfx-route.sh 생성 |
202
- | `codex/gemini: not found` | npm install -g |
203
- | timeout / failed (`tfx-route.sh` 결과) | stderr → Claude fallback |
204
- | N > 10 | 10 이하로 조정 |
205
- | 순환 의존 | 분해 재시도 |
206
- | 컨텍스트 > 32KB | 비례 절삭 |
207
-
208
- > Claude Code `TaskUpdate`를 사용할 때는 `status: "failed"`를 쓰지 않는다.
209
- > 실패 보고는 `status: "completed"` + `metadata.result: "failed"`로 표현한다.
210
-
211
- ## Troubleshooting
212
-
213
- `/tfx-doctor` 진단 | `/tfx-doctor --fix` 자동 수정 | `/tfx-doctor --reset` 캐시 초기화
214
-
215
- ## 상세 레퍼런스
216
-
217
- DAG 알고리즘, 컨텍스트 머지 규칙, 토큰 스냅샷, 보고서 상세 → [`docs/tfx-auto-internals.md`](../../docs/tfx-auto-internals.md)
@@ -1,65 +0,0 @@
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/tfx-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 불필요
62
-
63
- ## Troubleshooting
64
-
65
- 문제 발생 시 `/tfx-doctor` 실행. (`--fix` 자동 수정, `--reset` 캐시 초기화)
@@ -1,94 +0,0 @@
1
- ---
2
- name: tfx-doctor
3
- description: >
4
- triflux 진단 및 수리 도구. CLI 미발견, HUD 미표시, 캐시 오류,
5
- 스킬 미설치 등 문제를 진단하고 자동 수정합니다.
6
- Use when: not working, broken, error, 안 돼, 이상해, 에러, 캐시, reset
7
- triggers:
8
- - tfx-doctor
9
- argument-hint: "[--fix|--reset]"
10
- ---
11
-
12
- # tfx-doctor — triflux 진단 및 수리
13
-
14
- > 뭔가 안 될 때, HUD가 이상할 때, CLI가 안 보일 때 실행하세요.
15
-
16
- ## 사용법
17
-
18
- ```
19
- /tfx-doctor ← 진단만 (읽기 전용)
20
- /tfx-doctor --fix ← 진단 + 자동 수정
21
- /tfx-doctor --reset ← 캐시 전체 초기화
22
- ```
23
-
24
- ## 동작
25
-
26
- ### 기본 모드 (`/tfx-doctor`)
27
-
28
- `triflux doctor`를 실행하여 다음을 진단합니다:
29
-
30
- - tfx-route.sh 설치 상태
31
- - HUD 설치 및 설정 상태
32
- - Codex/Gemini/Claude CLI 경로 (크로스 셸)
33
- - 스킬 설치 상태
34
- - 플러그인 등록 상태
35
- - MCP 인벤토리 캐시
36
- - CLI 이슈 트래커
37
- - 잔존 팀(orphan teams) 감지 (`~/.claude/teams/`)
38
-
39
- ### 수정 모드 (`/tfx-doctor --fix`)
40
-
41
- 진단 전에 자동 수정을 시도합니다:
42
-
43
- 1. tfx-route.sh, HUD, 스킬 파일 재동기화
44
- 2. 에러/손상된 캐시 파일 정리
45
- 3. 수정 완료 후 전체 진단 실행 → 결과 보고
46
-
47
- ### 초기화 모드 (`/tfx-doctor --reset`)
48
-
49
- HUD 캐시 및 모든 triflux 관련 캐시를 전체 삭제합니다:
50
-
51
- | 삭제 대상 | 설명 |
52
- |-----------|------|
53
- | claude-usage-cache.json | Claude 사용량 캐시 |
54
- | codex-rate-limits-cache.json | Codex 레이트 리밋 캐시 |
55
- | gemini-quota/session/rpm cache | Gemini 할당량/세션/RPM 캐시 |
56
- | sv-accumulator.json | 절약량 누적 캐시 |
57
- | mcp-inventory.json | MCP 서버 인벤토리 |
58
- | cli-issues.jsonl | CLI 이슈 로그 |
59
- | triflux-update-check.json | 업데이트 확인 캐시 |
60
- | .claude-refresh-lock | 리프레시 락 파일 |
61
-
62
- 초기화 후 다음 세션에서 캐시가 새로 생성됩니다.
63
-
64
- ## 실행 방법
65
-
66
- ```bash
67
- # 진단만
68
- Bash("triflux doctor")
69
-
70
- # 진단 + 자동 수정
71
- Bash("triflux doctor --fix")
72
-
73
- # 캐시 전체 초기화
74
- Bash("triflux doctor --reset")
75
- ```
76
-
77
- 결과를 사용자에게 보고합니다.
78
-
79
- ## 자동 제안 트리거
80
-
81
- 사용자가 다음과 같이 말하면 이 스킬 실행을 고려하세요:
82
-
83
- - "HUD가 안 보여" / "HUD 이상해" / "상태줄이 안 나와"
84
- - "codex/gemini가 안 돼" / "CLI 안 됨"
85
- - "캐시 초기화" / "리셋" / "reset"
86
- - "triflux 안 돼" / "뭔가 안 돼" / "에러"
87
-
88
- ## 에러 처리
89
-
90
- | 상황 | 처리 |
91
- |------|------|
92
- | 캐시 디렉토리 없음 | 정상 — 삭제할 파일 없음 보고 |
93
- | 파일 삭제 권한 없음 | 수동 삭제 안내 |
94
- | --fix 후에도 이슈 남음 | Codex/Gemini 설치는 수동 필요 안내 |
@@ -1,133 +0,0 @@
1
- ---
2
- name: tfx-hub
3
- description: tfx-hub 개방형 스킬 — 커맨드(start/stop/status) + 자유형 작업 모두 처리
4
- triggers:
5
- - tfx-hub
6
- argument-hint: "<start|stop|status|자유형 작업 설명>"
7
- ---
8
-
9
- # tfx-hub — MCP 메시지 버스 관리 + 개방형 작업
10
-
11
- > CLI 에이전트(Codex/Gemini/Claude) 간 실시간 메시지 허브를 관리합니다.
12
- > **커맨드 매칭 + fallthrough**: start/stop/status에 매칭되면 즉시 실행,
13
- > 매칭 안 되면 **hub 도메인 컨텍스트를 활용한 범용 작업**으로 처리합니다.
14
-
15
- ## 입력 해석 규칙
16
-
17
- ```
18
- /tfx-hub start → 커맨드 매칭 → 허브 시작
19
- /tfx-hub stop → 커맨드 매칭 → 허브 중지
20
- /tfx-hub status → 커맨드 매칭 → 상태 확인
21
- /tfx-hub 테스트해줘 → fallthrough → hub 관련 범용 작업으로 처리
22
- /tfx-hub 문서 저장해 → fallthrough → hub 관련 범용 작업으로 처리
23
- /tfx-hub 브릿지 분석해 → fallthrough → hub 관련 범용 작업으로 처리
24
- ```
25
-
26
- **fallthrough 규칙**: 인자가 start/stop/status/--port 등 커맨드 키워드에 매칭되지 않으면,
27
- 사용자의 입력을 **hub/브릿지/메시지버스 도메인의 자유형 작업**으로 해석한다.
28
-
29
- fallthrough 라우팅:
30
- ```bash
31
- # tfx-route.sh 경유 (권장)
32
- Bash("bash ~/.claude/scripts/tfx-route.sh {에이전트} '{hub 컨텍스트 + 작업}' {mcp_profile}")
33
-
34
- # codex 직접 호출 시 — 반드시 exec 서브커맨드 포함
35
- Bash("codex exec --dangerously-bypass-approvals-and-sandbox --skip-git-repo-check '{작업}'")
36
- Bash("codex --profile xhigh exec --dangerously-bypass-approvals-and-sandbox --skip-git-repo-check '{작업}'")
37
- # ↑ --profile은 exec 앞에, --skip-git-repo-check은 exec 뒤에
38
-
39
- # Claude 네이티브 (탐색/검증)
40
- Agent(subagent_type="oh-my-claudecode:explore", prompt="{작업}")
41
- ```
42
-
43
- ## 커맨드
44
-
45
- ### start — 허브 시작
46
-
47
- ```bash
48
- Bash("node hub/server.mjs", run_in_background=true)
49
- ```
50
-
51
- - Streamable HTTP MCP 서버를 `http://127.0.0.1:27888/mcp` 에서 시작
52
- - SQLite WAL DB: `~/.claude/cache/tfx-hub/state.db`
53
- - PID 파일: `~/.claude/cache/tfx-hub/hub.pid`
54
- - 환경변수: `TFX_HUB_PORT` (포트), `TFX_HUB_DB` (DB 경로)
55
-
56
- ### stop — 허브 중지
57
-
58
- ```bash
59
- # PID 파일에서 프로세스 ID 읽어서 종료
60
- Bash("node -e \"
61
- const fs = require('fs');
62
- const path = require('path');
63
- const pidFile = path.join(require('os').homedir(), '.claude/cache/tfx-hub/hub.pid');
64
- if (fs.existsSync(pidFile)) {
65
- const info = JSON.parse(fs.readFileSync(pidFile, 'utf8'));
66
- process.kill(info.pid, 'SIGTERM');
67
- console.log('tfx-hub 종료 (PID ' + info.pid + ')');
68
- } else {
69
- console.log('tfx-hub 미실행');
70
- }
71
- \"")
72
- ```
73
-
74
- ### status — 상태 확인
75
-
76
- ```bash
77
- # HTTP 상태 엔드포인트 조회
78
- Bash("curl -s http://127.0.0.1:27888/status 2>/dev/null || echo '{\"error\":\"hub 미실행\"}'")
79
- ```
80
-
81
- ## 각 CLI 등록 방법
82
-
83
- 허브 시작 후 각 CLI에 MCP 서버로 등록:
84
-
85
- ```bash
86
- # Codex
87
- codex mcp add tfx-hub --url http://127.0.0.1:27888/mcp
88
-
89
- # Gemini (settings.json)
90
- # mcpServers.tfx-hub.url = "http://127.0.0.1:27888/mcp"
91
-
92
- # Claude
93
- claude mcp add --transport http tfx-hub http://127.0.0.1:27888/mcp
94
- ```
95
-
96
- ## MCP 도구 (8개)
97
-
98
- | 도구 | 설명 |
99
- |------|------|
100
- | `register` | 에이전트 등록 + lease 발급 |
101
- | `status` | 허브/에이전트/큐 상태 조회 |
102
- | `publish` | 이벤트/응답 메시지 발행 |
103
- | `ask` | 다른 에이전트에게 질문 (request/reply) |
104
- | `poll_messages` | 수신함에서 메시지 폴링 |
105
- | `handoff` | 작업 인계 |
106
- | `request_human_input` | 사용자 입력 요청 (CAPTCHA/승인) |
107
- | `submit_human_input` | 사용자 입력 응답 |
108
-
109
- ## 브릿지 REST 엔드포인트 (4개)
110
-
111
- | 엔드포인트 | 설명 |
112
- |-----------|------|
113
- | `POST /bridge/register` | 에이전트 등록 (프로세스 수명 기반 lease) |
114
- | `POST /bridge/result` | 결과 발행 (topic fanout) |
115
- | `POST /bridge/context` | 선행 컨텍스트 폴링 (auto_ack) |
116
- | `POST /bridge/deregister` | 에이전트 offline 마킹 |
117
-
118
- ## 프로젝트 구조
119
-
120
- ```
121
- hub/
122
- ├── server.mjs # MCP 서버 + REST 브릿지 엔드포인트
123
- ├── store.mjs # SQLite WAL 상태 저장소
124
- ├── router.mjs # Actor mailbox 라우터 + QoS
125
- ├── tools.mjs # MCP 도구 8개 정의
126
- ├── hitl.mjs # Human-in-the-Loop 매니저
127
- ├── bridge.mjs # tfx-route.sh ↔ hub 브릿지 CLI
128
- └── schema.sql # DB 스키마
129
- ```
130
-
131
- ## 상태
132
-
133
- **dev 전용** — 로컬 테스트 목적. 프로덕션 배포 전 안정화 필요.