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
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# tfx-codex-swarm — 실행 분석 리포트
|
|
2
|
+
|
|
3
|
+
> 사용자 요청: "이 PRD 3개 파일을 각각 독립적으로 코덱스한테 맡겨서 병렬로 구현해줘"
|
|
4
|
+
> 입력: docs/prd/auth-refactor.md, docs/prd/api-v2.md, docs/prd/cache-layer.md
|
|
5
|
+
> 분석일: 2026-03-30
|
|
6
|
+
> 모드: DRY-RUN (시뮬레이션)
|
|
7
|
+
|
|
8
|
+
## 1. 워크플로우 실행 요약
|
|
9
|
+
|
|
10
|
+
### Step 1: 태스크 파일 스캔 → SKIP
|
|
11
|
+
사용자가 3개 파일 경로를 명시적으로 제공했으므로 자동 스캔(`.omx/plans/*.md`, `.omc/plans/*.md`, `docs/prd/*.md`)을 건너뜀.
|
|
12
|
+
|
|
13
|
+
### Step 2: 태스크 선택 → SKIP
|
|
14
|
+
사용자가 "이 PRD 3개 파일"로 명시했으므로 AskUserQuestion 없이 전체 선택 확정.
|
|
15
|
+
|
|
16
|
+
### Step 3: 태스크 분류 → 파일명 기반 자동 분류
|
|
17
|
+
|
|
18
|
+
| 태스크 | 유형 | OMX 스킬 |
|
|
19
|
+
|--------|------|----------|
|
|
20
|
+
| auth-refactor | 리팩터링 | `$plan` → `$ralph` |
|
|
21
|
+
| api-v2 | 구현 | `$plan` → `$autopilot` |
|
|
22
|
+
| cache-layer | 구현 | `$plan` → `$autopilot` |
|
|
23
|
+
|
|
24
|
+
**판단 근거**: PRD 파일이 존재하지 않아 내용 기반 분류 불가. 파일명에서 키워드를 추출하여 분류.
|
|
25
|
+
- `auth-refactor`: "refactor" → 리팩터링
|
|
26
|
+
- `api-v2`, `cache-layer`: 명시적 리팩터/조사 키워드 없음 → 구현 (기본)
|
|
27
|
+
|
|
28
|
+
### Step 4: 프로파일 라우팅 → 전부 codex53_high
|
|
29
|
+
|
|
30
|
+
| 태스크 | 규모 | 유형 | 프로파일 |
|
|
31
|
+
|--------|------|------|----------|
|
|
32
|
+
| auth-refactor | L | 리팩터링 | codex53_high |
|
|
33
|
+
| api-v2 | L | 구현 | codex53_high |
|
|
34
|
+
| cache-layer | L | 구현 | codex53_high |
|
|
35
|
+
|
|
36
|
+
**판단 근거**: PRD 실체가 없어 줄 수/영향 파일 수를 직접 측정할 수 없음. 파일명에서 추정한 규모:
|
|
37
|
+
- 인증 리팩터링, API v2, 캐시 레이어 모두 중간~큰 규모 작업 → L (표준) 추정
|
|
38
|
+
- L × 리팩터링 = codex53_high, L × 구현 = codex53_high (라우팅 테이블 일치)
|
|
39
|
+
|
|
40
|
+
### Steps 5-8: 명령어 생성 완료
|
|
41
|
+
- 3개 worktree 생성 명령어
|
|
42
|
+
- 3개 프롬프트 파일 (유형별 OMX 스킬 지시 포함)
|
|
43
|
+
- 3개 psmux 세션 + codex send-keys 명령어
|
|
44
|
+
- WT 탭 일괄 attach 명령어 (+ wt.exe fallback)
|
|
45
|
+
|
|
46
|
+
## 2. 스킬 워크플로우 적용 분석
|
|
47
|
+
|
|
48
|
+
### 스킬이 제공한 가치
|
|
49
|
+
|
|
50
|
+
| 항목 | 스킬 적용 결과 |
|
|
51
|
+
|------|---------------|
|
|
52
|
+
| 분류 체계 | 3가지 유형(구현/조사/리팩터링) 자동 분류 → OMX 스킬 매핑 |
|
|
53
|
+
| 프로파일 라우팅 | 유형×규모 매트릭스로 최적 모델+effort 자동 선택 |
|
|
54
|
+
| 프롬프트 구조화 | 유형별 OMX 스킬 지시($plan→$autopilot vs $plan→$ralph) 포함 |
|
|
55
|
+
| worktree 규칙 | `.codex-swarm/wt-{slug}` 패턴 일관 적용 |
|
|
56
|
+
| psmux 규칙 | `codex-swarm-{id}` 네이밍, send-keys 패턴 일관 적용 |
|
|
57
|
+
| WT 통합 | 첫 세션 wt-new-window + 나머지 wt-tab, fallback 포함 |
|
|
58
|
+
|
|
59
|
+
### AskUserQuestion 분기 결과
|
|
60
|
+
|
|
61
|
+
| Step | 인터랙션 필요 여부 | 근거 |
|
|
62
|
+
|------|-------------------|------|
|
|
63
|
+
| Step 2 (태스크 선택) | 불필요 | 사용자가 3개 파일 명시 |
|
|
64
|
+
| Step 3 (스킬 선택) | 불필요 | 파일명으로 자동 분류 가능 (모호하지 않음) |
|
|
65
|
+
| Step 4 (프로파일) | 불필요 | 사용자가 프로파일 언급 안 함 → 자동 라우팅 |
|
|
66
|
+
|
|
67
|
+
결과: **0회 인터랙션** — 사용자가 충분한 정보를 제공했으므로 완전 자동 실행 가능.
|
|
68
|
+
|
|
69
|
+
## 3. 생성된 리소스 매트릭스
|
|
70
|
+
|
|
71
|
+
| 리소스 유형 | auth-refactor | api-v2 | cache-layer |
|
|
72
|
+
|------------|---------------|--------|-------------|
|
|
73
|
+
| 브랜치 | `codex/auth-refactor` | `codex/api-v2` | `codex/cache-layer` |
|
|
74
|
+
| Worktree | `.codex-swarm/wt-auth-refactor` | `.codex-swarm/wt-api-v2` | `.codex-swarm/wt-cache-layer` |
|
|
75
|
+
| 프롬프트 | `prompts/prompt-auth-refactor.md` | `prompts/prompt-api-v2.md` | `prompts/prompt-cache-layer.md` |
|
|
76
|
+
| psmux 세션 | `codex-swarm-auth-refactor` | `codex-swarm-api-v2` | `codex-swarm-cache-layer` |
|
|
77
|
+
| Codex 모델 | gpt-5.3-codex | gpt-5.3-codex | gpt-5.3-codex |
|
|
78
|
+
| Reasoning | high | high | high |
|
|
79
|
+
| 실행 모드 | --full-auto | --full-auto | --full-auto |
|
|
80
|
+
| OMX 흐름 | $plan → $ralph | $plan → $autopilot | $plan → $autopilot |
|
|
81
|
+
|
|
82
|
+
## 4. 제약 사항 및 참고
|
|
83
|
+
|
|
84
|
+
1. **PRD 파일 부재**: 3개 PRD 파일(docs/prd/auth-refactor.md, docs/prd/api-v2.md, docs/prd/cache-layer.md)이 실제 존재하지 않음. 분류와 규모 산정이 파일명 기반 추정에 의존.
|
|
85
|
+
2. **규모 균일성**: 실제 PRD 내용에 따라 규모가 M이나 XL로 바뀔 수 있으며, 그에 따라 프로파일도 codex53_med나 codex53_xhigh로 변경될 수 있음.
|
|
86
|
+
3. **PRD 복사 실패 가능**: Step 6의 `cp` 명령이 원본 파일 부재로 실패할 수 있음 (`|| true`로 에러 무시 처리됨).
|
|
87
|
+
4. **codex 대화식 모드**: SKILL.md에 명시된 대로 `codex exec`(비대화식)가 아닌 대화식 모드 사용. OMX 스킬($plan, $autopilot, $ralph)이 트리거되려면 대화식 필수.
|
|
88
|
+
|
|
89
|
+
## 5. 출력 파일
|
|
90
|
+
|
|
91
|
+
| 파일 | 내용 |
|
|
92
|
+
|------|------|
|
|
93
|
+
| `classification.md` | Step 3 분류 결과 상세 |
|
|
94
|
+
| `routing.md` | Step 4 프로파일 라우팅 결과 상세 |
|
|
95
|
+
| `commands.sh` | Steps 5-8 실행 명령어 전체 |
|
|
96
|
+
| `analysis.md` | 본 분석 리포트 |
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# tfx-codex-swarm — Step 3: 태스크 분류 및 OMX 스킬 매핑
|
|
2
|
+
|
|
3
|
+
> 사용자 요청: "이 PRD 3개 파일을 각각 독립적으로 코덱스한테 맡겨서 병렬로 구현해줘"
|
|
4
|
+
> 입력 파일: docs/prd/auth-refactor.md, docs/prd/api-v2.md, docs/prd/cache-layer.md
|
|
5
|
+
|
|
6
|
+
## 분류 결과
|
|
7
|
+
|
|
8
|
+
| # | 파일 | 슬러그 | 유형 | 판별 근거 | OMX 스킬 |
|
|
9
|
+
|---|------|--------|------|-----------|----------|
|
|
10
|
+
| 1 | docs/prd/auth-refactor.md | auth-refactor | 리팩터링 (refactor) | 파일명에 "refactor" 포함 → 리팩터링 자동 분류 | `$plan` → `$ralph` |
|
|
11
|
+
| 2 | docs/prd/api-v2.md | api-v2 | 구현 (implement) | 파일명 "api-v2" → 새 API 버전 구현, 기본 구현 분류 | `$plan` → `$autopilot` |
|
|
12
|
+
| 3 | docs/prd/cache-layer.md | cache-layer | 구현 (implement) | 파일명 "cache-layer" → 새 레이어 추가, 기본 구현 분류 | `$plan` → `$autopilot` |
|
|
13
|
+
|
|
14
|
+
## 분류 로직
|
|
15
|
+
|
|
16
|
+
### auth-refactor → 리팩터링
|
|
17
|
+
- 파일명 키워드: `refactor` 매치
|
|
18
|
+
- SKILL.md 분류 테이블: "리팩터", "refactor", "정리", "개선" → 리팩터링
|
|
19
|
+
- OMX 스킬: `$plan` → `$ralph` (계획 후 완료까지 반복 실행)
|
|
20
|
+
- 근거: 리팩터링은 기존 코드 구조 변경이므로 ralph의 반복 검증이 적합
|
|
21
|
+
|
|
22
|
+
### api-v2 → 구현
|
|
23
|
+
- 파일명 키워드: `api-v2` → 명시적 리팩터/조사 키워드 없음, 새 버전 = 구현
|
|
24
|
+
- SKILL.md 분류 테이블: "구현", "implement", "추가", "변경" → 구현
|
|
25
|
+
- OMX 스킬: `$plan` → `$autopilot` (계획 후 자율 구현)
|
|
26
|
+
- 근거: 새 API 엔드포인트/버전 추가는 전형적 구현 태스크
|
|
27
|
+
|
|
28
|
+
### cache-layer → 구현
|
|
29
|
+
- 파일명 키워드: `cache-layer` → 새 레이어 추가
|
|
30
|
+
- SKILL.md 분류 테이블: "구현", "implement", "추가" → 구현
|
|
31
|
+
- OMX 스킬: `$plan` → `$autopilot` (계획 후 자율 구현)
|
|
32
|
+
- 근거: 캐시 레이어는 신규 아키텍처 컴포넌트 추가
|
|
33
|
+
|
|
34
|
+
## 참고
|
|
35
|
+
|
|
36
|
+
- PRD 파일이 실제 존재하지 않으므로 **파일명 기반** 분류만 수행
|
|
37
|
+
- 실제 실행 시 파일 내용을 읽어 키워드 복잡도, 영향 파일 수 등을 추가 판별
|
|
38
|
+
- 사용자가 스킬을 명시하지 않았으므로 자동 분류 적용
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# =============================================================================
|
|
3
|
+
# tfx-codex-swarm — Generated Commands (Steps 5-8)
|
|
4
|
+
# =============================================================================
|
|
5
|
+
# 사용자 요청: "이 PRD 3개 파일을 각각 독립적으로 코덱스한테 맡겨서 병렬로 구현해줘"
|
|
6
|
+
# 생성일: 2026-03-30
|
|
7
|
+
# 상태: DRY-RUN (실제 실행 없음)
|
|
8
|
+
# =============================================================================
|
|
9
|
+
|
|
10
|
+
set -euo pipefail
|
|
11
|
+
|
|
12
|
+
PROJECT_ROOT="C:/Users/SSAFY/Desktop/Projects/cli/triflux"
|
|
13
|
+
SWARM_DIR="$PROJECT_ROOT/.codex-swarm"
|
|
14
|
+
BASH_EXE='C:\Program Files\Git\bin\bash.exe'
|
|
15
|
+
|
|
16
|
+
# =============================================================================
|
|
17
|
+
# Step 5: Worktree 생성
|
|
18
|
+
# =============================================================================
|
|
19
|
+
|
|
20
|
+
echo "=== Step 5: Worktree 생성 ==="
|
|
21
|
+
|
|
22
|
+
# auth-refactor worktree
|
|
23
|
+
git worktree add "$SWARM_DIR/wt-auth-refactor" -b codex/auth-refactor 2>/dev/null || \
|
|
24
|
+
git worktree add "$SWARM_DIR/wt-auth-refactor" codex/auth-refactor
|
|
25
|
+
|
|
26
|
+
# api-v2 worktree
|
|
27
|
+
git worktree add "$SWARM_DIR/wt-api-v2" -b codex/api-v2 2>/dev/null || \
|
|
28
|
+
git worktree add "$SWARM_DIR/wt-api-v2" codex/api-v2
|
|
29
|
+
|
|
30
|
+
# cache-layer worktree
|
|
31
|
+
git worktree add "$SWARM_DIR/wt-cache-layer" -b codex/cache-layer 2>/dev/null || \
|
|
32
|
+
git worktree add "$SWARM_DIR/wt-cache-layer" codex/cache-layer
|
|
33
|
+
|
|
34
|
+
# =============================================================================
|
|
35
|
+
# Step 6: 프롬프트 생성
|
|
36
|
+
# =============================================================================
|
|
37
|
+
|
|
38
|
+
echo "=== Step 6: 프롬프트 생성 ==="
|
|
39
|
+
|
|
40
|
+
mkdir -p "$SWARM_DIR/prompts"
|
|
41
|
+
|
|
42
|
+
# --- auth-refactor 프롬프트 ---
|
|
43
|
+
cat > "$SWARM_DIR/prompts/prompt-auth-refactor.md" << 'PROMPT_EOF'
|
|
44
|
+
triflux 프로젝트의 태스크를 리팩터링해야 합니다.
|
|
45
|
+
|
|
46
|
+
태스크 파일을 먼저 읽으세요: docs/prd/auth-refactor.md
|
|
47
|
+
|
|
48
|
+
작업 순서:
|
|
49
|
+
1. 태스크 파일을 읽고 요구사항을 파악하세요
|
|
50
|
+
2. $plan을 실행하여 리팩터링 계획을 수립하세요
|
|
51
|
+
3. $ralph를 실행하여 완료까지 반복 실행하세요
|
|
52
|
+
|
|
53
|
+
프로젝트 정보:
|
|
54
|
+
- triflux: Claude Code용 멀티모델 CLI 오케스트레이터
|
|
55
|
+
- 언어: JavaScript/ESM (Node.js), 테스트: npm test
|
|
56
|
+
PROMPT_EOF
|
|
57
|
+
|
|
58
|
+
# PRD를 worktree에 복사
|
|
59
|
+
cp "$PROJECT_ROOT/docs/prd/auth-refactor.md" "$SWARM_DIR/wt-auth-refactor/docs/prd/auth-refactor.md" 2>/dev/null || true
|
|
60
|
+
|
|
61
|
+
# --- api-v2 프롬프트 ---
|
|
62
|
+
cat > "$SWARM_DIR/prompts/prompt-api-v2.md" << 'PROMPT_EOF'
|
|
63
|
+
triflux 프로젝트의 태스크를 구현해야 합니다.
|
|
64
|
+
|
|
65
|
+
태스크 파일을 먼저 읽으세요: docs/prd/api-v2.md
|
|
66
|
+
|
|
67
|
+
작업 순서:
|
|
68
|
+
1. 태스크 파일을 읽고 요구사항을 파악하세요
|
|
69
|
+
2. $plan을 실행하여 구현 계획을 수립하세요
|
|
70
|
+
3. $autopilot을 실행하여 자율 구현하세요
|
|
71
|
+
|
|
72
|
+
프로젝트 정보:
|
|
73
|
+
- triflux: Claude Code용 멀티모델 CLI 오케스트레이터
|
|
74
|
+
- 언어: JavaScript/ESM (Node.js), 테스트: npm test
|
|
75
|
+
PROMPT_EOF
|
|
76
|
+
|
|
77
|
+
# PRD를 worktree에 복사
|
|
78
|
+
cp "$PROJECT_ROOT/docs/prd/api-v2.md" "$SWARM_DIR/wt-api-v2/docs/prd/api-v2.md" 2>/dev/null || true
|
|
79
|
+
|
|
80
|
+
# --- cache-layer 프롬프트 ---
|
|
81
|
+
cat > "$SWARM_DIR/prompts/prompt-cache-layer.md" << 'PROMPT_EOF'
|
|
82
|
+
triflux 프로젝트의 태스크를 구현해야 합니다.
|
|
83
|
+
|
|
84
|
+
태스크 파일을 먼저 읽으세요: docs/prd/cache-layer.md
|
|
85
|
+
|
|
86
|
+
작업 순서:
|
|
87
|
+
1. 태스크 파일을 읽고 요구사항을 파악하세요
|
|
88
|
+
2. $plan을 실행하여 구현 계획을 수립하세요
|
|
89
|
+
3. $autopilot을 실행하여 자율 구현하세요
|
|
90
|
+
|
|
91
|
+
프로젝트 정보:
|
|
92
|
+
- triflux: Claude Code용 멀티모델 CLI 오케스트레이터
|
|
93
|
+
- 언어: JavaScript/ESM (Node.js), 테스트: npm test
|
|
94
|
+
PROMPT_EOF
|
|
95
|
+
|
|
96
|
+
# PRD를 worktree에 복사
|
|
97
|
+
cp "$PROJECT_ROOT/docs/prd/cache-layer.md" "$SWARM_DIR/wt-cache-layer/docs/prd/cache-layer.md" 2>/dev/null || true
|
|
98
|
+
|
|
99
|
+
# =============================================================================
|
|
100
|
+
# Step 7: psmux 세션 생성 + Codex 실행
|
|
101
|
+
# =============================================================================
|
|
102
|
+
|
|
103
|
+
echo "=== Step 7: psmux 세션 + Codex 실행 ==="
|
|
104
|
+
|
|
105
|
+
# 공통 프로파일 플래그 (전부 codex53_high)
|
|
106
|
+
PROFILE_FLAGS="-c 'model=\"gpt-5.3-codex\"' -c 'model_reasoning_effort=\"high\"'"
|
|
107
|
+
|
|
108
|
+
# --- auth-refactor 세션 ---
|
|
109
|
+
psmux new-session --name "codex-swarm-auth-refactor" --dir "$SWARM_DIR/wt-auth-refactor"
|
|
110
|
+
|
|
111
|
+
psmux send-keys --target "codex-swarm-auth-refactor:0" \
|
|
112
|
+
"codex -c 'model=\"gpt-5.3-codex\"' -c 'model_reasoning_effort=\"high\"' --full-auto \"\$(cat $SWARM_DIR/prompts/prompt-auth-refactor.md)\"" Enter
|
|
113
|
+
|
|
114
|
+
# --- api-v2 세션 ---
|
|
115
|
+
psmux new-session --name "codex-swarm-api-v2" --dir "$SWARM_DIR/wt-api-v2"
|
|
116
|
+
|
|
117
|
+
psmux send-keys --target "codex-swarm-api-v2:0" \
|
|
118
|
+
"codex -c 'model=\"gpt-5.3-codex\"' -c 'model_reasoning_effort=\"high\"' --full-auto \"\$(cat $SWARM_DIR/prompts/prompt-api-v2.md)\"" Enter
|
|
119
|
+
|
|
120
|
+
# --- cache-layer 세션 ---
|
|
121
|
+
psmux new-session --name "codex-swarm-cache-layer" --dir "$SWARM_DIR/wt-cache-layer"
|
|
122
|
+
|
|
123
|
+
psmux send-keys --target "codex-swarm-cache-layer:0" \
|
|
124
|
+
"codex -c 'model=\"gpt-5.3-codex\"' -c 'model_reasoning_effort=\"high\"' --full-auto \"\$(cat $SWARM_DIR/prompts/prompt-cache-layer.md)\"" Enter
|
|
125
|
+
|
|
126
|
+
# =============================================================================
|
|
127
|
+
# Step 8: WT 탭 일괄 attach
|
|
128
|
+
# =============================================================================
|
|
129
|
+
|
|
130
|
+
echo "=== Step 8: WT 탭 attach ==="
|
|
131
|
+
|
|
132
|
+
# 첫 번째 세션: 새 WT 윈도우
|
|
133
|
+
psmux attach --session "codex-swarm-auth-refactor" --wt-new-window
|
|
134
|
+
|
|
135
|
+
# 나머지 세션: 같은 윈도우에 탭 추가
|
|
136
|
+
psmux attach --session "codex-swarm-api-v2" --wt-tab
|
|
137
|
+
psmux attach --session "codex-swarm-cache-layer" --wt-tab
|
|
138
|
+
|
|
139
|
+
# --- fallback: psmux attach 불가 시 wt.exe 직접 호출 ---
|
|
140
|
+
# wt.exe -w new \
|
|
141
|
+
# --title "auth-refactor" -d "$SWARM_DIR/wt-auth-refactor" "$BASH_EXE" -c "psmux attach codex-swarm-auth-refactor" \; \
|
|
142
|
+
# new-tab --title "api-v2" -d "$SWARM_DIR/wt-api-v2" "$BASH_EXE" -c "psmux attach codex-swarm-api-v2" \; \
|
|
143
|
+
# new-tab --title "cache-layer" -d "$SWARM_DIR/wt-cache-layer" "$BASH_EXE" -c "psmux attach codex-swarm-cache-layer"
|
|
144
|
+
|
|
145
|
+
echo "=== 스웜 스폰 완료 ==="
|
|
146
|
+
echo ""
|
|
147
|
+
echo "| # | 태스크 | 유형 | OMX 스킬 | Worktree | 세션 |"
|
|
148
|
+
echo "|---|-----------------|------------|---------------------|---------------------|-----------------------------|"
|
|
149
|
+
echo "| 1 | auth-refactor | 리팩터링 | \$plan→\$ralph | wt-auth-refactor | codex-swarm-auth-refactor |"
|
|
150
|
+
echo "| 2 | api-v2 | 구현 | \$plan→\$autopilot | wt-api-v2 | codex-swarm-api-v2 |"
|
|
151
|
+
echo "| 3 | cache-layer | 구현 | \$plan→\$autopilot | wt-cache-layer | codex-swarm-cache-layer |"
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# tfx-codex-swarm — Step 4: 프로파일 자동 라우팅
|
|
2
|
+
|
|
3
|
+
> 사용자 요청: "이 PRD 3개 파일을 각각 독립적으로 코덱스한테 맡겨서 병렬로 구현해줘"
|
|
4
|
+
|
|
5
|
+
## 4-1. 태스크 규모 산정
|
|
6
|
+
|
|
7
|
+
PRD 파일이 실제 존재하지 않으므로 **파일명 기반 추정**으로 규모를 산정한다.
|
|
8
|
+
실제 실행 시에는 PRD 줄 수, 영향 파일 수, 고비용 키워드를 측정한다.
|
|
9
|
+
|
|
10
|
+
| # | 태스크 | PRD 줄 수 (추정) | 영향 파일 (추정) | 고비용 키워드 | 규모 |
|
|
11
|
+
|---|--------|------------------|-----------------|-------------|------|
|
|
12
|
+
| 1 | auth-refactor | 60줄 | 4-5 파일 | "리팩터링" (1개) | **L (표준)** |
|
|
13
|
+
| 2 | api-v2 | 50줄 | 3-4 파일 | 없음 | **L (표준)** |
|
|
14
|
+
| 3 | cache-layer | 50줄 | 3-4 파일 | 없음 | **L (표준)** |
|
|
15
|
+
|
|
16
|
+
### 추정 근거
|
|
17
|
+
|
|
18
|
+
- **auth-refactor**: 인증 리팩터링은 기존 auth 모듈, 미들웨어, 라우트, 테스트 등 다수 파일에 영향. "리팩터링" 고비용 키워드 1개. L 규모.
|
|
19
|
+
- **api-v2**: API v2는 라우트 정의, 컨트롤러, 스키마, 테스트 등 3-4개 파일. 고비용 키워드 없음. L 규모.
|
|
20
|
+
- **cache-layer**: 캐시 레이어는 캐시 모듈, 설정, 통합 포인트, 테스트 등 3-4개 파일. 고비용 키워드 없음. L 규모.
|
|
21
|
+
|
|
22
|
+
## 4-2. 프로파일 라우팅
|
|
23
|
+
|
|
24
|
+
유형(Step 3) × 규모(4-1)을 SKILL.md 라우팅 테이블에 대입:
|
|
25
|
+
|
|
26
|
+
| # | 태스크 | 규모 | 유형 | 프로파일 | Codex CLI 플래그 |
|
|
27
|
+
|---|--------|------|------|----------|-----------------|
|
|
28
|
+
| 1 | auth-refactor | L | 리팩터링 | `codex53_high` | `-c 'model="gpt-5.3-codex"' -c 'model_reasoning_effort="high"'` |
|
|
29
|
+
| 2 | api-v2 | L | 구현 | `codex53_high` | `-c 'model="gpt-5.3-codex"' -c 'model_reasoning_effort="high"'` |
|
|
30
|
+
| 3 | cache-layer | L | 구현 | `codex53_high` | `-c 'model="gpt-5.3-codex"' -c 'model_reasoning_effort="high"'` |
|
|
31
|
+
|
|
32
|
+
### 라우팅 테이블 참조
|
|
33
|
+
|
|
34
|
+
SKILL.md Step 4-2 테이블에서:
|
|
35
|
+
- 리팩터링 × L = `codex53_high`
|
|
36
|
+
- 구현 × L = `codex53_high`
|
|
37
|
+
|
|
38
|
+
3개 태스크 모두 L 규모이므로 동일 프로파일(`codex53_high`)로 라우팅됨.
|
|
39
|
+
|
|
40
|
+
## 4-3. 기타 설정
|
|
41
|
+
|
|
42
|
+
| 설정 | 값 | 설명 |
|
|
43
|
+
|------|-----|------|
|
|
44
|
+
| 실행 모드 | `--full-auto` | 사용자가 "맡겨서"라고 했으므로 full-auto 기본값 유지 |
|
|
45
|
+
| worktree | 활성화 | 세션당 독립 worktree |
|
|
46
|
+
| psmux | 활성화 | 세션 관리 |
|
|
47
|
+
| 프로파일 오버라이드 | 없음 | 사용자가 프로파일을 명시하지 않았으므로 자동 라우팅 유지 |
|
|
48
|
+
|
|
49
|
+
## 요약
|
|
50
|
+
|
|
51
|
+
3개 태스크 모두 L 규모 + codex53_high 프로파일. gpt-5.3-codex 모델, reasoning effort=high로 실행.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"expectations": [
|
|
3
|
+
{"text": "3-paths-recognized", "passed": true, "evidence": "3개 파일 경로 인식"},
|
|
4
|
+
{"text": "filename-classification", "passed": false, "evidence": "모두 implement로 평탄화, auth-refactor를 리팩터링으로 분류 실패"},
|
|
5
|
+
{"text": "profile-routing-applied", "passed": false, "evidence": "프로파일 라우팅 없음, 동일 설정 적용 또는 bare codex"},
|
|
6
|
+
{"text": "worktree-isolation", "passed": true, "evidence": "3개 worktree 생성 (시나리오 C)"},
|
|
7
|
+
{"text": "psmux-and-wt", "passed": true, "evidence": "psmux + WT 명령 존재 (시나리오 C)"}
|
|
8
|
+
]
|
|
9
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Eval Analysis: implicit-swarm-no-keywords (without_skill)
|
|
2
|
+
|
|
3
|
+
> Eval ID: 3
|
|
4
|
+
> Generated: 2026-03-30
|
|
5
|
+
> Prompt: "이 PRD 3개 파일을 각각 독립적으로 코덱스한테 맡겨서 병렬로 구현해줘. docs/prd/auth-refactor.md, docs/prd/api-v2.md, docs/prd/cache-layer.md"
|
|
6
|
+
> Condition: Agent has NO tfx-codex-swarm skill loaded
|
|
7
|
+
|
|
8
|
+
## Assertion Results
|
|
9
|
+
|
|
10
|
+
| # | Assertion | Pass? | Notes |
|
|
11
|
+
|---|-----------|-------|-------|
|
|
12
|
+
| 1 | **3-paths-recognized** | PASS | Agent can parse 3 explicit paths from user prompt without any skill |
|
|
13
|
+
| 2 | **filename-classification** | PARTIAL | Agent recognizes "refactor" keyword but user directive "구현해줘" overrides; no formal type taxonomy available |
|
|
14
|
+
| 3 | **profile-routing-applied** | FAIL | No routing table exists without skill. Agent either uses flat defaults or must reverse-engineer tfx-route.sh |
|
|
15
|
+
| 4 | **worktree-isolation** | PARTIAL | Agent may create worktrees if it knows git worktree, but naming convention and `.codex-swarm/` structure are not discoverable without skill |
|
|
16
|
+
| 5 | **psmux-and-wt** | FAIL | Agent has no reason to reach for psmux unless it independently discovers `hub/team/psmux.mjs` or `scripts/tfx-route.sh` references |
|
|
17
|
+
|
|
18
|
+
**Overall: 1 PASS, 2 PARTIAL, 2 FAIL** (vs. with_skill expected: 5/5 PASS)
|
|
19
|
+
|
|
20
|
+
## Detailed Gap Analysis
|
|
21
|
+
|
|
22
|
+
### 1. Task Recognition (PASS)
|
|
23
|
+
|
|
24
|
+
Both with-skill and without-skill agents can parse the 3 file paths from the prompt.
|
|
25
|
+
This is basic NLP extraction and requires no specialized knowledge.
|
|
26
|
+
|
|
27
|
+
- User explicitly named: `docs/prd/auth-refactor.md`, `docs/prd/api-v2.md`, `docs/prd/cache-layer.md`
|
|
28
|
+
- Any agent can extract these regardless of skill availability
|
|
29
|
+
|
|
30
|
+
### 2. Classification (PARTIAL)
|
|
31
|
+
|
|
32
|
+
**With skill**: Formal 3-type taxonomy (implement/investigate/refactor) with keyword lists.
|
|
33
|
+
Even without file content, the skill instructs filename-based fallback classification.
|
|
34
|
+
|
|
35
|
+
**Without skill**: Agent improvises:
|
|
36
|
+
- Recognizes "refactor" in `auth-refactor.md` -- but has no framework to act on it
|
|
37
|
+
- User said "구현해줘" -- agent flattens all 3 to "implement"
|
|
38
|
+
- No differentiation between auth-refactor (should be refactor workflow -> `$ralph`) and api-v2 (implement -> `$autopilot`)
|
|
39
|
+
|
|
40
|
+
**Impact**: auth-refactor loses the refactoring-optimized workflow. All 3 tasks get identical treatment.
|
|
41
|
+
|
|
42
|
+
### 3. Profile Routing (FAIL)
|
|
43
|
+
|
|
44
|
+
**With skill**: Step 4 provides a 4x4 routing matrix (type x size):
|
|
45
|
+
- auth-refactor (refactor, L) -> `codex53_high`
|
|
46
|
+
- api-v2 (implement, XL) -> `codex53_xhigh`
|
|
47
|
+
- cache-layer (implement, M) -> `codex53_med`
|
|
48
|
+
|
|
49
|
+
**Without skill**: Agent has no routing table. Three scenarios:
|
|
50
|
+
- **Best case**: Discovers `tfx-route.sh`, uses `executor` type -> all get `codex53_high`
|
|
51
|
+
- **Typical case**: Runs `codex --full-auto` -> Codex default model, no profile
|
|
52
|
+
- **Worst case**: Doesn't know Codex CLI flags at all
|
|
53
|
+
|
|
54
|
+
**Impact**:
|
|
55
|
+
- api-v2 (likely complex) is underprovisioned without `xhigh`
|
|
56
|
+
- cache-layer (likely simple) is overprovisioned
|
|
57
|
+
- Cost-efficiency is lost; estimated 20-40% token waste on mismatched profiles
|
|
58
|
+
|
|
59
|
+
### 4. Worktree Isolation (PARTIAL)
|
|
60
|
+
|
|
61
|
+
**With skill**: Standardized `.codex-swarm/wt-{slug}` naming, branch `codex/{slug}`, PRD copy into worktree.
|
|
62
|
+
|
|
63
|
+
**Without skill**: Agent may know git worktree but:
|
|
64
|
+
- Naming convention is ad-hoc (no `.codex-swarm/` prefix)
|
|
65
|
+
- May create worktrees at project root level (messy)
|
|
66
|
+
- May skip worktrees entirely and run all 3 codex sessions in the same directory (conflict risk)
|
|
67
|
+
- No PRD file copy into worktree
|
|
68
|
+
- No prompt file generation (`.codex-swarm/prompts/prompt-{id}.md`)
|
|
69
|
+
|
|
70
|
+
**Impact**: Without worktree isolation, 3 parallel Codex sessions writing to the same directory will produce git conflicts and corrupted state.
|
|
71
|
+
|
|
72
|
+
### 5. psmux + WT Integration (FAIL)
|
|
73
|
+
|
|
74
|
+
**With skill**: Full psmux lifecycle:
|
|
75
|
+
- `psmux new-session` per task with correct `--dir`
|
|
76
|
+
- `psmux send-keys` with codex command + profile flags
|
|
77
|
+
- `psmux attach --wt-new-window` + `--wt-tab` for unified WT view
|
|
78
|
+
- Post-spawn status monitoring via `psmux capture-pane`
|
|
79
|
+
|
|
80
|
+
**Without skill**: Agent has no reason to use psmux:
|
|
81
|
+
- Most likely runs `codex &` in background (no session management)
|
|
82
|
+
- No WT tab integration
|
|
83
|
+
- No way to monitor/attach to running sessions
|
|
84
|
+
- No unified dashboard view
|
|
85
|
+
|
|
86
|
+
**Impact**: User loses visibility into parallel execution. No way to monitor, no tab-based overview, no session recovery if terminal closes.
|
|
87
|
+
|
|
88
|
+
## Missing Capabilities Without Skill
|
|
89
|
+
|
|
90
|
+
| Capability | With Skill | Without Skill |
|
|
91
|
+
|-----------|-----------|---------------|
|
|
92
|
+
| PRD scanning (auto-discover) | `.omx/plans/`, `.omc/plans/`, `docs/prd/` | Only user-specified paths |
|
|
93
|
+
| Type classification | 3-type taxonomy + keyword lists | Ad-hoc filename guessing |
|
|
94
|
+
| OMX skill mapping | `$plan -> $autopilot` / `$ralph` / `$plan` | None -- raw codex prompt |
|
|
95
|
+
| Profile routing | 4x4 matrix (type x size) | Flat or default |
|
|
96
|
+
| Size estimation | PRD lines + file impact + keyword complexity | Not attempted |
|
|
97
|
+
| Worktree naming | `.codex-swarm/wt-{slug}` standard | Ad-hoc |
|
|
98
|
+
| Prompt generation | Structured prompt file per task | Inline string |
|
|
99
|
+
| psmux sessions | Named sessions with dir binding | Background processes |
|
|
100
|
+
| WT integration | Tabbed window with attach | None |
|
|
101
|
+
| Post-spawn monitoring | `psmux capture-pane` per session | `wait` + hope |
|
|
102
|
+
| Result collection | `git merge codex/{slug}` workflow | Manual |
|
|
103
|
+
| Interactive config | AskUserQuestion for overrides | None |
|
|
104
|
+
|
|
105
|
+
## Root Cause: Why the Skill Matters
|
|
106
|
+
|
|
107
|
+
The prompt "이 PRD 3개 파일을 각각 독립적으로 코덱스한테 맡겨서 병렬로 구현해줘" contains NO explicit keywords that trigger the codex-swarm skill:
|
|
108
|
+
- No "swarm", "스웜", "다중 실행", "omx swarm"
|
|
109
|
+
- Just "코덱스한테 맡겨서 병렬로"
|
|
110
|
+
|
|
111
|
+
This is the core challenge of eval #3 (implicit-swarm-no-keywords):
|
|
112
|
+
- **With skill**: The skill description matches on "PRD가 여러 개이거나 병렬 Codex 실행이 필요한 모든 상황" -- this catches the implicit intent
|
|
113
|
+
- **Without skill**: The agent must independently reinvent the entire 10-step workflow from first principles
|
|
114
|
+
|
|
115
|
+
## Conclusion
|
|
116
|
+
|
|
117
|
+
Without the tfx-codex-swarm skill, an agent presented with this prompt will:
|
|
118
|
+
|
|
119
|
+
1. **Correctly identify** the 3 PRD paths (trivial extraction)
|
|
120
|
+
2. **Fail to classify** tasks by type (no taxonomy)
|
|
121
|
+
3. **Fail to route** profiles optimally (no routing matrix)
|
|
122
|
+
4. **Partially isolate** via worktrees (if it knows git worktree)
|
|
123
|
+
5. **Fail to orchestrate** via psmux/WT (no knowledge of project's session infra)
|
|
124
|
+
|
|
125
|
+
The resulting execution would be 3 bare `codex --full-auto` processes running in the same directory with no isolation, no monitoring, no profile optimization, and no WT integration. This is functionally equivalent to the user manually opening 3 terminals and typing codex commands -- the agent adds no orchestration value.
|
|
126
|
+
|
|
127
|
+
The skill bridges a gap between "I know what Codex is" and "I know how THIS PROJECT orchestrates Codex at scale." That project-specific knowledge (worktree conventions, psmux patterns, profile routing, OMX skill mapping) cannot be inferred from the prompt alone.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# PRD Classification (without skill guidance)
|
|
2
|
+
|
|
3
|
+
> Generated: 2026-03-30
|
|
4
|
+
> Source: user-specified paths (3 PRDs)
|
|
5
|
+
> Prompt: "이 PRD 3개 파일을 각각 독립적으로 코덱스한테 맡겨서 병렬로 구현해줘"
|
|
6
|
+
> Mode: **no skill** — agent infers workflow from project infrastructure only
|
|
7
|
+
|
|
8
|
+
## Input Recognition
|
|
9
|
+
|
|
10
|
+
User explicitly provided 3 file paths:
|
|
11
|
+
|
|
12
|
+
| # | PRD File | Exists |
|
|
13
|
+
|---|----------|--------|
|
|
14
|
+
| 1 | `docs/prd/auth-refactor.md` | No (simulated) |
|
|
15
|
+
| 2 | `docs/prd/api-v2.md` | No (simulated) |
|
|
16
|
+
| 3 | `docs/prd/cache-layer.md` | No (simulated) |
|
|
17
|
+
|
|
18
|
+
## Filename-Based Type Classification
|
|
19
|
+
|
|
20
|
+
Since the PRD files do not exist (simulated scenario), classification relies entirely on filename heuristics:
|
|
21
|
+
|
|
22
|
+
| # | PRD File | Inferred Type | Reasoning |
|
|
23
|
+
|---|----------|---------------|-----------|
|
|
24
|
+
| 1 | `auth-refactor.md` | **refactor** (리팩터링) | Filename contains "refactor" -- clear refactoring signal |
|
|
25
|
+
| 2 | `api-v2.md` | **implement** (구현) | "v2" implies new version/feature implementation |
|
|
26
|
+
| 3 | `cache-layer.md` | **implement** (구현) | "layer" implies new subsystem/feature implementation |
|
|
27
|
+
|
|
28
|
+
## Classification Logic Applied
|
|
29
|
+
|
|
30
|
+
Without skill guidance, the agent has NO formal classification table. Instead it relies on:
|
|
31
|
+
|
|
32
|
+
1. **Filename keyword matching** (ad-hoc):
|
|
33
|
+
- "refactor" in filename -> refactoring task
|
|
34
|
+
- "v2", "new", "layer" -> implementation task
|
|
35
|
+
- No "investigation"/"조사" signals detected
|
|
36
|
+
|
|
37
|
+
2. **User directive parsing**:
|
|
38
|
+
- "구현해줘" (implement) -- user explicitly said "implement" for all 3
|
|
39
|
+
- This overrides any filename-based classification
|
|
40
|
+
|
|
41
|
+
3. **Conflict**: Filename says "refactor" for auth-refactor, but user says "구현해줘" for all.
|
|
42
|
+
Without skill guidance, the agent likely treats all 3 as implementation tasks per user directive.
|
|
43
|
+
|
|
44
|
+
## Final Classification
|
|
45
|
+
|
|
46
|
+
| # | PRD File | Final Type | Rationale |
|
|
47
|
+
|---|----------|-----------|-----------|
|
|
48
|
+
| 1 | `auth-refactor.md` | **implement** | User said "구현해줘"; overrides filename "refactor" signal |
|
|
49
|
+
| 2 | `api-v2.md` | **implement** | User said "구현해줘"; filename aligns |
|
|
50
|
+
| 3 | `cache-layer.md` | **implement** | User said "구현해줘"; filename aligns |
|
|
51
|
+
|
|
52
|
+
## Observations (vs. with-skill behavior)
|
|
53
|
+
|
|
54
|
+
- **No formal classification table**: The skill provides a 3-type taxonomy (implement/investigate/refactor) with keyword lists. Without it, the agent must improvise.
|
|
55
|
+
- **No OMX skill mapping**: No `$plan -> $autopilot` or `$plan -> $ralph` differentiation. The agent likely does not mention OMX skills at all.
|
|
56
|
+
- **User override dominance**: "구현해줘" flattens all tasks to implement, losing the nuance that auth-refactor might benefit from a refactoring workflow (`$ralph`).
|
|
57
|
+
- **No PRD content analysis**: Since files don't exist, both with-skill and without-skill variants rely on filenames. But the skill variant would explicitly note the absence and still apply its classification table.
|