triflux 8.11.2 → 8.12.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-plugin/plugin.json +1 -1
- package/README.ko.md +1 -1
- package/README.md +1 -1
- package/hooks/hooks.json +56 -51
- package/hub/pipeline/index.mjs +318 -318
- package/hub/routing/q-learning.mjs +2 -1
- package/hub/schema.sql +146 -146
- package/hub/team/cli/commands/kill.mjs +37 -37
- package/hub/team/cli/commands/start/index.mjs +3 -2
- package/hub/team/cli/commands/start/parse-args.mjs +5 -0
- package/hub/team/cli/commands/start/start-headless.mjs +2 -1
- package/hub/team/cli/commands/stop.mjs +31 -31
- package/hub/team/cli/commands/task.mjs +30 -30
- package/hub/team/cli/help.mjs +41 -40
- package/hub/team/cli/services/hub-client.mjs +208 -208
- package/hub/team/cli/services/native-control.mjs +118 -118
- package/hub/team/cli/services/runtime-mode.mjs +62 -62
- package/hub/team/cli/services/state-store.mjs +48 -48
- package/hub/team/dashboard-anchor.mjs +14 -0
- package/hub/team/dashboard.mjs +274 -274
- package/hub/team/headless.mjs +44 -19
- package/hub/team/native.mjs +649 -649
- package/hub/tools.mjs +554 -554
- package/hub/workers/delegator-mcp.mjs +21 -1
- package/package.json +1 -1
- package/scripts/__tests__/remote-spawn-transfer.test.mjs +117 -0
- package/scripts/__tests__/remote-spawn.test.mjs +78 -0
- package/scripts/cache-buildup.mjs +401 -0
- package/scripts/headless-guard.mjs +10 -3
- package/scripts/hub-ensure.mjs +120 -120
- package/scripts/lib/mcp-filter.mjs +720 -720
- package/scripts/lib/remote-spawn-transfer.mjs +196 -0
- package/scripts/mcp-check.mjs +237 -127
- package/scripts/mcp-gateway-ensure.mjs +6 -8
- package/scripts/mcp-gateway-integration-test.mjs +228 -0
- package/scripts/mcp-gateway-start.mjs +42 -16
- package/scripts/mcp-gateway-start.ps1 +17 -14
- package/scripts/mcp-gateway-verify.mjs +1 -1
- package/scripts/preflight-cache.mjs +137 -137
- package/scripts/remote-spawn.mjs +404 -40
- package/scripts/setup.mjs +18 -0
- package/scripts/tfx-route-worker.mjs +165 -165
- package/scripts/tfx-route.sh +85 -16
- package/scripts/token-snapshot.mjs +575 -575
- package/skills/tfx-analysis/SKILL.md +101 -101
- package/skills/tfx-autopilot/SKILL.md +112 -112
- package/skills/tfx-autoresearch/SKILL.md +1 -0
- package/skills/tfx-autoroute/SKILL.md +184 -184
- package/skills/tfx-codex-swarm/SKILL.md +449 -0
- package/skills/tfx-codex-swarm/evals/evals.json +26 -0
- 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-profile/SKILL.md +141 -51
- package/skills/tfx-qa/SKILL.md +117 -117
- package/skills/tfx-remote-spawn/references/hosts.json +16 -16
- package/skills/tfx-review/SKILL.md +51 -51
- package/skills/tfx-setup/SKILL.md +20 -0
- package/tui/gemini-profile.mjs +254 -0
- package/tui/setup.mjs +36 -1
- package/scripts/claude-logged.ps1 +0 -54
- package/scripts/demo-tui.mjs +0 -59
- package/skills/.omc/state/agent-replay-8f0e10a9-9693-4410-96f5-a6b07e8ed995.jsonl +0 -1
- package/skills/.omc/state/idle-notif-cooldown.json +0 -3
- package/skills/.omc/state/last-tool-error.json +0 -7
- package/skills/.omc/state/subagent-tracking.json +0 -7
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Codex Swarm - PRD Classification Table
|
|
2
|
+
|
|
3
|
+
> Generated: 2026-03-30
|
|
4
|
+
> Source: `.omx/plans/prd-issue-{24..30}.md` (7 PRDs)
|
|
5
|
+
> User directive: "구현은 autopilot, 조사는 plan만 쓰고"
|
|
6
|
+
|
|
7
|
+
## Classification
|
|
8
|
+
|
|
9
|
+
| # | PRD File | Type | Keywords Found | User Override | OMX Skill |
|
|
10
|
+
|---|----------|------|----------------|---------------|-----------|
|
|
11
|
+
| 24 | `prd-issue-24-remote-spawn-file-transfer.md` | **implement** (구현) | "추가", "변경" | autopilot | `$plan` -> `$autopilot` |
|
|
12
|
+
| 25 | `prd-issue-25-remote-spawn-resize-blank-screen.md` | **investigate** (조사) | "조사", "investigation", "재현", "reproduce" | plan only | `$plan` |
|
|
13
|
+
| 26 | `prd-issue-26-remote-spawn-session-cleanup.md` | **implement** (구현) | "추가", "변경" | autopilot | `$plan` -> `$autopilot` |
|
|
14
|
+
| 27 | `prd-issue-27-hud-dashboard-anchor.md` | **implement** (구현) | "변경", "개선" | autopilot | `$plan` -> `$autopilot` |
|
|
15
|
+
| 28 | `prd-issue-28-headless-guard-spawn-deadlock.md` | **implement** (구현) | "변경", "fix" | autopilot | `$plan` -> `$autopilot` |
|
|
16
|
+
| 29 | `prd-issue-29-headless-cwd-propagation.md` | **implement** (구현) | "변경" | autopilot | `$plan` -> `$autopilot` |
|
|
17
|
+
| 30 | `prd-issue-30-remote-spawn-terminal-minimize.md` | **investigate** (조사) | "조사", "investigation", "재현", "reproduce" | plan only | `$plan` |
|
|
18
|
+
|
|
19
|
+
## Classification Logic
|
|
20
|
+
|
|
21
|
+
Per SKILL.md Step 3:
|
|
22
|
+
|
|
23
|
+
- **implement**: PRD content contains "구현", "implement", "추가", "변경", "fix"
|
|
24
|
+
- **investigate**: PRD content contains "조사", "investigation", "재현", "reproduce"
|
|
25
|
+
- **refactor**: PRD content contains "리팩터", "refactor", "정리", "개선"
|
|
26
|
+
|
|
27
|
+
User explicitly overrode skill assignment:
|
|
28
|
+
- All **implement** tasks -> `$plan` -> `$autopilot` (not `$ralph`)
|
|
29
|
+
- All **investigate** tasks -> `$plan` only (no follow-up execution)
|
|
30
|
+
|
|
31
|
+
## Summary
|
|
32
|
+
|
|
33
|
+
- **5 implement** tasks: issues 24, 26, 27, 28, 29
|
|
34
|
+
- **2 investigate** tasks: issues 25, 30
|
|
35
|
+
- **0 refactor** tasks
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# =============================================================================
|
|
3
|
+
# Codex Swarm — Full Swarm: 7 PRDs (Issues 24-30)
|
|
4
|
+
# Generated: 2026-03-30
|
|
5
|
+
# User directive: 구현=autopilot, 조사=plan만, 하나의 WT에 탭으로
|
|
6
|
+
# =============================================================================
|
|
7
|
+
# DO NOT EXECUTE — this is a dry-run generation for review.
|
|
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
|
+
WT_DIR="$SWARM_DIR/wt-issue"
|
|
15
|
+
PROMPT_DIR="$SWARM_DIR/prompts"
|
|
16
|
+
BASH_EXE='C:\Program Files\Git\bin\bash.exe'
|
|
17
|
+
|
|
18
|
+
# =============================================================================
|
|
19
|
+
# Step 5: Create git worktrees
|
|
20
|
+
# =============================================================================
|
|
21
|
+
|
|
22
|
+
echo "=== Step 5: Creating git worktrees ==="
|
|
23
|
+
|
|
24
|
+
git worktree add "$SWARM_DIR/wt-issue-24" -b codex/issue-24 2>/dev/null || \
|
|
25
|
+
git worktree add "$SWARM_DIR/wt-issue-24" codex/issue-24
|
|
26
|
+
|
|
27
|
+
git worktree add "$SWARM_DIR/wt-issue-25" -b codex/issue-25 2>/dev/null || \
|
|
28
|
+
git worktree add "$SWARM_DIR/wt-issue-25" codex/issue-25
|
|
29
|
+
|
|
30
|
+
git worktree add "$SWARM_DIR/wt-issue-26" -b codex/issue-26 2>/dev/null || \
|
|
31
|
+
git worktree add "$SWARM_DIR/wt-issue-26" codex/issue-26
|
|
32
|
+
|
|
33
|
+
git worktree add "$SWARM_DIR/wt-issue-27" -b codex/issue-27 2>/dev/null || \
|
|
34
|
+
git worktree add "$SWARM_DIR/wt-issue-27" codex/issue-27
|
|
35
|
+
|
|
36
|
+
git worktree add "$SWARM_DIR/wt-issue-28" -b codex/issue-28 2>/dev/null || \
|
|
37
|
+
git worktree add "$SWARM_DIR/wt-issue-28" codex/issue-28
|
|
38
|
+
|
|
39
|
+
git worktree add "$SWARM_DIR/wt-issue-29" -b codex/issue-29 2>/dev/null || \
|
|
40
|
+
git worktree add "$SWARM_DIR/wt-issue-29" codex/issue-29
|
|
41
|
+
|
|
42
|
+
git worktree add "$SWARM_DIR/wt-issue-30" -b codex/issue-30 2>/dev/null || \
|
|
43
|
+
git worktree add "$SWARM_DIR/wt-issue-30" codex/issue-30
|
|
44
|
+
|
|
45
|
+
# =============================================================================
|
|
46
|
+
# Step 6: Generate prompts + copy PRD files into worktrees
|
|
47
|
+
# =============================================================================
|
|
48
|
+
|
|
49
|
+
echo "=== Step 6: Generating prompts ==="
|
|
50
|
+
|
|
51
|
+
mkdir -p "$PROMPT_DIR"
|
|
52
|
+
|
|
53
|
+
# --- Issue 24: implement -> $plan -> $autopilot ---
|
|
54
|
+
cp "$PROJECT_ROOT/.omx/plans/prd-issue-24-remote-spawn-file-transfer.md" \
|
|
55
|
+
"$SWARM_DIR/wt-issue-24/.omx/plans/prd-issue-24-remote-spawn-file-transfer.md" 2>/dev/null || \
|
|
56
|
+
{ mkdir -p "$SWARM_DIR/wt-issue-24/.omx/plans" && \
|
|
57
|
+
cp "$PROJECT_ROOT/.omx/plans/prd-issue-24-remote-spawn-file-transfer.md" \
|
|
58
|
+
"$SWARM_DIR/wt-issue-24/.omx/plans/prd-issue-24-remote-spawn-file-transfer.md"; }
|
|
59
|
+
|
|
60
|
+
cat > "$PROMPT_DIR/prompt-24.md" << 'PROMPT_EOF'
|
|
61
|
+
triflux 프로젝트의 태스크를 구현해야 합니다.
|
|
62
|
+
|
|
63
|
+
태스크 파일을 먼저 읽으세요: .omx/plans/prd-issue-24-remote-spawn-file-transfer.md
|
|
64
|
+
|
|
65
|
+
작업 순서:
|
|
66
|
+
1. 태스크 파일을 읽고 요구사항을 파악하세요
|
|
67
|
+
2. $plan 스킬로 구현 계획을 수립하세요
|
|
68
|
+
3. 계획이 완료되면 $autopilot 스킬로 자율 구현을 시작하세요
|
|
69
|
+
|
|
70
|
+
프로젝트 정보:
|
|
71
|
+
- triflux: Claude Code용 멀티모델 CLI 오케스트레이터
|
|
72
|
+
- 언어: JavaScript/ESM (Node.js), 테스트: npm test
|
|
73
|
+
PROMPT_EOF
|
|
74
|
+
|
|
75
|
+
# --- Issue 25: investigate -> $plan only ---
|
|
76
|
+
cp "$PROJECT_ROOT/.omx/plans/prd-issue-25-remote-spawn-resize-blank-screen.md" \
|
|
77
|
+
"$SWARM_DIR/wt-issue-25/.omx/plans/prd-issue-25-remote-spawn-resize-blank-screen.md" 2>/dev/null || \
|
|
78
|
+
{ mkdir -p "$SWARM_DIR/wt-issue-25/.omx/plans" && \
|
|
79
|
+
cp "$PROJECT_ROOT/.omx/plans/prd-issue-25-remote-spawn-resize-blank-screen.md" \
|
|
80
|
+
"$SWARM_DIR/wt-issue-25/.omx/plans/prd-issue-25-remote-spawn-resize-blank-screen.md"; }
|
|
81
|
+
|
|
82
|
+
cat > "$PROMPT_DIR/prompt-25.md" << 'PROMPT_EOF'
|
|
83
|
+
triflux 프로젝트의 태스크를 조사해야 합니다.
|
|
84
|
+
|
|
85
|
+
태스크 파일을 먼저 읽으세요: .omx/plans/prd-issue-25-remote-spawn-resize-blank-screen.md
|
|
86
|
+
|
|
87
|
+
작업 순서:
|
|
88
|
+
1. 태스크 파일을 읽고 요구사항을 파악하세요
|
|
89
|
+
2. $plan 스킬로 조사 계획을 수립하세요
|
|
90
|
+
3. 계획 수립까지만 진행하세요 (구현하지 마세요)
|
|
91
|
+
|
|
92
|
+
프로젝트 정보:
|
|
93
|
+
- triflux: Claude Code용 멀티모델 CLI 오케스트레이터
|
|
94
|
+
- 언어: JavaScript/ESM (Node.js), 테스트: npm test
|
|
95
|
+
PROMPT_EOF
|
|
96
|
+
|
|
97
|
+
# --- Issue 26: implement -> $plan -> $autopilot ---
|
|
98
|
+
cp "$PROJECT_ROOT/.omx/plans/prd-issue-26-remote-spawn-session-cleanup.md" \
|
|
99
|
+
"$SWARM_DIR/wt-issue-26/.omx/plans/prd-issue-26-remote-spawn-session-cleanup.md" 2>/dev/null || \
|
|
100
|
+
{ mkdir -p "$SWARM_DIR/wt-issue-26/.omx/plans" && \
|
|
101
|
+
cp "$PROJECT_ROOT/.omx/plans/prd-issue-26-remote-spawn-session-cleanup.md" \
|
|
102
|
+
"$SWARM_DIR/wt-issue-26/.omx/plans/prd-issue-26-remote-spawn-session-cleanup.md"; }
|
|
103
|
+
|
|
104
|
+
cat > "$PROMPT_DIR/prompt-26.md" << 'PROMPT_EOF'
|
|
105
|
+
triflux 프로젝트의 태스크를 구현해야 합니다.
|
|
106
|
+
|
|
107
|
+
태스크 파일을 먼저 읽으세요: .omx/plans/prd-issue-26-remote-spawn-session-cleanup.md
|
|
108
|
+
|
|
109
|
+
작업 순서:
|
|
110
|
+
1. 태스크 파일을 읽고 요구사항을 파악하세요
|
|
111
|
+
2. $plan 스킬로 구현 계획을 수립하세요
|
|
112
|
+
3. 계획이 완료되면 $autopilot 스킬로 자율 구현을 시작하세요
|
|
113
|
+
|
|
114
|
+
프로젝트 정보:
|
|
115
|
+
- triflux: Claude Code용 멀티모델 CLI 오케스트레이터
|
|
116
|
+
- 언어: JavaScript/ESM (Node.js), 테스트: npm test
|
|
117
|
+
PROMPT_EOF
|
|
118
|
+
|
|
119
|
+
# --- Issue 27: implement -> $plan -> $autopilot ---
|
|
120
|
+
cp "$PROJECT_ROOT/.omx/plans/prd-issue-27-hud-dashboard-anchor.md" \
|
|
121
|
+
"$SWARM_DIR/wt-issue-27/.omx/plans/prd-issue-27-hud-dashboard-anchor.md" 2>/dev/null || \
|
|
122
|
+
{ mkdir -p "$SWARM_DIR/wt-issue-27/.omx/plans" && \
|
|
123
|
+
cp "$PROJECT_ROOT/.omx/plans/prd-issue-27-hud-dashboard-anchor.md" \
|
|
124
|
+
"$SWARM_DIR/wt-issue-27/.omx/plans/prd-issue-27-hud-dashboard-anchor.md"; }
|
|
125
|
+
|
|
126
|
+
cat > "$PROMPT_DIR/prompt-27.md" << 'PROMPT_EOF'
|
|
127
|
+
triflux 프로젝트의 태스크를 구현해야 합니다.
|
|
128
|
+
|
|
129
|
+
태스크 파일을 먼저 읽으세요: .omx/plans/prd-issue-27-hud-dashboard-anchor.md
|
|
130
|
+
|
|
131
|
+
작업 순서:
|
|
132
|
+
1. 태스크 파일을 읽고 요구사항을 파악하세요
|
|
133
|
+
2. $plan 스킬로 구현 계획을 수립하세요
|
|
134
|
+
3. 계획이 완료되면 $autopilot 스킬로 자율 구현을 시작하세요
|
|
135
|
+
|
|
136
|
+
프로젝트 정보:
|
|
137
|
+
- triflux: Claude Code용 멀티모델 CLI 오케스트레이터
|
|
138
|
+
- 언어: JavaScript/ESM (Node.js), 테스트: npm test
|
|
139
|
+
PROMPT_EOF
|
|
140
|
+
|
|
141
|
+
# --- Issue 28: implement -> $plan -> $autopilot ---
|
|
142
|
+
cp "$PROJECT_ROOT/.omx/plans/prd-issue-28-headless-guard-spawn-deadlock.md" \
|
|
143
|
+
"$SWARM_DIR/wt-issue-28/.omx/plans/prd-issue-28-headless-guard-spawn-deadlock.md" 2>/dev/null || \
|
|
144
|
+
{ mkdir -p "$SWARM_DIR/wt-issue-28/.omx/plans" && \
|
|
145
|
+
cp "$PROJECT_ROOT/.omx/plans/prd-issue-28-headless-guard-spawn-deadlock.md" \
|
|
146
|
+
"$SWARM_DIR/wt-issue-28/.omx/plans/prd-issue-28-headless-guard-spawn-deadlock.md"; }
|
|
147
|
+
|
|
148
|
+
cat > "$PROMPT_DIR/prompt-28.md" << 'PROMPT_EOF'
|
|
149
|
+
triflux 프로젝트의 태스크를 구현해야 합니다.
|
|
150
|
+
|
|
151
|
+
태스크 파일을 먼저 읽으세요: .omx/plans/prd-issue-28-headless-guard-spawn-deadlock.md
|
|
152
|
+
|
|
153
|
+
작업 순서:
|
|
154
|
+
1. 태스크 파일을 읽고 요구사항을 파악하세요
|
|
155
|
+
2. $plan 스킬로 구현 계획을 수립하세요
|
|
156
|
+
3. 계획이 완료되면 $autopilot 스킬로 자율 구현을 시작하세요
|
|
157
|
+
|
|
158
|
+
프로젝트 정보:
|
|
159
|
+
- triflux: Claude Code용 멀티모델 CLI 오케스트레이터
|
|
160
|
+
- 언어: JavaScript/ESM (Node.js), 테스트: npm test
|
|
161
|
+
PROMPT_EOF
|
|
162
|
+
|
|
163
|
+
# --- Issue 29: implement -> $plan -> $autopilot ---
|
|
164
|
+
cp "$PROJECT_ROOT/.omx/plans/prd-issue-29-headless-cwd-propagation.md" \
|
|
165
|
+
"$SWARM_DIR/wt-issue-29/.omx/plans/prd-issue-29-headless-cwd-propagation.md" 2>/dev/null || \
|
|
166
|
+
{ mkdir -p "$SWARM_DIR/wt-issue-29/.omx/plans" && \
|
|
167
|
+
cp "$PROJECT_ROOT/.omx/plans/prd-issue-29-headless-cwd-propagation.md" \
|
|
168
|
+
"$SWARM_DIR/wt-issue-29/.omx/plans/prd-issue-29-headless-cwd-propagation.md"; }
|
|
169
|
+
|
|
170
|
+
cat > "$PROMPT_DIR/prompt-29.md" << 'PROMPT_EOF'
|
|
171
|
+
triflux 프로젝트의 태스크를 구현해야 합니다.
|
|
172
|
+
|
|
173
|
+
태스크 파일을 먼저 읽으세요: .omx/plans/prd-issue-29-headless-cwd-propagation.md
|
|
174
|
+
|
|
175
|
+
작업 순서:
|
|
176
|
+
1. 태스크 파일을 읽고 요구사항을 파악하세요
|
|
177
|
+
2. $plan 스킬로 구현 계획을 수립하세요
|
|
178
|
+
3. 계획이 완료되면 $autopilot 스킬로 자율 구현을 시작하세요
|
|
179
|
+
|
|
180
|
+
프로젝트 정보:
|
|
181
|
+
- triflux: Claude Code용 멀티모델 CLI 오케스트레이터
|
|
182
|
+
- 언어: JavaScript/ESM (Node.js), 테스트: npm test
|
|
183
|
+
PROMPT_EOF
|
|
184
|
+
|
|
185
|
+
# --- Issue 30: investigate -> $plan only ---
|
|
186
|
+
cp "$PROJECT_ROOT/.omx/plans/prd-issue-30-remote-spawn-terminal-minimize.md" \
|
|
187
|
+
"$SWARM_DIR/wt-issue-30/.omx/plans/prd-issue-30-remote-spawn-terminal-minimize.md" 2>/dev/null || \
|
|
188
|
+
{ mkdir -p "$SWARM_DIR/wt-issue-30/.omx/plans" && \
|
|
189
|
+
cp "$PROJECT_ROOT/.omx/plans/prd-issue-30-remote-spawn-terminal-minimize.md" \
|
|
190
|
+
"$SWARM_DIR/wt-issue-30/.omx/plans/prd-issue-30-remote-spawn-terminal-minimize.md"; }
|
|
191
|
+
|
|
192
|
+
cat > "$PROMPT_DIR/prompt-30.md" << 'PROMPT_EOF'
|
|
193
|
+
triflux 프로젝트의 태스크를 조사해야 합니다.
|
|
194
|
+
|
|
195
|
+
태스크 파일을 먼저 읽으세요: .omx/plans/prd-issue-30-remote-spawn-terminal-minimize.md
|
|
196
|
+
|
|
197
|
+
작업 순서:
|
|
198
|
+
1. 태스크 파일을 읽고 요구사항을 파악하세요
|
|
199
|
+
2. $plan 스킬로 조사 계획을 수립하세요
|
|
200
|
+
3. 계획 수립까지만 진행하세요 (구현하지 마세요)
|
|
201
|
+
|
|
202
|
+
프로젝트 정보:
|
|
203
|
+
- triflux: Claude Code용 멀티모델 CLI 오케스트레이터
|
|
204
|
+
- 언어: JavaScript/ESM (Node.js), 테스트: npm test
|
|
205
|
+
PROMPT_EOF
|
|
206
|
+
|
|
207
|
+
# =============================================================================
|
|
208
|
+
# Step 7: Create psmux sessions + launch Codex
|
|
209
|
+
# =============================================================================
|
|
210
|
+
|
|
211
|
+
echo "=== Step 7: Creating psmux sessions and launching Codex ==="
|
|
212
|
+
|
|
213
|
+
# --- Issue 24: implement | codex53_high ---
|
|
214
|
+
psmux new-session --name "codex-swarm-24" --dir "$SWARM_DIR/wt-issue-24"
|
|
215
|
+
psmux send-keys --target "codex-swarm-24:0" \
|
|
216
|
+
"codex -c 'model=\"gpt-5.3-codex\"' -c 'model_reasoning_effort=\"high\"' --full-auto \"\$(cat $PROMPT_DIR/prompt-24.md)\"" Enter
|
|
217
|
+
|
|
218
|
+
# --- Issue 25: investigate | gpt54_high ---
|
|
219
|
+
psmux new-session --name "codex-swarm-25" --dir "$SWARM_DIR/wt-issue-25"
|
|
220
|
+
psmux send-keys --target "codex-swarm-25:0" \
|
|
221
|
+
"codex -c 'model=\"gpt-5.4\"' -c 'model_reasoning_effort=\"high\"' --full-auto \"\$(cat $PROMPT_DIR/prompt-25.md)\"" Enter
|
|
222
|
+
|
|
223
|
+
# --- Issue 26: implement | codex53_high ---
|
|
224
|
+
psmux new-session --name "codex-swarm-26" --dir "$SWARM_DIR/wt-issue-26"
|
|
225
|
+
psmux send-keys --target "codex-swarm-26:0" \
|
|
226
|
+
"codex -c 'model=\"gpt-5.3-codex\"' -c 'model_reasoning_effort=\"high\"' --full-auto \"\$(cat $PROMPT_DIR/prompt-26.md)\"" Enter
|
|
227
|
+
|
|
228
|
+
# --- Issue 27: implement | codex53_high ---
|
|
229
|
+
psmux new-session --name "codex-swarm-27" --dir "$SWARM_DIR/wt-issue-27"
|
|
230
|
+
psmux send-keys --target "codex-swarm-27:0" \
|
|
231
|
+
"codex -c 'model=\"gpt-5.3-codex\"' -c 'model_reasoning_effort=\"high\"' --full-auto \"\$(cat $PROMPT_DIR/prompt-27.md)\"" Enter
|
|
232
|
+
|
|
233
|
+
# --- Issue 28: implement | codex53_high ---
|
|
234
|
+
psmux new-session --name "codex-swarm-28" --dir "$SWARM_DIR/wt-issue-28"
|
|
235
|
+
psmux send-keys --target "codex-swarm-28:0" \
|
|
236
|
+
"codex -c 'model=\"gpt-5.3-codex\"' -c 'model_reasoning_effort=\"high\"' --full-auto \"\$(cat $PROMPT_DIR/prompt-28.md)\"" Enter
|
|
237
|
+
|
|
238
|
+
# --- Issue 29: implement | codex53_high ---
|
|
239
|
+
psmux new-session --name "codex-swarm-29" --dir "$SWARM_DIR/wt-issue-29"
|
|
240
|
+
psmux send-keys --target "codex-swarm-29:0" \
|
|
241
|
+
"codex -c 'model=\"gpt-5.3-codex\"' -c 'model_reasoning_effort=\"high\"' --full-auto \"\$(cat $PROMPT_DIR/prompt-29.md)\"" Enter
|
|
242
|
+
|
|
243
|
+
# --- Issue 30: investigate | gpt54_high ---
|
|
244
|
+
psmux new-session --name "codex-swarm-30" --dir "$SWARM_DIR/wt-issue-30"
|
|
245
|
+
psmux send-keys --target "codex-swarm-30:0" \
|
|
246
|
+
"codex -c 'model=\"gpt-5.4\"' -c 'model_reasoning_effort=\"high\"' --full-auto \"\$(cat $PROMPT_DIR/prompt-30.md)\"" Enter
|
|
247
|
+
|
|
248
|
+
# =============================================================================
|
|
249
|
+
# Step 8: WT tab attach — all sessions in one window
|
|
250
|
+
# =============================================================================
|
|
251
|
+
|
|
252
|
+
echo "=== Step 8: Attaching all sessions to one WT window ==="
|
|
253
|
+
|
|
254
|
+
# First session: new WT window
|
|
255
|
+
psmux attach --session "codex-swarm-24" --wt-new-window
|
|
256
|
+
|
|
257
|
+
# Remaining sessions: tabs in same window
|
|
258
|
+
psmux attach --session "codex-swarm-25" --wt-tab
|
|
259
|
+
psmux attach --session "codex-swarm-26" --wt-tab
|
|
260
|
+
psmux attach --session "codex-swarm-27" --wt-tab
|
|
261
|
+
psmux attach --session "codex-swarm-28" --wt-tab
|
|
262
|
+
psmux attach --session "codex-swarm-29" --wt-tab
|
|
263
|
+
psmux attach --session "codex-swarm-30" --wt-tab
|
|
264
|
+
|
|
265
|
+
# --- Fallback: wt.exe direct (if psmux attach unavailable) ---
|
|
266
|
+
# wt.exe -w new \
|
|
267
|
+
# --title "issue-24 file-transfer" -d "$SWARM_DIR/wt-issue-24" "$BASH_EXE" -c "psmux attach codex-swarm-24" \; \
|
|
268
|
+
# new-tab --title "issue-25 resize-blank" -d "$SWARM_DIR/wt-issue-25" "$BASH_EXE" -c "psmux attach codex-swarm-25" \; \
|
|
269
|
+
# new-tab --title "issue-26 session-cleanup" -d "$SWARM_DIR/wt-issue-26" "$BASH_EXE" -c "psmux attach codex-swarm-26" \; \
|
|
270
|
+
# new-tab --title "issue-27 hud-dashboard" -d "$SWARM_DIR/wt-issue-27" "$BASH_EXE" -c "psmux attach codex-swarm-27" \; \
|
|
271
|
+
# new-tab --title "issue-28 guard-deadlock" -d "$SWARM_DIR/wt-issue-28" "$BASH_EXE" -c "psmux attach codex-swarm-28" \; \
|
|
272
|
+
# new-tab --title "issue-29 cwd-propagation" -d "$SWARM_DIR/wt-issue-29" "$BASH_EXE" -c "psmux attach codex-swarm-29" \; \
|
|
273
|
+
# new-tab --title "issue-30 terminal-minimize" -d "$SWARM_DIR/wt-issue-30" "$BASH_EXE" -c "psmux attach codex-swarm-30"
|
|
274
|
+
|
|
275
|
+
echo "=== Swarm spawned: 7 sessions in 1 WT window (7 tabs) ==="
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Codex Swarm - Profile Routing Table
|
|
2
|
+
|
|
3
|
+
> Generated: 2026-03-30
|
|
4
|
+
|
|
5
|
+
## Size Assessment (Step 4-1)
|
|
6
|
+
|
|
7
|
+
| # | PRD File | Lines | Affected Files | High-cost Keywords | Dependencies | Size |
|
|
8
|
+
|---|----------|-------|----------------|-------------------|--------------|------|
|
|
9
|
+
| 24 | prd-issue-24 | 73 | 4 (`remote-spawn.mjs`, handoff, scp, staging) | 0 | none | **L** |
|
|
10
|
+
| 25 | prd-issue-25 | 76 | 4 (`psmux`, SSH PTY, Claude TUI, WT) | 0 | none | **L** |
|
|
11
|
+
| 26 | prd-issue-26 | 70 | 3 (`remote-spawn`, `psmux`, hub stale cleanup) | 0 | none | **L** |
|
|
12
|
+
| 27 | prd-issue-27 | 73 | 4 (`wt.exe` attach, dashboard viewer, headless, config) | 0 | none | **L** |
|
|
13
|
+
| 28 | prd-issue-28 | 69 | 4 (`headless-guard.mjs`, `hub/team/psmux.mjs`, codex, gemini) | 0 | none | **L** |
|
|
14
|
+
| 29 | prd-issue-29 | 70 | 5 (`tfx-route.sh`, `parse-args.mjs`, `start-headless.mjs`, `headless.mjs`, `buildHeadlessCommand`) | 0 | none | **L** |
|
|
15
|
+
| 30 | prd-issue-30 | 70 | 3 (`remote-spawn.mjs`, `headless.mjs`, WT) | 0 | none | **L** |
|
|
16
|
+
|
|
17
|
+
### Size Thresholds (from SKILL.md)
|
|
18
|
+
|
|
19
|
+
| Size | PRD Lines | Affected Files | High-cost Keywords |
|
|
20
|
+
|------|-----------|----------------|-------------------|
|
|
21
|
+
| XL | 80+ | 6+ | 2+ |
|
|
22
|
+
| L | 40-80 | 3-5 | 0-1 |
|
|
23
|
+
| M | 20-40 | 1-2 | 0 |
|
|
24
|
+
| S | <20 | 1 | 0 |
|
|
25
|
+
|
|
26
|
+
All 7 PRDs fall in the **L (standard)** range: 69-76 lines, 3-5 affected files, 0 high-cost keywords.
|
|
27
|
+
|
|
28
|
+
## Profile Routing (Step 4-2)
|
|
29
|
+
|
|
30
|
+
Per routing table: Type x Size -> Profile
|
|
31
|
+
|
|
32
|
+
| Type \ Size | XL | L | M | S |
|
|
33
|
+
|-------------|-----|-----|-----|-----|
|
|
34
|
+
| **implement** | codex53_xhigh | **codex53_high** | codex53_med | codex53_low |
|
|
35
|
+
| **investigate** | gpt54_high | **gpt54_high** | gpt54_low | mini54_med |
|
|
36
|
+
|
|
37
|
+
## Final Routing
|
|
38
|
+
|
|
39
|
+
| # | Task | Size | Type | Profile | Codex Flags |
|
|
40
|
+
|---|------|------|------|---------|-------------|
|
|
41
|
+
| 24 | file-transfer | L | implement | `codex53_high` | `-c 'model="gpt-5.3-codex"' -c 'model_reasoning_effort="high"'` |
|
|
42
|
+
| 25 | resize-blank | L | investigate | `gpt54_high` | `-c 'model="gpt-5.4"' -c 'model_reasoning_effort="high"'` |
|
|
43
|
+
| 26 | session-cleanup | L | implement | `codex53_high` | `-c 'model="gpt-5.3-codex"' -c 'model_reasoning_effort="high"'` |
|
|
44
|
+
| 27 | hud-dashboard-anchor | L | implement | `codex53_high` | `-c 'model="gpt-5.3-codex"' -c 'model_reasoning_effort="high"'` |
|
|
45
|
+
| 28 | guard-deadlock | L | implement | `codex53_high` | `-c 'model="gpt-5.3-codex"' -c 'model_reasoning_effort="high"'` |
|
|
46
|
+
| 29 | cwd-propagation | L | implement | `codex53_high` | `-c 'model="gpt-5.3-codex"' -c 'model_reasoning_effort="high"'` |
|
|
47
|
+
| 30 | terminal-minimize | L | investigate | `gpt54_high` | `-c 'model="gpt-5.4"' -c 'model_reasoning_effort="high"'` |
|
|
48
|
+
|
|
49
|
+
## Execution Defaults
|
|
50
|
+
|
|
51
|
+
| Setting | Value | Note |
|
|
52
|
+
|---------|-------|------|
|
|
53
|
+
| Mode | `--full-auto` | Sandbox auto-approve |
|
|
54
|
+
| Worktree | enabled | Per-session independent worktree |
|
|
55
|
+
| psmux | enabled | Session management |
|
|
56
|
+
| WT | tabs in single window | User requested: "하나의 WT에 탭으로 넣어줘" |
|
package/skills/tfx-codex-swarm-workspace/iteration-1/full-swarm-all-prds/without_skill/grading.json
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"expectations": [
|
|
3
|
+
{"text": "all-7-prds-found", "passed": true, "evidence": "7개 PRD 모두 발견 및 나열"},
|
|
4
|
+
{"text": "correct-type-classification", "passed": true, "evidence": "5 implement + 2 investigate 정확"},
|
|
5
|
+
{"text": "profile-routing-varies", "passed": true, "evidence": "codex53_high/gpt54_high 분리 적용"},
|
|
6
|
+
{"text": "worktree-per-task", "passed": true, "evidence": "7개 worktree 생성 명령 존재"},
|
|
7
|
+
{"text": "psmux-sessions", "passed": true, "evidence": "7개 psmux 세션 생성됨"},
|
|
8
|
+
{"text": "single-wt-window", "passed": true, "evidence": "WT 탭 attach 포함"},
|
|
9
|
+
{"text": "omx-skill-mapping", "passed": true, "evidence": "autopilot/plan 매핑 존재"}
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Codex Swarm Analysis — Full 7-PRD Execution Plan
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
- **Source**: 7 PRD files in `.omx/plans/`
|
|
6
|
+
- **Issues**: #24, #25, #26, #27, #28, #29, #30
|
|
7
|
+
- **Classification**: 5 implement, 2 investigate
|
|
8
|
+
- **User directive**: implement -> `$plan` -> `$autopilot`, investigate -> `$plan` only
|
|
9
|
+
- **Execution**: Codex CLI in `--full-auto` mode, one psmux session per PRD, all in one WT window as tabs
|
|
10
|
+
|
|
11
|
+
## What Was Generated
|
|
12
|
+
|
|
13
|
+
| File | Purpose |
|
|
14
|
+
|------|---------|
|
|
15
|
+
| `classification.md` | PRD-by-PRD type classification with rationale |
|
|
16
|
+
| `routing.md` | Codex profile routing (model, effort level) per PRD |
|
|
17
|
+
| `commands.sh` | Full executable script: worktrees, prompts, psmux, codex, WT tabs |
|
|
18
|
+
| `analysis.md` | This summary |
|
|
19
|
+
|
|
20
|
+
## Execution Pipeline
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
Phase 1: git worktree add (7 isolated worktrees)
|
|
24
|
+
Phase 2: Copy PRD files into worktrees
|
|
25
|
+
Phase 3: Generate per-task prompt files with OMX skill instructions
|
|
26
|
+
Phase 4: psmux new-session + codex send-keys (7 sessions)
|
|
27
|
+
Phase 5: psmux attach --wt-tab (1 WT window, 7 tabs)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Session Map
|
|
31
|
+
|
|
32
|
+
| Tab | Session | Issue | Type | Model | Skill Flow |
|
|
33
|
+
|-----|---------|-------|------|-------|------------|
|
|
34
|
+
| 1 | codex-swarm-24 | file-transfer | implement | gpt-5.3-codex (high) | $plan -> $autopilot |
|
|
35
|
+
| 2 | codex-swarm-25 | resize-blank | investigate | gpt-5.4 (high) | $plan only |
|
|
36
|
+
| 3 | codex-swarm-26 | session-cleanup | implement | gpt-5.3-codex (high) | $plan -> $autopilot |
|
|
37
|
+
| 4 | codex-swarm-27 | dashboard-anchor | implement | gpt-5.3-codex (high) | $plan -> $autopilot |
|
|
38
|
+
| 5 | codex-swarm-28 | guard-deadlock | implement | gpt-5.3-codex (high) | $plan -> $autopilot |
|
|
39
|
+
| 6 | codex-swarm-29 | cwd-propagation | implement | gpt-5.3-codex (high) | $plan -> $autopilot |
|
|
40
|
+
| 7 | codex-swarm-30 | terminal-minimize | investigate | gpt-5.4 (high) | $plan only |
|
|
41
|
+
|
|
42
|
+
## Isolation Strategy
|
|
43
|
+
|
|
44
|
+
Each session runs in its own git worktree under `.codex-swarm/wt-issue-{N}` on branch `codex/issue-{N}`. This prevents file conflicts between parallel Codex sessions. PRD files are copied into each worktree so the Codex agent can read them locally.
|
|
45
|
+
|
|
46
|
+
## Key Design Decisions
|
|
47
|
+
|
|
48
|
+
### 1. Model Selection
|
|
49
|
+
- **Implement tasks** (5): `gpt-5.3-codex` with high reasoning effort. Codex-optimized model for code generation.
|
|
50
|
+
- **Investigate tasks** (2): `gpt-5.4` with high reasoning effort. General model better suited for analysis and investigation planning.
|
|
51
|
+
- All 7 PRDs sized as L (standard) based on line count (69-76 lines) and affected file counts (2-5 files).
|
|
52
|
+
|
|
53
|
+
### 2. OMX Skill Routing
|
|
54
|
+
- User explicitly requested: implement -> autopilot, investigate -> plan only.
|
|
55
|
+
- Implement prompts instruct: `$plan` first, then `$autopilot` for autonomous execution.
|
|
56
|
+
- Investigate prompts instruct: `$plan` only, explicitly stating "do not implement".
|
|
57
|
+
|
|
58
|
+
### 3. WT Layout
|
|
59
|
+
- User requested "one WT with tabs" -- all 7 sessions are tabs in a single WT window.
|
|
60
|
+
- First session uses `--wt-new-window`, remaining 6 use `--wt-tab`.
|
|
61
|
+
- wt.exe fallback is provided as a commented-out alternative.
|
|
62
|
+
|
|
63
|
+
### 4. No Execution
|
|
64
|
+
- Per instructions, commands are generated but NOT executed.
|
|
65
|
+
- The `commands.sh` script is ready to run when the user decides to launch.
|
|
66
|
+
|
|
67
|
+
## Monitoring Commands
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# Check status of all sessions
|
|
71
|
+
for N in 24 25 26 27 28 29 30; do
|
|
72
|
+
echo "=== Issue #$N ==="
|
|
73
|
+
psmux capture-pane --session "codex-swarm-$N" --lines 5
|
|
74
|
+
done
|
|
75
|
+
|
|
76
|
+
# List active sessions
|
|
77
|
+
psmux list-sessions | grep codex-swarm
|
|
78
|
+
|
|
79
|
+
# Kill all swarm sessions (cleanup)
|
|
80
|
+
for N in 24 25 26 27 28 29 30; do
|
|
81
|
+
psmux kill-session --name "codex-swarm-$N"
|
|
82
|
+
done
|
|
83
|
+
git worktree prune
|
|
84
|
+
rm -rf .codex-swarm/
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Risk Notes
|
|
88
|
+
|
|
89
|
+
- **Issue #25 and #30** (investigate): These have "evidence insufficient" validity verdicts. The investigation plans may conclude that no code fix is needed. Using `$plan` only is appropriate.
|
|
90
|
+
- **Issue #28** (partially valid): The deadlock claim is overstated per validity review, but the UX improvement is still warranted. Autopilot should handle the bounded scope.
|
|
91
|
+
- **Issue #29**: Touches the most files (5 across CLI parse, headless, and backend layers). Most likely to need careful cross-file coordination.
|
|
92
|
+
- **Parallel execution**: 7 simultaneous Codex sessions will consume significant API quota. All are routed to high-effort profiles.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# PRD Classification — 7 PRDs in .omx/plans/
|
|
2
|
+
|
|
3
|
+
## Classification Criteria
|
|
4
|
+
|
|
5
|
+
Based on PRD content analysis against SKILL.md Step 3 rules:
|
|
6
|
+
- **implement**: keywords "구현", "implement", "추가", "변경", "fix", actionable code changes
|
|
7
|
+
- **investigate**: keywords "조사", "investigation", "재현", "reproduce", runtime-only evidence needed
|
|
8
|
+
|
|
9
|
+
User override: implement -> `$plan` -> `$autopilot`, investigate -> `$plan` only.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## PRD-by-PRD Classification
|
|
14
|
+
|
|
15
|
+
### 1. prd-issue-24-remote-spawn-file-transfer.md
|
|
16
|
+
- **Type**: implement
|
|
17
|
+
- **Rationale**: "Add an explicit file-transfer phase before remote Claude launch", "Copy transferred files", "rewrite the prompt". Clear implementation deliverable with bounded code changes in `scripts/remote-spawn.mjs`.
|
|
18
|
+
- **Validity verdict**: mostly valid
|
|
19
|
+
- **OMX skill**: `$plan` -> `$autopilot`
|
|
20
|
+
|
|
21
|
+
### 2. prd-issue-25-remote-spawn-resize-blank-screen.md
|
|
22
|
+
- **Type**: investigate
|
|
23
|
+
- **Rationale**: "Produce a deterministic reproduction procedure", "investigation checklist", "instrumentation-first workflow". Explicitly framed as investigation, not implementation. Verdict was "evidence insufficient".
|
|
24
|
+
- **Validity verdict**: evidence insufficient
|
|
25
|
+
- **OMX skill**: `$plan` (investigation mode)
|
|
26
|
+
|
|
27
|
+
### 3. prd-issue-26-remote-spawn-session-cleanup.md
|
|
28
|
+
- **Type**: implement
|
|
29
|
+
- **Rationale**: "Add a normal-exit watcher", "trigger killPsmuxSession(sessionName)". Clear implementation target: add cleanup logic to spawn lifecycle.
|
|
30
|
+
- **Validity verdict**: valid
|
|
31
|
+
- **OMX skill**: `$plan` -> `$autopilot`
|
|
32
|
+
|
|
33
|
+
### 4. prd-issue-27-hud-dashboard-anchor.md
|
|
34
|
+
- **Type**: implement
|
|
35
|
+
- **Rationale**: "Replace focus-relative split behavior with a dedicated dashboard target strategy", "Remove or narrow mf up focus manipulation". Concrete implementation changes to `hub/team/headless.mjs`.
|
|
36
|
+
- **Validity verdict**: valid
|
|
37
|
+
- **OMX skill**: `$plan` -> `$autopilot`
|
|
38
|
+
|
|
39
|
+
### 5. prd-issue-28-headless-guard-spawn-deadlock.md
|
|
40
|
+
- **Type**: implement
|
|
41
|
+
- **Rationale**: "Make the denial message action-oriented and specific", "Add regression tests around the guard decision matrix". Implementation + test additions to `scripts/headless-guard.mjs`.
|
|
42
|
+
- **Validity verdict**: partially valid
|
|
43
|
+
- **OMX skill**: `$plan` -> `$autopilot`
|
|
44
|
+
|
|
45
|
+
### 6. prd-issue-29-headless-cwd-propagation.md
|
|
46
|
+
- **Type**: implement
|
|
47
|
+
- **Rationale**: "Add a cwd or equivalent field to the headless start argument parsing", "Propagate that field through start-headless.mjs". Multi-file implementation across CLI parse, headless, backend layers.
|
|
48
|
+
- **Validity verdict**: valid
|
|
49
|
+
- **OMX skill**: `$plan` -> `$autopilot`
|
|
50
|
+
|
|
51
|
+
### 7. prd-issue-30-remote-spawn-terminal-minimize.md
|
|
52
|
+
- **Type**: investigate
|
|
53
|
+
- **Rationale**: "Reproduce the symptom reliably", "Build a minimal repro script", "Collect terminal state evidence". Explicitly an investigation PRD. Verdict was "evidence insufficient".
|
|
54
|
+
- **Validity verdict**: evidence insufficient
|
|
55
|
+
- **OMX skill**: `$plan` (investigation mode)
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Summary Table
|
|
60
|
+
|
|
61
|
+
| # | PRD file | Type | OMX Skill | Validity |
|
|
62
|
+
|---|----------|------|-----------|----------|
|
|
63
|
+
| 24 | prd-issue-24-remote-spawn-file-transfer | implement | `$plan` -> `$autopilot` | mostly valid |
|
|
64
|
+
| 25 | prd-issue-25-remote-spawn-resize-blank-screen | investigate | `$plan` only | evidence insufficient |
|
|
65
|
+
| 26 | prd-issue-26-remote-spawn-session-cleanup | implement | `$plan` -> `$autopilot` | valid |
|
|
66
|
+
| 27 | prd-issue-27-hud-dashboard-anchor | implement | `$plan` -> `$autopilot` | valid |
|
|
67
|
+
| 28 | prd-issue-28-headless-guard-spawn-deadlock | implement | `$plan` -> `$autopilot` | partially valid |
|
|
68
|
+
| 29 | prd-issue-29-headless-cwd-propagation | implement | `$plan` -> `$autopilot` | valid |
|
|
69
|
+
| 30 | prd-issue-30-remote-spawn-terminal-minimize | investigate | `$plan` only | evidence insufficient |
|
|
70
|
+
|
|
71
|
+
**Totals**: 5 implement, 2 investigate
|