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.
- package/CLAUDE.md +171 -0
- package/README.md +32 -15
- package/bin/triflux.mjs +62 -5
- package/hooks/agent-route-guard.mjs +109 -0
- package/hooks/cross-review-tracker.mjs +122 -0
- package/hooks/error-context.mjs +148 -0
- package/hooks/hook-adaptive-collector.mjs +86 -0
- package/hooks/hook-manager.mjs +365 -0
- package/hooks/hook-orchestrator.mjs +312 -0
- package/hooks/hook-registry.json +246 -0
- package/hooks/hooks.json +89 -0
- package/hooks/keyword-rules.json +574 -0
- package/hooks/lib/resolve-root.mjs +59 -0
- package/hooks/mcp-config-watcher.mjs +80 -0
- package/hooks/pipeline-stop.mjs +76 -0
- package/hooks/safety-guard.mjs +169 -0
- package/hooks/subagent-verifier.mjs +80 -0
- package/hub/account-broker.mjs +251 -0
- package/hub/adaptive-diagnostic.mjs +323 -0
- package/hub/adaptive-inject.mjs +186 -0
- package/hub/adaptive-memory.mjs +163 -0
- package/hub/adaptive.mjs +143 -0
- package/hub/assign-callbacks.mjs +133 -0
- package/hub/bridge.mjs +799 -0
- package/hub/cli-adapter-base.mjs +280 -0
- package/hub/codex-adapter.mjs +199 -0
- package/hub/codex-compat.mjs +11 -0
- package/hub/codex-preflight.mjs +166 -0
- package/hub/delegator/contracts.mjs +37 -0
- package/hub/delegator/index.mjs +14 -0
- package/hub/delegator/schema/delegator-tools.schema.json +250 -0
- package/hub/delegator/service.mjs +307 -0
- package/hub/delegator/tool-definitions.mjs +35 -0
- package/hub/fullcycle.mjs +96 -0
- package/hub/gemini-adapter.mjs +180 -0
- package/hub/hitl.mjs +143 -0
- package/hub/intent.mjs +193 -0
- package/hub/lib/cache-guard.mjs +114 -0
- package/hub/lib/known-errors.json +72 -0
- package/hub/lib/memory-store.mjs +748 -0
- package/hub/lib/process-utils.mjs +361 -0
- package/hub/lib/ssh-command.mjs +211 -0
- package/hub/lib/ssh-retry.mjs +59 -0
- package/hub/lib/uuidv7.mjs +44 -0
- package/hub/memory-doctor.mjs +480 -0
- package/hub/middleware/request-logger.mjs +161 -0
- package/hub/paths.mjs +30 -0
- package/hub/pipe.mjs +664 -0
- package/hub/pipeline/gates/confidence.mjs +56 -0
- package/hub/pipeline/gates/consensus.mjs +94 -0
- package/hub/pipeline/gates/index.mjs +5 -0
- package/hub/pipeline/gates/selfcheck.mjs +82 -0
- package/hub/pipeline/index.mjs +318 -0
- package/hub/pipeline/state.mjs +191 -0
- package/hub/pipeline/transitions.mjs +124 -0
- package/hub/platform.mjs +225 -0
- package/hub/public/dashboard.html +355 -0
- package/hub/public/tray-icon.ico +0 -0
- package/hub/public/tray-icon.png +0 -0
- package/hub/quality/deslop.mjs +253 -0
- package/hub/reflexion.mjs +372 -0
- package/hub/research.mjs +146 -0
- package/hub/router.mjs +791 -0
- package/hub/routing/complexity.mjs +166 -0
- package/hub/routing/index.mjs +117 -0
- package/hub/routing/q-learning.mjs +336 -0
- package/hub/schema.sql +148 -0
- package/hub/server.mjs +1264 -0
- package/hub/session-fingerprint.mjs +352 -0
- package/hub/state.mjs +258 -0
- package/hub/store-adapter.mjs +118 -0
- package/hub/store.mjs +857 -0
- package/hub/team/agent-map.json +11 -0
- package/hub/team/ansi.mjs +379 -0
- package/hub/team/backend.mjs +90 -0
- package/hub/team/cli/commands/attach.mjs +37 -0
- package/hub/team/cli/commands/control.mjs +43 -0
- package/hub/team/cli/commands/debug.mjs +74 -0
- package/hub/team/cli/commands/focus.mjs +53 -0
- package/hub/team/cli/commands/interrupt.mjs +36 -0
- package/hub/team/cli/commands/kill.mjs +37 -0
- package/hub/team/cli/commands/list.mjs +24 -0
- package/hub/team/cli/commands/send.mjs +37 -0
- package/hub/team/cli/commands/start/index.mjs +106 -0
- package/hub/team/cli/commands/start/parse-args.mjs +130 -0
- package/hub/team/cli/commands/start/start-headless.mjs +109 -0
- package/hub/team/cli/commands/start/start-in-process.mjs +40 -0
- package/hub/team/cli/commands/start/start-mux.mjs +73 -0
- package/hub/team/cli/commands/start/start-wt.mjs +69 -0
- package/hub/team/cli/commands/status.mjs +87 -0
- package/hub/team/cli/commands/stop.mjs +31 -0
- package/hub/team/cli/commands/task.mjs +30 -0
- package/hub/team/cli/commands/tasks.mjs +13 -0
- package/hub/team/cli/help.mjs +42 -0
- package/hub/team/cli/index.mjs +41 -0
- package/hub/team/cli/manifest.mjs +29 -0
- package/hub/team/cli/render.mjs +30 -0
- package/hub/team/cli/services/attach-fallback.mjs +54 -0
- package/hub/team/cli/services/hub-client.mjs +227 -0
- package/hub/team/cli/services/member-selector.mjs +30 -0
- package/hub/team/cli/services/native-control.mjs +117 -0
- package/hub/team/cli/services/runtime-mode.mjs +62 -0
- package/hub/team/cli/services/state-store.mjs +48 -0
- package/hub/team/cli/services/task-model.mjs +30 -0
- package/hub/team/conductor-mesh-bridge.mjs +121 -0
- package/hub/team/conductor.mjs +671 -0
- package/hub/team/dashboard-anchor.mjs +14 -0
- package/hub/team/dashboard-layout.mjs +33 -0
- package/hub/team/dashboard-open.mjs +153 -0
- package/hub/team/dashboard.mjs +274 -0
- package/hub/team/event-log.mjs +76 -0
- package/hub/team/handoff.mjs +303 -0
- package/hub/team/headless.mjs +1156 -0
- package/hub/team/health-probe.mjs +272 -0
- package/hub/team/launcher-template.mjs +95 -0
- package/hub/team/lead-control.mjs +104 -0
- package/hub/team/native-supervisor.mjs +392 -0
- package/hub/team/native.mjs +649 -0
- package/hub/team/nativeProxy.mjs +688 -0
- package/hub/team/notify.mjs +293 -0
- package/hub/team/orchestrator.mjs +161 -0
- package/hub/team/pane.mjs +153 -0
- package/hub/team/process-cleanup.mjs +342 -0
- package/hub/team/psmux.mjs +1354 -0
- package/hub/team/remote-probe.mjs +276 -0
- package/hub/team/remote-session.mjs +299 -0
- package/hub/team/remote-watcher.mjs +478 -0
- package/hub/team/routing.mjs +223 -0
- package/hub/team/session-sync.mjs +169 -0
- package/hub/team/session.mjs +611 -0
- package/hub/team/shared.mjs +13 -0
- package/hub/team/staleState.mjs +361 -0
- package/hub/team/swarm-hypervisor.mjs +589 -0
- package/hub/team/swarm-locks.mjs +204 -0
- package/hub/team/swarm-planner.mjs +260 -0
- package/hub/team/swarm-reconciler.mjs +137 -0
- package/hub/team/tui-lite.mjs +380 -0
- package/hub/team/tui-remote-adapter.mjs +393 -0
- package/hub/team/tui-viewer.mjs +463 -0
- package/hub/team/tui.mjs +1449 -0
- package/hub/team/worktree-lifecycle.mjs +193 -0
- package/hub/team/wt-manager.mjs +407 -0
- package/hub/team/wt-templates.json +43 -0
- package/hub/team-bridge.mjs +27 -0
- package/hub/token-mode.mjs +224 -0
- package/hub/tools.mjs +636 -0
- package/hub/tray.mjs +376 -0
- package/hub/workers/claude-worker.mjs +475 -0
- package/hub/workers/codex-mcp.mjs +507 -0
- package/hub/workers/delegator-mcp.mjs +1076 -0
- package/hub/workers/factory.mjs +21 -0
- package/hub/workers/gemini-worker.mjs +374 -0
- package/hub/workers/interface.mjs +52 -0
- package/hub/workers/worker-utils.mjs +104 -0
- package/hud/colors.mjs +88 -0
- package/hud/constants.mjs +88 -0
- package/hud/context-monitor.mjs +403 -0
- package/hud/hud-qos-status.mjs +210 -0
- package/hud/providers/claude.mjs +314 -0
- package/hud/providers/codex.mjs +151 -0
- package/hud/providers/gemini.mjs +320 -0
- package/hud/renderers.mjs +442 -0
- package/hud/terminal.mjs +140 -0
- package/hud/utils.mjs +313 -0
- package/mesh/index.mjs +63 -0
- package/mesh/mesh-budget.mjs +128 -0
- package/mesh/mesh-heartbeat.mjs +100 -0
- package/mesh/mesh-protocol.mjs +96 -0
- package/mesh/mesh-queue.mjs +165 -0
- package/mesh/mesh-registry.mjs +78 -0
- package/mesh/mesh-router.mjs +76 -0
- package/package.json +8 -1
- package/references/hosts.json +33 -0
- package/scripts/__tests__/gen-skill-docs.test.mjs +87 -0
- package/scripts/__tests__/keyword-detector.test.mjs +234 -0
- package/scripts/__tests__/mcp-guard-engine.test.mjs +118 -0
- package/scripts/__tests__/remote-spawn-transfer.test.mjs +117 -0
- package/scripts/__tests__/remote-spawn.test.mjs +92 -0
- package/scripts/__tests__/skill-template.test.mjs +193 -0
- package/scripts/__tests__/smoke.test.mjs +34 -0
- package/scripts/cache-buildup.mjs +30 -0
- package/scripts/cache-doctor.mjs +149 -0
- package/scripts/cache-warmup.mjs +557 -0
- package/scripts/claudemd-sync.mjs +148 -0
- package/scripts/cli-route.sh +3 -0
- package/scripts/completions/tfx.bash +47 -0
- package/scripts/completions/tfx.fish +44 -0
- package/scripts/completions/tfx.zsh +83 -0
- package/scripts/cross-review-gate.mjs +126 -0
- package/scripts/cross-review-tracker.mjs +238 -0
- package/scripts/gen-skill-docs.mjs +111 -0
- package/scripts/headless-guard-fast.sh +21 -0
- package/scripts/headless-guard.mjs +360 -0
- package/scripts/hub-ensure.mjs +120 -0
- package/scripts/keyword-detector.mjs +272 -0
- package/scripts/keyword-rules-expander.mjs +521 -0
- package/scripts/lib/claudemd-scanner.mjs +218 -0
- package/scripts/lib/context.mjs +67 -0
- package/scripts/lib/cross-review-utils.mjs +51 -0
- package/scripts/lib/env-probe.mjs +241 -0
- package/scripts/lib/gemini-profiles.mjs +85 -0
- package/scripts/lib/handoff.mjs +171 -0
- package/scripts/lib/hook-utils.mjs +14 -0
- package/scripts/lib/keyword-rules.mjs +166 -0
- package/scripts/lib/logger.mjs +105 -0
- package/scripts/lib/mcp-filter.mjs +739 -0
- package/scripts/lib/mcp-guard-engine.mjs +954 -0
- package/scripts/lib/mcp-manifest.mjs +79 -0
- package/scripts/lib/mcp-server-catalog.mjs +118 -0
- package/scripts/lib/psmux-info.mjs +119 -0
- package/scripts/lib/remote-spawn-transfer.mjs +196 -0
- package/scripts/lib/skill-template.mjs +326 -0
- package/scripts/mcp-check.mjs +237 -0
- package/scripts/mcp-cleanup.ps1 +17 -0
- package/scripts/mcp-gateway-config.mjs +207 -0
- package/scripts/mcp-gateway-ensure.mjs +85 -0
- package/scripts/mcp-gateway-integration-test.mjs +228 -0
- package/scripts/mcp-gateway-start.mjs +226 -0
- package/scripts/mcp-gateway-start.ps1 +141 -0
- package/scripts/mcp-gateway-verify.mjs +77 -0
- package/scripts/mcp-safety-guard.mjs +44 -0
- package/scripts/notion-read.mjs +556 -0
- package/scripts/pack.mjs +295 -0
- package/scripts/preflight-cache.mjs +69 -0
- package/scripts/preinstall.mjs +96 -0
- package/scripts/remote-spawn.mjs +1376 -0
- package/scripts/run.cjs +79 -0
- package/scripts/session-spawn-helper.mjs +185 -0
- package/scripts/setup.mjs +1178 -0
- package/scripts/test-lock.mjs +71 -0
- package/scripts/test-tfx-route-no-claude-native.mjs +57 -0
- package/scripts/tfx-batch-stats.mjs +96 -0
- package/scripts/tfx-gate-activate.mjs +89 -0
- package/scripts/tfx-route-post.mjs +505 -0
- package/scripts/tfx-route-worker.mjs +223 -0
- package/scripts/tfx-route.sh +2014 -0
- package/scripts/tmp-cleanup.mjs +103 -0
- package/scripts/token-snapshot.mjs +575 -0
- package/skills/tfx-auto/SKILL.md.tmpl +2 -3
- package/skills/tfx-autoresearch/SKILL.md +6 -5
- package/skills/tfx-codex/SKILL.md.tmpl +2 -3
- package/skills/tfx-codex-swarm-workspace/iteration-1/benchmark.json +33 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/eval_metadata.json +42 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/with_skill/grading.json +11 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/with_skill/outputs/analysis.md +87 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/with_skill/outputs/classification.md +35 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/with_skill/outputs/commands.sh +275 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/with_skill/outputs/routing.md +56 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/with_skill/timing.json +5 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/without_skill/grading.json +11 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/without_skill/outputs/analysis.md +92 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/without_skill/outputs/classification.md +71 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/without_skill/outputs/commands.sh +264 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/without_skill/outputs/routing.md +113 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/without_skill/timing.json +5 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/eval_metadata.json +32 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/with_skill/grading.json +9 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/with_skill/outputs/analysis.md +96 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/with_skill/outputs/classification.md +38 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/with_skill/outputs/commands.sh +151 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/with_skill/outputs/routing.md +51 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/with_skill/timing.json +5 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/without_skill/grading.json +9 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/without_skill/outputs/analysis.md +127 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/without_skill/outputs/classification.md +57 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/without_skill/outputs/commands.sh +129 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/without_skill/outputs/routing.md +84 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/implicit-swarm-no-keywords/without_skill/timing.json +5 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/eval_metadata.json +27 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/with_skill/grading.json +8 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/with_skill/outputs/analysis.md +98 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/with_skill/outputs/classification.md +65 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/with_skill/outputs/commands.sh +123 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/with_skill/outputs/routing.md +66 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/with_skill/timing.json +5 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/without_skill/grading.json +8 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/without_skill/outputs/analysis.md +88 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/without_skill/outputs/classification.md +40 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/without_skill/outputs/commands.sh +130 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/without_skill/outputs/routing.md +61 -0
- package/skills/tfx-codex-swarm-workspace/iteration-1/selective-spawn-with-override/without_skill/timing.json +5 -0
- package/skills/tfx-deep-interview/SKILL.md +1 -2
- package/skills/tfx-plan/SKILL.md.tmpl +2 -3
- package/skills/tfx-psmux-rules/SKILL.md +11 -2
- package/skills/tfx-qa/SKILL.md.tmpl +2 -3
- package/skills/tfx-remote-spawn/SKILL.md +8 -11
- package/skills/tfx-research/SKILL.md.tmpl +2 -3
- package/skills/tfx-review/SKILL.md.tmpl +2 -3
- package/skills/tfx-workspace/async-tests/run-tests.sh +203 -0
- package/skills/tfx-workspace/evals/evals.json +79 -0
- package/skills/tfx-workspace/iteration-1/benchmark.json +162 -0
- package/skills/tfx-workspace/iteration-1/codex-gemini-remap/eval_metadata.json +11 -0
- package/skills/tfx-workspace/iteration-1/codex-gemini-remap/old_skill/grading.json +9 -0
- package/skills/tfx-workspace/iteration-1/codex-gemini-remap/old_skill/outputs/analysis.md +154 -0
- package/skills/tfx-workspace/iteration-1/codex-gemini-remap/old_skill/timing.json +5 -0
- package/skills/tfx-workspace/iteration-1/codex-gemini-remap/with_skill/grading.json +9 -0
- package/skills/tfx-workspace/iteration-1/codex-gemini-remap/with_skill/outputs/analysis.md +126 -0
- package/skills/tfx-workspace/iteration-1/codex-gemini-remap/with_skill/timing.json +5 -0
- package/skills/tfx-workspace/iteration-1/doctor-diagnosis/eval_metadata.json +11 -0
- package/skills/tfx-workspace/iteration-1/doctor-diagnosis/old_skill/grading.json +9 -0
- package/skills/tfx-workspace/iteration-1/doctor-diagnosis/old_skill/outputs/analysis.md +119 -0
- package/skills/tfx-workspace/iteration-1/doctor-diagnosis/old_skill/timing.json +5 -0
- package/skills/tfx-workspace/iteration-1/doctor-diagnosis/with_skill/grading.json +9 -0
- package/skills/tfx-workspace/iteration-1/doctor-diagnosis/with_skill/outputs/analysis.md +115 -0
- package/skills/tfx-workspace/iteration-1/doctor-diagnosis/with_skill/timing.json +5 -0
- package/skills/tfx-workspace/iteration-1/hub-start-sequence/eval_metadata.json +10 -0
- package/skills/tfx-workspace/iteration-1/hub-start-sequence/old_skill/grading.json +8 -0
- package/skills/tfx-workspace/iteration-1/hub-start-sequence/old_skill/outputs/analysis.md +86 -0
- package/skills/tfx-workspace/iteration-1/hub-start-sequence/old_skill/timing.json +5 -0
- package/skills/tfx-workspace/iteration-1/hub-start-sequence/with_skill/grading.json +8 -0
- package/skills/tfx-workspace/iteration-1/hub-start-sequence/with_skill/outputs/analysis.md +81 -0
- package/skills/tfx-workspace/iteration-1/hub-start-sequence/with_skill/timing.json +5 -0
- package/skills/tfx-workspace/iteration-1/multi-team-creation/eval_metadata.json +12 -0
- package/skills/tfx-workspace/iteration-1/multi-team-creation/old_skill/grading.json +10 -0
- package/skills/tfx-workspace/iteration-1/multi-team-creation/old_skill/outputs/analysis.md +316 -0
- package/skills/tfx-workspace/iteration-1/multi-team-creation/old_skill/timing.json +5 -0
- package/skills/tfx-workspace/iteration-1/multi-team-creation/with_skill/grading.json +10 -0
- package/skills/tfx-workspace/iteration-1/multi-team-creation/with_skill/outputs/analysis.md +352 -0
- package/skills/tfx-workspace/iteration-1/multi-team-creation/with_skill/timing.json +5 -0
- package/skills/tfx-workspace/iteration-1/review.html +1325 -0
- package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/eval_metadata.json +12 -0
- package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/old_skill/grading.json +10 -0
- package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/old_skill/outputs/analysis.md +97 -0
- package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/old_skill/timing.json +5 -0
- package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/with_skill/grading.json +10 -0
- package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/with_skill/outputs/analysis.md +94 -0
- package/skills/tfx-workspace/iteration-1/routing-implement-shortcut/with_skill/timing.json +5 -0
- package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/eval_metadata.json +12 -0
- package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/old_skill/grading.json +10 -0
- package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/old_skill/outputs/analysis.md +209 -0
- package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/old_skill/timing.json +5 -0
- package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/with_skill/grading.json +10 -0
- package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/with_skill/outputs/analysis.md +193 -0
- package/skills/tfx-workspace/iteration-1/routing-multi-task-triage/with_skill/timing.json +5 -0
- package/skills/tfx-workspace/iteration-2/benchmark.json +62 -0
- package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/eval_metadata.json +13 -0
- package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/old_skill/grading.json +11 -0
- package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/old_skill/outputs/analysis.md +382 -0
- package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/old_skill/timing.json +5 -0
- package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/with_skill/grading.json +11 -0
- package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/with_skill/outputs/analysis.md +333 -0
- package/skills/tfx-workspace/iteration-2/multi-team-creation-refactored/with_skill/timing.json +5 -0
- package/skills/tfx-workspace/iteration-2/review.html +1325 -0
- package/skills/tfx-workspace/skill-snapshot/tfx-auto/SKILL.md +217 -0
- package/skills/{tfx-auto-codex/SKILL.md.tmpl → tfx-workspace/skill-snapshot/tfx-auto-codex/SKILL.md} +3 -31
- package/skills/tfx-workspace/skill-snapshot/tfx-codex/SKILL.md +65 -0
- package/skills/tfx-workspace/skill-snapshot/tfx-doctor/SKILL.md +94 -0
- package/skills/{tfx-gemini/SKILL.md.tmpl → tfx-workspace/skill-snapshot/tfx-gemini/SKILL.md} +6 -14
- package/skills/tfx-workspace/skill-snapshot/tfx-hub/SKILL.md +133 -0
- package/skills/tfx-workspace/skill-snapshot/tfx-multi/SKILL.md +426 -0
- package/skills/tfx-workspace/skill-snapshot/tfx-setup/SKILL.md +101 -0
- package/skills/merge-worktree/SKILL.md.tmpl +0 -144
- package/skills/shared/arguments-processing.md +0 -2
- package/skills/shared/mandatory-rules.md +0 -6
- package/skills/shared/telemetry-segment.md +0 -6
- package/skills/star-prompt/SKILL.md.tmpl +0 -122
- package/skills/tfx-analysis/SKILL.md.tmpl +0 -106
- package/skills/tfx-analysis/skill.json +0 -11
- package/skills/tfx-auto/skill.json +0 -26
- package/skills/tfx-auto-codex/skill.json +0 -8
- package/skills/tfx-autopilot/SKILL.md.tmpl +0 -115
- package/skills/tfx-autopilot/skill.json +0 -10
- package/skills/tfx-autoresearch/SKILL.md.tmpl +0 -135
- package/skills/tfx-autoresearch/skill.json +0 -14
- package/skills/tfx-autoroute/SKILL.md.tmpl +0 -188
- package/skills/tfx-autoroute/skill.json +0 -12
- package/skills/tfx-codex/skill.json +0 -8
- package/skills/tfx-codex-swarm/SKILL.md.tmpl +0 -16
- package/skills/tfx-codex-swarm/skill.json +0 -5
- package/skills/tfx-consensus/SKILL.md.tmpl +0 -145
- package/skills/tfx-consensus/skill.json +0 -8
- package/skills/tfx-debate/SKILL.md.tmpl +0 -191
- package/skills/tfx-debate/skill.json +0 -12
- package/skills/tfx-deep-analysis/SKILL.md.tmpl +0 -227
- package/skills/tfx-deep-analysis/skill.json +0 -10
- package/skills/tfx-deep-interview/SKILL.md.tmpl +0 -203
- package/skills/tfx-deep-interview/skill.json +0 -12
- package/skills/tfx-deep-plan/SKILL.md.tmpl +0 -281
- package/skills/tfx-deep-plan/skill.json +0 -13
- package/skills/tfx-deep-qa/SKILL.md.tmpl +0 -164
- package/skills/tfx-deep-qa/skill.json +0 -11
- package/skills/tfx-deep-research/SKILL.md.tmpl +0 -216
- package/skills/tfx-deep-research/skill.json +0 -14
- package/skills/tfx-deep-review/SKILL.md.tmpl +0 -178
- package/skills/tfx-deep-review/skill.json +0 -12
- package/skills/tfx-doctor/SKILL.md.tmpl +0 -172
- package/skills/tfx-doctor/skill.json +0 -8
- package/skills/tfx-find/skill.json +0 -12
- package/skills/tfx-forge/SKILL.md.tmpl +0 -187
- package/skills/tfx-forge/skill.json +0 -12
- package/skills/tfx-fullcycle/SKILL.md.tmpl +0 -285
- package/skills/tfx-fullcycle/skill.json +0 -11
- package/skills/tfx-gemini/skill.json +0 -8
- package/skills/tfx-hooks/SKILL.md.tmpl +0 -216
- package/skills/tfx-hooks/skill.json +0 -8
- package/skills/tfx-hub/SKILL.md.tmpl +0 -212
- package/skills/tfx-hub/skill.json +0 -8
- package/skills/tfx-index/skill.json +0 -11
- package/skills/tfx-interview/SKILL.md.tmpl +0 -284
- package/skills/tfx-interview/skill.json +0 -12
- package/skills/tfx-multi/SKILL.md.tmpl +0 -183
- package/skills/tfx-multi/skill.json +0 -8
- package/skills/tfx-panel/SKILL.md.tmpl +0 -188
- package/skills/tfx-panel/skill.json +0 -12
- package/skills/tfx-persist/SKILL.md.tmpl +0 -269
- package/skills/tfx-persist/skill.json +0 -12
- package/skills/tfx-plan/skill.json +0 -11
- package/skills/tfx-profile/SKILL.md.tmpl +0 -239
- package/skills/tfx-profile/skill.json +0 -8
- package/skills/tfx-prune/SKILL.md.tmpl +0 -199
- package/skills/tfx-prune/skill.json +0 -12
- package/skills/tfx-psmux-rules/SKILL.md.tmpl +0 -317
- package/skills/tfx-psmux-rules/skill.json +0 -8
- package/skills/tfx-qa/skill.json +0 -11
- package/skills/tfx-ralph/SKILL.md.tmpl +0 -27
- package/skills/tfx-ralph/skill.json +0 -8
- package/skills/tfx-remote-setup/SKILL.md.tmpl +0 -576
- package/skills/tfx-remote-setup/skill.json +0 -8
- package/skills/tfx-remote-spawn/SKILL.md.tmpl +0 -263
- package/skills/tfx-remote-spawn/skill.json +0 -9
- package/skills/tfx-research/skill.json +0 -13
- package/skills/tfx-review/skill.json +0 -11
- package/skills/tfx-setup/SKILL.md.tmpl +0 -380
- package/skills/tfx-setup/skill.json +0 -8
- package/skills/tfx-swarm/SKILL.md.tmpl +0 -154
- package/skills/tfx-swarm/skill.json +0 -5
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: tfx-deep-analysis
|
|
3
|
-
description: "다각도 심층 분석이 필요할 때 사용한다. 'deep analyze', '심층 분석', '제대로 분석', '3관점 분석', '편향 없이 분석' 같은 요청에 사용. 아키텍처 결정, 기술 부채 평가, 대규모 리팩터링 전 분석에 적극 활용."
|
|
4
|
-
triggers:
|
|
5
|
-
- deep analyze
|
|
6
|
-
- 심층 분석
|
|
7
|
-
- deep-analysis
|
|
8
|
-
argument-hint: "<분석 대상 — 파일, 디렉토리, 또는 주제>"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# tfx-deep-analysis — Tri-CLI Deep Analysis
|
|
12
|
-
|
|
13
|
-
> **ARGUMENTS 처리**: 이 스킬이 `ARGUMENTS: <값>`과 함께 호출되면, 해당 값을 사용자 입력으로 취급하여
|
|
14
|
-
> 워크플로우의 첫 단계 입력으로 사용한다. ARGUMENTS가 비어있거나 없으면 기존 절차대로 사용자에게 입력을 요청한다.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
> **Light 버전**: tfx-analysis. 기본값. 깊이 수정자 없으면 Light 선택.
|
|
18
|
-
> Claude(아키텍처) + Codex(구현/보안) + Gemini(UX/문서화) → Tri-Debate → 합의.
|
|
19
|
-
> 3자 전문 관점의 편향 없는 분석.
|
|
20
|
-
|
|
21
|
-
## 전제조건 프로브 및 Tier Degradation
|
|
22
|
-
|
|
23
|
-
> **진입 즉시 실행** — 10초 내 가시적 출력을 보장한다. 빈 stdout + exit 0 **금지**.
|
|
24
|
-
|
|
25
|
-
### 환경 프로브
|
|
26
|
-
|
|
27
|
-
워크플로우 진입 전, 아래 프로브를 실행하여 가용 환경을 감지한다:
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
psmux --version 2>/dev/null && \
|
|
31
|
-
curl -sf http://127.0.0.1:27888/status >/dev/null && \
|
|
32
|
-
codex --version 2>/dev/null && \
|
|
33
|
-
gemini --version 2>/dev/null
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### Tier 판정
|
|
37
|
-
|
|
38
|
-
| Tier | 조건 | 실행 방식 |
|
|
39
|
-
|------|------|----------|
|
|
40
|
-
| **Tier 1** | psmux + Hub + Codex + Gemini 전부 정상 | 기존 headless multi (변경 없음) |
|
|
41
|
-
| **Tier 2** | 일부 CLI만 가용 (Codex 또는 Gemini 중 하나) | 가용 CLI + Claude Agent 조합 |
|
|
42
|
-
| **Tier 3** | headless 불가 또는 `claude -p` one-shot | Claude Agent only |
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
IF claude -p (one-shot 모드):
|
|
46
|
-
→ Tier 3 즉시 fallback
|
|
47
|
-
|
|
48
|
-
IF psmux 없음 OR Hub 미응답:
|
|
49
|
-
→ Tier 3
|
|
50
|
-
|
|
51
|
-
IF Codex 없음 AND Gemini 없음:
|
|
52
|
-
→ Tier 3
|
|
53
|
-
|
|
54
|
-
IF Codex 없음 OR Gemini 없음:
|
|
55
|
-
→ Tier 2
|
|
56
|
-
|
|
57
|
-
ELSE:
|
|
58
|
-
→ Tier 1
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### Tier 3 진입 시 필수 출력
|
|
62
|
-
|
|
63
|
-
```
|
|
64
|
-
⚠ [Tier 3] headless multi 환경 미충족 — single-model 모드로 실행합니다 (consensus 미적용)
|
|
65
|
-
누락: {missing_components}
|
|
66
|
-
권장: psmux, Hub, Codex CLI, Gemini CLI 설치 후 재실행
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
Tier 3에서는 모든 headless dispatch(`tfx multi ...`)를 **Claude Agent**(subagent)로 대체한다.
|
|
70
|
-
Tier 2에서는 누락된 CLI만 Claude Agent로 대체한다.
|
|
71
|
-
|
|
72
|
-
## HARD RULES
|
|
73
|
-
|
|
74
|
-
> headless-guard가 이 규칙 위반을 **자동 차단**한다. 우회 불가.
|
|
75
|
-
|
|
76
|
-
1. **`codex exec` / `gemini -p` 직접 호출 절대 금지**
|
|
77
|
-
2. Codex·Gemini → `Bash("tfx multi --teammate-mode headless --auto-attach --dashboard --assign 'cli:프롬프트:역할' --timeout 600")` **만** 사용
|
|
78
|
-
3. Claude → `Agent(run_in_background=true)`
|
|
79
|
-
4. Bash + Agent를 같은 메시지에서 동시 호출하여 병렬 실행
|
|
80
|
-
|
|
81
|
-
## 용도
|
|
82
|
-
|
|
83
|
-
- 아키텍처 결정 전 종합 분석
|
|
84
|
-
- 레거시 코드베이스 상태 진단
|
|
85
|
-
- 보안 + 성능 + UX 교차 분석
|
|
86
|
-
- 기술 부채 종합 평가
|
|
87
|
-
- 리팩터링 범위 결정
|
|
88
|
-
- 마이그레이션 전 영향도 분석
|
|
89
|
-
|
|
90
|
-
## MODEL ROLES
|
|
91
|
-
|
|
92
|
-
| Model | Profile | 역할 | 강점 |
|
|
93
|
-
|-------|---------|------|------|
|
|
94
|
-
| Claude Opus | architect | 아키텍처/설계 분석 | 레이어 분리, SOLID, 확장성 |
|
|
95
|
-
| Codex | security-engineer | 구현/보안 분석 | 복잡도, OWASP, 기술 부채 |
|
|
96
|
-
| Gemini | ux-engineer | UX/문서화 분석 | DX, 접근성, 네이밍, 국제화 |
|
|
97
|
-
|
|
98
|
-
## EXECUTION STEPS
|
|
99
|
-
|
|
100
|
-
### Step 1: 범위 파싱
|
|
101
|
-
|
|
102
|
-
분석 대상(`{target}`)을 파싱하고 분석 범위를 확정한다:
|
|
103
|
-
- target: 사용자가 지정한 파일/디렉토리/주제
|
|
104
|
-
- scope: 디렉토리 전체 + 하위 모듈
|
|
105
|
-
- analysis_depth: 파일 구조 + 코드 본문 + 의존성
|
|
106
|
-
- focus_areas: 아키텍처, 보안, 성능, DX
|
|
107
|
-
|
|
108
|
-
### Step 2: 3-CLI 독립 분석 (Anti-Herding)
|
|
109
|
-
|
|
110
|
-
**아래 2개 도구를 반드시 같은 응답에서 동시에 호출하라.**
|
|
111
|
-
|
|
112
|
-
**도구 1 — Claude Opus (아키텍처):**
|
|
113
|
-
```
|
|
114
|
-
Agent(
|
|
115
|
-
subagent_type="oh-my-claudecode:architect",
|
|
116
|
-
model="opus",
|
|
117
|
-
run_in_background=true,
|
|
118
|
-
name="arch-analyst",
|
|
119
|
-
description="아키텍처 심층 분석",
|
|
120
|
-
prompt="소프트웨어 아키텍트로서 분석하라. 대상: {target}. 분석 렌즈: 1. 아키텍처 — 레이어 분리, 의존성 방향, 순환 참조. 2. 설계 패턴 — SOLID 준수, 적절한 추상화 수준. 3. 모듈 응집도/결합도 — cohesion/coupling 평가. 4. 확장성 — 새 요구사항 추가 시 변경 범위. 5. 테스트 용이성 — DI, 인터페이스, mock 가능성. JSON으로 반환: { findings: [{id, category, severity, description, location, recommendation}], architecture_diagram: '텍스트 기반 구조도', health_score: 0-100 }"
|
|
121
|
-
)
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
**도구 2 — Codex+Gemini headless dispatch:**
|
|
125
|
-
```
|
|
126
|
-
Bash("tfx multi --teammate-mode headless --auto-attach --dashboard --assign 'codex:시니어 엔지니어+보안 전문가로서 분석하라. 대상: {target}. 분석 렌즈: 1. 구현 품질 — 복잡도, 중복, 에러 핸들링. 2. 성능 — 알고리즘 효율, 메모리 패턴, I/O 병목. 3. 보안 — OWASP Top 10, 입력 검증, 인증/인가. 4. 안정성 — 에러 전파, 장애 격리, 리소스 관리. 5. 기술 부채 — deprecated API, TODO, 하드코딩. JSON: { findings: [...], metrics: {complexity, loc, tech_debt_hours}, health_score: 0-100 }:security-engineer' --assign 'gemini:UX 엔지니어+테크니컬 라이터로서 분석하라. 대상: {target}. 분석 렌즈: 1. DX(개발자 경험) — API 직관성, 에러 메시지, 사용 용이성. 2. 문서화 — JSDoc/주석 품질, README, 예제 코드. 3. 접근성 — UI가 있으면 WCAG 2.1 AA, 키보드/스크린리더. 4. 국제화 — 하드코딩 문자열, 로케일 처리. 5. 네이밍 — 일관성, 도메인 언어, 가독성. JSON: { findings: [...], documentation_score: 0-100, health_score: 0-100 }:ux-engineer' --timeout 600")
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### Step 3: Tri-Debate (교차검증)
|
|
130
|
-
|
|
131
|
-
3개 결과를 수집한 후, **아래 2개 도구를 반드시 같은 응답에서 동시에 호출하라.**
|
|
132
|
-
|
|
133
|
-
**도구 1 — Claude 교차검증:**
|
|
134
|
-
```
|
|
135
|
-
Agent(
|
|
136
|
-
subagent_type="oh-my-claudecode:architect",
|
|
137
|
-
model="opus",
|
|
138
|
-
run_in_background=true,
|
|
139
|
-
name="arch-debate",
|
|
140
|
-
description="교차검증 — 아키텍처 관점",
|
|
141
|
-
prompt="다른 두 분석가의 결과입니다. 분석가 A(Codex): {codex_findings_summary}. 분석가 B(Gemini): {gemini_findings_summary}. 1. 동의하는 발견에 '+1' 표시. 2. 반대하는 발견에 근거를 제시하여 반박. 3. 다른 분석가가 놓친 중요 사항 추가. 4. health_score를 재조정하라."
|
|
142
|
-
)
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
**도구 2 — Codex+Gemini 교차검증:**
|
|
146
|
-
```
|
|
147
|
-
Bash("tfx multi --teammate-mode headless --auto-attach --dashboard --assign 'codex:다른 두 분석가의 결과입니다. 분석가 A(Claude): {claude_findings_summary}. 분석가 B(Gemini): {gemini_findings_summary}. 1. 동의하는 발견에 +1 표시. 2. 반대하는 발견에 근거를 제시하여 반박. 3. 다른 분석가가 놓친 중요 사항 추가. 4. health_score를 재조정하라.:security-engineer' --assign 'gemini:다른 두 분석가의 결과입니다. 분석가 A(Claude): {claude_findings_summary}. 분석가 B(Codex): {codex_findings_summary}. 1. 동의하는 발견에 +1 표시. 2. 반대하는 발견에 근거를 제시하여 반박. 3. 다른 분석가가 놓친 중요 사항 추가. 4. health_score를 재조정하라.:ux-engineer' --timeout 600")
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
교차검증 후 합의 분류:
|
|
151
|
-
- 3/3 동의 → CONFIRMED
|
|
152
|
-
- 2/3 동의 → LIKELY (반대 의견 첨부)
|
|
153
|
-
- 1/3만 지적 → UNVERIFIED
|
|
154
|
-
|
|
155
|
-
### Step 4: 합의 종합 보고서 출력
|
|
156
|
-
|
|
157
|
-
아래 형식으로 최종 보고서를 출력한다:
|
|
158
|
-
|
|
159
|
-
```markdown
|
|
160
|
-
# Deep Analysis Report: {target}
|
|
161
|
-
**Consensus Score**: {score}% | **Analysts**: Claude/Codex/Gemini
|
|
162
|
-
**Health Score**: {weighted_avg}/100
|
|
163
|
-
|
|
164
|
-
## Executive Summary
|
|
165
|
-
{3-5줄 핵심 요약 — 3자 합의 기반}
|
|
166
|
-
|
|
167
|
-
## Architecture
|
|
168
|
-
{Claude 주도 분석 + Codex/Gemini 교차검증}
|
|
169
|
-
### 구조도
|
|
170
|
-
{텍스트 기반 아키텍처 다이어그램}
|
|
171
|
-
### 강점
|
|
172
|
-
- {3/3 합의된 아키텍처 강점}
|
|
173
|
-
### 약점
|
|
174
|
-
- {2+ 합의된 아키텍처 약점}
|
|
175
|
-
|
|
176
|
-
## 발견사항 (합의된 항목)
|
|
177
|
-
|
|
178
|
-
### Critical
|
|
179
|
-
- [C1] `{file}:{line}` — {description} — {3/3}
|
|
180
|
-
- 아키텍처: {Claude} | 구현: {Codex} | DX: {Gemini}
|
|
181
|
-
- **권장**: {recommendation}
|
|
182
|
-
|
|
183
|
-
### High
|
|
184
|
-
- [H1] ...
|
|
185
|
-
|
|
186
|
-
### Medium
|
|
187
|
-
- [M1] ...
|
|
188
|
-
|
|
189
|
-
## 메트릭
|
|
190
|
-
| 항목 | 값 | 평가 |
|
|
191
|
-
|------|-----|------|
|
|
192
|
-
| 아키텍처 건강도 | {Claude score}/100 | {평가} |
|
|
193
|
-
| 구현 품질 | {Codex score}/100 | {평가} |
|
|
194
|
-
| DX/문서화 | {Gemini score}/100 | {평가} |
|
|
195
|
-
| 종합 (가중평균) | {avg}/100 | {평가} |
|
|
196
|
-
| 기술 부채 추정 | {hours}h | {심각도} |
|
|
197
|
-
|
|
198
|
-
## 개선 로드맵 (합의 순)
|
|
199
|
-
| 우선순위 | 항목 | 예상 공수 | 합의도 |
|
|
200
|
-
|---------|------|----------|--------|
|
|
201
|
-
| P0 | {item} | {hours}h | 3/3 |
|
|
202
|
-
| P1 | {item} | {hours}h | 2/3 |
|
|
203
|
-
|
|
204
|
-
## Unverified (참고용)
|
|
205
|
-
- [U1] {description} (by {single_cli})
|
|
206
|
-
|
|
207
|
-
## 불일치 사항
|
|
208
|
-
- {항목}: Claude는 {X}, Codex는 {Y}, Gemini는 {Z}
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
## ERROR RECOVERY
|
|
212
|
-
|
|
213
|
-
| 상황 | 대응 |
|
|
214
|
-
|------|------|
|
|
215
|
-
| headless timeout (600s) | Claude Agent로 해당 역할 대체 실행 |
|
|
216
|
-
| Codex 워커 실패 | Agent(oh-my-claudecode:architect, model="opus") 대체 |
|
|
217
|
-
| Gemini 워커 실패 | Agent(oh-my-claudecode:critic, model="sonnet") 대체 |
|
|
218
|
-
|
|
219
|
-
## 토큰 예산
|
|
220
|
-
|
|
221
|
-
| Phase | 토큰 |
|
|
222
|
-
|-------|------|
|
|
223
|
-
| Phase 1 (수집) | ~1K |
|
|
224
|
-
| Phase 2 (3x 독립분석) | ~15K |
|
|
225
|
-
| Phase 3 (Tri-Debate) | ~9K |
|
|
226
|
-
| Phase 4 (보고서) | ~5K |
|
|
227
|
-
| **총합** | **~30K** |
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "tfx-deep-analysis",
|
|
3
|
-
"description": "다각도 심층 분석이 필요할 때 사용한다. 'deep analyze', '심층 분석', '제대로 분석', '3관점 분석', '편향 없이 분석' 같은 요청에 사용. 아키텍처 결정, 기술 부채 평가, 대규모 리팩터링 전 분석에 적극 활용.",
|
|
4
|
-
"triggers": [
|
|
5
|
-
"deep analyze",
|
|
6
|
-
"심층 분석",
|
|
7
|
-
"deep-analysis"
|
|
8
|
-
],
|
|
9
|
-
"argument_hint": "<분석 대상 — 파일, 디렉토리, 또는 주제>"
|
|
10
|
-
}
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: tfx-deep-interview
|
|
3
|
-
description: >
|
|
4
|
-
구현 전 소크라테스식 질의로 요구사항 깊이 탐색.
|
|
5
|
-
5단계 인터뷰를 통해 요구사항을 명확히 하고 최적 구현 경로를 도출합니다.
|
|
6
|
-
triggers:
|
|
7
|
-
- deep-interview
|
|
8
|
-
- 딥인터뷰
|
|
9
|
-
- 소크라테스
|
|
10
|
-
- 깊이 탐색
|
|
11
|
-
- 요구사항 분석
|
|
12
|
-
argument-hint: "<topic>"
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# tfx-deep-interview — 소크라테스식 깊이 탐색
|
|
16
|
-
|
|
17
|
-
> **ARGUMENTS 처리**: 이 스킬이 `ARGUMENTS: <값>`과 함께 호출되면, 해당 값을 사용자 입력으로 취급하여
|
|
18
|
-
> 워크플로우의 첫 단계 입력으로 사용한다. ARGUMENTS가 비어있거나 없으면 기존 절차대로 사용자에게 입력을 요청한다.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
> 구현 전에 질문을 통해 요구사항의 깊이를 탐색합니다.
|
|
22
|
-
> "좋은 답은 좋은 질문에서 나온다."
|
|
23
|
-
|
|
24
|
-
## 사용법
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
/deep-interview 인증 시스템 리팩터링
|
|
28
|
-
/deep-interview JWT 기반 세션 관리
|
|
29
|
-
/딥인터뷰 데이터 파이프라인 설계
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## 위임 패턴
|
|
33
|
-
|
|
34
|
-
Claude 토큰을 절약하기 위해 분석 작업은 Gemini CLI에 위임합니다.
|
|
35
|
-
|
|
36
|
-
- **Claude 담당**: AskUserQuestion (사용자 상호작용), 산출물 저장
|
|
37
|
-
- **Gemini 담당**: 질문 생성, 응답 분석, 종합 문서 초안 작성
|
|
38
|
-
|
|
39
|
-
각 단계에서 Claude는 누적 컨텍스트를 Gemini에 전달하고, Gemini가 반환한 질문을 AskUserQuestion으로 사용자에게 제시합니다. 사용자 답변은 다음 단계 Gemini 호출의 입력으로 전달됩니다.
|
|
40
|
-
|
|
41
|
-
**Fallback**: Gemini 호출이 실패하면 Claude Opus가 모든 분석을 직접 수행합니다 (원래 동작 유지).
|
|
42
|
-
|
|
43
|
-
## 토큰 예산
|
|
44
|
-
|
|
45
|
-
| 담당 | 토큰 | 역할 |
|
|
46
|
-
|------|------|------|
|
|
47
|
-
| Claude | ~2K | 오케스트레이션 + AskUserQuestion만 |
|
|
48
|
-
| Gemini | ~10K | 분석 + 질문 생성 + 문서 초안 |
|
|
49
|
-
|
|
50
|
-
## 5단계 인터뷰 프로세스
|
|
51
|
-
|
|
52
|
-
인터뷰는 반드시 아래 5단계를 순서대로 진행합니다. 각 단계에서 사용자 응답을 수집한 후 다음 단계로 이동합니다.
|
|
53
|
-
|
|
54
|
-
### Stage 1: Clarify (명확화)
|
|
55
|
-
|
|
56
|
-
> "정확히 무엇을 달성하려는가?"
|
|
57
|
-
|
|
58
|
-
목표를 한 문장으로 정의하고, 성공 기준과 현재 상태의 차이를 파악합니다.
|
|
59
|
-
|
|
60
|
-
**단계 진입 시 Gemini 위임:**
|
|
61
|
-
|
|
62
|
-
```
|
|
63
|
-
Bash("bash scripts/tfx-route.sh gemini exec 'Deep interview Stage 1: Clarify. Topic: {topic}. Previous answers: none. Generate 3 probing questions for this stage and analyze prior responses. Return JSON: {analysis, questions, key_insights}'")
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
Gemini가 반환한 `questions` 배열을 AskUserQuestion으로 사용자에게 제시합니다.
|
|
67
|
-
|
|
68
|
-
**질문 템플릿 (Gemini 실패 시 Fallback):**
|
|
69
|
-
|
|
70
|
-
1. "이 작업의 핵심 목표를 한 문장으로 설명해주세요."
|
|
71
|
-
2. "완료 후 어떤 상태가 되어야 성공인가요?"
|
|
72
|
-
3. "현재 상태에서 가장 큰 문제점은 무엇인가요?"
|
|
73
|
-
|
|
74
|
-
### Stage 2: Decompose (분해)
|
|
75
|
-
|
|
76
|
-
> "이것을 어떤 하위 문제로 나눌 수 있는가?"
|
|
77
|
-
|
|
78
|
-
대상을 3-5개의 독립적 하위 문제로 분해하고, 의존성과 우선순위를 결정합니다.
|
|
79
|
-
|
|
80
|
-
**단계 진입 시 Gemini 위임:**
|
|
81
|
-
|
|
82
|
-
```
|
|
83
|
-
Bash("bash scripts/tfx-route.sh gemini exec 'Deep interview Stage 2: Decompose. Topic: {topic}. Previous answers: {stage1_answers}. Generate 3 probing questions for this stage and analyze prior responses. Return JSON: {analysis, questions, key_insights}'")
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
Gemini가 반환한 `questions` 배열을 AskUserQuestion으로 사용자에게 제시합니다.
|
|
87
|
-
|
|
88
|
-
**질문 템플릿 (Gemini 실패 시 Fallback):**
|
|
89
|
-
|
|
90
|
-
1. "이 작업을 3-5개의 독립된 단계로 나눈다면?"
|
|
91
|
-
2. "각 단계 사이에 의존성이 있나요?"
|
|
92
|
-
3. "가장 먼저 해결해야 할 핵심 문제는?"
|
|
93
|
-
|
|
94
|
-
### Stage 3: Challenge (반론)
|
|
95
|
-
|
|
96
|
-
> "이 접근의 약점은?"
|
|
97
|
-
|
|
98
|
-
선택한 접근 방식의 단점을 식별하고, 실패 시나리오와 기술 부채 가능성을 탐색합니다.
|
|
99
|
-
|
|
100
|
-
**단계 진입 시 Gemini 위임:**
|
|
101
|
-
|
|
102
|
-
```
|
|
103
|
-
Bash("bash scripts/tfx-route.sh gemini exec 'Deep interview Stage 3: Challenge. Topic: {topic}. Previous answers: {stage1_answers} {stage2_answers}. Generate 3 probing questions for this stage and analyze prior responses. Return JSON: {analysis, questions, key_insights}'")
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
Gemini가 반환한 `questions` 배열을 AskUserQuestion으로 사용자에게 제시합니다.
|
|
107
|
-
|
|
108
|
-
**질문 템플릿 (Gemini 실패 시 Fallback):**
|
|
109
|
-
|
|
110
|
-
1. "이 방식이 실패할 수 있는 시나리오는?"
|
|
111
|
-
2. "6개월 후 이 코드를 유지보수할 때 문제가 될 부분은?"
|
|
112
|
-
3. "이 접근이 다른 시스템에 미치는 영향은?"
|
|
113
|
-
|
|
114
|
-
### Stage 4: Alternatives (대안)
|
|
115
|
-
|
|
116
|
-
> "다른 방법은?"
|
|
117
|
-
|
|
118
|
-
최소 2개의 대안을 검토하고, 각 대안의 trade-off를 비교합니다.
|
|
119
|
-
|
|
120
|
-
**단계 진입 시 Gemini 위임:**
|
|
121
|
-
|
|
122
|
-
```
|
|
123
|
-
Bash("bash scripts/tfx-route.sh gemini exec 'Deep interview Stage 4: Alternatives. Topic: {topic}. Previous answers: {stage1_answers} {stage2_answers} {stage3_answers}. Generate 3 probing questions for this stage and analyze prior responses. Return JSON: {analysis, questions, key_insights}'")
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
Gemini가 반환한 `questions` 배열을 AskUserQuestion으로 사용자에게 제시합니다.
|
|
127
|
-
|
|
128
|
-
**질문 템플릿 (Gemini 실패 시 Fallback):**
|
|
129
|
-
|
|
130
|
-
1. "같은 목표를 달성할 수 있는 완전히 다른 접근은?"
|
|
131
|
-
2. "시간이 절반밖에 없다면 어떤 방식을 택하겠습니까?"
|
|
132
|
-
3. "이 기술 대신 다른 것을 사용하면 어떤 trade-off가 있나요?"
|
|
133
|
-
|
|
134
|
-
### Stage 5: Synthesize (종합)
|
|
135
|
-
|
|
136
|
-
> "최적 경로는?"
|
|
137
|
-
|
|
138
|
-
인터뷰 결과를 종합하여 실행 계획을 도출하고, 구조화된 요구사항 문서를 생성합니다.
|
|
139
|
-
|
|
140
|
-
**단계 진입 시 Gemini 위임:**
|
|
141
|
-
|
|
142
|
-
```
|
|
143
|
-
Bash("bash scripts/tfx-route.sh gemini exec 'Deep interview Stage 5: Synthesize. Topic: {topic}. Previous answers: {stage1_answers} {stage2_answers} {stage3_answers} {stage4_answers}. Generate 3 probing questions for this stage and analyze prior responses. Return JSON: {analysis, questions, key_insights}'")
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
Gemini가 반환한 `questions` 배열을 AskUserQuestion으로 사용자에게 제시합니다.
|
|
147
|
-
|
|
148
|
-
**질문 템플릿 (Gemini 실패 시 Fallback):**
|
|
149
|
-
|
|
150
|
-
1. "지금까지의 논의를 종합하면, 최적의 접근 방식은?"
|
|
151
|
-
2. "첫 번째 단계로 무엇을 실행하시겠습니까?"
|
|
152
|
-
3. "이 결정에 대해 확신하는 정도는? (1-10)"
|
|
153
|
-
|
|
154
|
-
## 산출물
|
|
155
|
-
|
|
156
|
-
인터뷰 완료 후 Gemini가 전체 인터뷰 문서 초안을 생성하고, Claude가 Write 툴로 `.tfx/plans/interview-{timestamp}.md`에 저장합니다.
|
|
157
|
-
|
|
158
|
-
**산출물 생성 Gemini 위임:**
|
|
159
|
-
|
|
160
|
-
```
|
|
161
|
-
Bash("bash scripts/tfx-route.sh gemini exec 'Deep interview complete. Topic: {topic}. All answers: {all_answers}. Generate a structured requirements document draft. Return the full markdown document.'")
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
Gemini 실패 시 Claude가 직접 아래 형식으로 문서를 작성합니다.
|
|
165
|
-
|
|
166
|
-
### 산출물 형식
|
|
167
|
-
|
|
168
|
-
```markdown
|
|
169
|
-
# Interview: {topic}
|
|
170
|
-
Date: {date}
|
|
171
|
-
|
|
172
|
-
## Goal
|
|
173
|
-
{1문장 목표}
|
|
174
|
-
|
|
175
|
-
## Decomposition
|
|
176
|
-
{하위 문제 목록}
|
|
177
|
-
|
|
178
|
-
## Risks & Challenges
|
|
179
|
-
{식별된 위험}
|
|
180
|
-
|
|
181
|
-
## Alternatives Considered
|
|
182
|
-
| 대안 | 장점 | 단점 |
|
|
183
|
-
|------|------|------|
|
|
184
|
-
| ... | ... | ... |
|
|
185
|
-
|
|
186
|
-
## Decision
|
|
187
|
-
{최종 결정 + 근거}
|
|
188
|
-
|
|
189
|
-
## Action Plan
|
|
190
|
-
1. {단계 1}
|
|
191
|
-
2. {단계 2}
|
|
192
|
-
3. ...
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
## 동작 규칙
|
|
196
|
-
|
|
197
|
-
1. 각 단계에서 반드시 사용자 응답을 수집한 후 다음 단계로 이동합니다.
|
|
198
|
-
2. 사용자가 명확한 답을 못 할 경우, 후속 질문으로 유도합니다.
|
|
199
|
-
3. 단계를 건너뛰지 않습니다 (5단계 모두 필수).
|
|
200
|
-
4. 이전 단계의 답변을 다음 단계 질문에 반영합니다 (대화형 연결).
|
|
201
|
-
5. 최종 산출물은 항상 `.tfx/plans/interview-{timestamp}.md`에 마크다운 파일로 저장합니다.
|
|
202
|
-
6. 인터뷰 시작 시 현재 주제와 관련된 코드베이스를 탐색하여 컨텍스트를 확보합니다.
|
|
203
|
-
7. 각 단계 전환 시 이전 단계 요약을 한 줄로 보여줍니다.
|