triflux 10.3.4 → 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 (329) hide show
  1. package/LICENSE +21 -21
  2. package/bin/tfx-doctor-tui.mjs +1 -1
  3. package/bin/tfx-doctor.mjs +6 -1
  4. package/bin/tfx-profile.mjs +1 -1
  5. package/bin/tfx-setup-tui.mjs +1 -1
  6. package/bin/tfx-setup.mjs +6 -1
  7. package/bin/triflux.mjs +2396 -1140
  8. package/hooks/agent-route-guard.mjs +12 -8
  9. package/hooks/cross-review-tracker.mjs +21 -8
  10. package/hooks/error-context.mjs +19 -7
  11. package/hooks/hook-adaptive-collector.mjs +18 -16
  12. package/hooks/hook-manager.mjs +93 -32
  13. package/hooks/hook-orchestrator.mjs +108 -24
  14. package/hooks/hook-registry.json +11 -0
  15. package/hooks/keyword-rules.json +6 -10
  16. package/hooks/lib/resolve-root.mjs +1 -1
  17. package/hooks/mcp-config-watcher.mjs +6 -2
  18. package/hooks/pipeline-stop.mjs +3 -6
  19. package/hooks/safety-guard.mjs +99 -28
  20. package/hooks/session-start-fast.mjs +143 -0
  21. package/hooks/subagent-verifier.mjs +5 -4
  22. package/hub/account-broker.mjs +256 -60
  23. package/hub/adaptive-diagnostic.mjs +75 -48
  24. package/hub/adaptive-inject.mjs +95 -57
  25. package/hub/adaptive-memory.mjs +156 -42
  26. package/hub/adaptive.mjs +60 -31
  27. package/hub/assign-callbacks.mjs +67 -30
  28. package/hub/bridge.mjs +0 -1
  29. package/hub/cli-adapter-base.mjs +200 -48
  30. package/hub/codex-adapter.mjs +76 -96
  31. package/hub/codex-compat.mjs +3 -3
  32. package/hub/codex-preflight.mjs +63 -37
  33. package/hub/delegator/contracts.mjs +19 -23
  34. package/hub/delegator/index.mjs +3 -3
  35. package/hub/delegator/service.mjs +88 -64
  36. package/hub/delegator/tool-definitions.mjs +5 -5
  37. package/hub/fullcycle.mjs +33 -17
  38. package/hub/gemini-adapter.mjs +69 -94
  39. package/hub/hitl.mjs +89 -30
  40. package/hub/intent.mjs +161 -38
  41. package/hub/lib/cache-guard.mjs +43 -17
  42. package/hub/lib/mcp-response-cache.mjs +66 -32
  43. package/hub/lib/memory-store.mjs +285 -111
  44. package/hub/lib/path-utils.mjs +35 -37
  45. package/hub/lib/process-utils.mjs +106 -37
  46. package/hub/lib/spawn-trace.mjs +527 -0
  47. package/hub/lib/ssh-command.mjs +34 -4
  48. package/hub/lib/ssh-retry.mjs +5 -1
  49. package/hub/lib/uuidv7.mjs +4 -3
  50. package/hub/memory-doctor.mjs +266 -106
  51. package/hub/middleware/request-logger.mjs +61 -34
  52. package/hub/paths.mjs +9 -9
  53. package/hub/pipeline/gates/confidence.mjs +34 -15
  54. package/hub/pipeline/gates/consensus.mjs +27 -15
  55. package/hub/pipeline/gates/index.mjs +7 -3
  56. package/hub/pipeline/gates/selfcheck.mjs +57 -19
  57. package/hub/pipeline/index.mjs +77 -42
  58. package/hub/pipeline/state.mjs +10 -10
  59. package/hub/pipeline/transitions.mjs +40 -23
  60. package/hub/platform.mjs +57 -48
  61. package/hub/promote-penalties.mjs +25 -7
  62. package/hub/quality/deslop.mjs +70 -49
  63. package/hub/research.mjs +32 -25
  64. package/hub/router.mjs +240 -107
  65. package/hub/routing/complexity.mjs +132 -29
  66. package/hub/routing/index.mjs +17 -12
  67. package/hub/routing/q-learning.mjs +76 -28
  68. package/hub/server.mjs +4 -4
  69. package/hub/session-fingerprint.mjs +126 -60
  70. package/hub/state.mjs +84 -43
  71. package/hub/store-adapter.mjs +59 -26
  72. package/hub/store.mjs +356 -153
  73. package/hub/team/agent-map.json +22 -7
  74. package/hub/team/ansi.mjs +186 -122
  75. package/hub/team/backend.mjs +28 -10
  76. package/hub/team/cli/commands/attach.mjs +29 -9
  77. package/hub/team/cli/commands/control.mjs +29 -8
  78. package/hub/team/cli/commands/debug.mjs +32 -11
  79. package/hub/team/cli/commands/focus.mjs +38 -11
  80. package/hub/team/cli/commands/interrupt.mjs +18 -6
  81. package/hub/team/cli/commands/kill.mjs +16 -5
  82. package/hub/team/cli/commands/list.mjs +11 -4
  83. package/hub/team/cli/commands/send.mjs +19 -6
  84. package/hub/team/cli/commands/start/index.mjs +154 -31
  85. package/hub/team/cli/commands/start/parse-args.mjs +38 -11
  86. package/hub/team/cli/commands/start/start-headless.mjs +112 -36
  87. package/hub/team/cli/commands/start/start-in-process.mjs +12 -2
  88. package/hub/team/cli/commands/start/start-mux.mjs +70 -21
  89. package/hub/team/cli/commands/start/start-wt.mjs +29 -12
  90. package/hub/team/cli/commands/status.mjs +43 -14
  91. package/hub/team/cli/commands/stop.mjs +11 -4
  92. package/hub/team/cli/commands/task.mjs +8 -3
  93. package/hub/team/cli/commands/tasks.mjs +1 -1
  94. package/hub/team/cli/index.mjs +2 -2
  95. package/hub/team/cli/manifest.mjs +38 -8
  96. package/hub/team/cli/render.mjs +30 -8
  97. package/hub/team/cli/services/attach-fallback.mjs +31 -11
  98. package/hub/team/cli/services/hub-client.mjs +42 -14
  99. package/hub/team/cli/services/member-selector.mjs +11 -4
  100. package/hub/team/cli/services/native-control.mjs +48 -21
  101. package/hub/team/cli/services/runtime-mode.mjs +2 -1
  102. package/hub/team/cli/services/state-store.mjs +25 -8
  103. package/hub/team/cli/services/task-model.mjs +16 -6
  104. package/hub/team/conductor-mesh-bridge.mjs +24 -23
  105. package/hub/team/conductor.mjs +8 -4
  106. package/hub/team/dashboard-anchor.mjs +4 -5
  107. package/hub/team/dashboard-layout.mjs +3 -1
  108. package/hub/team/dashboard-open.mjs +41 -21
  109. package/hub/team/dashboard.mjs +76 -28
  110. package/hub/team/event-log.mjs +18 -10
  111. package/hub/team/handoff.mjs +31 -15
  112. package/hub/team/headless.mjs +2 -1
  113. package/hub/team/health-probe.mjs +69 -54
  114. package/hub/team/launcher-template.mjs +16 -13
  115. package/hub/team/native-supervisor.mjs +65 -21
  116. package/hub/team/native.mjs +74 -35
  117. package/hub/team/nativeProxy.mjs +184 -113
  118. package/hub/team/notify.mjs +119 -76
  119. package/hub/team/orchestrator.mjs +9 -4
  120. package/hub/team/pane.mjs +12 -7
  121. package/hub/team/process-cleanup.mjs +25 -16
  122. package/hub/team/psmux.mjs +491 -201
  123. package/hub/team/remote-probe.mjs +68 -52
  124. package/hub/team/remote-session.mjs +117 -59
  125. package/hub/team/remote-watcher.mjs +61 -33
  126. package/hub/team/routing.mjs +51 -25
  127. package/hub/team/runtime-strategy.mjs +3 -1
  128. package/hub/team/session.mjs +98 -34
  129. package/hub/team/staleState.mjs +72 -30
  130. package/hub/team/swarm-locks.mjs +15 -13
  131. package/hub/team/swarm-planner.mjs +32 -21
  132. package/hub/team/swarm-reconciler.mjs +48 -23
  133. package/hub/team/tui-lite.mjs +266 -68
  134. package/hub/team/tui-remote-adapter.mjs +14 -10
  135. package/hub/team/tui-viewer.mjs +99 -43
  136. package/hub/team/tui.mjs +708 -271
  137. package/hub/team/worktree-lifecycle.mjs +152 -58
  138. package/hub/team/wt-manager.mjs +24 -14
  139. package/hub/token-mode.mjs +71 -71
  140. package/hub/tray.mjs +66 -23
  141. package/hub/workers/claude-worker.mjs +162 -118
  142. package/hub/workers/codex-mcp.mjs +192 -141
  143. package/hub/workers/delegator-mcp.mjs +507 -333
  144. package/hub/workers/factory.mjs +8 -8
  145. package/hub/workers/gemini-worker.mjs +115 -84
  146. package/hub/workers/interface.mjs +6 -1
  147. package/hub/workers/worker-utils.mjs +21 -14
  148. package/hud/colors.mjs +27 -9
  149. package/hud/constants.mjs +162 -26
  150. package/hud/context-monitor.mjs +82 -41
  151. package/hud/hud-qos-status.mjs +129 -49
  152. package/hud/mission-board.mjs +6 -3
  153. package/hud/providers/claude.mjs +226 -115
  154. package/hud/providers/codex.mjs +62 -22
  155. package/hud/providers/gemini.mjs +168 -56
  156. package/hud/renderers.mjs +384 -119
  157. package/hud/terminal.mjs +101 -31
  158. package/hud/utils.mjs +78 -38
  159. package/mesh/index.mjs +11 -5
  160. package/mesh/mesh-budget.mjs +18 -9
  161. package/mesh/mesh-heartbeat.mjs +1 -1
  162. package/mesh/mesh-queue.mjs +3 -5
  163. package/mesh/mesh-router.mjs +5 -4
  164. package/package.json +2 -1
  165. package/scripts/__tests__/gen-skill-docs.test.mjs +36 -7
  166. package/scripts/__tests__/keyword-detector.test.mjs +77 -28
  167. package/scripts/__tests__/mcp-guard-engine.test.mjs +58 -20
  168. package/scripts/__tests__/remote-spawn-transfer.test.mjs +30 -19
  169. package/scripts/__tests__/remote-spawn.test.mjs +10 -4
  170. package/scripts/__tests__/session-start-fast.test.mjs +36 -0
  171. package/scripts/__tests__/skill-template.test.mjs +98 -50
  172. package/scripts/__tests__/smoke.test.mjs +1 -1
  173. package/scripts/__tests__/spawn-trace.test.mjs +102 -0
  174. package/scripts/__tests__/tfx-doctor-diagnose.test.mjs +48 -0
  175. package/scripts/cache-doctor.mjs +11 -4
  176. package/scripts/cache-warmup.mjs +96 -37
  177. package/scripts/claudemd-sync.mjs +27 -17
  178. package/scripts/codex-gateway-preflight.mjs +52 -37
  179. package/scripts/codex-mcp-gateway-sync.mjs +59 -39
  180. package/scripts/completions/tfx.bash +47 -47
  181. package/scripts/completions/tfx.fish +44 -44
  182. package/scripts/completions/tfx.zsh +83 -83
  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 +45 -26
  193. package/scripts/keyword-detector.mjs +41 -20
  194. package/scripts/keyword-rules-expander.mjs +47 -30
  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 +300 -63
  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 +199 -84
  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 +16 -12
  229. package/scripts/tfx-batch-stats.mjs +32 -11
  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/agent-replay-8f0e10a9-9693-4410-96f5-a6b07e8ed995.jsonl +1 -0
  237. package/skills/.omc/state/idle-notif-cooldown.json +3 -0
  238. package/skills/.omc/state/last-tool-error.json +7 -0
  239. package/skills/.omc/state/subagent-tracking.json +7 -0
  240. package/skills/_templates/base.md +1 -6
  241. package/skills/merge-worktree/SKILL.md.tmpl +144 -0
  242. package/skills/shared/telemetry-segment.md +6 -0
  243. package/skills/star-prompt/SKILL.md.tmpl +222 -0
  244. package/skills/tfx-analysis/SKILL.md.tmpl +107 -0
  245. package/skills/tfx-analysis/skill.json +1 -6
  246. package/skills/tfx-auto/SKILL.md +1 -0
  247. package/skills/tfx-auto-codex/SKILL.md.tmpl +106 -0
  248. package/skills/tfx-auto-codex/skill.json +1 -3
  249. package/skills/tfx-autopilot/SKILL.md.tmpl +116 -0
  250. package/skills/tfx-autopilot/skill.json +1 -5
  251. package/skills/tfx-autoresearch/SKILL.md.tmpl +136 -0
  252. package/skills/tfx-autoroute/SKILL.md.tmpl +189 -0
  253. package/skills/tfx-autoroute/skill.json +1 -7
  254. package/skills/tfx-codex/SKILL.md +1 -0
  255. package/skills/tfx-codex/skill.json +1 -3
  256. package/skills/tfx-codex-swarm/SKILL.md.tmpl +16 -0
  257. package/skills/tfx-codex-swarm/evals/evals.json +1 -1
  258. package/skills/tfx-codex-swarm/skill.json +1 -4
  259. package/skills/tfx-codex-swarm-workspace/iteration-1/benchmark.json +54 -12
  260. package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/with_skill/grading.json +35 -7
  261. package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/without_skill/grading.json +35 -7
  262. package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/with_skill/grading.json +25 -5
  263. package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/without_skill/grading.json +25 -5
  264. package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/with_skill/grading.json +20 -4
  265. package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/without_skill/grading.json +16 -4
  266. package/skills/tfx-consensus/SKILL.md.tmpl +146 -0
  267. package/skills/tfx-debate/SKILL.md.tmpl +192 -0
  268. package/skills/tfx-debate/skill.json +1 -7
  269. package/skills/tfx-deep-analysis/SKILL.md.tmpl +228 -0
  270. package/skills/tfx-deep-analysis/skill.json +1 -5
  271. package/skills/tfx-deep-interview/SKILL.md.tmpl +203 -0
  272. package/skills/tfx-deep-plan/SKILL.md.tmpl +282 -0
  273. package/skills/tfx-deep-qa/SKILL.md.tmpl +165 -0
  274. package/skills/tfx-deep-qa/skill.json +1 -6
  275. package/skills/tfx-deep-research/SKILL.md.tmpl +217 -0
  276. package/skills/tfx-deep-review/SKILL.md.tmpl +179 -0
  277. package/skills/tfx-doctor/SKILL.md +21 -0
  278. package/skills/tfx-doctor/SKILL.md.tmpl +172 -0
  279. package/skills/tfx-doctor/skill.json +1 -3
  280. package/skills/tfx-find/SKILL.md +1 -0
  281. package/skills/tfx-forge/SKILL.md.tmpl +187 -0
  282. package/skills/tfx-fullcycle/SKILL.md.tmpl +286 -0
  283. package/skills/tfx-fullcycle/skill.json +1 -6
  284. package/skills/tfx-gemini/SKILL.md.tmpl +91 -0
  285. package/skills/tfx-gemini/skill.json +1 -3
  286. package/skills/tfx-hooks/SKILL.md.tmpl +216 -0
  287. package/skills/tfx-hooks/skill.json +1 -3
  288. package/skills/tfx-hub/SKILL.md.tmpl +212 -0
  289. package/skills/tfx-hub/skill.json +1 -3
  290. package/skills/tfx-index/SKILL.md +1 -0
  291. package/skills/tfx-index/skill.json +1 -6
  292. package/skills/tfx-interview/SKILL.md.tmpl +285 -0
  293. package/skills/tfx-multi/SKILL.md.tmpl +183 -0
  294. package/skills/tfx-multi/skill.json +1 -3
  295. package/skills/tfx-panel/SKILL.md.tmpl +189 -0
  296. package/skills/tfx-panel/skill.json +1 -7
  297. package/skills/tfx-persist/SKILL.md.tmpl +270 -0
  298. package/skills/tfx-persist/skill.json +1 -7
  299. package/skills/tfx-plan/SKILL.md +1 -0
  300. package/skills/tfx-plan/skill.json +1 -6
  301. package/skills/tfx-profile/SKILL.md.tmpl +239 -0
  302. package/skills/tfx-profile/skill.json +1 -3
  303. package/skills/tfx-prune/SKILL.md.tmpl +200 -0
  304. package/skills/tfx-prune/skill.json +1 -7
  305. package/skills/tfx-psmux-rules/SKILL.md.tmpl +326 -0
  306. package/skills/tfx-psmux-rules/skill.json +1 -4
  307. package/skills/tfx-qa/SKILL.md +1 -0
  308. package/skills/tfx-qa/skill.json +1 -6
  309. package/skills/tfx-ralph/SKILL.md.tmpl +28 -0
  310. package/skills/tfx-ralph/skill.json +1 -4
  311. package/skills/tfx-remote-setup/SKILL.md.tmpl +576 -0
  312. package/skills/tfx-remote-setup/skill.json +1 -3
  313. package/skills/tfx-remote-spawn/SKILL.md.tmpl +263 -0
  314. package/skills/tfx-remote-spawn/references/hosts.json +16 -0
  315. package/skills/tfx-remote-spawn/skill.json +1 -4
  316. package/skills/tfx-research/SKILL.md +1 -0
  317. package/skills/tfx-review/SKILL.md +1 -0
  318. package/skills/tfx-review/skill.json +1 -6
  319. package/skills/tfx-setup/SKILL.md.tmpl +504 -0
  320. package/skills/tfx-setup/skill.json +1 -3
  321. package/skills/tfx-swarm/SKILL.md +22 -0
  322. package/skills/tfx-swarm/SKILL.md.tmpl +218 -0
  323. package/tui/codex-profile.mjs +88 -33
  324. package/tui/core.mjs +45 -15
  325. package/tui/doctor.mjs +75 -28
  326. package/tui/gemini-profile.mjs +74 -29
  327. package/tui/monitor-data.mjs +8 -4
  328. package/tui/monitor.mjs +71 -27
  329. package/tui/setup.mjs +133 -42
@@ -0,0 +1,187 @@
1
+ ---
2
+ name: tfx-forge
3
+ description: "새 스킬을 만들거나 기존 스킬을 수정할 때 사용한다. 'forge', '스킬 만들기', 'create skill', '새 스킬', '스킬 생성', 'SKILL.md 작성' 같은 요청에 반드시 사용. 반복 작업을 스킬로 자동화하고 싶을 때 적극 활용."
4
+ triggers:
5
+ - forge
6
+ - 스킬 만들기
7
+ - create skill
8
+ - 스킬 생성
9
+ - new skill
10
+ argument-hint: "[스킬 이름 또는 설명]"
11
+ ---
12
+
13
+ # {{SKILL_NAME}} — Skill Authoring Meta-Skill
14
+
15
+ > **ARGUMENTS 처리**: 이 스킬이 `ARGUMENTS: <값>`과 함께 호출되면, 해당 값을 사용자 입력으로 취급하여
16
+ > 워크플로우의 첫 단계 입력으로 사용한다. ARGUMENTS가 비어있거나 없으면 기존 절차대로 사용자에게 입력을 요청한다.
17
+
18
+
19
+ > Superpowers skill authoring 오마주. 스킬을 만드는 스킬.
20
+ > "메타 레벨에서 자동화하라."
21
+
22
+ ## 용도
23
+
24
+ - 새 tfx 스킬의 SKILL.md를 대화형으로 생성
25
+ - 기존 스킬 형식과 품질 기준을 자동 준수
26
+ - YAML frontmatter + 본문 구조를 일관되게 유지
27
+ - 스킬 작성 시행착오 최소화
28
+
29
+ ## 워크플로우
30
+
31
+ ### Step 1: 요구사항 수집 (대화형)
32
+
33
+ AskUserQuestion으로 필수 정보를 순서대로 수집한다. 사용자가 초기 입력에 일부 정보를 포함했으면 해당 항목은 건너뛴다.
34
+
35
+ **먼저 스킬 유형을 선택받는다:**
36
+
37
+ ```
38
+ AskUserQuestion:
39
+ "스킬 유형을 선택하세요:"
40
+ 1. Light (경량, 단일 CLI, 토큰 절약)
41
+ 2. Deep (딥, 3-CLI 합의, 정확도 우선)
42
+ 3. Core (인프라, 다른 스킬이 내부 호출)
43
+ ```
44
+
45
+ 선택된 유형에 따라 이후 수집 항목과 템플릿이 달라진다:
46
+ - **Light**: 단일 CLI 워크플로우, 낮은 토큰 예산
47
+ - **Deep**: 3-CLI 병렬 + tfx-consensus 통합, 높은 토큰 예산
48
+ - **Core**: 외부 호출 인터페이스 정의, 내부 API 문서화 포함
49
+
50
+ **이후 나머지 정보를 순서대로 수집한다:**
51
+
52
+ ```
53
+ 수집 항목 (순서대로):
54
+
55
+ 1. 이름 (name)
56
+ "스킬 이름은? (예: tfx-myskill)"
57
+ → 접두사 'tfx-' 자동 부여 (없으면)
58
+
59
+ 2. 한줄 설명 (description)
60
+ "이 스킬이 무엇을 하는지 한 문장으로?"
61
+
62
+ 3. 트리거 (triggers)
63
+ "어떤 키워드로 이 스킬을 호출? (쉼표 구분)"
64
+
65
+ 4. 토큰 예산
66
+ "예상 토큰 예산은? (예: ~10K)"
67
+
68
+ 5. 핵심 워크플로우
69
+ "주요 단계를 간략히 설명해주세요. (3-5 단계)"
70
+
71
+ 6. 사용 예시
72
+ "사용 예시 1-3개를 알려주세요."
73
+ ```
74
+
75
+ ### Step 2: 기존 스킬 분석
76
+
77
+ 프로젝트 내 기존 SKILL.md를 참조하여 형식과 품질 기준을 확인한다:
78
+
79
+ ```
80
+ Glob("skills/**/SKILL.md")로 기존 스킬 목록 수집
81
+ → 유사한 타입(Deep/Light)의 스킬 1-2개를 Read하여 형식 참조
82
+ → YAML frontmatter 구조, 본문 섹션 패턴, 토큰 예산 표 형식 추출
83
+ ```
84
+
85
+ ### Step 3: SKILL.md 생성
86
+
87
+ 수집된 정보로 SKILL.md를 자동 생성한다:
88
+
89
+ ```yaml
90
+ # YAML Frontmatter 템플릿
91
+ ---
92
+ name: {name}
93
+ description: {description}
94
+ triggers:
95
+ - {trigger_1}
96
+ - {trigger_2}
97
+ - ...
98
+ argument-hint: "{hint}"
99
+ ---
100
+ ```
101
+
102
+ ```markdown
103
+ # 본문 템플릿
104
+
105
+ # {name} — {short_title}
106
+
107
+ > {한줄 설명 또는 오마주}
108
+
109
+ ## 용도
110
+
111
+ - {use_case_1}
112
+ - {use_case_2}
113
+ - {use_case_3}
114
+
115
+ ## 워크플로우
116
+
117
+ ### Step 1: {step_title}
118
+ {step_description}
119
+
120
+ ### Step 2: {step_title}
121
+ {step_description}
122
+
123
+ ...
124
+
125
+ ## 토큰 예산
126
+
127
+ | 단계 | 토큰 |
128
+ |------|------|
129
+ | {step} | ~{N}K |
130
+ | **총합** | **~{total}K** |
131
+
132
+ ## 사용 예
133
+
134
+ ```
135
+ /{name} "{example_1}"
136
+ /{name} "{example_2}"
137
+ ```
138
+ ```
139
+
140
+ ### Step 4: 디렉토리 생성 및 저장
141
+
142
+ ```
143
+ mkdir -p skills/{name}/
144
+ Write → skills/{name}/SKILL.md
145
+ ```
146
+
147
+ ### Step 5: 검증
148
+
149
+ 생성된 파일을 읽어 검증한다:
150
+
151
+ ```
152
+ 검증 항목:
153
+ - [ ] YAML frontmatter 파싱 가능
154
+ - [ ] name, description, triggers 필수 필드 존재
155
+ - [ ] 본문에 용도, 워크플로우, 토큰 예산, 사용 예 섹션 존재
156
+ - [ ] 파일 크기 < 800줄
157
+ - [ ] 기존 스킬과 트리거 충돌 없음
158
+ ```
159
+
160
+ 충돌 발견 시 AskUserQuestion으로 트리거 조정 요청.
161
+
162
+ ## 동작 규칙
163
+
164
+ 1. 사용자가 이름만 제공해도 나머지는 대화형으로 수집한다.
165
+ 2. 사용자가 상세 설명을 한꺼번에 제공하면 확인만 받고 즉시 생성한다.
166
+ 3. Deep 타입 선택 시 tfx-consensus 통합 포인트를 본문에 자동 포함한다.
167
+ 4. 생성 후 반드시 사용자에게 결과를 보여주고 수정 요청을 받는다.
168
+ 5. 기존 SKILL.md가 있으면 덮어쓰기 전 사용자 확인을 받는다.
169
+
170
+ ## 토큰 예산
171
+
172
+ | 단계 | 토큰 |
173
+ |------|------|
174
+ | 요구사항 수집 | ~2K |
175
+ | 기존 스킬 분석 | ~3K |
176
+ | SKILL.md 생성 | ~3K |
177
+ | 검증 | ~2K |
178
+ | **총합** | **~10K** |
179
+
180
+ ## 사용 예
181
+
182
+ ```
183
+ /tfx-forge
184
+ /tfx-forge tfx-myskill
185
+ /tfx-forge "CI/CD 파이프라인 자동 생성 스킬"
186
+ /스킬 만들기 "코드 마이그레이션 도우미"
187
+ ```
@@ -0,0 +1,286 @@
1
+ ---
2
+ internal: true
3
+ name: tfx-fullcycle
4
+ description: "여러 파일/모듈에 걸친 복잡한 기능을 처음부터 끝까지 자율 개발할 때 사용한다. 설계→계획→구현→QA→검증 전체 파이프라인이 필요한 작업, '처음부터 끝까지', '전체', '완전히', '풀 오토', 'full auto', '전체 파이프라인으로' 같은 수식어가 있을 때 사용. 단순 단일 작업은 tfx-autopilot이 더 빠릅니다."
5
+ triggers:
6
+ - deep autopilot
7
+ - 풀 오토
8
+ - 처음부터 끝까지
9
+ - full auto
10
+ argument-hint: "<구현할 기능 전체 설명>"
11
+ ---
12
+
13
+ # {{SKILL_NAME}} — Full Development Pipeline with Tri-CLI Consensus
14
+
15
+ > **ARGUMENTS 처리**: 이 스킬이 `ARGUMENTS: <값>`과 함께 호출되면, 해당 값을 사용자 입력으로 취급하여
16
+ > 워크플로우의 첫 단계 입력으로 사용한다. ARGUMENTS가 비어있거나 없으면 기존 절차대로 사용자에게 입력을 요청한다.
17
+
18
+
19
+ > 5-Phase 파이프라인: Expansion → Planning → Execution → QA → Validation.
20
+ > OMC autopilot + Superpowers TDD + MetaGPT SOP 영감. 처음부터 끝까지 자율 실행.
21
+ > 실행 전 컨텍스트 grounding, deep-interview 산출물 재사용, phase-state/resume 계약을 포함한다.
22
+
23
+ ## PRE-CONTEXT GATE
24
+
25
+ Phase 1 시작 전 아래 intake를 먼저 수행한다.
26
+
27
+ 1. task slug를 생성한다.
28
+ 2. 최근 관련 컨텍스트/산출물을 탐색한다.
29
+ 3. 현재 작업용 스냅샷을 생성한다.
30
+ 4. ambiguity가 높으면 `/deep-interview` 또는 기존 인터뷰 산출물 재사용을 우선 고려한다.
31
+
32
+ **필수 스냅샷 필드**
33
+ - task statement
34
+ - desired outcome
35
+ - known facts / evidence
36
+ - constraints
37
+ - unknowns / open questions
38
+ - likely codebase touchpoints
39
+
40
+ **권장 저장 경로**
41
+ - `.tfx/fullcycle/{run-id}/context-snapshot.md`
42
+
43
+ ## STATE & ARTIFACT CONTRACT
44
+
45
+ `tfx-fullcycle`은 phase별로 산출물과 상태를 남긴다.
46
+
47
+ **기본 아티팩트 디렉토리**
48
+ - `.tfx/fullcycle/{run-id}/`
49
+
50
+ **최소 산출물**
51
+ - `context-snapshot.md`
52
+ - `expanded-spec.md`
53
+ - `implementation-plan.md`
54
+ - `execution-summary.md`
55
+ - `qa-findings.md`
56
+ - `validation-decision.md`
57
+ - `state.json`
58
+
59
+ **phase-state 필드**
60
+ - current phase
61
+ - started_at
62
+ - last_successful_phase
63
+ - retry_count
64
+ - failure_reason
65
+
66
+ **resume 규칙**
67
+ - 재실행 시 전체를 처음부터 다시 돌리지 않는다.
68
+ - `state.json`을 읽고 마지막 미완료 phase부터 resume한다.
69
+ - QA / Validation 재시도는 해당 phase만 다시 실행한다.
70
+
71
+ ## HARD RULES
72
+
73
+ > headless-guard가 이 규칙 위반을 **자동 차단**한다. 우회 불가.
74
+
75
+ 1. **`codex exec` / `gemini -p` 직접 호출 절대 금지**
76
+ 2. Codex·Gemini 워커 → `Bash("tfx multi --teammate-mode headless --auto-attach --dashboard --assign 'cli:프롬프트:역할' --timeout 600")` **만** 사용
77
+ 3. Claude 워커 → `Agent(run_in_background=true)`
78
+ 4. Bash + Agent를 같은 메시지에서 동시 호출하여 병렬 실행
79
+
80
+ ## MODEL ROLES
81
+
82
+ | Phase | 역할 | 담당 |
83
+ |-------|------|------|
84
+ | Phase 1: Expansion | 아키텍트 — 요구사항 분석, acceptance criteria 도출 | Claude Opus (Agent) |
85
+ | Phase 2: Planning | 플래너 — 태스크 분해, TDD 전략 | Claude Opus (Agent, background) |
86
+ | Phase 2: Planning | 아키텍트 — 기술 설계, 파일 구조, API 인터페이스 | Codex (tfx headless) |
87
+ | Phase 2: Planning | 크리틱 — 리스크 분석, 엣지 케이스, 보안 | Gemini (tfx headless) |
88
+ | Phase 3: Execution | 구현자 — 코드 작성, TDD RED→GREEN→REFACTOR | Codex (tfx headless) |
89
+ | Phase 3: Execution | 문서/UI 작성자 | Gemini (tfx headless) |
90
+ | Phase 4: QA | 기능 검증자 — acceptance criteria 충족 여부 | Claude (Agent, background) |
91
+ | Phase 4: QA | 보안/성능 검증자 — OWASP, 병목, 에러 핸들링 | Codex (tfx headless) |
92
+ | Phase 4: QA | UX/접근성 검증자 — 반응형, DX, 문서화 | Gemini (tfx headless) |
93
+ | Phase 5: Validation | 합의 판정 — Consensus Score 계산 및 완료 결정 | Claude (직접 판단) |
94
+
95
+ ## EXECUTION STEPS
96
+
97
+ ### Phase 1: Expansion
98
+
99
+ **Claude가 직접 실행한다.** Agent 호출 없이 Claude 자신이 아키텍트 역할을 수행한다.
100
+
101
+ 1. `.tfx/plans/interview-*.md` 산출물이 있으면 관련 문서를 먼저 탐색한다.
102
+ 2. 인터뷰 산출물이 충분히 명확하면 raw prompt에서 다시 시작하지 말고 해당 문서를 Expansion 입력으로 재사용한다.
103
+ 3. 인터뷰 산출물이 없거나 부족하면 사용자 요청에서 구현 범위, 영향 파일, 엣지 케이스, 암묵적 요구사항을 분석한다.
104
+ 4. 검증 가능한 acceptance criteria 목록을 도출한다.
105
+ 5. 모호한 점이 남아 있으면 AskUserQuestion 또는 `/deep-interview`로 명확화한다.
106
+ 6. 출력: `{expanded_requirements}`, `{acceptance_criteria}`
107
+ 7. 산출물 저장: `.tfx/fullcycle/{run-id}/expanded-spec.md`
108
+
109
+ ### Phase 2: Planning
110
+
111
+ **아래 2개 도구를 반드시 같은 응답에서 동시에 호출하라.**
112
+
113
+ **Step 2-A: Claude Planner (Agent)**
114
+ ```
115
+ Agent(
116
+ subagent_type="oh-my-claudecode:planner",
117
+ model="opus",
118
+ run_in_background=true,
119
+ prompt="다음 기능의 구현 계획을 수립하라.
120
+ 기능: {expanded_requirements}
121
+ 태스크 분해, 실행 순서, 의존성, TDD 전략을 포함하라.
122
+ JSON 형식으로 출력하라: { tasks, order, dependencies, tdd_strategy, risks }"
123
+ )
124
+ ```
125
+
126
+ **Step 2-B: Codex Architect + Gemini Critic (Bash — 동시에 위 Agent와 같은 응답에서 호출)**
127
+ ```
128
+ Bash("tfx multi --teammate-mode headless --auto-attach --dashboard \
129
+ --assign 'codex:시니어 엔지니어로서 다음 기능의 기술적 설계를 작성하라. 기능: {expanded_requirements}. 파일 구조, API 인터페이스, 데이터 모델을 포함하라. JSON 형식: { design, file_changes, interfaces, test_plan }:architect' \
130
+ --assign 'gemini:QA 전문가로서 다음 기능 구현의 리스크를 분석하라. 기능: {expanded_requirements}. 엣지 케이스, 보안, 성능, 접근성 우려를 포함하라. JSON 형식: { edge_cases, security_risks, performance, accessibility, test_cases }:critic' \
131
+ --timeout 600")
132
+ ```
133
+
134
+ **합의 판정:**
135
+ - Consensus Score >= 70 → Phase 3 진행
136
+ - Consensus Score < 70 → 3자 결과를 교차 공유 후 Round 2 재합의
137
+ - Round 2 후에도 < 60 → AskUserQuestion으로 불일치 항목 제시 + 방향 결정 요청
138
+
139
+ **산출물 저장**
140
+ - `.tfx/fullcycle/{run-id}/implementation-plan.md`
141
+
142
+ ### Phase 3: Execution
143
+
144
+ 태스크를 라우팅 규칙에 따라 병렬 실행한다. 독립 태스크는 같은 응답에서 동시 호출한다.
145
+
146
+ **라우팅 규칙:**
147
+ - 코드 구현/수정/테스트 작성 → Codex (tfx headless)
148
+ - UI/문서 → Gemini (tfx headless)
149
+
150
+ **TDD 실행 순서 (Codex에 전달하는 프롬프트에 명시):**
151
+ 1. 테스트 먼저 작성 (RED)
152
+ 2. 테스트 실행하여 실패 확인
153
+ 3. 구현 코드 작성 (GREEN)
154
+ 4. 테스트 통과 확인
155
+ 5. 리팩터링 (REFACTOR)
156
+
157
+ **병렬 실행 예시 (독립 태스크 A + B + 문서 동시 실행):**
158
+
159
+ **아래 2개 도구를 반드시 같은 응답에서 동시에 호출하라.**
160
+
161
+ ```
162
+ Bash("tfx multi --teammate-mode headless --auto-attach --dashboard \
163
+ --assign 'codex:TDD로 {모듈_A}를 구현하라. 테스트 먼저 작성(RED), 구현(GREEN), 리팩터링(REFACTOR) 순서로 진행하라. 계획: {task_A_spec}:implementer' \
164
+ --assign 'codex:TDD로 {모듈_B}를 구현하라. 테스트 먼저 작성(RED), 구현(GREEN), 리팩터링(REFACTOR) 순서로 진행하라. 계획: {task_B_spec}:implementer' \
165
+ --assign 'gemini:{문서_항목}을 작성하라. 변경된 API 인터페이스: {interfaces}:writer' \
166
+ --timeout 600")
167
+ ```
168
+
169
+ 각 태스크 완료 시 테스트 통과 여부를 확인하고 다음 태스크로 진행한다.
170
+
171
+ **산출물 저장**
172
+ - 변경 파일 목록과 태스크별 결과를 `.tfx/fullcycle/{run-id}/execution-summary.md`에 기록한다.
173
+
174
+ ### Phase 4: QA
175
+
176
+ **아래 2개 도구를 반드시 같은 응답에서 동시에 호출하라.**
177
+
178
+ **Step 4-A: Claude 기능 검증 (Agent)**
179
+ ```
180
+ Agent(
181
+ subagent_type="oh-my-claudecode:verifier",
182
+ model="opus",
183
+ run_in_background=true,
184
+ prompt="다음 변경사항이 acceptance criteria를 충족하는지 검증하라.
185
+ criteria: {acceptance_criteria}
186
+ 변경 파일: {changed_files}
187
+ 각 criterion별 PASS/FAIL과 근거를 제시하라.
188
+ 엣지 케이스 테스트 시나리오를 제안하라.
189
+ JSON 형식: { criteria_results, edge_case_findings, overall_pass }"
190
+ )
191
+ ```
192
+
193
+ **Step 4-B: Codex 보안/성능 + Gemini UX/접근성 (Bash — 동시에 위 Agent와 같은 응답에서 호출)**
194
+ ```
195
+ Bash("tfx multi --teammate-mode headless --auto-attach --dashboard \
196
+ --assign 'codex:보안/성능 관점에서 다음 변경사항을 리뷰하라. OWASP Top 10, 성능 병목, 에러 핸들링, 리소스 누수를 확인하라. 변경 파일: {changed_files}. JSON 형식: { security_findings, performance_findings, overall_pass }:verifier' \
197
+ --assign 'gemini:UX/접근성 관점에서 다음 변경사항을 리뷰하라. UI 변경: 접근성, 반응형, 사용성. API 변경: DX, 문서화, 일관성. 변경 파일: {changed_files}. JSON 형식: { ux_findings, accessibility_findings, overall_pass }:verifier' \
198
+ --timeout 600")
199
+ ```
200
+
201
+ **QA 반복 규칙**
202
+ - 동일한 실패 / 동일한 에러가 3회 반복되면 무한 루프를 중단한다.
203
+ - 이 경우 `.tfx/fullcycle/{run-id}/qa-findings.md`에 근본 이슈 보고서를 남기고 사용자 판단을 요청한다.
204
+
205
+ **산출물 저장**
206
+ - `.tfx/fullcycle/{run-id}/qa-findings.md`
207
+
208
+ ### Phase 5: Validation
209
+
210
+ Phase 4의 3자 결과에 Consensus 프로토콜을 적용한다.
211
+
212
+ - Score >= 70 + Critical 0건 → 완료 확정
213
+ - Score >= 70 + Critical 존재 → Critical만 수정 후 Phase 4 재실행
214
+ - Score < 70 → 미합의 항목 수정 → Phase 4 재실행 (최대 2회)
215
+ - 2회 재실행 후에도 < 70 → AskUserQuestion으로 현황 보고 + 사용자 판단 요청
216
+
217
+ **산출물 저장**
218
+ - `.tfx/fullcycle/{run-id}/validation-decision.md`
219
+
220
+ ### Final: 완료 보고
221
+
222
+ ```markdown
223
+ # Deep Autopilot 완료: {feature}
224
+
225
+ ## Pipeline Summary
226
+ | Phase | 상태 | 결과 |
227
+ |-------|------|------|
228
+ | Expansion | 완료 | {criteria_count}개 기준 도출 |
229
+ | Planning | 완료 | Consensus {score}% (Round {n}) |
230
+ | Execution | 완료 | {task_count}개 태스크, {file_count}개 파일 변경 |
231
+ | QA | 완료 | 3자 독립 리뷰 완료 |
232
+ | Validation | 완료 | Consensus {score}%, Critical 0건 |
233
+
234
+ ## 변경 사항
235
+ | 파일 | 작업 | 설명 |
236
+ |------|------|------|
237
+ | {file} | 생성/수정 | {summary} |
238
+
239
+ ## Acceptance Criteria
240
+ - [x] {criterion1} — 3/3 PASS
241
+ - [x] {criterion2} — 2/3 PASS (Gemini: 조건부)
242
+
243
+ ## QA 결과
244
+ - 보안: {findings_count}건 (모두 해결)
245
+ - 성능: {findings_count}건 (모두 해결)
246
+ - 테스트: {pass}/{total} 통과
247
+
248
+ ## 미합의 사항 (있으면)
249
+ - {항목}: {각 CLI 입장}
250
+ ```
251
+
252
+ ## CLEANUP & CANCEL RULES
253
+
254
+ - 성공 시 `state.json`을 complete 상태로 기록하고 orphan state가 남지 않도록 정리한다.
255
+ - 취소/비정상 종료 시에도 마지막 phase, failure_reason, 재개 힌트를 남겨 다음 실행에서 resume 가능해야 한다.
256
+ - cleanup은 상태를 무조건 삭제하는 것이 아니라, 성공/취소 여부가 판별되도록 메타데이터를 남긴 뒤 정리한다.
257
+
258
+ ## ERROR RECOVERY
259
+
260
+ | 상황 | 대응 |
261
+ |------|------|
262
+ | tfx headless 타임아웃 | `--timeout` 값을 900으로 올려 재시도 |
263
+ | Consensus 2회 연속 실패 | AskUserQuestion으로 미합의 항목 제시 + 사용자 판단 요청 |
264
+ | 특정 Phase 결과 누락 | 해당 Phase만 단독 재실행 |
265
+ | 빌드/테스트 실패 | Codex에 실패 로그 전달하여 수정 지시 |
266
+ | 동일 QA 에러 3회 반복 | 루프 중단 + 근본 이슈 보고서 작성 + 사용자 판단 요청 |
267
+
268
+ ## TOKEN BUDGET
269
+
270
+ | Phase | 토큰 |
271
+ |-------|------|
272
+ | Phase 1 (Expansion) | ~5K |
273
+ | Phase 2 (Planning, 3자) | ~20K |
274
+ | Phase 3 (Execution) | ~25K |
275
+ | Phase 4 (QA, 3자) | ~18K |
276
+ | Phase 5 (Validation) | ~5K |
277
+ | 재시도 (필요 시) | +15K |
278
+ | **총합** | **~73-88K** |
279
+
280
+ ## 사용 예
281
+
282
+ ```
283
+ /tfx-fullcycle "JWT 인증 시스템 전체 구현. 로그인/로그아웃/리프레시/미들웨어/테스트"
284
+ /tfx-fullcycle "풀 오토 — 결제 모듈을 Stripe에서 Toss Payments로 마이그레이션"
285
+ /tfx-fullcycle "처음부터 끝까지 — REST API를 GraphQL로 점진적 전환, 기존 클라이언트 호환 유지"
286
+ ```
@@ -1,12 +1,7 @@
1
1
  {
2
2
  "name": "tfx-fullcycle",
3
3
  "description": "여러 파일/모듈에 걸친 복잡한 기능을 처음부터 끝까지 자율 개발할 때 사용한다. 설계→계획→구현→QA→검증 전체 파이프라인이 필요한 작업, '처음부터 끝까지', '전체', '완전히', '풀 오토', 'full auto', '전체 파이프라인으로' 같은 수식어가 있을 때 사용. 단순 단일 작업은 tfx-autopilot이 더 빠릅니다.",
4
- "triggers": [
5
- "deep autopilot",
6
- "풀 오토",
7
- "처음부터 끝까지",
8
- "full auto"
9
- ],
4
+ "triggers": ["deep autopilot", "풀 오토", "처음부터 끝까지", "full auto"],
10
5
  "argument_hint": "<구현할 기능 전체 설명>",
11
6
  "internal": true
12
7
  }
@@ -0,0 +1,91 @@
1
+ ---
2
+ internal: true
3
+ name: tfx-gemini
4
+ description: >
5
+ Gemini-Only 오케스트레이터. tfx-auto 워크플로우를 Gemini 전용으로 고정합니다.
6
+ '제미나이로 해줘', '제미나이한테 시켜', 'gemini로', 'Gemini 전용' 같은 요청에 반드시 사용.
7
+ triggers:
8
+ - tfx-gemini
9
+ argument-hint: "\"작업 설명\" | N:gemini \"작업 설명\""
10
+ ---
11
+
12
+ # {{SKILL_NAME}} — Gemini-Only 오케스트레이터
13
+
14
+ > **ARGUMENTS 처리**: 이 스킬이 `ARGUMENTS: <값>`과 함께 호출되면, 해당 값을 사용자 입력으로 취급하여
15
+ > 워크플로우의 첫 단계 입력으로 사용한다. ARGUMENTS가 비어있거나 없으면 기존 절차대로 사용자에게 입력을 요청한다.
16
+
17
+
18
+ > **래퍼**: tfx-auto의 Gemini 전용 바로가기. TFX_CLI_MODE=gemini.
19
+ > Gemini CLI만 사용하여 모든 외부 CLI 작업을 라우팅합니다.
20
+ > Codex CLI가 없는 환경에서 사용합니다.
21
+
22
+ ## 사용법
23
+
24
+ ```
25
+ /tfx-gemini "작업 설명"
26
+ /tfx-gemini N:gemini "작업 설명"
27
+ ```
28
+
29
+ ## 동작 원리
30
+
31
+ `tfx-auto`와 동일한 워크플로우를 사용하되, `TFX_CLI_MODE=gemini` 환경변수를 설정하여
32
+ 모든 Codex 에이전트를 Gemini로 리매핑합니다.
33
+
34
+ ### 에이전트 라우팅
35
+
36
+ | 에이전트 | 원래 CLI | tfx-gemini에서 |
37
+ |----------|---------|--------------|
38
+ | **executor, debugger, deep-executor** | ~~Codex~~ | **Gemini Pro** |
39
+ | **build-fixer** | ~~Codex~~ | **Gemini Flash** |
40
+ | **architect, planner, critic, analyst** | ~~Codex~~ | **Gemini Pro** |
41
+ | **code-reviewer, security-reviewer, quality-reviewer** | ~~Codex~~ | **Gemini Pro** |
42
+ | **scientist** | ~~Codex~~ | **Gemini Flash** |
43
+ | **scientist-deep** | ~~Codex~~ | **Gemini Pro** |
44
+ | **document-specialist** | ~~Codex~~ | **Gemini Flash** |
45
+ | designer | Gemini | Gemini (변경 없음) |
46
+ | writer | Gemini | Gemini (변경 없음) |
47
+ | explore | Claude Haiku | Claude Haiku (변경 없음) |
48
+ | verifier, test-engineer | Claude Sonnet | Claude Sonnet (변경 없음) |
49
+
50
+ ### 모델 분기
51
+
52
+ | 복잡도 | Gemini 모델 | 대상 에이전트 | 근거 |
53
+ |--------|------------|-------------|------|
54
+ | 높음 | `gemini-3.1-pro-preview` | executor, debugger, deep-executor | 구현/분석 깊이 필요 |
55
+ | 높음 | `gemini-3.1-pro-preview` | architect, planner, critic, analyst | 설계 품질 |
56
+ | 높음 | `gemini-3.1-pro-preview` | code-reviewer, security-reviewer, quality-reviewer | 리뷰 품질 |
57
+ | 높음 | `gemini-3.1-pro-preview` | scientist-deep | 심층 리서치 |
58
+ | 낮음 | `gemini-3-flash-preview` | build-fixer, spark | 빠른 수정/린트 |
59
+ | 낮음 | `gemini-3-flash-preview` | scientist, document-specialist | 일반 검색+요약 |
60
+ | 낮음 | `gemini-3-flash-preview` | writer | 문서/가이드 생성 |
61
+
62
+ ## 실행 규칙
63
+
64
+ **tfx-auto SKILL.md의 커맨드 숏컷 → 트리아지 → 멀티 태스크 라우팅 → 실행 → 결과 파싱 → 보고 섹션을 그대로 따릅니다.**
65
+
66
+ 유일한 차이점:
67
+
68
+ 1. **실행 섹션(CLI 에이전트) 수행 시** `TFX_CLI_MODE=gemini`을 환경변수로 전달:
69
+ ```bash
70
+ TFX_CLI_MODE=gemini bash ~/.claude/scripts/tfx-route.sh {agent} '{prompt}' {mcp_profile}
71
+ ```
72
+
73
+ 2. **트리아지 섹션에서** codex 분류 결과를 gemini로 강제 변환:
74
+ - Codex 분류가 `codex`를 반환하면 → `gemini`로 교체
75
+ - Opus 분해에서 모든 Codex 에이전트 → Gemini 모델 매핑
76
+
77
+ 3. **트리아지 섹션 1단계(Codex 분류)를 건너뜀**:
78
+ - Codex CLI가 없으므로 Opus가 직접 분류+분해 수행
79
+
80
+ 4. **Windows 안정화 자동 적용**:
81
+ - 모든 Gemini 워커에 `--timeout 60` + health check
82
+ - hang 감지 시 자동 재시도
83
+
84
+ ## 필수 조건
85
+
86
+ - [Gemini CLI](https://github.com/google-gemini/gemini-cli): `npm install -g @google/gemini-cli`
87
+ - Codex CLI 불필요
88
+
89
+ ## Troubleshooting
90
+
91
+ 문제 발생 시 `/tfx-doctor` 실행. (`--fix` 자동 수정, `--reset` 캐시 초기화)
@@ -1,9 +1,7 @@
1
1
  {
2
2
  "name": "tfx-gemini",
3
3
  "description": "Gemini-Only 오케스트레이터. tfx-auto 워크플로우를 Gemini 전용으로 고정합니다. '제미나이로 해줘', '제미나이한테 시켜', 'gemini로', 'Gemini 전용' 같은 요청에 반드시 사용.",
4
- "triggers": [
5
- "tfx-gemini"
6
- ],
4
+ "triggers": ["tfx-gemini"],
7
5
  "argument_hint": "\\\"작업 설명\\\" | N:gemini \\\"작업 설명\\\"",
8
6
  "internal": true
9
7
  }