triflux 10.9.21 → 10.9.22

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 (99) hide show
  1. package/.claude-plugin/marketplace.json +34 -0
  2. package/.claude-plugin/plugin.json +22 -0
  3. package/config/mcp-registry.json +29 -0
  4. package/hub/account-broker.mjs +6 -4
  5. package/hub/cli-adapter-base.mjs +14 -14
  6. package/hub/lib/env-detect.mjs +47 -20
  7. package/hub/server.mjs +17 -15
  8. package/hub/team/headless.mjs +10 -0
  9. package/hub/team/swarm-hypervisor.mjs +2 -2
  10. package/hud/constants.mjs +24 -13
  11. package/hud/renderers.mjs +2 -1
  12. package/package.json +62 -21
  13. package/scripts/__tests__/keyword-detector.test.mjs +4 -4
  14. package/scripts/__tests__/release-governance.test.mjs +148 -0
  15. package/scripts/doctor-diagnose.mjs +6 -7
  16. package/scripts/lib/cross-review-utils.mjs +2 -2
  17. package/scripts/lib/mcp-filter.mjs +9 -5
  18. package/scripts/release/bump-version.mjs +77 -0
  19. package/scripts/release/check-sync.mjs +51 -0
  20. package/scripts/release/lib.mjs +303 -0
  21. package/scripts/release/prepare.mjs +85 -0
  22. package/scripts/release/publish.mjs +87 -0
  23. package/scripts/release/verify.mjs +81 -0
  24. package/scripts/release/version-manifest.json +26 -0
  25. package/scripts/remote-spawn.mjs +3 -3
  26. package/scripts/setup.mjs +18 -15
  27. package/scripts/tfx-route.sh +64 -8
  28. package/tui/codex-profile.mjs +457 -0
  29. package/tui/core.mjs +266 -0
  30. package/tui/doctor.mjs +375 -0
  31. package/tui/gemini-profile.mjs +299 -0
  32. package/tui/monitor-data.mjs +152 -0
  33. package/tui/monitor.mjs +339 -0
  34. package/tui/setup.mjs +598 -0
  35. package/CLAUDE.md +0 -212
  36. package/references/hosts.json +0 -46
  37. package/skills/tfx-workspace/async-tests/run-tests.sh +0 -203
  38. package/skills/tfx-workspace/evals/evals.json +0 -79
  39. package/skills/tfx-workspace/iteration-1/benchmark.json +0 -524
  40. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/eval_metadata.json +0 -11
  41. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/old_skill/grading.json +0 -25
  42. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/old_skill/outputs/analysis.md +0 -154
  43. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/old_skill/timing.json +0 -5
  44. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/with_skill/grading.json +0 -25
  45. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/with_skill/outputs/analysis.md +0 -126
  46. package/skills/tfx-workspace/iteration-1/codex-gemini-remap/with_skill/timing.json +0 -5
  47. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/eval_metadata.json +0 -11
  48. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/old_skill/grading.json +0 -25
  49. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/old_skill/outputs/analysis.md +0 -119
  50. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/old_skill/timing.json +0 -5
  51. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/with_skill/grading.json +0 -25
  52. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/with_skill/outputs/analysis.md +0 -115
  53. package/skills/tfx-workspace/iteration-1/doctor-diagnosis/with_skill/timing.json +0 -5
  54. package/skills/tfx-workspace/iteration-1/hub-start-sequence/eval_metadata.json +0 -10
  55. package/skills/tfx-workspace/iteration-1/hub-start-sequence/old_skill/grading.json +0 -20
  56. package/skills/tfx-workspace/iteration-1/hub-start-sequence/old_skill/outputs/analysis.md +0 -86
  57. package/skills/tfx-workspace/iteration-1/hub-start-sequence/old_skill/timing.json +0 -5
  58. package/skills/tfx-workspace/iteration-1/hub-start-sequence/with_skill/grading.json +0 -20
  59. package/skills/tfx-workspace/iteration-1/hub-start-sequence/with_skill/outputs/analysis.md +0 -81
  60. package/skills/tfx-workspace/iteration-1/hub-start-sequence/with_skill/timing.json +0 -5
  61. package/skills/tfx-workspace/iteration-1/multi-team-creation/eval_metadata.json +0 -12
  62. package/skills/tfx-workspace/iteration-1/multi-team-creation/old_skill/grading.json +0 -30
  63. package/skills/tfx-workspace/iteration-1/multi-team-creation/old_skill/outputs/analysis.md +0 -316
  64. package/skills/tfx-workspace/iteration-1/multi-team-creation/old_skill/timing.json +0 -5
  65. package/skills/tfx-workspace/iteration-1/multi-team-creation/with_skill/grading.json +0 -30
  66. package/skills/tfx-workspace/iteration-1/multi-team-creation/with_skill/outputs/analysis.md +0 -352
  67. package/skills/tfx-workspace/iteration-1/multi-team-creation/with_skill/timing.json +0 -5
  68. package/skills/tfx-workspace/iteration-1/review.html +0 -1325
  69. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/eval_metadata.json +0 -12
  70. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/old_skill/grading.json +0 -30
  71. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/old_skill/outputs/analysis.md +0 -97
  72. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/old_skill/timing.json +0 -5
  73. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/with_skill/grading.json +0 -30
  74. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/with_skill/outputs/analysis.md +0 -94
  75. package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/with_skill/timing.json +0 -5
  76. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/eval_metadata.json +0 -12
  77. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/old_skill/grading.json +0 -30
  78. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/old_skill/outputs/analysis.md +0 -209
  79. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/old_skill/timing.json +0 -5
  80. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/with_skill/grading.json +0 -30
  81. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/with_skill/outputs/analysis.md +0 -193
  82. package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/with_skill/timing.json +0 -5
  83. package/skills/tfx-workspace/iteration-2/benchmark.json +0 -144
  84. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/eval_metadata.json +0 -13
  85. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/old_skill/grading.json +0 -35
  86. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/old_skill/outputs/analysis.md +0 -382
  87. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/old_skill/timing.json +0 -5
  88. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/with_skill/grading.json +0 -35
  89. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/with_skill/outputs/analysis.md +0 -333
  90. package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/with_skill/timing.json +0 -5
  91. package/skills/tfx-workspace/iteration-2/review.html +0 -1325
  92. package/skills/tfx-workspace/skill-snapshot/tfx-auto/SKILL.md +0 -217
  93. package/skills/tfx-workspace/skill-snapshot/tfx-auto-codex/SKILL.md +0 -77
  94. package/skills/tfx-workspace/skill-snapshot/tfx-codex/SKILL.md +0 -65
  95. package/skills/tfx-workspace/skill-snapshot/tfx-doctor/SKILL.md +0 -94
  96. package/skills/tfx-workspace/skill-snapshot/tfx-gemini/SKILL.md +0 -82
  97. package/skills/tfx-workspace/skill-snapshot/tfx-hub/SKILL.md +0 -133
  98. package/skills/tfx-workspace/skill-snapshot/tfx-multi/SKILL.md +0 -426
  99. package/skills/tfx-workspace/skill-snapshot/tfx-setup/SKILL.md +0 -101
@@ -1,154 +0,0 @@
1
- # tfx-codex 라우팅 분석 — DRY RUN
2
-
3
- **요청**: `/tfx-codex API 문서를 작성하고 디자인 가이드도 만들어줘`
4
- **분석 기준 SKILL**: `skills/tfx-workspace/skill-snapshot/tfx-codex/SKILL.md`
5
-
6
- ---
7
-
8
- ## 1. 에이전트 리매핑 테이블
9
-
10
- 이 요청은 두 개의 독립 서브태스크로 분해됩니다:
11
- - 서브태스크 A: "API 문서를 작성" → **writer** 역할
12
- - 서브태스크 B: "디자인 가이드도 만들어줘" → **designer** 역할
13
-
14
- | 에이전트 | 원래 CLI (tfx-auto) | tfx-codex에서 | effort 파라미터 | MCP 프로필 |
15
- |----------|---------------------|---------------|-----------------|-----------|
16
- | **writer** | ~~Gemini~~ (`docs` MCP) | **Codex** (effort: spark_fast) — Codex Spark 경량 문서 | `spark_fast` | `analyze` |
17
- | **designer** | ~~Gemini~~ (`docs` MCP) | **Codex** (effort: high) — UI 코드 생성 | `high` | `implement` |
18
-
19
- ### 원본 tfx-auto 기준 (리매핑 전)
20
-
21
- `tfx-auto` SKILL.md의 에이전트 매핑 테이블에서:
22
-
23
- ```
24
- | gemini / designer / writer | Gemini | docs |
25
- ```
26
-
27
- 즉, 원래 두 역할 모두 Gemini CLI + `docs` MCP로 실행됩니다.
28
-
29
- ### tfx-codex 기준 (리매핑 후)
30
-
31
- `tfx-codex` SKILL.md의 에이전트 라우팅 테이블에서:
32
-
33
- ```
34
- | designer | ~~Gemini~~ | Codex (effort: high) — UI 코드 생성 | implement |
35
- | writer | ~~Gemini~~ | Codex Spark (effort: spark_fast) — 경량 문서 | analyze |
36
- ```
37
-
38
- ---
39
-
40
- ## 2. TFX_CLI_MODE 환경변수
41
-
42
- ```
43
- TFX_CLI_MODE=codex
44
- ```
45
-
46
- 이 환경변수는 tfx-route.sh에 전달되어 Gemini 에이전트가 선택될 경우 Codex로 강제 교체하도록 지시합니다. Phase 2 트리아지에서 Codex 분류기가 `gemini`를 반환하더라도 이 값에 의해 `codex`로 교체됩니다.
47
-
48
- ---
49
-
50
- ## 3. Phase 2 트리아지 동작
51
-
52
- **자동 모드** (`/tfx-codex "API 문서를 작성하고 디자인 가이드도 만들어줘"`):
53
-
54
- 1. **Codex 분류** (`--full-auto --skip-git-repo-check`):
55
- - 입력 파싱 결과 예상 JSON:
56
- ```json
57
- {
58
- "parts": [
59
- { "description": "API 문서 작성", "agent": "gemini" },
60
- { "description": "디자인 가이드 생성", "agent": "gemini" }
61
- ]
62
- }
63
- ```
64
- - `TFX_CLI_MODE=codex` 적용 → 두 항목 모두 `"gemini"` → **`"codex"`로 강제 교체**
65
-
66
- 2. **Opus 인라인 분해** (강제 변환 이후):
67
- - `writer` 역할: MCP 프로필 `analyze` 할당
68
- - `designer` 역할: MCP 프로필 `implement` 할당
69
- - 두 서브태스크는 독립적(INDEPENDENT), `graph_type: "INDEPENDENT"`
70
-
71
- 3. **서브태스크 수 = 2** → tfx-multi Native Teams 모드로 자동 전환 (tfx-auto 규칙: 2개 이상 시 tfx-multi Phase 3)
72
-
73
- ---
74
-
75
- ## 4. 생성되는 Bash 커맨드 (서브태스크별)
76
-
77
- 서브태스크가 2개이므로 tfx-multi Phase 3a(TeamCreate) → Phase 3b(TaskCreate) → Phase 3c(Agent 래퍼 spawn) 순서로 실행됩니다. 각 Agent 래퍼 내부에서 다음 Bash 커맨드가 실행됩니다:
78
-
79
- ### 서브태스크 A — writer (API 문서 작성)
80
-
81
- ```bash
82
- TFX_CLI_MODE=codex bash ~/.claude/scripts/tfx-route.sh writer 'API 문서를 작성해줘' analyze
83
- ```
84
-
85
- - `writer` 에이전트: Codex Spark (`effort: spark_fast`) 로 실행
86
- - MCP 프로필: `analyze` (문서 기반 리서치+작성)
87
- - `run_in_background=true` (INDEPENDENT 병렬 실행)
88
-
89
- ### 서브태스크 B — designer (디자인 가이드 생성)
90
-
91
- ```bash
92
- TFX_CLI_MODE=codex bash ~/.claude/scripts/tfx-route.sh designer '디자인 가이드를 만들어줘' implement
93
- ```
94
-
95
- - `designer` 에이전트: Codex (`effort: high`) 로 실행
96
- - MCP 프로필: `implement` (코드 기반 UI 작업)
97
- - `run_in_background=true` (INDEPENDENT 병렬 실행)
98
-
99
- > 두 서브태스크는 `depends_on` 없이 Level 0에서 병렬 실행됩니다.
100
-
101
- ---
102
-
103
- ## 5. MCP 프로필 변화 상세
104
-
105
- | 에이전트 | tfx-auto 원본 MCP | tfx-codex 변경 후 MCP | 변경 이유 |
106
- |----------|-------------------|----------------------|----------|
107
- | **writer** | `docs` | `analyze` | Gemini → Codex 전환 시 문서 리서치+작성에 적합한 `analyze` 프로필 사용 |
108
- | **designer** | `docs` | `implement` | Gemini → Codex 전환 시 UI 코드 생성에 적합한 `implement` 프로필 사용 |
109
-
110
- 원래 `docs` MCP는 Gemini CLI의 웹 검색/문서 접근 기능을 전제로 설계되었습니다. Codex로 리매핑 시 각 역할의 실제 작업 성격에 맞는 프로필로 교체됩니다.
111
-
112
- ---
113
-
114
- ## 6. 워크플로우 레퍼런스
115
-
116
- **tfx-codex는 tfx-auto SKILL.md의 Phase 1~6 전체를 그대로 따릅니다.**
117
-
118
- ```
119
- Phase 1: 입력 파싱 — 트리거 `/tfx-codex` 인식, 인자 추출
120
- Phase 2: 트리아지
121
- - Codex 분류 실행 (TFX_CLI_MODE=codex)
122
- - gemini 반환값 → codex 강제 교체
123
- - Opus 인라인 분해 (writer→analyze MCP, designer→implement MCP)
124
- Phase 3: CLI 실행
125
- - TFX_CLI_MODE=codex 환경변수 포함
126
- - tfx-route.sh 호출
127
- - 서브태스크 2개 → tfx-multi Phase 3 전환
128
- Phase 4: 결과 수집
129
- - exit_code 0: === OUTPUT === 섹션 파싱
130
- - exit_code 124: === PARTIAL OUTPUT === 사용
131
- - 그 외: STDERR → Claude fallback
132
- Phase 5: 실패 처리
133
- - 1차: Claude executor(sonnet) fallback
134
- - 2차: 실패 보고 + 성공 결과만 종합
135
- Phase 6: 보고 형식 출력
136
- - 모드/그래프/레벨/서브태스크 상태 테이블
137
- - Token Savings Report
138
- ```
139
-
140
- **핵심 차이점 요약**: Phase 2와 Phase 3에서만 동작이 달라집니다.
141
- - Phase 2: gemini 분류 결과를 codex로 강제 변환 + MCP 프로필 재할당
142
- - Phase 3: 모든 tfx-route.sh 호출에 `TFX_CLI_MODE=codex` 접두 추가
143
-
144
- ---
145
-
146
- ## 7. 요약
147
-
148
- 이 요청(`/tfx-codex API 문서를 작성하고 디자인 가이드도 만들어줘`)은 다음과 같이 처리됩니다:
149
-
150
- 1. 두 서브태스크로 분해 (INDEPENDENT 그래프)
151
- 2. 원래 Gemini로 라우팅될 `writer`와 `designer` 모두 Codex로 리매핑
152
- 3. MCP 프로필: writer → `analyze`, designer → `implement` (원본 `docs`에서 변경)
153
- 4. 서브태스크 2개이므로 tfx-multi Native Teams 모드로 자동 전환하여 병렬 실행
154
- 5. 전체 Phase 1~6은 tfx-auto 워크플로우를 그대로 따름
@@ -1,5 +0,0 @@
1
- {
2
- "total_tokens": 19802,
3
- "duration_ms": 85239,
4
- "total_duration_seconds": 85.2
5
- }
@@ -1,25 +0,0 @@
1
- {
2
- "expectations": [
3
- {
4
- "text": "designer remapped to Codex with effort: high",
5
- "passed": true,
6
- "evidence": "Agent output: designer → Codex (effort: high)"
7
- },
8
- {
9
- "text": "writer remapped to Codex Spark with effort: spark_fast",
10
- "passed": true,
11
- "evidence": "Agent output: writer → Codex Spark (effort: spark_fast)"
12
- },
13
- {
14
- "text": "Sets TFX_CLI_MODE=codex environment variable",
15
- "passed": true,
16
- "evidence": "Agent output: 'TFX_CLI_MODE: Set to codex for every Phase 3 call'"
17
- },
18
- {
19
- "text": "Changes MCP profile: designer->implement, writer->analyze",
20
- "passed": true,
21
- "evidence": "Agent output: writer→analyze, designer→implement (changed from docs)"
22
- }
23
- ],
24
- "summary": { "passed": 4, "failed": 0, "total": 4, "pass_rate": 1.0 }
25
- }
@@ -1,126 +0,0 @@
1
- # tfx-codex Routing Analysis — DRY RUN
2
-
3
- **User Request:** `/tfx-codex API 문서를 작성하고 디자인 가이드도 만들어줘`
4
-
5
- **Skill Definition Source:** `skills/tfx-codex/SKILL.md`
6
-
7
- ---
8
-
9
- ## 1. Trigger Matching
10
-
11
- The command prefix `/tfx-codex` matches the skill trigger `tfx-codex` exactly.
12
- The skill is invoked with the argument: `"API 문서를 작성하고 디자인 가이드도 만들어줘"`
13
-
14
- ---
15
-
16
- ## 2. TFX_CLI_MODE Environment Variable
17
-
18
- ```
19
- TFX_CLI_MODE=codex
20
- ```
21
-
22
- This variable is set for every CLI execution in Phase 3. It forces `tfx-route.sh` to substitute
23
- any `gemini` classification with `codex`, ensuring Gemini CLI is never called.
24
-
25
- ---
26
-
27
- ## 3. Task Decomposition (Phase 2 Triage)
28
-
29
- The user request contains two distinct subtasks:
30
-
31
- | # | Subtask | Natural Agent Assignment | tfx-codex Override |
32
- |---|---------|-------------------------|--------------------|
33
- | 1 | API 문서를 작성 (Write API documentation) | **writer** (originally Gemini) | **Codex Spark** |
34
- | 2 | 디자인 가이드도 만들어줘 (Create design guide) | **designer** (originally Gemini) | **Codex** (effort: high) |
35
-
36
- During Phase 2, the Opus decomposition step detects that both subtasks would ordinarily route to
37
- Gemini-backed roles. The `TFX_CLI_MODE=codex` override forces:
38
- - Any `gemini` classification result → replaced with `codex`
39
- - `designer` and `writer` agent types → mapped to Codex with adjusted MCP profiles
40
-
41
- ---
42
-
43
- ## 4. Agent Remapping Table
44
-
45
- | 에이전트 | 원래 CLI | tfx-codex 매핑 | effort 플래그 |
46
- |----------|---------|---------------|--------------|
47
- | **designer** | ~~Gemini~~ | **Codex** | `effort: high` — UI/시각 코드 생성 |
48
- | **writer** | ~~Gemini~~ | **Codex Spark** | `effort: spark_fast` — 경량 문서 작성 |
49
- | executor, build-fixer, debugger | Codex | Codex | 변경 없음 |
50
- | architect, planner, critic, analyst | Codex | Codex | 변경 없음 |
51
- | code-reviewer, security-reviewer | Codex | Codex | 변경 없음 |
52
- | scientist, document-specialist | Codex | Codex | 변경 없음 |
53
- | explore | Claude Haiku | Claude Haiku | 변경 없음 |
54
- | verifier, test-engineer | Claude Sonnet | Claude Sonnet | 변경 없음 |
55
-
56
- ---
57
-
58
- ## 5. MCP Profile Changes for designer and writer
59
-
60
- | 에이전트 | 기본 MCP 프로필 | tfx-codex MCP 프로필 | 이유 |
61
- |----------|--------------|---------------------|------|
62
- | **designer** | (Gemini 전용 — 없음) | `implement` | 코드 기반 UI 작업으로 처리 |
63
- | **writer** | (Gemini 전용 — 없음) | `analyze` | 문서 기반 리서치 + 작성 워크플로우 |
64
-
65
- Both roles lose access to Gemini's multimodal/creative profile and are instead assigned
66
- Codex-compatible MCP profiles that match the nature of the work:
67
- - `implement` for designer: treats the design guide as a code artifact (e.g., CSS, component specs)
68
- - `analyze` for writer: treats API documentation as a research-and-summarize task
69
-
70
- ---
71
-
72
- ## 6. Exact Bash Commands Generated (Phase 3)
73
-
74
- ### Subtask 1 — writer: API 문서 작성
75
-
76
- ```bash
77
- TFX_CLI_MODE=codex bash ~/.claude/scripts/tfx-route.sh writer 'API 문서를 작성해줘' analyze
78
- ```
79
-
80
- - Agent: `writer` → remapped to **Codex Spark** (`effort: spark_fast`)
81
- - MCP Profile: `analyze`
82
- - The `tfx-route.sh` script reads `TFX_CLI_MODE=codex` and substitutes the Gemini path with
83
- a Codex Spark invocation.
84
-
85
- ### Subtask 2 — designer: 디자인 가이드 작성
86
-
87
- ```bash
88
- TFX_CLI_MODE=codex bash ~/.claude/scripts/tfx-route.sh designer '디자인 가이드를 만들어줘' implement
89
- ```
90
-
91
- - Agent: `designer` → remapped to **Codex** (`effort: high`)
92
- - MCP Profile: `implement`
93
- - The `tfx-route.sh` script reads `TFX_CLI_MODE=codex` and substitutes the Gemini path with
94
- a full-effort Codex invocation.
95
-
96
- ---
97
-
98
- ## 7. Workflow Reference — tfx-auto Phases Followed
99
-
100
- Per the skill definition: *"tfx-auto SKILL.md의 전체 워크플로우(커맨드 숏컷 → 트리아지 → 실행 → 결과 파싱 → 보고)를 그대로 따릅니다."*
101
-
102
- The exact same phase sequence as `tfx-auto` is executed:
103
-
104
- | Phase | Name | tfx-codex 특이사항 |
105
- |-------|------|--------------------|
106
- | Phase 1 | 커맨드 숏컷 파싱 | 동일 (`N:codex` 숏컷 지원) |
107
- | Phase 2 | 트리아지 (Opus 분해) | `gemini` 분류 결과를 `codex`로 강제 변환; designer/writer → Codex + MCP 재할당 |
108
- | Phase 3 | CLI 실행 | `TFX_CLI_MODE=codex` 환경변수 주입하여 `tfx-route.sh` 호출 |
109
- | Phase 4 | 결과 파싱 | 동일 |
110
- | Phase 5 | 보고 | 동일 |
111
-
112
- The only deviation from `tfx-auto` occurs in **Phase 2** (forced gemini→codex substitution)
113
- and **Phase 3** (environment variable injection). All other phases are identical.
114
-
115
- ---
116
-
117
- ## 8. Summary
118
-
119
- For the request `/tfx-codex API 문서를 작성하고 디자인 가이드도 만들어줘`:
120
-
121
- - Two subtasks are identified: **writer** (API docs) and **designer** (design guide).
122
- - Both roles were originally mapped to **Gemini CLI** in the default `tfx-auto` routing.
123
- - `tfx-codex` remaps them: `writer` → Codex Spark (`analyze` MCP), `designer` → Codex high-effort (`implement` MCP).
124
- - `TFX_CLI_MODE=codex` is injected at Phase 3 for every `tfx-route.sh` call.
125
- - The full `tfx-auto` 5-phase workflow is followed with the two overrides noted above.
126
- - Gemini CLI is never invoked; no Gemini dependency exists.
@@ -1,5 +0,0 @@
1
- {
2
- "total_tokens": 14889,
3
- "duration_ms": 69725,
4
- "total_duration_seconds": 69.7
5
- }
@@ -1,11 +0,0 @@
1
- {
2
- "eval_id": 4,
3
- "eval_name": "doctor-diagnosis",
4
- "prompt": "HUD가 안 보이고 codex도 안 되는데 어떻게 해?",
5
- "assertions": [
6
- "Runs 'triflux doctor' as first diagnostic step",
7
- "Suggests '--fix' mode for auto-repair",
8
- "Mentions HUD and CLI path checks in explanation",
9
- "Does NOT jump straight to --reset (that's for cache only)"
10
- ]
11
- }
@@ -1,25 +0,0 @@
1
- {
2
- "expectations": [
3
- {
4
- "text": "Runs 'triflux doctor' as first diagnostic step",
5
- "passed": true,
6
- "evidence": "Agent output: 'Exact command: Bash(\"triflux doctor\")'"
7
- },
8
- {
9
- "text": "Suggests '--fix' mode for auto-repair",
10
- "passed": true,
11
- "evidence": "Agent output: 'after the diagnostic report, offer /tfx-doctor --fix as the next step'"
12
- },
13
- {
14
- "text": "Mentions HUD and CLI path checks in explanation",
15
- "passed": true,
16
- "evidence": "Agent output: 'HUD installation and config, Codex/Gemini/Claude CLI paths — directly relevant'"
17
- },
18
- {
19
- "text": "Does NOT jump straight to --reset (that's for cache only)",
20
- "passed": true,
21
- "evidence": "Agent output: '--reset is destructive and reserved for explicit cache-clear request'"
22
- }
23
- ],
24
- "summary": { "passed": 4, "failed": 0, "total": 4, "pass_rate": 1.0 }
25
- }
@@ -1,119 +0,0 @@
1
- # tfx-doctor Routing Analysis
2
-
3
- ## User Request
4
- "HUD가 안 보이고 codex도 안 되는데 어떻게 해?"
5
-
6
- ---
7
-
8
- ## 1. Mode Selection
9
-
10
- **Mode used: default (진단만)**
11
-
12
- Rationale:
13
- - The user is reporting two symptoms: HUD not visible and Codex not working.
14
- - The request does not contain any explicit repair intent ("--fix"), cache reset request ("캐시 초기화", "리셋", "reset"), or destructive intent.
15
- - The skill's auto-suggest trigger list includes both "HUD가 안 보여" and "codex/gemini가 안 돼", which directly match the user's message.
16
- - Because no `--fix` or `--reset` flag is implied, the skill begins in read-only diagnostic mode.
17
- - After the diagnostic report is shown, `--fix` would be **suggested** to the user as a next step.
18
-
19
- ---
20
-
21
- ## 2. Exact Bash Command That Would Be Run
22
-
23
- ```bash
24
- Bash("triflux doctor")
25
- ```
26
-
27
- No additional flags. This is the read-only diagnostic path.
28
-
29
- ---
30
-
31
- ## 3. Diagnostics Checked
32
-
33
- The `triflux doctor` command (default mode) checks all of the following:
34
-
35
- | Diagnostic Item | Relevance to This Request |
36
- |----------------|--------------------------|
37
- | tfx-route.sh 설치 상태 | General health baseline |
38
- | HUD 설치 및 설정 상태 | **Directly relevant** — user reports HUD not visible |
39
- | Codex/Gemini/Claude CLI 경로 (크로스 셸) | **Directly relevant** — user reports Codex not working |
40
- | 스킬 설치 상태 | General health |
41
- | 플러그인 등록 상태 | General health |
42
- | MCP 인벤토리 캐시 | Could affect HUD and CLI display |
43
- | CLI 이슈 트래커 | May log the Codex failure |
44
- | 잔존 팀(orphan teams) 감지 (`~/.claude/teams/`) | General health |
45
-
46
- All eight diagnostic areas are checked in default mode — none are skipped.
47
-
48
- ---
49
-
50
- ## 4. Whether --fix Would Be Suggested
51
-
52
- **Yes.** After the diagnostic report is displayed, `--fix` would be recommended to the user as the next step if any issues are found (e.g., HUD misconfiguration, missing Codex CLI path, corrupted cache). The skill definition explicitly states:
53
-
54
- > 수정 모드 (`/tfx-doctor --fix`): 진단 전에 자동 수정을 시도합니다.
55
-
56
- The agent would prompt: "문제가 발견되었습니다. `/tfx-doctor --fix`를 실행하여 자동 수정을 시도하시겠습니까?"
57
-
58
- ---
59
-
60
- ## 5. Whether --reset Would Be Used (and Why/Why Not)
61
-
62
- **No. `--reset` would NOT be used.**
63
-
64
- Reasons:
65
- - The user's message contains no reset/cache-clear intent ("캐시 초기화", "리셋", "reset").
66
- - `--reset` is a destructive operation that wipes all triflux-related caches (8 files including claude-usage-cache.json, mcp-inventory.json, etc.).
67
- - The symptoms described (HUD not visible, Codex not working) are diagnostic-first scenarios — they should be investigated before resorting to full cache deletion.
68
- - Per the skill definition, `--reset` is reserved for explicit cache-initialization requests.
69
- - If `--fix` still leaves issues unresolved, the agent would then consider suggesting `--reset` as a last resort, but only with user confirmation.
70
-
71
- ---
72
-
73
- ## 6. Expected Report Format
74
-
75
- After `triflux doctor` runs, the agent reports results in this structure:
76
-
77
- ```
78
- ## triflux doctor 진단 결과
79
-
80
- | 항목 | 상태 | 비고 |
81
- |------|------|------|
82
- | tfx-route.sh | ✓ / ✗ | ... |
83
- | HUD | ✓ / ✗ | 설치됨/설치 안됨/설정 오류 |
84
- | Codex CLI 경로 | ✓ / ✗ | 경로 발견/미발견 |
85
- | Gemini CLI 경로 | ✓ / ✗ | ... |
86
- | Claude CLI 경로 | ✓ / ✗ | ... |
87
- | 스킬 설치 상태 | ✓ / ✗ | ... |
88
- | 플러그인 등록 | ✓ / ✗ | ... |
89
- | MCP 인벤토리 캐시 | ✓ / ✗ | ... |
90
- | CLI 이슈 트래커 | ✓ / ✗ | ... |
91
- | orphan teams | ✓ / ✗ | ... |
92
-
93
- 이슈가 발견되었습니다. `/tfx-doctor --fix`로 자동 수정을 시도할 수 있습니다.
94
- ```
95
-
96
- If no issues are found:
97
- ```
98
- 모든 진단 항목이 정상입니다.
99
- ```
100
-
101
- If `--fix` is subsequently run and issues still remain after repair:
102
- ```
103
- Codex/Gemini 설치는 수동으로 진행해야 합니다. (설치 안내 링크 또는 명령어 제공)
104
- ```
105
-
106
- ---
107
-
108
- ## Summary
109
-
110
- | Decision Point | Result |
111
- |----------------|--------|
112
- | Skill triggered | tfx-doctor |
113
- | Mode | default (read-only diagnostic) |
114
- | Command | `Bash("triflux doctor")` |
115
- | HUD diagnosed | Yes |
116
- | Codex CLI path diagnosed | Yes |
117
- | --fix suggested after report | Yes (if issues found) |
118
- | --reset used | No |
119
- | --reset trigger condition | Only if user explicitly requests cache reset |
@@ -1,5 +0,0 @@
1
- {
2
- "total_tokens": 14482,
3
- "duration_ms": 48260,
4
- "total_duration_seconds": 48.3
5
- }
@@ -1,25 +0,0 @@
1
- {
2
- "expectations": [
3
- {
4
- "text": "Runs 'triflux doctor' as first diagnostic step",
5
- "passed": true,
6
- "evidence": "Agent output: 'Exact command: Bash(\"triflux doctor\")'"
7
- },
8
- {
9
- "text": "Suggests '--fix' mode for auto-repair",
10
- "passed": true,
11
- "evidence": "Agent output: '--fix would be suggested to the user after the diagnosis report is returned'"
12
- },
13
- {
14
- "text": "Mentions HUD and CLI path checks in explanation",
15
- "passed": true,
16
- "evidence": "Agent output: 'HUD installation and config, Codex/Gemini/Claude CLI paths — directly relevant to symptoms'"
17
- },
18
- {
19
- "text": "Does NOT jump straight to --reset (that's for cache only)",
20
- "passed": true,
21
- "evidence": "Agent output: '--reset is destructive and reserved for explicit reset requests; user never said 리셋/초기화/reset'"
22
- }
23
- ],
24
- "summary": { "passed": 4, "failed": 0, "total": 4, "pass_rate": 1.0 }
25
- }
@@ -1,115 +0,0 @@
1
- # tfx-doctor Routing Analysis
2
-
3
- ## User Request
4
-
5
- > "HUD가 안 보이고 codex도 안 되는데 어떻게 해?"
6
-
7
- ---
8
-
9
- ## Skill Matched
10
-
11
- **tfx-doctor** (`skills/tfx-doctor/SKILL.md`)
12
-
13
- The request directly matches two of the documented auto-suggestion triggers:
14
- - "HUD가 안 보여" → maps to "HUD가 안 보이고"
15
- - "codex/gemini가 안 돼" → maps to "codex도 안 되는데"
16
-
17
- ---
18
-
19
- ## Mode Selected
20
-
21
- **Default mode** (`/tfx-doctor` — 진단만, 읽기 전용)
22
-
23
- Rationale: The user is reporting symptoms ("안 보이고", "안 되는데") but has not asked for an automatic fix, a reset, or a cache wipe. The skill definition states that the default mode is read-only diagnosis only. `--fix` would be *suggested* after the diagnosis if issues are found, but it would not be applied automatically without user consent. `--reset` is not appropriate here because the user has not said "캐시 초기화", "리셋", or "reset".
24
-
25
- ---
26
-
27
- ## Exact Bash Command That Would Be Run
28
-
29
- ```bash
30
- Bash("triflux doctor")
31
- ```
32
-
33
- No flags. This is the single command executed in default mode.
34
-
35
- ---
36
-
37
- ## Diagnostics Checked
38
-
39
- The skill definition lists the following items that `triflux doctor` inspects:
40
-
41
- | # | Diagnostic Item | Relevance to this Request |
42
- |---|-----------------|--------------------------|
43
- | 1 | tfx-route.sh 설치 상태 | Baseline routing check |
44
- | 2 | HUD 설치 및 설정 상태 | Directly relevant — HUD가 안 보임 |
45
- | 3 | Codex/Gemini/Claude CLI 경로 (크로스 셸) | Directly relevant — codex 안 됨 |
46
- | 4 | 스킬 설치 상태 | General health |
47
- | 5 | 플러그인 등록 상태 | General health |
48
- | 6 | MCP 인벤토리 캐시 | Could affect HUD/Codex behaviour |
49
- | 7 | CLI 이슈 트래커 | May surface logged errors |
50
- | 8 | 잔존 팀(orphan teams) 감지 (`~/.claude/teams/`) | General health |
51
-
52
- Both primary symptoms (HUD invisible, Codex not working) are covered by items 2 and 3.
53
-
54
- ---
55
-
56
- ## --fix Suggestion
57
-
58
- **Yes — `--fix` would be suggested** after the diagnosis report is returned to the user.
59
-
60
- The skill's error-handling table states: "if issues remain after `--fix`, manual installation of Codex/Gemini is guided." This implies the flow is:
61
-
62
- 1. Run default diagnosis → report findings.
63
- 2. If issues are found, offer the user the option to re-run with `--fix`.
64
- 3. User decides; skill does not auto-escalate.
65
-
66
- ---
67
-
68
- ## --reset Decision
69
-
70
- **`--reset` would NOT be used.**
71
-
72
- Reasons:
73
- - The user did not request a cache wipe, full reset, or use the words "리셋", "초기화", or "reset".
74
- - `--reset` is a destructive, irreversible operation (deletes all cache files listed in the skill) and must only be triggered by explicit user intent.
75
- - The reported symptoms (HUD invisible, Codex not working) are diagnostic problems, not confirmed cache-corruption problems. A reset would be premature without diagnosis confirming a cache issue.
76
-
77
- ---
78
-
79
- ## Expected Report Format
80
-
81
- After `triflux doctor` completes, the output is relayed to the user verbatim (per the skill: "결과를 사용자에게 보고합니다"). Based on the diagnostic items, the expected report structure is:
82
-
83
- ```
84
- [triflux doctor] 진단 결과
85
- ─────────────────────────────────
86
- ✓ / ✗ tfx-route.sh 설치 상태
87
- ✓ / ✗ HUD 설치 및 설정 상태
88
- ✓ / ✗ Codex CLI 경로
89
- ✓ / ✗ Gemini CLI 경로
90
- ✓ / ✗ Claude CLI 경로
91
- ✓ / ✗ 스킬 설치 상태
92
- ✓ / ✗ 플러그인 등록 상태
93
- ✓ / ✗ MCP 인벤토리 캐시
94
- ✓ / ✗ CLI 이슈 트래커
95
- ✓ / ✗ 잔존 팀(orphan teams)
96
- ─────────────────────────────────
97
- N개 이슈 발견. --fix로 자동 수정하려면: /tfx-doctor --fix
98
- ```
99
-
100
- If `--fix` is subsequently accepted by the user, the report repeats after remediation, showing whether items moved from ✗ to ✓. Any items that `--fix` cannot resolve (e.g., Codex not installed) are surfaced with a manual-installation note.
101
-
102
- ---
103
-
104
- ## Summary
105
-
106
- | Decision Point | Answer |
107
- |----------------|--------|
108
- | Skill triggered | tfx-doctor |
109
- | Mode | default (진단만) |
110
- | Command run | `triflux doctor` |
111
- | HUD checked | Yes |
112
- | CLI paths checked | Yes (Codex, Gemini, Claude) |
113
- | --fix suggested | Yes, after diagnosis |
114
- | --fix auto-applied | No |
115
- | --reset used | No |
@@ -1,5 +0,0 @@
1
- {
2
- "total_tokens": 14499,
3
- "duration_ms": 53804,
4
- "total_duration_seconds": 53.8
5
- }
@@ -1,10 +0,0 @@
1
- {
2
- "eval_id": 5,
3
- "eval_name": "hub-start-sequence",
4
- "prompt": "/tfx-hub start",
5
- "assertions": [
6
- "Runs 'node hub/server.mjs' with run_in_background=true",
7
- "Mentions port 27888 and /mcp endpoint",
8
- "Does NOT try to run any triage or routing"
9
- ]
10
- }
@@ -1,20 +0,0 @@
1
- {
2
- "expectations": [
3
- {
4
- "text": "Runs 'node hub/server.mjs' with run_in_background=true",
5
- "passed": true,
6
- "evidence": "Agent output: 'Bash(\"node hub/server.mjs\", run_in_background=true)'"
7
- },
8
- {
9
- "text": "Mentions port 27888 and /mcp endpoint",
10
- "passed": true,
11
- "evidence": "Agent output: 'Port: 27888, MCP endpoint: http://127.0.0.1:27888/mcp'"
12
- },
13
- {
14
- "text": "Does NOT try to run any triage or routing",
15
- "passed": true,
16
- "evidence": "Agent correctly identified as command match, not fallthrough"
17
- }
18
- ],
19
- "summary": { "passed": 3, "failed": 0, "total": 3, "pass_rate": 1.0 }
20
- }