triflux 10.0.0 → 10.0.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 (426) hide show
  1. package/CLAUDE.md +171 -0
  2. package/README.md +32 -15
  3. package/bin/triflux.mjs +62 -5
  4. package/hooks/agent-route-guard.mjs +109 -0
  5. package/hooks/cross-review-tracker.mjs +122 -0
  6. package/hooks/error-context.mjs +148 -0
  7. package/hooks/hook-adaptive-collector.mjs +86 -0
  8. package/hooks/hook-manager.mjs +365 -0
  9. package/hooks/hook-orchestrator.mjs +312 -0
  10. package/hooks/hook-registry.json +246 -0
  11. package/hooks/hooks.json +89 -0
  12. package/hooks/keyword-rules.json +574 -0
  13. package/hooks/lib/resolve-root.mjs +59 -0
  14. package/hooks/mcp-config-watcher.mjs +80 -0
  15. package/hooks/pipeline-stop.mjs +76 -0
  16. package/hooks/safety-guard.mjs +169 -0
  17. package/hooks/subagent-verifier.mjs +80 -0
  18. package/hub/account-broker.mjs +251 -0
  19. package/hub/adaptive-diagnostic.mjs +323 -0
  20. package/hub/adaptive-inject.mjs +186 -0
  21. package/hub/adaptive-memory.mjs +163 -0
  22. package/hub/adaptive.mjs +143 -0
  23. package/hub/assign-callbacks.mjs +133 -0
  24. package/hub/bridge.mjs +799 -0
  25. package/hub/cli-adapter-base.mjs +280 -0
  26. package/hub/codex-adapter.mjs +199 -0
  27. package/hub/codex-compat.mjs +11 -0
  28. package/hub/codex-preflight.mjs +166 -0
  29. package/hub/delegator/contracts.mjs +37 -0
  30. package/hub/delegator/index.mjs +14 -0
  31. package/hub/delegator/schema/delegator-tools.schema.json +250 -0
  32. package/hub/delegator/service.mjs +307 -0
  33. package/hub/delegator/tool-definitions.mjs +35 -0
  34. package/hub/fullcycle.mjs +96 -0
  35. package/hub/gemini-adapter.mjs +180 -0
  36. package/hub/hitl.mjs +143 -0
  37. package/hub/intent.mjs +193 -0
  38. package/hub/lib/cache-guard.mjs +114 -0
  39. package/hub/lib/known-errors.json +72 -0
  40. package/hub/lib/memory-store.mjs +748 -0
  41. package/hub/lib/process-utils.mjs +361 -0
  42. package/hub/lib/ssh-command.mjs +211 -0
  43. package/hub/lib/ssh-retry.mjs +59 -0
  44. package/hub/lib/uuidv7.mjs +44 -0
  45. package/hub/memory-doctor.mjs +480 -0
  46. package/hub/middleware/request-logger.mjs +161 -0
  47. package/hub/paths.mjs +30 -0
  48. package/hub/pipe.mjs +664 -0
  49. package/hub/pipeline/gates/confidence.mjs +56 -0
  50. package/hub/pipeline/gates/consensus.mjs +94 -0
  51. package/hub/pipeline/gates/index.mjs +5 -0
  52. package/hub/pipeline/gates/selfcheck.mjs +82 -0
  53. package/hub/pipeline/index.mjs +318 -0
  54. package/hub/pipeline/state.mjs +191 -0
  55. package/hub/pipeline/transitions.mjs +124 -0
  56. package/hub/platform.mjs +225 -0
  57. package/hub/public/dashboard.html +355 -0
  58. package/hub/public/tray-icon.ico +0 -0
  59. package/hub/public/tray-icon.png +0 -0
  60. package/hub/quality/deslop.mjs +253 -0
  61. package/hub/reflexion.mjs +372 -0
  62. package/hub/research.mjs +146 -0
  63. package/hub/router.mjs +791 -0
  64. package/hub/routing/complexity.mjs +166 -0
  65. package/hub/routing/index.mjs +117 -0
  66. package/hub/routing/q-learning.mjs +336 -0
  67. package/hub/schema.sql +148 -0
  68. package/hub/server.mjs +1264 -0
  69. package/hub/session-fingerprint.mjs +352 -0
  70. package/hub/state.mjs +258 -0
  71. package/hub/store-adapter.mjs +118 -0
  72. package/hub/store.mjs +857 -0
  73. package/hub/team/agent-map.json +11 -0
  74. package/hub/team/ansi.mjs +379 -0
  75. package/hub/team/backend.mjs +90 -0
  76. package/hub/team/cli/commands/attach.mjs +37 -0
  77. package/hub/team/cli/commands/control.mjs +43 -0
  78. package/hub/team/cli/commands/debug.mjs +74 -0
  79. package/hub/team/cli/commands/focus.mjs +53 -0
  80. package/hub/team/cli/commands/interrupt.mjs +36 -0
  81. package/hub/team/cli/commands/kill.mjs +37 -0
  82. package/hub/team/cli/commands/list.mjs +24 -0
  83. package/hub/team/cli/commands/send.mjs +37 -0
  84. package/hub/team/cli/commands/start/index.mjs +106 -0
  85. package/hub/team/cli/commands/start/parse-args.mjs +130 -0
  86. package/hub/team/cli/commands/start/start-headless.mjs +109 -0
  87. package/hub/team/cli/commands/start/start-in-process.mjs +40 -0
  88. package/hub/team/cli/commands/start/start-mux.mjs +73 -0
  89. package/hub/team/cli/commands/start/start-wt.mjs +69 -0
  90. package/hub/team/cli/commands/status.mjs +87 -0
  91. package/hub/team/cli/commands/stop.mjs +31 -0
  92. package/hub/team/cli/commands/task.mjs +30 -0
  93. package/hub/team/cli/commands/tasks.mjs +13 -0
  94. package/hub/team/cli/help.mjs +42 -0
  95. package/hub/team/cli/index.mjs +41 -0
  96. package/hub/team/cli/manifest.mjs +29 -0
  97. package/hub/team/cli/render.mjs +30 -0
  98. package/hub/team/cli/services/attach-fallback.mjs +54 -0
  99. package/hub/team/cli/services/hub-client.mjs +227 -0
  100. package/hub/team/cli/services/member-selector.mjs +30 -0
  101. package/hub/team/cli/services/native-control.mjs +117 -0
  102. package/hub/team/cli/services/runtime-mode.mjs +62 -0
  103. package/hub/team/cli/services/state-store.mjs +48 -0
  104. package/hub/team/cli/services/task-model.mjs +30 -0
  105. package/hub/team/conductor-mesh-bridge.mjs +121 -0
  106. package/hub/team/conductor.mjs +671 -0
  107. package/hub/team/dashboard-anchor.mjs +14 -0
  108. package/hub/team/dashboard-layout.mjs +33 -0
  109. package/hub/team/dashboard-open.mjs +153 -0
  110. package/hub/team/dashboard.mjs +274 -0
  111. package/hub/team/event-log.mjs +76 -0
  112. package/hub/team/handoff.mjs +303 -0
  113. package/hub/team/headless.mjs +1156 -0
  114. package/hub/team/health-probe.mjs +272 -0
  115. package/hub/team/launcher-template.mjs +95 -0
  116. package/hub/team/lead-control.mjs +104 -0
  117. package/hub/team/native-supervisor.mjs +392 -0
  118. package/hub/team/native.mjs +649 -0
  119. package/hub/team/nativeProxy.mjs +688 -0
  120. package/hub/team/notify.mjs +293 -0
  121. package/hub/team/orchestrator.mjs +161 -0
  122. package/hub/team/pane.mjs +153 -0
  123. package/hub/team/process-cleanup.mjs +342 -0
  124. package/hub/team/psmux.mjs +1354 -0
  125. package/hub/team/remote-probe.mjs +276 -0
  126. package/hub/team/remote-session.mjs +299 -0
  127. package/hub/team/remote-watcher.mjs +478 -0
  128. package/hub/team/routing.mjs +223 -0
  129. package/hub/team/session-sync.mjs +169 -0
  130. package/hub/team/session.mjs +611 -0
  131. package/hub/team/shared.mjs +13 -0
  132. package/hub/team/staleState.mjs +361 -0
  133. package/hub/team/swarm-hypervisor.mjs +589 -0
  134. package/hub/team/swarm-locks.mjs +204 -0
  135. package/hub/team/swarm-planner.mjs +260 -0
  136. package/hub/team/swarm-reconciler.mjs +137 -0
  137. package/hub/team/tui-lite.mjs +380 -0
  138. package/hub/team/tui-remote-adapter.mjs +393 -0
  139. package/hub/team/tui-viewer.mjs +463 -0
  140. package/hub/team/tui.mjs +1449 -0
  141. package/hub/team/worktree-lifecycle.mjs +193 -0
  142. package/hub/team/wt-manager.mjs +407 -0
  143. package/hub/team/wt-templates.json +43 -0
  144. package/hub/team-bridge.mjs +27 -0
  145. package/hub/token-mode.mjs +224 -0
  146. package/hub/tools.mjs +636 -0
  147. package/hub/tray.mjs +376 -0
  148. package/hub/workers/claude-worker.mjs +475 -0
  149. package/hub/workers/codex-mcp.mjs +507 -0
  150. package/hub/workers/delegator-mcp.mjs +1076 -0
  151. package/hub/workers/factory.mjs +21 -0
  152. package/hub/workers/gemini-worker.mjs +374 -0
  153. package/hub/workers/interface.mjs +52 -0
  154. package/hub/workers/worker-utils.mjs +104 -0
  155. package/hud/colors.mjs +88 -0
  156. package/hud/constants.mjs +88 -0
  157. package/hud/context-monitor.mjs +403 -0
  158. package/hud/hud-qos-status.mjs +210 -0
  159. package/hud/providers/claude.mjs +314 -0
  160. package/hud/providers/codex.mjs +151 -0
  161. package/hud/providers/gemini.mjs +320 -0
  162. package/hud/renderers.mjs +442 -0
  163. package/hud/terminal.mjs +140 -0
  164. package/hud/utils.mjs +313 -0
  165. package/mesh/index.mjs +63 -0
  166. package/mesh/mesh-budget.mjs +128 -0
  167. package/mesh/mesh-heartbeat.mjs +100 -0
  168. package/mesh/mesh-protocol.mjs +96 -0
  169. package/mesh/mesh-queue.mjs +165 -0
  170. package/mesh/mesh-registry.mjs +78 -0
  171. package/mesh/mesh-router.mjs +76 -0
  172. package/package.json +8 -1
  173. package/references/hosts.json +33 -0
  174. package/scripts/__tests__/gen-skill-docs.test.mjs +87 -0
  175. package/scripts/__tests__/keyword-detector.test.mjs +234 -0
  176. package/scripts/__tests__/mcp-guard-engine.test.mjs +118 -0
  177. package/scripts/__tests__/remote-spawn-transfer.test.mjs +117 -0
  178. package/scripts/__tests__/remote-spawn.test.mjs +92 -0
  179. package/scripts/__tests__/skill-template.test.mjs +193 -0
  180. package/scripts/__tests__/smoke.test.mjs +34 -0
  181. package/scripts/cache-buildup.mjs +30 -0
  182. package/scripts/cache-doctor.mjs +149 -0
  183. package/scripts/cache-warmup.mjs +557 -0
  184. package/scripts/claudemd-sync.mjs +148 -0
  185. package/scripts/cli-route.sh +3 -0
  186. package/scripts/completions/tfx.bash +47 -0
  187. package/scripts/completions/tfx.fish +44 -0
  188. package/scripts/completions/tfx.zsh +83 -0
  189. package/scripts/cross-review-gate.mjs +126 -0
  190. package/scripts/cross-review-tracker.mjs +238 -0
  191. package/scripts/gen-skill-docs.mjs +111 -0
  192. package/scripts/headless-guard-fast.sh +21 -0
  193. package/scripts/headless-guard.mjs +360 -0
  194. package/scripts/hub-ensure.mjs +120 -0
  195. package/scripts/keyword-detector.mjs +272 -0
  196. package/scripts/keyword-rules-expander.mjs +521 -0
  197. package/scripts/lib/claudemd-scanner.mjs +218 -0
  198. package/scripts/lib/context.mjs +67 -0
  199. package/scripts/lib/cross-review-utils.mjs +51 -0
  200. package/scripts/lib/env-probe.mjs +241 -0
  201. package/scripts/lib/gemini-profiles.mjs +85 -0
  202. package/scripts/lib/handoff.mjs +171 -0
  203. package/scripts/lib/hook-utils.mjs +14 -0
  204. package/scripts/lib/keyword-rules.mjs +166 -0
  205. package/scripts/lib/logger.mjs +105 -0
  206. package/scripts/lib/mcp-filter.mjs +739 -0
  207. package/scripts/lib/mcp-guard-engine.mjs +954 -0
  208. package/scripts/lib/mcp-manifest.mjs +79 -0
  209. package/scripts/lib/mcp-server-catalog.mjs +118 -0
  210. package/scripts/lib/psmux-info.mjs +119 -0
  211. package/scripts/lib/remote-spawn-transfer.mjs +196 -0
  212. package/scripts/lib/skill-template.mjs +326 -0
  213. package/scripts/mcp-check.mjs +237 -0
  214. package/scripts/mcp-cleanup.ps1 +17 -0
  215. package/scripts/mcp-gateway-config.mjs +207 -0
  216. package/scripts/mcp-gateway-ensure.mjs +85 -0
  217. package/scripts/mcp-gateway-integration-test.mjs +228 -0
  218. package/scripts/mcp-gateway-start.mjs +226 -0
  219. package/scripts/mcp-gateway-start.ps1 +141 -0
  220. package/scripts/mcp-gateway-verify.mjs +77 -0
  221. package/scripts/mcp-safety-guard.mjs +44 -0
  222. package/scripts/notion-read.mjs +556 -0
  223. package/scripts/pack.mjs +295 -0
  224. package/scripts/preflight-cache.mjs +69 -0
  225. package/scripts/preinstall.mjs +96 -0
  226. package/scripts/remote-spawn.mjs +1376 -0
  227. package/scripts/run.cjs +79 -0
  228. package/scripts/session-spawn-helper.mjs +185 -0
  229. package/scripts/setup.mjs +1178 -0
  230. package/scripts/test-lock.mjs +71 -0
  231. package/scripts/test-tfx-route-no-claude-native.mjs +57 -0
  232. package/scripts/tfx-batch-stats.mjs +96 -0
  233. package/scripts/tfx-gate-activate.mjs +89 -0
  234. package/scripts/tfx-route-post.mjs +505 -0
  235. package/scripts/tfx-route-worker.mjs +223 -0
  236. package/scripts/tfx-route.sh +2014 -0
  237. package/scripts/tmp-cleanup.mjs +103 -0
  238. package/scripts/token-snapshot.mjs +575 -0
  239. package/skills/tfx-auto/SKILL.md.tmpl +2 -3
  240. package/skills/tfx-autoresearch/SKILL.md +6 -5
  241. package/skills/tfx-codex/SKILL.md.tmpl +2 -3
  242. package/skills/tfx-codex-swarm-workspace/iteration-1/benchmark.json +33 -0
  243. package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/eval_metadata.json +42 -0
  244. package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/with_skill/grading.json +11 -0
  245. package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/with_skill/outputs/analysis.md +87 -0
  246. package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/with_skill/outputs/classification.md +35 -0
  247. package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/with_skill/outputs/commands.sh +275 -0
  248. package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/with_skill/outputs/routing.md +56 -0
  249. package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/with_skill/timing.json +5 -0
  250. package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/without_skill/grading.json +11 -0
  251. package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/without_skill/outputs/analysis.md +92 -0
  252. package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/without_skill/outputs/classification.md +71 -0
  253. package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/without_skill/outputs/commands.sh +264 -0
  254. package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/without_skill/outputs/routing.md +113 -0
  255. package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/without_skill/timing.json +5 -0
  256. package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/eval_metadata.json +32 -0
  257. package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/with_skill/grading.json +9 -0
  258. package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/with_skill/outputs/analysis.md +96 -0
  259. package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/with_skill/outputs/classification.md +38 -0
  260. package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/with_skill/outputs/commands.sh +151 -0
  261. package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/with_skill/outputs/routing.md +51 -0
  262. package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/with_skill/timing.json +5 -0
  263. package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/without_skill/grading.json +9 -0
  264. package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/without_skill/outputs/analysis.md +127 -0
  265. package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/without_skill/outputs/classification.md +57 -0
  266. package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/without_skill/outputs/commands.sh +129 -0
  267. package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/without_skill/outputs/routing.md +84 -0
  268. package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/without_skill/timing.json +5 -0
  269. package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/eval_metadata.json +27 -0
  270. package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/with_skill/grading.json +8 -0
  271. package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/with_skill/outputs/analysis.md +98 -0
  272. package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/with_skill/outputs/classification.md +65 -0
  273. package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/with_skill/outputs/commands.sh +123 -0
  274. package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/with_skill/outputs/routing.md +66 -0
  275. package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/with_skill/timing.json +5 -0
  276. package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/without_skill/grading.json +8 -0
  277. package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/without_skill/outputs/analysis.md +88 -0
  278. package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/without_skill/outputs/classification.md +40 -0
  279. package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/without_skill/outputs/commands.sh +130 -0
  280. package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/without_skill/outputs/routing.md +61 -0
  281. package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/without_skill/timing.json +5 -0
  282. package/skills/tfx-deep-interview/SKILL.md +1 -2
  283. package/skills/tfx-plan/SKILL.md.tmpl +2 -3
  284. package/skills/tfx-psmux-rules/SKILL.md +11 -2
  285. package/skills/tfx-qa/SKILL.md.tmpl +2 -3
  286. package/skills/tfx-remote-spawn/SKILL.md +8 -11
  287. package/skills/tfx-research/SKILL.md.tmpl +2 -3
  288. package/skills/tfx-review/SKILL.md.tmpl +2 -3
  289. package/skills/tfx-workspace/async-tests/run-tests.sh +203 -0
  290. package/skills/tfx-workspace/evals/evals.json +79 -0
  291. package/skills/tfx-workspace/iteration-1/benchmark.json +162 -0
  292. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/eval_metadata.json +11 -0
  293. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/old_skill/grading.json +9 -0
  294. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/old_skill/outputs/analysis.md +154 -0
  295. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/old_skill/timing.json +5 -0
  296. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/with_skill/grading.json +9 -0
  297. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/with_skill/outputs/analysis.md +126 -0
  298. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/with_skill/timing.json +5 -0
  299. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/eval_metadata.json +11 -0
  300. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/old_skill/grading.json +9 -0
  301. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/old_skill/outputs/analysis.md +119 -0
  302. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/old_skill/timing.json +5 -0
  303. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/with_skill/grading.json +9 -0
  304. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/with_skill/outputs/analysis.md +115 -0
  305. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/with_skill/timing.json +5 -0
  306. package/skills/tfx-workspace/iteration-1/hub-start-sequence/eval_metadata.json +10 -0
  307. package/skills/tfx-workspace/iteration-1/hub-start-sequence/old_skill/grading.json +8 -0
  308. package/skills/tfx-workspace/iteration-1/hub-start-sequence/old_skill/outputs/analysis.md +86 -0
  309. package/skills/tfx-workspace/iteration-1/hub-start-sequence/old_skill/timing.json +5 -0
  310. package/skills/tfx-workspace/iteration-1/hub-start-sequence/with_skill/grading.json +8 -0
  311. package/skills/tfx-workspace/iteration-1/hub-start-sequence/with_skill/outputs/analysis.md +81 -0
  312. package/skills/tfx-workspace/iteration-1/hub-start-sequence/with_skill/timing.json +5 -0
  313. package/skills/tfx-workspace/iteration-1/multi-team-creation/eval_metadata.json +12 -0
  314. package/skills/tfx-workspace/iteration-1/multi-team-creation/old_skill/grading.json +10 -0
  315. package/skills/tfx-workspace/iteration-1/multi-team-creation/old_skill/outputs/analysis.md +316 -0
  316. package/skills/tfx-workspace/iteration-1/multi-team-creation/old_skill/timing.json +5 -0
  317. package/skills/tfx-workspace/iteration-1/multi-team-creation/with_skill/grading.json +10 -0
  318. package/skills/tfx-workspace/iteration-1/multi-team-creation/with_skill/outputs/analysis.md +352 -0
  319. package/skills/tfx-workspace/iteration-1/multi-team-creation/with_skill/timing.json +5 -0
  320. package/skills/tfx-workspace/iteration-1/review.html +1325 -0
  321. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/eval_metadata.json +12 -0
  322. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/old_skill/grading.json +10 -0
  323. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/old_skill/outputs/analysis.md +97 -0
  324. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/old_skill/timing.json +5 -0
  325. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/with_skill/grading.json +10 -0
  326. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/with_skill/outputs/analysis.md +94 -0
  327. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/with_skill/timing.json +5 -0
  328. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/eval_metadata.json +12 -0
  329. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/old_skill/grading.json +10 -0
  330. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/old_skill/outputs/analysis.md +209 -0
  331. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/old_skill/timing.json +5 -0
  332. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/with_skill/grading.json +10 -0
  333. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/with_skill/outputs/analysis.md +193 -0
  334. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/with_skill/timing.json +5 -0
  335. package/skills/tfx-workspace/iteration-2/benchmark.json +62 -0
  336. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/eval_metadata.json +13 -0
  337. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/old_skill/grading.json +11 -0
  338. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/old_skill/outputs/analysis.md +382 -0
  339. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/old_skill/timing.json +5 -0
  340. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/with_skill/grading.json +11 -0
  341. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/with_skill/outputs/analysis.md +333 -0
  342. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/with_skill/timing.json +5 -0
  343. package/skills/tfx-workspace/iteration-2/review.html +1325 -0
  344. package/skills/tfx-workspace/skill-snapshot/tfx-auto/SKILL.md +217 -0
  345. package/skills/{tfx-auto-codex/SKILL.md.tmpl → tfx-workspace/skill-snapshot/tfx-auto-codex/SKILL.md} +3 -31
  346. package/skills/tfx-workspace/skill-snapshot/tfx-codex/SKILL.md +65 -0
  347. package/skills/tfx-workspace/skill-snapshot/tfx-doctor/SKILL.md +94 -0
  348. package/skills/{tfx-gemini/SKILL.md.tmpl → tfx-workspace/skill-snapshot/tfx-gemini/SKILL.md} +6 -14
  349. package/skills/tfx-workspace/skill-snapshot/tfx-hub/SKILL.md +133 -0
  350. package/skills/tfx-workspace/skill-snapshot/tfx-multi/SKILL.md +426 -0
  351. package/skills/tfx-workspace/skill-snapshot/tfx-setup/SKILL.md +101 -0
  352. package/skills/merge-worktree/SKILL.md.tmpl +0 -144
  353. package/skills/shared/arguments-processing.md +0 -2
  354. package/skills/shared/mandatory-rules.md +0 -6
  355. package/skills/shared/telemetry-segment.md +0 -6
  356. package/skills/star-prompt/SKILL.md.tmpl +0 -122
  357. package/skills/tfx-analysis/SKILL.md.tmpl +0 -106
  358. package/skills/tfx-analysis/skill.json +0 -11
  359. package/skills/tfx-auto/skill.json +0 -26
  360. package/skills/tfx-auto-codex/skill.json +0 -8
  361. package/skills/tfx-autopilot/SKILL.md.tmpl +0 -115
  362. package/skills/tfx-autopilot/skill.json +0 -10
  363. package/skills/tfx-autoresearch/SKILL.md.tmpl +0 -135
  364. package/skills/tfx-autoresearch/skill.json +0 -14
  365. package/skills/tfx-autoroute/SKILL.md.tmpl +0 -188
  366. package/skills/tfx-autoroute/skill.json +0 -12
  367. package/skills/tfx-codex/skill.json +0 -8
  368. package/skills/tfx-codex-swarm/SKILL.md.tmpl +0 -16
  369. package/skills/tfx-codex-swarm/skill.json +0 -5
  370. package/skills/tfx-consensus/SKILL.md.tmpl +0 -145
  371. package/skills/tfx-consensus/skill.json +0 -8
  372. package/skills/tfx-debate/SKILL.md.tmpl +0 -191
  373. package/skills/tfx-debate/skill.json +0 -12
  374. package/skills/tfx-deep-analysis/SKILL.md.tmpl +0 -227
  375. package/skills/tfx-deep-analysis/skill.json +0 -10
  376. package/skills/tfx-deep-interview/SKILL.md.tmpl +0 -203
  377. package/skills/tfx-deep-interview/skill.json +0 -12
  378. package/skills/tfx-deep-plan/SKILL.md.tmpl +0 -281
  379. package/skills/tfx-deep-plan/skill.json +0 -13
  380. package/skills/tfx-deep-qa/SKILL.md.tmpl +0 -164
  381. package/skills/tfx-deep-qa/skill.json +0 -11
  382. package/skills/tfx-deep-research/SKILL.md.tmpl +0 -216
  383. package/skills/tfx-deep-research/skill.json +0 -14
  384. package/skills/tfx-deep-review/SKILL.md.tmpl +0 -178
  385. package/skills/tfx-deep-review/skill.json +0 -12
  386. package/skills/tfx-doctor/SKILL.md.tmpl +0 -172
  387. package/skills/tfx-doctor/skill.json +0 -8
  388. package/skills/tfx-find/skill.json +0 -12
  389. package/skills/tfx-forge/SKILL.md.tmpl +0 -187
  390. package/skills/tfx-forge/skill.json +0 -12
  391. package/skills/tfx-fullcycle/SKILL.md.tmpl +0 -285
  392. package/skills/tfx-fullcycle/skill.json +0 -11
  393. package/skills/tfx-gemini/skill.json +0 -8
  394. package/skills/tfx-hooks/SKILL.md.tmpl +0 -216
  395. package/skills/tfx-hooks/skill.json +0 -8
  396. package/skills/tfx-hub/SKILL.md.tmpl +0 -212
  397. package/skills/tfx-hub/skill.json +0 -8
  398. package/skills/tfx-index/skill.json +0 -11
  399. package/skills/tfx-interview/SKILL.md.tmpl +0 -284
  400. package/skills/tfx-interview/skill.json +0 -12
  401. package/skills/tfx-multi/SKILL.md.tmpl +0 -183
  402. package/skills/tfx-multi/skill.json +0 -8
  403. package/skills/tfx-panel/SKILL.md.tmpl +0 -188
  404. package/skills/tfx-panel/skill.json +0 -12
  405. package/skills/tfx-persist/SKILL.md.tmpl +0 -269
  406. package/skills/tfx-persist/skill.json +0 -12
  407. package/skills/tfx-plan/skill.json +0 -11
  408. package/skills/tfx-profile/SKILL.md.tmpl +0 -239
  409. package/skills/tfx-profile/skill.json +0 -8
  410. package/skills/tfx-prune/SKILL.md.tmpl +0 -199
  411. package/skills/tfx-prune/skill.json +0 -12
  412. package/skills/tfx-psmux-rules/SKILL.md.tmpl +0 -317
  413. package/skills/tfx-psmux-rules/skill.json +0 -8
  414. package/skills/tfx-qa/skill.json +0 -11
  415. package/skills/tfx-ralph/SKILL.md.tmpl +0 -27
  416. package/skills/tfx-ralph/skill.json +0 -8
  417. package/skills/tfx-remote-setup/SKILL.md.tmpl +0 -576
  418. package/skills/tfx-remote-setup/skill.json +0 -8
  419. package/skills/tfx-remote-spawn/SKILL.md.tmpl +0 -263
  420. package/skills/tfx-remote-spawn/skill.json +0 -9
  421. package/skills/tfx-research/skill.json +0 -13
  422. package/skills/tfx-review/skill.json +0 -11
  423. package/skills/tfx-setup/SKILL.md.tmpl +0 -380
  424. package/skills/tfx-setup/skill.json +0 -8
  425. package/skills/tfx-swarm/SKILL.md.tmpl +0 -154
  426. package/skills/tfx-swarm/skill.json +0 -5
@@ -0,0 +1,92 @@
1
+ # Codex Swarm Analysis — Full 7-PRD Execution Plan
2
+
3
+ ## Overview
4
+
5
+ - **Source**: 7 PRD files in `.omx/plans/`
6
+ - **Issues**: #24, #25, #26, #27, #28, #29, #30
7
+ - **Classification**: 5 implement, 2 investigate
8
+ - **User directive**: implement -> `$plan` -> `$autopilot`, investigate -> `$plan` only
9
+ - **Execution**: Codex CLI in `--full-auto` mode, one psmux session per PRD, all in one WT window as tabs
10
+
11
+ ## What Was Generated
12
+
13
+ | File | Purpose |
14
+ |------|---------|
15
+ | `classification.md` | PRD-by-PRD type classification with rationale |
16
+ | `routing.md` | Codex profile routing (model, effort level) per PRD |
17
+ | `commands.sh` | Full executable script: worktrees, prompts, psmux, codex, WT tabs |
18
+ | `analysis.md` | This summary |
19
+
20
+ ## Execution Pipeline
21
+
22
+ ```
23
+ Phase 1: git worktree add (7 isolated worktrees)
24
+ Phase 2: Copy PRD files into worktrees
25
+ Phase 3: Generate per-task prompt files with OMX skill instructions
26
+ Phase 4: psmux new-session + codex send-keys (7 sessions)
27
+ Phase 5: psmux attach --wt-tab (1 WT window, 7 tabs)
28
+ ```
29
+
30
+ ## Session Map
31
+
32
+ | Tab | Session | Issue | Type | Model | Skill Flow |
33
+ |-----|---------|-------|------|-------|------------|
34
+ | 1 | codex-swarm-24 | file-transfer | implement | gpt-5.3-codex (high) | $plan -> $autopilot |
35
+ | 2 | codex-swarm-25 | resize-blank | investigate | gpt-5.4 (high) | $plan only |
36
+ | 3 | codex-swarm-26 | session-cleanup | implement | gpt-5.3-codex (high) | $plan -> $autopilot |
37
+ | 4 | codex-swarm-27 | dashboard-anchor | implement | gpt-5.3-codex (high) | $plan -> $autopilot |
38
+ | 5 | codex-swarm-28 | guard-deadlock | implement | gpt-5.3-codex (high) | $plan -> $autopilot |
39
+ | 6 | codex-swarm-29 | cwd-propagation | implement | gpt-5.3-codex (high) | $plan -> $autopilot |
40
+ | 7 | codex-swarm-30 | terminal-minimize | investigate | gpt-5.4 (high) | $plan only |
41
+
42
+ ## Isolation Strategy
43
+
44
+ Each session runs in its own git worktree under `.codex-swarm/wt-issue-{N}` on branch `codex/issue-{N}`. This prevents file conflicts between parallel Codex sessions. PRD files are copied into each worktree so the Codex agent can read them locally.
45
+
46
+ ## Key Design Decisions
47
+
48
+ ### 1. Model Selection
49
+ - **Implement tasks** (5): `gpt-5.3-codex` with high reasoning effort. Codex-optimized model for code generation.
50
+ - **Investigate tasks** (2): `gpt-5.4` with high reasoning effort. General model better suited for analysis and investigation planning.
51
+ - All 7 PRDs sized as L (standard) based on line count (69-76 lines) and affected file counts (2-5 files).
52
+
53
+ ### 2. OMX Skill Routing
54
+ - User explicitly requested: implement -> autopilot, investigate -> plan only.
55
+ - Implement prompts instruct: `$plan` first, then `$autopilot` for autonomous execution.
56
+ - Investigate prompts instruct: `$plan` only, explicitly stating "do not implement".
57
+
58
+ ### 3. WT Layout
59
+ - User requested "one WT with tabs" -- all 7 sessions are tabs in a single WT window.
60
+ - First session uses `--wt-new-window`, remaining 6 use `--wt-tab`.
61
+ - wt.exe fallback is provided as a commented-out alternative.
62
+
63
+ ### 4. No Execution
64
+ - Per instructions, commands are generated but NOT executed.
65
+ - The `commands.sh` script is ready to run when the user decides to launch.
66
+
67
+ ## Monitoring Commands
68
+
69
+ ```bash
70
+ # Check status of all sessions
71
+ for N in 24 25 26 27 28 29 30; do
72
+ echo "=== Issue #$N ==="
73
+ psmux capture-pane --session "codex-swarm-$N" --lines 5
74
+ done
75
+
76
+ # List active sessions
77
+ psmux list-sessions | grep codex-swarm
78
+
79
+ # Kill all swarm sessions (cleanup)
80
+ for N in 24 25 26 27 28 29 30; do
81
+ psmux kill-session --name "codex-swarm-$N"
82
+ done
83
+ git worktree prune
84
+ rm -rf .codex-swarm/
85
+ ```
86
+
87
+ ## Risk Notes
88
+
89
+ - **Issue #25 and #30** (investigate): These have "evidence insufficient" validity verdicts. The investigation plans may conclude that no code fix is needed. Using `$plan` only is appropriate.
90
+ - **Issue #28** (partially valid): The deadlock claim is overstated per validity review, but the UX improvement is still warranted. Autopilot should handle the bounded scope.
91
+ - **Issue #29**: Touches the most files (5 across CLI parse, headless, and backend layers). Most likely to need careful cross-file coordination.
92
+ - **Parallel execution**: 7 simultaneous Codex sessions will consume significant API quota. All are routed to high-effort profiles.
@@ -0,0 +1,71 @@
1
+ # PRD Classification — 7 PRDs in .omx/plans/
2
+
3
+ ## Classification Criteria
4
+
5
+ Based on PRD content analysis against SKILL.md Step 3 rules:
6
+ - **implement**: keywords "구현", "implement", "추가", "변경", "fix", actionable code changes
7
+ - **investigate**: keywords "조사", "investigation", "재현", "reproduce", runtime-only evidence needed
8
+
9
+ User override: implement -> `$plan` -> `$autopilot`, investigate -> `$plan` only.
10
+
11
+ ---
12
+
13
+ ## PRD-by-PRD Classification
14
+
15
+ ### 1. prd-issue-24-remote-spawn-file-transfer.md
16
+ - **Type**: implement
17
+ - **Rationale**: "Add an explicit file-transfer phase before remote Claude launch", "Copy transferred files", "rewrite the prompt". Clear implementation deliverable with bounded code changes in `scripts/remote-spawn.mjs`.
18
+ - **Validity verdict**: mostly valid
19
+ - **OMX skill**: `$plan` -> `$autopilot`
20
+
21
+ ### 2. prd-issue-25-remote-spawn-resize-blank-screen.md
22
+ - **Type**: investigate
23
+ - **Rationale**: "Produce a deterministic reproduction procedure", "investigation checklist", "instrumentation-first workflow". Explicitly framed as investigation, not implementation. Verdict was "evidence insufficient".
24
+ - **Validity verdict**: evidence insufficient
25
+ - **OMX skill**: `$plan` (investigation mode)
26
+
27
+ ### 3. prd-issue-26-remote-spawn-session-cleanup.md
28
+ - **Type**: implement
29
+ - **Rationale**: "Add a normal-exit watcher", "trigger killPsmuxSession(sessionName)". Clear implementation target: add cleanup logic to spawn lifecycle.
30
+ - **Validity verdict**: valid
31
+ - **OMX skill**: `$plan` -> `$autopilot`
32
+
33
+ ### 4. prd-issue-27-hud-dashboard-anchor.md
34
+ - **Type**: implement
35
+ - **Rationale**: "Replace focus-relative split behavior with a dedicated dashboard target strategy", "Remove or narrow mf up focus manipulation". Concrete implementation changes to `hub/team/headless.mjs`.
36
+ - **Validity verdict**: valid
37
+ - **OMX skill**: `$plan` -> `$autopilot`
38
+
39
+ ### 5. prd-issue-28-headless-guard-spawn-deadlock.md
40
+ - **Type**: implement
41
+ - **Rationale**: "Make the denial message action-oriented and specific", "Add regression tests around the guard decision matrix". Implementation + test additions to `scripts/headless-guard.mjs`.
42
+ - **Validity verdict**: partially valid
43
+ - **OMX skill**: `$plan` -> `$autopilot`
44
+
45
+ ### 6. prd-issue-29-headless-cwd-propagation.md
46
+ - **Type**: implement
47
+ - **Rationale**: "Add a cwd or equivalent field to the headless start argument parsing", "Propagate that field through start-headless.mjs". Multi-file implementation across CLI parse, headless, backend layers.
48
+ - **Validity verdict**: valid
49
+ - **OMX skill**: `$plan` -> `$autopilot`
50
+
51
+ ### 7. prd-issue-30-remote-spawn-terminal-minimize.md
52
+ - **Type**: investigate
53
+ - **Rationale**: "Reproduce the symptom reliably", "Build a minimal repro script", "Collect terminal state evidence". Explicitly an investigation PRD. Verdict was "evidence insufficient".
54
+ - **Validity verdict**: evidence insufficient
55
+ - **OMX skill**: `$plan` (investigation mode)
56
+
57
+ ---
58
+
59
+ ## Summary Table
60
+
61
+ | # | PRD file | Type | OMX Skill | Validity |
62
+ |---|----------|------|-----------|----------|
63
+ | 24 | prd-issue-24-remote-spawn-file-transfer | implement | `$plan` -> `$autopilot` | mostly valid |
64
+ | 25 | prd-issue-25-remote-spawn-resize-blank-screen | investigate | `$plan` only | evidence insufficient |
65
+ | 26 | prd-issue-26-remote-spawn-session-cleanup | implement | `$plan` -> `$autopilot` | valid |
66
+ | 27 | prd-issue-27-hud-dashboard-anchor | implement | `$plan` -> `$autopilot` | valid |
67
+ | 28 | prd-issue-28-headless-guard-spawn-deadlock | implement | `$plan` -> `$autopilot` | partially valid |
68
+ | 29 | prd-issue-29-headless-cwd-propagation | implement | `$plan` -> `$autopilot` | valid |
69
+ | 30 | prd-issue-30-remote-spawn-terminal-minimize | investigate | `$plan` only | evidence insufficient |
70
+
71
+ **Totals**: 5 implement, 2 investigate
@@ -0,0 +1,264 @@
1
+ #!/usr/bin/env bash
2
+ # =============================================================================
3
+ # Codex Swarm — 7 PRDs from .omx/plans/
4
+ # Generated for: triflux @ C:/Users/SSAFY/Desktop/Projects/cli/triflux
5
+ # 5 implement ($plan -> $autopilot), 2 investigate ($plan only)
6
+ # All sessions in one WT window with tabs
7
+ # =============================================================================
8
+
9
+ set -euo pipefail
10
+
11
+ PROJECT_ROOT="C:/Users/SSAFY/Desktop/Projects/cli/triflux"
12
+ SWARM_DIR="$PROJECT_ROOT/.codex-swarm"
13
+ PROMPTS_DIR="$SWARM_DIR/prompts"
14
+ BASH_EXE='C:\Program Files\Git\bin\bash.exe'
15
+
16
+ # ─── Phase 1: Worktree Creation ─────────────────────────────────────────────
17
+
18
+ echo "=== Phase 1: Creating worktrees ==="
19
+
20
+ git -C "$PROJECT_ROOT" worktree add "$SWARM_DIR/wt-issue-24" -b codex/issue-24 2>/dev/null || \
21
+ git -C "$PROJECT_ROOT" worktree add "$SWARM_DIR/wt-issue-24" codex/issue-24
22
+
23
+ git -C "$PROJECT_ROOT" worktree add "$SWARM_DIR/wt-issue-25" -b codex/issue-25 2>/dev/null || \
24
+ git -C "$PROJECT_ROOT" worktree add "$SWARM_DIR/wt-issue-25" codex/issue-25
25
+
26
+ git -C "$PROJECT_ROOT" worktree add "$SWARM_DIR/wt-issue-26" -b codex/issue-26 2>/dev/null || \
27
+ git -C "$PROJECT_ROOT" worktree add "$SWARM_DIR/wt-issue-26" codex/issue-26
28
+
29
+ git -C "$PROJECT_ROOT" worktree add "$SWARM_DIR/wt-issue-27" -b codex/issue-27 2>/dev/null || \
30
+ git -C "$PROJECT_ROOT" worktree add "$SWARM_DIR/wt-issue-27" codex/issue-27
31
+
32
+ git -C "$PROJECT_ROOT" worktree add "$SWARM_DIR/wt-issue-28" -b codex/issue-28 2>/dev/null || \
33
+ git -C "$PROJECT_ROOT" worktree add "$SWARM_DIR/wt-issue-28" codex/issue-28
34
+
35
+ git -C "$PROJECT_ROOT" worktree add "$SWARM_DIR/wt-issue-29" -b codex/issue-29 2>/dev/null || \
36
+ git -C "$PROJECT_ROOT" worktree add "$SWARM_DIR/wt-issue-29" codex/issue-29
37
+
38
+ git -C "$PROJECT_ROOT" worktree add "$SWARM_DIR/wt-issue-30" -b codex/issue-30 2>/dev/null || \
39
+ git -C "$PROJECT_ROOT" worktree add "$SWARM_DIR/wt-issue-30" codex/issue-30
40
+
41
+ echo " 7 worktrees created under $SWARM_DIR/"
42
+
43
+ # ─── Phase 2: Copy PRD files into worktrees ──────────────────────────────────
44
+
45
+ echo "=== Phase 2: Staging PRD files ==="
46
+
47
+ for N in 24 25 26 27 28 29 30; do
48
+ mkdir -p "$SWARM_DIR/wt-issue-$N/.omx/plans"
49
+ cp "$PROJECT_ROOT/.omx/plans/prd-issue-$N-"*.md "$SWARM_DIR/wt-issue-$N/.omx/plans/" 2>/dev/null || true
50
+ done
51
+
52
+ echo " PRD files staged into worktrees"
53
+
54
+ # ─── Phase 3: Generate prompt files ─────────────────────────────────────────
55
+
56
+ echo "=== Phase 3: Generating prompts ==="
57
+
58
+ mkdir -p "$PROMPTS_DIR"
59
+
60
+ # --- Issue #24: implement -> $plan -> $autopilot ---
61
+ cat > "$PROMPTS_DIR/prompt-24.md" << 'PROMPT_EOF'
62
+ triflux 프로젝트의 태스크를 구현해야 합니다.
63
+
64
+ 태스크 파일을 먼저 읽으세요: .omx/plans/prd-issue-24-remote-spawn-file-transfer.md
65
+
66
+ 작업 순서:
67
+ 1. 태스크 파일을 읽고 요구사항을 파악하세요
68
+ 2. $plan 스킬을 사용하여 구현 계획을 수립하세요
69
+ 3. 계획이 완성되면 $autopilot 스킬로 자율 구현을 진행하세요
70
+ 4. Acceptance Criteria를 모두 충족하는지 검증하세요
71
+
72
+ 프로젝트 정보:
73
+ - triflux: Claude Code용 멀티모델 CLI 오케스트레이터
74
+ - 언어: JavaScript/ESM (Node.js), 테스트: npm test
75
+ - 주요 수정 대상: scripts/remote-spawn.mjs
76
+ PROMPT_EOF
77
+
78
+ # --- Issue #25: investigate -> $plan only ---
79
+ cat > "$PROMPTS_DIR/prompt-25.md" << 'PROMPT_EOF'
80
+ triflux 프로젝트의 이슈를 조사해야 합니다.
81
+
82
+ 태스크 파일을 먼저 읽으세요: .omx/plans/prd-issue-25-remote-spawn-resize-blank-screen.md
83
+
84
+ 작업 순서:
85
+ 1. 태스크 파일을 읽고 조사 요구사항을 파악하세요
86
+ 2. $plan 스킬을 사용하여 조사 계획을 수립하세요
87
+ 3. 재현 절차, 계측 방법, 원인 분류 기준을 포함하세요
88
+ 4. 구현은 하지 마세요 — 조사 계획 수립까지만 진행하세요
89
+
90
+ 프로젝트 정보:
91
+ - triflux: Claude Code용 멀티모델 CLI 오케스트레이터
92
+ - 언어: JavaScript/ESM (Node.js), 테스트: npm test
93
+ - 조사 대상: SSH PTY resize, psmux pane capture, WT alternate screen
94
+ PROMPT_EOF
95
+
96
+ # --- Issue #26: implement -> $plan -> $autopilot ---
97
+ cat > "$PROMPTS_DIR/prompt-26.md" << 'PROMPT_EOF'
98
+ triflux 프로젝트의 태스크를 구현해야 합니다.
99
+
100
+ 태스크 파일을 먼저 읽으세요: .omx/plans/prd-issue-26-remote-spawn-session-cleanup.md
101
+
102
+ 작업 순서:
103
+ 1. 태스크 파일을 읽고 요구사항을 파악하세요
104
+ 2. $plan 스킬을 사용하여 구현 계획을 수립하세요
105
+ 3. 계획이 완성되면 $autopilot 스킬로 자율 구현을 진행하세요
106
+ 4. Acceptance Criteria를 모두 충족하는지 검증하세요
107
+
108
+ 프로젝트 정보:
109
+ - triflux: Claude Code용 멀티모델 CLI 오케스트레이터
110
+ - 언어: JavaScript/ESM (Node.js), 테스트: npm test
111
+ - 주요 수정 대상: scripts/remote-spawn.mjs, hub/server.mjs
112
+ PROMPT_EOF
113
+
114
+ # --- Issue #27: implement -> $plan -> $autopilot ---
115
+ cat > "$PROMPTS_DIR/prompt-27.md" << 'PROMPT_EOF'
116
+ triflux 프로젝트의 태스크를 구현해야 합니다.
117
+
118
+ 태스크 파일을 먼저 읽으세요: .omx/plans/prd-issue-27-hud-dashboard-anchor.md
119
+
120
+ 작업 순서:
121
+ 1. 태스크 파일을 읽고 요구사항을 파악하세요
122
+ 2. $plan 스킬을 사용하여 구현 계획을 수립하세요
123
+ 3. 계획이 완성되면 $autopilot 스킬로 자율 구현을 진행하세요
124
+ 4. Acceptance Criteria를 모두 충족하는지 검증하세요
125
+
126
+ 프로젝트 정보:
127
+ - triflux: Claude Code용 멀티모델 CLI 오케스트레이터
128
+ - 언어: JavaScript/ESM (Node.js), 테스트: npm test
129
+ - 주요 수정 대상: hub/team/headless.mjs (dashboard attach path)
130
+ PROMPT_EOF
131
+
132
+ # --- Issue #28: implement -> $plan -> $autopilot ---
133
+ cat > "$PROMPTS_DIR/prompt-28.md" << 'PROMPT_EOF'
134
+ triflux 프로젝트의 태스크를 구현해야 합니다.
135
+
136
+ 태스크 파일을 먼저 읽으세요: .omx/plans/prd-issue-28-headless-guard-spawn-deadlock.md
137
+
138
+ 작업 순서:
139
+ 1. 태스크 파일을 읽고 요구사항을 파악하세요
140
+ 2. $plan 스킬을 사용하여 구현 계획을 수립하세요
141
+ 3. 계획이 완성되면 $autopilot 스킬로 자율 구현을 진행하세요
142
+ 4. Acceptance Criteria를 모두 충족하는지 검증하세요
143
+
144
+ 프로젝트 정보:
145
+ - triflux: Claude Code용 멀티모델 CLI 오케스트레이터
146
+ - 언어: JavaScript/ESM (Node.js), 테스트: npm test
147
+ - 주요 수정 대상: scripts/headless-guard.mjs, tests/unit/headless-guard.test.mjs
148
+ PROMPT_EOF
149
+
150
+ # --- Issue #29: implement -> $plan -> $autopilot ---
151
+ cat > "$PROMPTS_DIR/prompt-29.md" << 'PROMPT_EOF'
152
+ triflux 프로젝트의 태스크를 구현해야 합니다.
153
+
154
+ 태스크 파일을 먼저 읽으세요: .omx/plans/prd-issue-29-headless-cwd-propagation.md
155
+
156
+ 작업 순서:
157
+ 1. 태스크 파일을 읽고 요구사항을 파악하세요
158
+ 2. $plan 스킬을 사용하여 구현 계획을 수립하세요
159
+ 3. 계획이 완성되면 $autopilot 스킬로 자율 구현을 진행하세요
160
+ 4. Acceptance Criteria를 모두 충족하는지 검증하세요
161
+
162
+ 프로젝트 정보:
163
+ - triflux: Claude Code용 멀티모델 CLI 오케스트레이터
164
+ - 언어: JavaScript/ESM (Node.js), 테스트: npm test
165
+ - 주요 수정 대상: hub/team/cli/commands/start/parse-args.mjs, start-headless.mjs, hub/team/headless.mjs, hub/team/backend.mjs
166
+ PROMPT_EOF
167
+
168
+ # --- Issue #30: investigate -> $plan only ---
169
+ cat > "$PROMPTS_DIR/prompt-30.md" << 'PROMPT_EOF'
170
+ triflux 프로젝트의 이슈를 조사해야 합니다.
171
+
172
+ 태스크 파일을 먼저 읽으세요: .omx/plans/prd-issue-30-remote-spawn-terminal-minimize.md
173
+
174
+ 작업 순서:
175
+ 1. 태스크 파일을 읽고 조사 요구사항을 파악하세요
176
+ 2. $plan 스킬을 사용하여 조사 계획을 수립하세요
177
+ 3. 재현 스크립트, 터미널 상태 캡처 방법, 판별 기준을 포함하세요
178
+ 4. 구현은 하지 마세요 — 조사 계획 수립까지만 진행하세요
179
+
180
+ 프로젝트 정보:
181
+ - triflux: Claude Code용 멀티모델 CLI 오케스트레이터
182
+ - 언어: JavaScript/ESM (Node.js), 테스트: npm test
183
+ - 조사 대상: remote-spawn.mjs WT tab/pane creation, headless.mjs focus manipulation
184
+ PROMPT_EOF
185
+
186
+ echo " 7 prompt files generated in $PROMPTS_DIR/"
187
+
188
+ # ─── Phase 4: psmux Session Creation + Codex Launch ─────────────────────────
189
+
190
+ echo "=== Phase 4: Creating psmux sessions and launching Codex ==="
191
+
192
+ # --- Issue #24: implement, codex53_high ---
193
+ psmux new-session --name "codex-swarm-24" --dir "$SWARM_DIR/wt-issue-24"
194
+ psmux send-keys --target "codex-swarm-24:0" \
195
+ "codex -c 'model=\"gpt-5.3-codex\"' -c 'model_reasoning_effort=\"high\"' --full-auto \"\$(cat $PROMPTS_DIR/prompt-24.md)\"" Enter
196
+
197
+ # --- Issue #25: investigate, gpt54_high ---
198
+ psmux new-session --name "codex-swarm-25" --dir "$SWARM_DIR/wt-issue-25"
199
+ psmux send-keys --target "codex-swarm-25:0" \
200
+ "codex -c 'model=\"gpt-5.4\"' -c 'model_reasoning_effort=\"high\"' --full-auto \"\$(cat $PROMPTS_DIR/prompt-25.md)\"" Enter
201
+
202
+ # --- Issue #26: implement, codex53_high ---
203
+ psmux new-session --name "codex-swarm-26" --dir "$SWARM_DIR/wt-issue-26"
204
+ psmux send-keys --target "codex-swarm-26:0" \
205
+ "codex -c 'model=\"gpt-5.3-codex\"' -c 'model_reasoning_effort=\"high\"' --full-auto \"\$(cat $PROMPTS_DIR/prompt-26.md)\"" Enter
206
+
207
+ # --- Issue #27: implement, codex53_high ---
208
+ psmux new-session --name "codex-swarm-27" --dir "$SWARM_DIR/wt-issue-27"
209
+ psmux send-keys --target "codex-swarm-27:0" \
210
+ "codex -c 'model=\"gpt-5.3-codex\"' -c 'model_reasoning_effort=\"high\"' --full-auto \"\$(cat $PROMPTS_DIR/prompt-27.md)\"" Enter
211
+
212
+ # --- Issue #28: implement, codex53_high ---
213
+ psmux new-session --name "codex-swarm-28" --dir "$SWARM_DIR/wt-issue-28"
214
+ psmux send-keys --target "codex-swarm-28:0" \
215
+ "codex -c 'model=\"gpt-5.3-codex\"' -c 'model_reasoning_effort=\"high\"' --full-auto \"\$(cat $PROMPTS_DIR/prompt-28.md)\"" Enter
216
+
217
+ # --- Issue #29: implement, codex53_high ---
218
+ psmux new-session --name "codex-swarm-29" --dir "$SWARM_DIR/wt-issue-29"
219
+ psmux send-keys --target "codex-swarm-29:0" \
220
+ "codex -c 'model=\"gpt-5.3-codex\"' -c 'model_reasoning_effort=\"high\"' --full-auto \"\$(cat $PROMPTS_DIR/prompt-29.md)\"" Enter
221
+
222
+ # --- Issue #30: investigate, gpt54_high ---
223
+ psmux new-session --name "codex-swarm-30" --dir "$SWARM_DIR/wt-issue-30"
224
+ psmux send-keys --target "codex-swarm-30:0" \
225
+ "codex -c 'model=\"gpt-5.4\"' -c 'model_reasoning_effort=\"high\"' --full-auto \"\$(cat $PROMPTS_DIR/prompt-30.md)\"" Enter
226
+
227
+ echo " 7 psmux sessions created, Codex launched in each"
228
+
229
+ # ─── Phase 5: WT Tab Attach — All sessions in one window ────────────────────
230
+
231
+ echo "=== Phase 5: Attaching all sessions to one WT window ==="
232
+
233
+ # First session opens a new WT window
234
+ psmux attach --session "codex-swarm-24" --wt-new-window
235
+
236
+ # Remaining 6 sessions attach as tabs in the same window
237
+ psmux attach --session "codex-swarm-25" --wt-tab
238
+ psmux attach --session "codex-swarm-26" --wt-tab
239
+ psmux attach --session "codex-swarm-27" --wt-tab
240
+ psmux attach --session "codex-swarm-28" --wt-tab
241
+ psmux attach --session "codex-swarm-29" --wt-tab
242
+ psmux attach --session "codex-swarm-30" --wt-tab
243
+
244
+ echo " All 7 sessions attached as tabs in one WT window"
245
+
246
+ # ─── Fallback: wt.exe direct (if psmux attach --wt-tab unavailable) ─────────
247
+
248
+ # Uncomment below if psmux attach --wt-tab is not available:
249
+ #
250
+ # PSMUX_WIN=$(command -v psmux.exe || echo "psmux")
251
+ # wt.exe -w new \
252
+ # --title "swarm-24 file-transfer" -d "$SWARM_DIR/wt-issue-24" "$BASH_EXE" -c "psmux attach codex-swarm-24" \; \
253
+ # new-tab --title "swarm-25 resize-blank" -d "$SWARM_DIR/wt-issue-25" "$BASH_EXE" -c "psmux attach codex-swarm-25" \; \
254
+ # new-tab --title "swarm-26 session-cleanup" -d "$SWARM_DIR/wt-issue-26" "$BASH_EXE" -c "psmux attach codex-swarm-26" \; \
255
+ # new-tab --title "swarm-27 dashboard-anchor" -d "$SWARM_DIR/wt-issue-27" "$BASH_EXE" -c "psmux attach codex-swarm-27" \; \
256
+ # new-tab --title "swarm-28 guard-deadlock" -d "$SWARM_DIR/wt-issue-28" "$BASH_EXE" -c "psmux attach codex-swarm-28" \; \
257
+ # new-tab --title "swarm-29 cwd-propagation" -d "$SWARM_DIR/wt-issue-29" "$BASH_EXE" -c "psmux attach codex-swarm-29" \; \
258
+ # new-tab --title "swarm-30 terminal-minimize" -d "$SWARM_DIR/wt-issue-30" "$BASH_EXE" -c "psmux attach codex-swarm-30"
259
+
260
+ echo ""
261
+ echo "=== Codex Swarm Complete ==="
262
+ echo " Sessions: 7 (5 implement + 2 investigate)"
263
+ echo " Window: 1 WT window, 7 tabs"
264
+ echo " Monitor: psmux capture-pane --session codex-swarm-{N} --lines 5"
@@ -0,0 +1,113 @@
1
+ # Codex Profile Routing — 7 PRDs
2
+
3
+ ## Routing Method
4
+
5
+ Following SKILL.md Step 4 profile routing tables.
6
+
7
+ ### Size Estimation Signals
8
+
9
+ | Signal | Method |
10
+ |--------|--------|
11
+ | PRD length | line count |
12
+ | Affected files | file paths mentioned in PRD |
13
+ | High-cost keywords | "architecture", "migration", "refactoring" |
14
+ | Dependency depth | references to other issues/PRDs |
15
+
16
+ ### Size Thresholds
17
+
18
+ | Size | PRD lines | Affected files | High-cost keywords |
19
+ |------|-----------|----------------|--------------------|
20
+ | XL | 80+ | 6+ | 2+ |
21
+ | L | 40-80 | 3-5 | 0-1 |
22
+ | M | 20-40 | 1-2 | 0 |
23
+ | S | <20 | 1 | 0 |
24
+
25
+ ---
26
+
27
+ ## Per-PRD Routing
28
+
29
+ ### Issue #24 — remote-spawn file transfer
30
+ - **Lines**: 73
31
+ - **Affected files**: `scripts/remote-spawn.mjs` (primary), prompt pipeline, scp path (~3 files)
32
+ - **High-cost keywords**: 0
33
+ - **Size**: L (standard)
34
+ - **Type**: implement
35
+ - **Profile**: `codex53_high`
36
+ - **Flags**: `-c 'model="gpt-5.3-codex"' -c 'model_reasoning_effort="high"'`
37
+
38
+ ### Issue #25 — resize blank-screen investigation
39
+ - **Lines**: 76
40
+ - **Affected files**: `scripts/remote-spawn.mjs`, psmux pane capture, SSH PTY (~4 files)
41
+ - **High-cost keywords**: 0
42
+ - **Size**: L (standard)
43
+ - **Type**: investigate
44
+ - **Profile**: `gpt54_high`
45
+ - **Flags**: `-c 'model="gpt-5.4"' -c 'model_reasoning_effort="high"'`
46
+
47
+ ### Issue #26 — session cleanup
48
+ - **Lines**: 70
49
+ - **Affected files**: `scripts/remote-spawn.mjs`, `hub/server.mjs` (~2-3 files)
50
+ - **High-cost keywords**: 0
51
+ - **Size**: L (standard)
52
+ - **Type**: implement
53
+ - **Profile**: `codex53_high`
54
+ - **Flags**: `-c 'model="gpt-5.3-codex"' -c 'model_reasoning_effort="high"'`
55
+
56
+ ### Issue #27 — HUD dashboard anchor
57
+ - **Lines**: 73
58
+ - **Affected files**: `hub/team/headless.mjs` (primary), WT config (~2 files)
59
+ - **High-cost keywords**: 0
60
+ - **Size**: L (standard)
61
+ - **Type**: implement
62
+ - **Profile**: `codex53_high`
63
+ - **Flags**: `-c 'model="gpt-5.3-codex"' -c 'model_reasoning_effort="high"'`
64
+
65
+ ### Issue #28 — headless-guard spawn deadlock
66
+ - **Lines**: 69
67
+ - **Affected files**: `scripts/headless-guard.mjs`, `tests/unit/headless-guard.test.mjs` (~2 files)
68
+ - **High-cost keywords**: 0
69
+ - **Size**: L (standard)
70
+ - **Type**: implement
71
+ - **Profile**: `codex53_high`
72
+ - **Flags**: `-c 'model="gpt-5.3-codex"' -c 'model_reasoning_effort="high"'`
73
+
74
+ ### Issue #29 — headless cwd propagation
75
+ - **Lines**: 70
76
+ - **Affected files**: `hub/team/cli/commands/start/parse-args.mjs`, `hub/team/cli/commands/start/start-headless.mjs`, `hub/team/headless.mjs`, `hub/team/backend.mjs`, `scripts/tfx-route.sh` (~5 files)
77
+ - **High-cost keywords**: 0
78
+ - **Size**: L (standard)
79
+ - **Type**: implement
80
+ - **Profile**: `codex53_high`
81
+ - **Flags**: `-c 'model="gpt-5.3-codex"' -c 'model_reasoning_effort="high"'`
82
+
83
+ ### Issue #30 — terminal minimize investigation
84
+ - **Lines**: 70
85
+ - **Affected files**: `scripts/remote-spawn.mjs`, `hub/team/headless.mjs`, WT focus (~3 files)
86
+ - **High-cost keywords**: 0
87
+ - **Size**: L (standard)
88
+ - **Type**: investigate
89
+ - **Profile**: `gpt54_high`
90
+ - **Flags**: `-c 'model="gpt-5.4"' -c 'model_reasoning_effort="high"'`
91
+
92
+ ---
93
+
94
+ ## Routing Summary Table
95
+
96
+ | # | Task | Size | Type | Profile | Model | Effort |
97
+ |---|------|------|------|---------|-------|--------|
98
+ | 24 | file-transfer | L | implement | `codex53_high` | gpt-5.3-codex | high |
99
+ | 25 | resize-blank | L | investigate | `gpt54_high` | gpt-5.4 | high |
100
+ | 26 | session-cleanup | L | implement | `codex53_high` | gpt-5.3-codex | high |
101
+ | 27 | dashboard-anchor | L | implement | `codex53_high` | gpt-5.3-codex | high |
102
+ | 28 | guard-deadlock | L | implement | `codex53_high` | gpt-5.3-codex | high |
103
+ | 29 | cwd-propagation | L | implement | `codex53_high` | gpt-5.3-codex | high |
104
+ | 30 | terminal-minimize | L | investigate | `gpt54_high` | gpt-5.4 | high |
105
+
106
+ ## Execution Config
107
+
108
+ | Setting | Value | Notes |
109
+ |---------|-------|-------|
110
+ | Execution mode | `--full-auto` | sandbox auto-approve |
111
+ | Worktree | enabled | per-session isolated worktree |
112
+ | psmux | enabled | session management |
113
+ | WT layout | single window, 7 tabs | user requested tabs |
@@ -0,0 +1,5 @@
1
+ {
2
+ "total_tokens": 50555,
3
+ "duration_ms": 218213,
4
+ "total_duration_seconds": 218.2
5
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "eval_id": 3,
3
+ "eval_name": "implicit-swarm-no-keywords",
4
+ "prompt": "이 PRD 3개 파일을 각각 독립적으로 코덱스한테 맡겨서 병렬로 구현해줘. docs/prd/auth-refactor.md, docs/prd/api-v2.md, docs/prd/cache-layer.md",
5
+ "assertions": [
6
+ {
7
+ "name": "3-paths-recognized",
8
+ "description": "사용자 제공 3개 파일 경로 인식",
9
+ "check": "classification.md에 auth-refactor, api-v2, cache-layer 모두 등장"
10
+ },
11
+ {
12
+ "name": "filename-classification",
13
+ "description": "파일명 기반 유형 분류 시도",
14
+ "check": "auth-refactor를 리팩터링으로, api-v2/cache-layer를 구현으로 분류"
15
+ },
16
+ {
17
+ "name": "profile-routing-applied",
18
+ "description": "자동 프로파일 라우팅 적용",
19
+ "check": "routing.md에 프로파일 매핑 존재 (codex53 또는 gpt54)"
20
+ },
21
+ {
22
+ "name": "worktree-isolation",
23
+ "description": "3개 독립 worktree 생성",
24
+ "check": "commands.sh에 git worktree add가 3개"
25
+ },
26
+ {
27
+ "name": "psmux-and-wt",
28
+ "description": "psmux 세션 + WT 탭 명령 생성",
29
+ "check": "commands.sh에 psmux + wt 명령 존재"
30
+ }
31
+ ]
32
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "expectations": [
3
+ {"text": "3-paths-recognized", "passed": true, "evidence": "auth-refactor, api-v2, cache-layer 모두 classification.md에 등장"},
4
+ {"text": "filename-classification", "passed": true, "evidence": "auth-refactor=리팩터링, api-v2=구현, cache-layer=구현"},
5
+ {"text": "profile-routing-applied", "passed": true, "evidence": "모두 codex53_high 라우팅"},
6
+ {"text": "worktree-isolation", "passed": true, "evidence": "3개 git worktree add 명령"},
7
+ {"text": "psmux-and-wt", "passed": true, "evidence": "psmux 세션 + WT 탭 명령 존재"}
8
+ ]
9
+ }