claude-symphony 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/README.md +16 -12
  2. package/assets/claude_symphony.webp +0 -0
  3. package/assets/claude_symphony_ascii.txt +8 -0
  4. package/bin/create.js +80 -69
  5. package/package.json +3 -2
  6. package/template/.claude/commands/benchmark.md +32 -32
  7. package/template/.claude/commands/brainstorm.md +33 -33
  8. package/template/.claude/commands/checkpoint.md +42 -42
  9. package/template/.claude/commands/codex.md +52 -52
  10. package/template/.claude/commands/collaborate.md +47 -47
  11. package/template/.claude/commands/context.md +77 -77
  12. package/template/.claude/commands/deploy.md +50 -50
  13. package/template/.claude/commands/fork.md +46 -46
  14. package/template/.claude/commands/gemini.md +43 -43
  15. package/template/.claude/commands/handoff.md +42 -42
  16. package/template/.claude/commands/implement.md +42 -42
  17. package/template/.claude/commands/init-project.md +25 -25
  18. package/template/.claude/commands/next.md +67 -67
  19. package/template/.claude/commands/planning.md +38 -38
  20. package/template/.claude/commands/qa.md +47 -47
  21. package/template/.claude/commands/refactor.md +50 -50
  22. package/template/.claude/commands/research.md +31 -31
  23. package/template/.claude/commands/restore.md +53 -53
  24. package/template/.claude/commands/run-stage.md +45 -45
  25. package/template/.claude/commands/stages.md +49 -49
  26. package/template/.claude/commands/status.md +41 -41
  27. package/template/.claude/commands/tasks.md +33 -33
  28. package/template/.claude/commands/test.md +45 -45
  29. package/template/.claude/commands/ui-ux.md +31 -31
  30. package/template/.claude/commands/validate.md +81 -81
  31. package/template/.claude/hooks/ai-selector.sh +39 -39
  32. package/template/.claude/hooks/auto-checkpoint.sh +30 -30
  33. package/template/.claude/hooks/output-validator.sh +45 -45
  34. package/template/.claude/hooks/post-stage.sh +28 -28
  35. package/template/.claude/hooks/pre-stage.sh +47 -47
  36. package/template/.claude/hooks/session-start.sh +27 -27
  37. package/template/.claude/hooks/statusline.sh +24 -24
  38. package/template/.claude/hooks/stop.sh +26 -26
  39. package/template/.claude/settings.json +32 -32
  40. package/template/.claude/skills/ai-collaboration/README.md +31 -31
  41. package/template/.claude/skills/ai-collaboration/debate.md +66 -66
  42. package/template/.claude/skills/ai-collaboration/parallel.md +34 -34
  43. package/template/.claude/skills/ai-collaboration/prompts/CLAUDE.md +59 -63
  44. package/template/.claude/skills/auto-checkpoint/README.md +46 -46
  45. package/template/.claude/skills/auto-checkpoint/prompts/CLAUDE.md +68 -72
  46. package/template/.claude/skills/auto-checkpoint/rollback.md +95 -95
  47. package/template/.claude/skills/auto-checkpoint/trigger.md +37 -37
  48. package/template/.claude/skills/context-compression/README.md +69 -69
  49. package/template/.claude/skills/context-compression/analyze.md +74 -74
  50. package/template/.claude/skills/context-compression/compress.md +103 -103
  51. package/template/.claude/skills/context-compression/prompts/compression.md +78 -78
  52. package/template/.claude/skills/output-validator/README.md +33 -33
  53. package/template/.claude/skills/output-validator/prompts/CLAUDE.md +74 -78
  54. package/template/.claude/skills/output-validator/validate.md +76 -76
  55. package/template/.claude/skills/smart-handoff/README.md +35 -35
  56. package/template/.claude/skills/smart-handoff/extract.md +42 -42
  57. package/template/.claude/skills/smart-handoff/prompts/CLAUDE.md +52 -54
  58. package/template/.claude/skills/smart-handoff/summarize.md +55 -55
  59. package/template/.claude/skills/stage-transition/README.md +50 -50
  60. package/template/.claude/skills/stage-transition/handoff-gen.md +89 -89
  61. package/template/.claude/skills/stage-transition/prompts/transition.md +74 -74
  62. package/template/.claude/skills/stage-transition/validate.md +41 -41
  63. package/template/CLAUDE.md +334 -335
  64. package/template/config/ai_benchmarking.yaml +22 -22
  65. package/template/config/ai_collaboration.yaml +18 -18
  66. package/template/config/ai_logging.yaml +50 -50
  67. package/template/config/auto_checkpoint.yaml +32 -32
  68. package/template/config/context.yaml +20 -20
  69. package/template/config/git.yaml +51 -51
  70. package/template/config/handoff_intelligence.yaml +23 -23
  71. package/template/config/mcp_fallbacks.yaml +71 -71
  72. package/template/config/memory_integration.yaml +23 -23
  73. package/template/config/model_enforcement.yaml +53 -53
  74. package/template/config/models.yaml +24 -24
  75. package/template/config/output_validation.yaml +44 -44
  76. package/template/config/pipeline.yaml +25 -25
  77. package/template/config/pipeline_forking.yaml +40 -40
  78. package/template/config/qa_logging.yaml +67 -67
  79. package/template/config/smart_rollback.yaml +48 -48
  80. package/template/config/stage_personas.yaml +154 -154
  81. package/template/config/workflow.yaml +16 -16
  82. package/template/scripts/ai-benchmark.sh +41 -41
  83. package/template/scripts/codex-wrapper.sh +32 -32
  84. package/template/scripts/context-manager.sh +136 -136
  85. package/template/scripts/create-checkpoint.sh +34 -34
  86. package/template/scripts/gemini-wrapper.sh +31 -31
  87. package/template/scripts/init-project.sh +40 -40
  88. package/template/scripts/list-stages.sh +30 -30
  89. package/template/scripts/next-stage.sh +67 -67
  90. package/template/scripts/output-validate.sh +2 -2
  91. package/template/scripts/pipeline-fork.sh +68 -68
  92. package/template/scripts/pre-run-check.sh +84 -84
  93. package/template/scripts/restore-checkpoint.sh +50 -50
  94. package/template/scripts/run-stage.sh +44 -44
  95. package/template/scripts/show-status.sh +30 -30
  96. package/template/scripts/smart-handoff.sh +70 -70
  97. package/template/stages/01-brainstorm/CLAUDE.md +70 -74
  98. package/template/stages/01-brainstorm/README.md +54 -54
  99. package/template/stages/01-brainstorm/config.yaml +18 -18
  100. package/template/stages/01-brainstorm/prompts/collaboration.md +24 -24
  101. package/template/stages/01-brainstorm/prompts/ideation.md +41 -41
  102. package/template/stages/01-brainstorm/prompts/persona.md +50 -50
  103. package/template/stages/01-brainstorm/prompts/requirements.md +55 -55
  104. package/template/stages/01-brainstorm/prompts/validation.md +28 -28
  105. package/template/stages/01-brainstorm/templates/ideas.md +47 -47
  106. package/template/stages/01-brainstorm/templates/requirements_analysis.md +61 -61
  107. package/template/stages/02-research/CLAUDE.md +72 -76
  108. package/template/stages/02-research/config.yaml +12 -12
  109. package/template/stages/02-research/prompts/collaboration.md +29 -29
  110. package/template/stages/02-research/prompts/feasibility.md +38 -38
  111. package/template/stages/02-research/prompts/market_analysis.md +29 -29
  112. package/template/stages/02-research/prompts/tech_stack.md +34 -34
  113. package/template/stages/02-research/prompts/validation.md +29 -29
  114. package/template/stages/03-planning/CLAUDE.md +88 -92
  115. package/template/stages/03-planning/config.yaml +10 -10
  116. package/template/stages/03-planning/prompts/architecture.md +43 -43
  117. package/template/stages/03-planning/prompts/collaboration.md +34 -34
  118. package/template/stages/03-planning/prompts/validation.md +34 -34
  119. package/template/stages/04-ui-ux/CLAUDE.md +68 -72
  120. package/template/stages/04-ui-ux/config.yaml +5 -5
  121. package/template/stages/04-ui-ux/prompts/collaboration.md +35 -35
  122. package/template/stages/04-ui-ux/prompts/validation.md +30 -30
  123. package/template/stages/05-task-management/CLAUDE.md +81 -85
  124. package/template/stages/05-task-management/config.yaml +17 -17
  125. package/template/stages/05-task-management/prompts/collaboration.md +30 -30
  126. package/template/stages/05-task-management/prompts/validation.md +33 -33
  127. package/template/stages/05-task-management/templates/notion_integration.md +70 -70
  128. package/template/stages/05-task-management/templates/parallel_groups.yaml +64 -64
  129. package/template/stages/05-task-management/templates/task_schema.yaml +33 -33
  130. package/template/stages/06-implementation/CLAUDE.md +117 -121
  131. package/template/stages/06-implementation/config.yaml +10 -10
  132. package/template/stages/06-implementation/prompts/collaboration.md +29 -29
  133. package/template/stages/06-implementation/prompts/validation.md +36 -36
  134. package/template/stages/07-refactoring/CLAUDE.md +120 -124
  135. package/template/stages/07-refactoring/config.yaml +11 -11
  136. package/template/stages/07-refactoring/prompts/collaboration.md +36 -36
  137. package/template/stages/07-refactoring/prompts/validation.md +40 -40
  138. package/template/stages/08-qa/CLAUDE.md +80 -84
  139. package/template/stages/08-qa/config.yaml +7 -7
  140. package/template/stages/08-qa/prompts/collaboration.md +34 -34
  141. package/template/stages/08-qa/prompts/validation.md +41 -41
  142. package/template/stages/09-testing/CLAUDE.md +86 -90
  143. package/template/stages/09-testing/config.yaml +10 -10
  144. package/template/stages/09-testing/prompts/collaboration.md +38 -38
  145. package/template/stages/09-testing/prompts/validation.md +41 -41
  146. package/template/stages/10-deployment/CLAUDE.md +86 -90
  147. package/template/stages/10-deployment/config.yaml +11 -11
  148. package/template/stages/10-deployment/prompts/collaboration.md +37 -37
  149. package/template/stages/10-deployment/prompts/validation.md +54 -54
  150. package/template/stages/10-deployment/templates/github-actions-cd.yaml +1 -1
@@ -1,5 +1,5 @@
1
1
  #!/bin/bash
2
- # create-checkpoint.sh - 체크포인트 생성
2
+ # create-checkpoint.sh - Checkpoint creation
3
3
  # claude-symphony workflow pipeline
4
4
 
5
5
  set -e
@@ -10,74 +10,74 @@ PROGRESS_FILE="$PROJECT_ROOT/state/progress.json"
10
10
  TIMESTAMP=$(date +%Y%m%d-%H%M)
11
11
  TIMESTAMP_ISO=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
12
12
 
13
- # 색상 정의
13
+ # Color definitions
14
14
  RED='\033[0;31m'
15
15
  GREEN='\033[0;32m'
16
16
  YELLOW='\033[1;33m'
17
17
  BLUE='\033[0;34m'
18
18
  NC='\033[0m' # No Color
19
19
 
20
- # 현재 스테이지 확인
20
+ # Check current stage
21
21
  if command -v jq &> /dev/null; then
22
22
  CURRENT_STAGE=$(jq -r '.current_stage' "$PROGRESS_FILE")
23
23
  else
24
- echo -e "${RED}오류:${NC} jq 필요합니다."
24
+ echo -e "${RED}Error:${NC} jq is required."
25
25
  exit 1
26
26
  fi
27
27
 
28
28
  if [ -z "$CURRENT_STAGE" ] || [ "$CURRENT_STAGE" == "null" ]; then
29
- echo -e "${RED}오류:${NC} 현재 진행 중인 스테이지가 없습니다."
29
+ echo -e "${RED}Error:${NC} No stage currently in progress."
30
30
  exit 1
31
31
  fi
32
32
 
33
- # 기본 설명
33
+ # Default description
34
34
  if [ -z "$DESCRIPTION" ]; then
35
- DESCRIPTION="체크포인트 - $CURRENT_STAGE"
35
+ DESCRIPTION="Checkpoint - $CURRENT_STAGE"
36
36
  fi
37
37
 
38
- # 체크포인트 ID 생성
38
+ # Generate checkpoint ID
39
39
  STAGE_NUM=$(echo "$CURRENT_STAGE" | cut -d'-' -f1)
40
40
  CP_ID="CP-$STAGE_NUM-$TIMESTAMP"
41
41
 
42
42
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
43
- echo "💾 체크포인트 생성: $CP_ID"
43
+ echo "💾 Creating checkpoint: $CP_ID"
44
44
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
45
- echo " 스테이지: $CURRENT_STAGE"
46
- echo " 설명: $DESCRIPTION"
45
+ echo " Stage: $CURRENT_STAGE"
46
+ echo " Description: $DESCRIPTION"
47
47
  echo ""
48
48
 
49
- # 체크포인트 디렉토리 생성
49
+ # Create checkpoint directory
50
50
  CP_DIR="$PROJECT_ROOT/state/checkpoints/$CP_ID"
51
51
  mkdir -p "$CP_DIR"
52
52
 
53
- # 1. 상태 파일 복사
54
- echo -e "${BLUE}[1/4] 상태 파일 복사${NC}"
53
+ # 1. Copy state files
54
+ echo -e "${BLUE}[1/4] Copying state files${NC}"
55
55
  cp "$PROGRESS_FILE" "$CP_DIR/progress.json"
56
- echo -e "${GREEN}✓${NC} progress.json 복사됨"
56
+ echo -e "${GREEN}✓${NC} progress.json copied"
57
57
 
58
- # 2. 스테이지 outputs 복사
59
- echo -e "${BLUE}[2/4] 스테이지 출력 파일 복사${NC}"
58
+ # 2. Copy stage outputs
59
+ echo -e "${BLUE}[2/4] Copying stage output files${NC}"
60
60
  STAGE_DIR="$PROJECT_ROOT/stages/$CURRENT_STAGE"
61
61
  if [ -d "$STAGE_DIR/outputs" ]; then
62
62
  cp -r "$STAGE_DIR/outputs" "$CP_DIR/outputs"
63
63
  FILE_COUNT=$(find "$CP_DIR/outputs" -type f | wc -l)
64
- echo -e "${GREEN}✓${NC} outputs 복사됨 ($FILE_COUNT 파일)"
64
+ echo -e "${GREEN}✓${NC} outputs copied ($FILE_COUNT files)"
65
65
  else
66
66
  mkdir -p "$CP_DIR/outputs"
67
- echo -e "${YELLOW}⚠${NC} outputs 디렉토리 없음 ( 디렉토리 생성)"
67
+ echo -e "${YELLOW}⚠${NC} No outputs directory (empty directory created)"
68
68
  fi
69
69
 
70
- # 3. HANDOFF.md 복사 (있는 경우)
71
- echo -e "${BLUE}[3/4] HANDOFF.md 복사${NC}"
70
+ # 3. Copy HANDOFF.md (if exists)
71
+ echo -e "${BLUE}[3/4] Copying HANDOFF.md${NC}"
72
72
  if [ -f "$STAGE_DIR/HANDOFF.md" ]; then
73
73
  cp "$STAGE_DIR/HANDOFF.md" "$CP_DIR/"
74
- echo -e "${GREEN}✓${NC} HANDOFF.md 복사됨"
74
+ echo -e "${GREEN}✓${NC} HANDOFF.md copied"
75
75
  else
76
- echo -e "${YELLOW}⚠${NC} HANDOFF.md 없음"
76
+ echo -e "${YELLOW}⚠${NC} No HANDOFF.md"
77
77
  fi
78
78
 
79
- # 4. 메타데이터 생성
80
- echo -e "${BLUE}[4/4] 메타데이터 생성${NC}"
79
+ # 4. Generate metadata
80
+ echo -e "${BLUE}[4/4] Generating metadata${NC}"
81
81
  cat > "$CP_DIR/metadata.json" << EOF
82
82
  {
83
83
  "id": "$CP_ID",
@@ -88,29 +88,29 @@ cat > "$CP_DIR/metadata.json" << EOF
88
88
  }
89
89
  EOF
90
90
 
91
- # 파일 목록 추가
91
+ # Add file list
92
92
  if command -v jq &> /dev/null; then
93
93
  FILES=$(find "$CP_DIR" -type f -not -name "metadata.json" | jq -R -s -c 'split("\n") | map(select(length > 0))')
94
94
  jq ".files = $FILES" "$CP_DIR/metadata.json" > "$CP_DIR/metadata.json.tmp" && mv "$CP_DIR/metadata.json.tmp" "$CP_DIR/metadata.json"
95
95
  fi
96
- echo -e "${GREEN}✓${NC} 메타데이터 생성됨"
96
+ echo -e "${GREEN}✓${NC} Metadata generated"
97
97
 
98
- # 5. progress.json에 체크포인트 추가
98
+ # 5. Add checkpoint to progress.json
99
99
  echo ""
100
- echo -e "${BLUE}상태 업데이트${NC}"
100
+ echo -e "${BLUE}Updating state${NC}"
101
101
  jq ".checkpoints += [{\"id\": \"$CP_ID\", \"stage\": \"$CURRENT_STAGE\", \"description\": \"$DESCRIPTION\", \"created_at\": \"$TIMESTAMP_ISO\"}] | \
102
102
  .stages.\"$CURRENT_STAGE\".checkpoint_id = \"$CP_ID\"" \
103
103
  "$PROGRESS_FILE" > "${PROGRESS_FILE}.tmp" && mv "${PROGRESS_FILE}.tmp" "$PROGRESS_FILE"
104
- echo -e "${GREEN}✓${NC} progress.json 업데이트됨"
104
+ echo -e "${GREEN}✓${NC} progress.json updated"
105
105
 
106
- # 완료 메시지
106
+ # Completion message
107
107
  echo ""
108
108
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
109
- echo -e "${GREEN}✓${NC} 체크포인트 생성 완료!"
109
+ echo -e "${GREEN}✓${NC} Checkpoint creation complete!"
110
110
  echo ""
111
111
  echo " ID: $CP_ID"
112
- echo " 위치: state/checkpoints/$CP_ID/"
112
+ echo " Location: state/checkpoints/$CP_ID/"
113
113
  echo ""
114
- echo -e "${BLUE}복구 명령어:${NC}"
114
+ echo -e "${BLUE}Restore command:${NC}"
115
115
  echo " scripts/restore-checkpoint.sh $CP_ID"
116
116
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
@@ -1,96 +1,96 @@
1
1
  #!/bin/bash
2
- # gemini-wrapper.sh - tmux 기반 Gemini CLI 래퍼
2
+ # gemini-wrapper.sh - tmux-based Gemini CLI wrapper
3
3
  # claude-symphony workflow pipeline
4
- # tmux wait-for 채널 기반 동기화 방식 (폴링 없음, 즉시 반응)
4
+ # tmux wait-for channel-based synchronization (no polling, immediate response)
5
5
 
6
6
  SESSION_NAME="ax-gemini"
7
7
  CHANNEL="ax-gemini-done-$$"
8
8
  OUTPUT_FILE="/tmp/ax-gemini-output-$$"
9
9
  PROMPT="$1"
10
- TIMEOUT="${2:-300}" # 기본 5 타임아웃
10
+ TIMEOUT="${2:-300}" # Default 5 minute timeout
11
11
 
12
- # 색상 정의
12
+ # Color definitions
13
13
  RED='\033[0;31m'
14
14
  GREEN='\033[0;32m'
15
15
  YELLOW='\033[1;33m'
16
16
  BLUE='\033[0;34m'
17
17
  NC='\033[0m' # No Color
18
18
 
19
- # 사용법
19
+ # Usage
20
20
  if [ -z "$PROMPT" ]; then
21
- echo "사용법: $0 \"<prompt>\" [timeout_seconds]"
22
- echo "예시: $0 \"Reddit에서 Claude Code 관련 게시물을 찾아줘\" 300"
21
+ echo "Usage: $0 \"<prompt>\" [timeout_seconds]"
22
+ echo "Example: $0 \"Find Claude Code related posts on Reddit\" 300"
23
23
  exit 1
24
24
  fi
25
25
 
26
- # tmux 확인
26
+ # Check tmux
27
27
  if ! command -v tmux &> /dev/null; then
28
- echo -e "${RED}오류:${NC} tmux 설치되어 있지 않습니다."
29
- echo "설치: brew install tmux (macOS) 또는 apt install tmux (Ubuntu)"
28
+ echo -e "${RED}Error:${NC} tmux is not installed."
29
+ echo "Install: brew install tmux (macOS) or apt install tmux (Ubuntu)"
30
30
  exit 1
31
31
  fi
32
32
 
33
- # Gemini CLI 확인
33
+ # Check Gemini CLI
34
34
  if ! command -v gemini &> /dev/null; then
35
- echo -e "${YELLOW}경고:${NC} gemini CLI 설치되어 있지 않습니다."
36
- echo "Gemini CLI 없이 시뮬레이션 모드로 실행합니다."
35
+ echo -e "${YELLOW}Warning:${NC} gemini CLI is not installed."
36
+ echo "Running in simulation mode without Gemini CLI."
37
37
  echo ""
38
- echo "[시뮬레이션] Gemini 응답:"
38
+ echo "[Simulation] Gemini response:"
39
39
  echo "---"
40
- echo "Gemini CLI 설치되면 실제 응답이 표시됩니다."
41
- echo "프롬프트: $PROMPT"
40
+ echo "Actual response will be displayed when Gemini CLI is installed."
41
+ echo "Prompt: $PROMPT"
42
42
  exit 0
43
43
  fi
44
44
 
45
- # 임시 파일 정리
45
+ # Cleanup temporary files
46
46
  cleanup() {
47
47
  rm -f "$OUTPUT_FILE"
48
48
  }
49
49
  trap cleanup EXIT
50
50
 
51
51
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
52
- echo -e "${BLUE}🤖 Gemini CLI 호출${NC}"
52
+ echo -e "${BLUE}🤖 Gemini CLI Call${NC}"
53
53
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
54
- echo " 세션: $SESSION_NAME"
55
- echo " 타임아웃: ${TIMEOUT}"
54
+ echo " Session: $SESSION_NAME"
55
+ echo " Timeout: ${TIMEOUT}s"
56
56
  echo ""
57
57
 
58
- # tmux 세션 확인/생성
58
+ # Check/create tmux session
59
59
  if ! tmux has-session -t "$SESSION_NAME" 2>/dev/null; then
60
- echo -e "${YELLOW}⚠${NC} tmux 세션 생성: $SESSION_NAME"
60
+ echo -e "${YELLOW}⚠${NC} Creating new tmux session: $SESSION_NAME"
61
61
  tmux new-session -d -s "$SESSION_NAME"
62
62
  sleep 1
63
63
  fi
64
64
 
65
- # 프롬프트 이스케이프
65
+ # Escape prompt
66
66
  ESCAPED_PROMPT=$(printf '%s' "$PROMPT" | sed 's/"/\\"/g' | sed "s/'/'\\\\''/g")
67
67
 
68
- # Gemini CLI 실행 + 완료 채널에 시그널
69
- echo -e "${BLUE}Gemini 호출 중...${NC}"
68
+ # Execute Gemini CLI + signal channel on completion
69
+ echo -e "${BLUE}Calling Gemini...${NC}"
70
70
  tmux send-keys -t "$SESSION_NAME" "gemini \"$ESCAPED_PROMPT\" 2>&1 | tee $OUTPUT_FILE; tmux wait-for -S $CHANNEL" Enter
71
71
 
72
- # 타임아웃 처리를 위해 백그라운드 타이머
72
+ # Background timer for timeout handling
73
73
  (sleep "$TIMEOUT" && tmux wait-for -S "$CHANNEL" 2>/dev/null) &
74
74
  TIMER_PID=$!
75
75
 
76
- # 채널 시그널 대기 (블로킹)
76
+ # Wait for channel signal (blocking)
77
77
  tmux wait-for "$CHANNEL"
78
78
  kill $TIMER_PID 2>/dev/null || true
79
79
 
80
- # 결과 출력
80
+ # Output results
81
81
  echo ""
82
82
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
83
- echo -e "${GREEN}📄 Gemini 응답:${NC}"
83
+ echo -e "${GREEN}📄 Gemini Response:${NC}"
84
84
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
85
85
 
86
86
  if [[ -f "$OUTPUT_FILE" ]]; then
87
87
  cat "$OUTPUT_FILE"
88
88
  else
89
- echo -e "${RED}오류:${NC} 출력을 캡처하지 못했습니다."
89
+ echo -e "${RED}Error:${NC} Failed to capture output."
90
90
  exit 1
91
91
  fi
92
92
 
93
93
  echo ""
94
94
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
95
- echo -e "${GREEN}✓${NC} Gemini 호출 완료"
95
+ echo -e "${GREEN}✓${NC} Gemini call completed"
96
96
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
@@ -1,5 +1,5 @@
1
1
  #!/bin/bash
2
- # init-project.sh - 프로젝트 초기화
2
+ # init-project.sh - New project initialization
3
3
  # claude-symphony workflow pipeline
4
4
 
5
5
  set -e
@@ -8,42 +8,42 @@ PROJECT_NAME="$1"
8
8
  PROJECT_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
9
9
  TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
10
10
 
11
- # 색상 정의
11
+ # Color definitions
12
12
  RED='\033[0;31m'
13
13
  GREEN='\033[0;32m'
14
14
  YELLOW='\033[1;33m'
15
15
  BLUE='\033[0;34m'
16
16
  NC='\033[0m' # No Color
17
17
 
18
- # 사용법
18
+ # Usage
19
19
  if [ -z "$PROJECT_NAME" ]; then
20
- echo "사용법: $0 <project-name>"
21
- echo "예시: $0 my-saas-app"
20
+ echo "Usage: $0 <project-name>"
21
+ echo "Example: $0 my-saas-app"
22
22
  exit 1
23
23
  fi
24
24
 
25
- # 프로젝트 이름 검증
25
+ # Validate project name
26
26
  if ! [[ "$PROJECT_NAME" =~ ^[a-z0-9-]+$ ]]; then
27
- echo -e "${RED}오류:${NC} 프로젝트 이름은 영문 소문자, 숫자, 하이픈만 허용됩니다."
27
+ echo -e "${RED}Error:${NC} Project name can only contain lowercase letters, numbers, and hyphens."
28
28
  exit 1
29
29
  fi
30
30
 
31
31
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
32
- echo "🚀 프로젝트 초기화: $PROJECT_NAME"
32
+ echo "🚀 Project initialization: $PROJECT_NAME"
33
33
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
34
34
 
35
- # 1. 프로젝트 디렉토리 생성
35
+ # 1. Create project directory
36
36
  PROJECT_DIR="$PROJECT_ROOT/projects/$PROJECT_NAME"
37
37
 
38
38
  if [ -d "$PROJECT_DIR" ]; then
39
- echo -e "${RED}오류:${NC} 프로젝트 '$PROJECT_NAME'이(가) 이미 존재합니다."
39
+ echo -e "${RED}Error:${NC} Project '$PROJECT_NAME' already exists."
40
40
  exit 1
41
41
  fi
42
42
 
43
43
  mkdir -p "$PROJECT_DIR"
44
- echo -e "${GREEN}✓${NC} 프로젝트 디렉토리 생성: $PROJECT_DIR"
44
+ echo -e "${GREEN}✓${NC} Project directory created: $PROJECT_DIR"
45
45
 
46
- # 2. 상태 파일 초기화
46
+ # 2. Initialize state file
47
47
  PROGRESS_FILE="$PROJECT_ROOT/state/progress.json"
48
48
 
49
49
  if command -v jq &> /dev/null; then
@@ -52,58 +52,58 @@ if command -v jq &> /dev/null; then
52
52
  .pipeline.updated_at = \"$TIMESTAMP\" | \
53
53
  .current_stage = \"01-brainstorm\"" \
54
54
  "$PROGRESS_FILE" > "${PROGRESS_FILE}.tmp" && mv "${PROGRESS_FILE}.tmp" "$PROGRESS_FILE"
55
- echo -e "${GREEN}✓${NC} 상태 파일 업데이트됨"
55
+ echo -e "${GREEN}✓${NC} State file updated"
56
56
  else
57
- echo -e "${YELLOW}⚠${NC} jq 미설치 - 상태 파일 수동 업데이트 필요"
57
+ echo -e "${YELLOW}⚠${NC} jq not installed - manual state file update required"
58
58
  fi
59
59
 
60
- # 3. 입력 파일 템플릿 생성
60
+ # 3. Create input file template
61
61
  BRAINSTORM_DIR="$PROJECT_ROOT/stages/01-brainstorm"
62
62
  mkdir -p "$BRAINSTORM_DIR/inputs"
63
63
 
64
64
  cat > "$BRAINSTORM_DIR/inputs/project_brief.md" << 'EOF'
65
65
  # Project Brief
66
66
 
67
- ## 프로젝트 이름
67
+ ## Project Name
68
68
  {{PROJECT_NAME}}
69
69
 
70
- ## 줄 설명
71
- [프로젝트를 줄로 설명해주세요]
70
+ ## One-Line Description
71
+ [Describe the project in one line]
72
72
 
73
- ## 문제 정의
74
- [해결하려는 문제는 무엇인가요?]
73
+ ## Problem Definition
74
+ [What problem are you solving?]
75
75
 
76
- ## 타겟 사용자
77
- [주요 사용자는 누구인가요?]
76
+ ## Target Users
77
+ [Who are the main users?]
78
78
 
79
- ## 핵심 기능 (초안)
80
- 1. [기능 1]
81
- 2. [기능 2]
82
- 3. [기능 3]
79
+ ## Core Features (Draft)
80
+ 1. [Feature 1]
81
+ 2. [Feature 2]
82
+ 3. [Feature 3]
83
83
 
84
- ## 성공 기준
85
- [프로젝트가 성공했다고 판단하는 기준은?]
84
+ ## Success Criteria
85
+ [What are the criteria for project success?]
86
86
 
87
- ## 제약조건
88
- - 일정:
89
- - 예산:
90
- - 기술:
87
+ ## Constraints
88
+ - Timeline:
89
+ - Budget:
90
+ - Technology:
91
91
 
92
- ## 참고 자료
93
- - [URL 또는 문서]
92
+ ## References
93
+ - [URL or document]
94
94
  EOF
95
95
 
96
96
  sed -i '' "s/{{PROJECT_NAME}}/$PROJECT_NAME/g" "$BRAINSTORM_DIR/inputs/project_brief.md" 2>/dev/null || \
97
97
  sed -i "s/{{PROJECT_NAME}}/$PROJECT_NAME/g" "$BRAINSTORM_DIR/inputs/project_brief.md"
98
98
 
99
- echo -e "${GREEN}✓${NC} 프로젝트 브리프 템플릿 생성: stages/01-brainstorm/inputs/project_brief.md"
99
+ echo -e "${GREEN}✓${NC} Project brief template created: stages/01-brainstorm/inputs/project_brief.md"
100
100
 
101
- # 4. 완료 메시지
101
+ # 4. Completion message
102
102
  echo ""
103
103
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
104
- echo -e "${GREEN}✓${NC} 프로젝트 '$PROJECT_NAME' 초기화 완료!"
104
+ echo -e "${GREEN}✓${NC} Project '$PROJECT_NAME' initialization complete!"
105
105
  echo ""
106
- echo -e "${BLUE}다음 단계:${NC}"
107
- echo "1. stages/01-brainstorm/inputs/project_brief.md 작성"
108
- echo "2. /run-stage 01-brainstorm 실행"
106
+ echo -e "${BLUE}Next steps:${NC}"
107
+ echo "1. Fill out stages/01-brainstorm/inputs/project_brief.md"
108
+ echo "2. Run /run-stage 01-brainstorm"
109
109
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
@@ -1,5 +1,5 @@
1
1
  #!/bin/bash
2
- # list-stages.sh - 스테이지 목록 상세 정보 표시
2
+ # list-stages.sh - Stage list and details display
3
3
  # claude-symphony workflow pipeline
4
4
 
5
5
  set -e
@@ -8,7 +8,7 @@ PROJECT_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
8
8
  PROGRESS_FILE="$PROJECT_ROOT/state/progress.json"
9
9
  STAGES_DIR="$PROJECT_ROOT/stages"
10
10
 
11
- # 색상 정의
11
+ # Color definitions
12
12
  RED='\033[0;31m'
13
13
  GREEN='\033[0;32m'
14
14
  YELLOW='\033[1;33m'
@@ -18,7 +18,7 @@ WHITE='\033[1;37m'
18
18
  GRAY='\033[0;90m'
19
19
  NC='\033[0m' # No Color
20
20
 
21
- # 옵션 인자 처리
21
+ # Options and arguments handling
22
22
  OUTPUT_JSON=false
23
23
  FILTER_PENDING=false
24
24
  FILTER_COMPLETED=false
@@ -35,27 +35,27 @@ while [[ "$#" -gt 0 ]]; do
35
35
  shift
36
36
  done
37
37
 
38
- # jq 확인
38
+ # Check jq
39
39
  if ! command -v jq &> /dev/null; then
40
- echo -e "${RED}오류:${NC} jq 필요합니다."
40
+ echo -e "${RED}Error:${NC} jq is required."
41
41
  exit 1
42
42
  fi
43
43
 
44
- # 스테이지 정보 배열
44
+ # Stage info arrays
45
45
  declare -a STAGE_IDS=("01-brainstorm" "02-research" "03-planning" "04-ui-ux" "05-task-management" "06-implementation" "07-refactoring" "08-qa" "09-testing" "10-deployment")
46
46
  declare -a STAGE_NAMES=("brainstorm" "research" "planning" "ui-ux" "task-management" "implementation" "refactoring" "qa" "testing" "deployment")
47
47
  declare -a STAGE_AI=("Gemini+Claude" "Claude+MCP" "Gemini" "Gemini" "ClaudeCode" "ClaudeCode" "Codex" "ClaudeCode" "Codex" "ClaudeCode")
48
48
  declare -a STAGE_MODES=("YOLO" "Plan Mode" "Plan Mode" "Plan Mode" "Plan Mode" "Plan+Sandbox" "Deep Dive" "Plan+Sandbox" "Playwright" "Headless")
49
49
  declare -a STAGE_SHORTCUTS=("brainstorm" "research" "planning" "ui-ux" "tasks" "implement" "refactor" "qa" "test" "deploy")
50
50
 
51
- # 현재 스테이지 가져오기
51
+ # Get current stage
52
52
  if [ -f "$PROGRESS_FILE" ]; then
53
53
  CURRENT_STAGE=$(jq -r '.current_stage // "none"' "$PROGRESS_FILE")
54
54
  else
55
55
  CURRENT_STAGE="none"
56
56
  fi
57
57
 
58
- # 상태 아이콘 반환
58
+ # Return status icon
59
59
  status_icon() {
60
60
  case $1 in
61
61
  completed) echo "✅" ;;
@@ -66,13 +66,13 @@ status_icon() {
66
66
  esac
67
67
  }
68
68
 
69
- # 특정 스테이지 상세 보기
69
+ # Show specific stage details
70
70
  show_stage_detail() {
71
71
  local num=$1
72
72
  local idx=$((num - 1))
73
73
 
74
74
  if [ $idx -lt 0 ] || [ $idx -ge 10 ]; then
75
- echo -e "${RED}오류:${NC} 유효한 스테이지 번호를 입력하세요 (01-10)"
75
+ echo -e "${RED}Error:${NC} Please enter a valid stage number (01-10)"
76
76
  exit 1
77
77
  fi
78
78
 
@@ -84,7 +84,7 @@ show_stage_detail() {
84
84
  local STAGE_PATH="$STAGES_DIR/$STAGE_ID"
85
85
  local CONFIG_PATH="$STAGE_PATH/config.yaml"
86
86
 
87
- # 상태 가져오기
87
+ # Get status
88
88
  if [ -f "$PROGRESS_FILE" ]; then
89
89
  STATUS=$(jq -r ".stages.\"$STAGE_ID\".status // \"pending\"" "$PROGRESS_FILE")
90
90
  else
@@ -98,9 +98,9 @@ show_stage_detail() {
98
98
  echo -e "Mode: ${CYAN}$MODE${NC}"
99
99
  echo -e "Status: $(status_icon $STATUS) $STATUS"
100
100
 
101
- # config.yaml에서 추가 정보 가져오기
101
+ # Get additional info from config.yaml
102
102
  if [ -f "$CONFIG_PATH" ]; then
103
- # timeout 추출 (yq 있으면 사용, 없으면 grep)
103
+ # Extract timeout (use yq if available, otherwise grep)
104
104
  if command -v yq &> /dev/null; then
105
105
  TIMEOUT=$(yq -r '.timeout // "60"' "$CONFIG_PATH")
106
106
  CHECKPOINT=$(yq -r '.checkpoint_required // false' "$CONFIG_PATH")
@@ -108,9 +108,9 @@ show_stage_detail() {
108
108
  TIMEOUT=$(grep "timeout:" "$CONFIG_PATH" 2>/dev/null | head -1 | awk '{print $2}' || echo "60")
109
109
  CHECKPOINT=$(grep "checkpoint_required:" "$CONFIG_PATH" 2>/dev/null | head -1 | awk '{print $2}' || echo "false")
110
110
  fi
111
- echo -e "Timeout: ${TIMEOUT}"
111
+ echo -e "Timeout: ${TIMEOUT}min"
112
112
  if [ "$CHECKPOINT" == "true" ]; then
113
- echo -e "Checkpoint: ${YELLOW}필수${NC}"
113
+ echo -e "Checkpoint: ${YELLOW}Required${NC}"
114
114
  fi
115
115
  fi
116
116
 
@@ -129,7 +129,7 @@ show_stage_detail() {
129
129
  echo -e " ${GRAY}• $PREV_STAGE/outputs/*${NC}"
130
130
  fi
131
131
  if [ -z "$(find "$STAGE_PATH/inputs" -type f 2>/dev/null)" ] && [ $idx -eq 0 ]; then
132
- echo " (없음 - 번째 스테이지)"
132
+ echo " (None - first stage)"
133
133
  fi
134
134
 
135
135
  echo ""
@@ -144,28 +144,28 @@ show_stage_detail() {
144
144
  done
145
145
  fi
146
146
  if [ -d "$STAGE_PATH/templates" ]; then
147
- echo -e " ${GRAY}(템플릿 참조: templates/)${NC}"
147
+ echo -e " ${GRAY}(Reference templates: templates/)${NC}"
148
148
  fi
149
149
 
150
150
  echo ""
151
151
 
152
152
  # Quick Commands
153
153
  echo -e "${BLUE}[Quick Commands]${NC}"
154
- echo " • /$SHORTCUT - 스테이지 바로 시작"
155
- printf " • /run-stage %02d - 전제조건 확인 시작\n" "$num"
154
+ echo " • /$SHORTCUT - Start this stage directly"
155
+ printf " • /run-stage %02d - Start after checking prerequisites\n" "$num"
156
156
 
157
157
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
158
158
  }
159
159
 
160
- # 특정 스테이지 상세 보기
160
+ # Show specific stage details
161
161
  if [ -n "$STAGE_NUM" ]; then
162
- # 앞의 0 제거
162
+ # Remove leading zeros
163
163
  STAGE_NUM=$((10#$STAGE_NUM))
164
164
  show_stage_detail "$STAGE_NUM"
165
165
  exit 0
166
166
  fi
167
167
 
168
- # JSON 출력
168
+ # JSON output
169
169
  if [ "$OUTPUT_JSON" = true ]; then
170
170
  echo "["
171
171
  for i in "${!STAGE_IDS[@]}"; do
@@ -183,7 +183,7 @@ if [ "$OUTPUT_JSON" = true ]; then
183
183
  exit 0
184
184
  fi
185
185
 
186
- # 목록 표시
186
+ # Display list
187
187
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
188
188
  echo -e "📋 ${WHITE}Pipeline Stages${NC}"
189
189
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
@@ -196,13 +196,13 @@ for i in "${!STAGE_IDS[@]}"; do
196
196
  AI="${STAGE_AI[$i]}"
197
197
  MODE="${STAGE_MODES[$i]}"
198
198
 
199
- # 상태 가져오기
199
+ # Get status
200
200
  STATUS="pending"
201
201
  if [ -f "$PROGRESS_FILE" ]; then
202
202
  STATUS=$(jq -r ".stages.\"$STAGE_ID\".status // \"pending\"" "$PROGRESS_FILE")
203
203
  fi
204
204
 
205
- # 필터링
205
+ # Filtering
206
206
  if [ "$FILTER_PENDING" = true ] && [ "$STATUS" != "pending" ]; then
207
207
  continue
208
208
  fi
@@ -213,7 +213,7 @@ for i in "${!STAGE_IDS[@]}"; do
213
213
  ICON=$(status_icon "$STATUS")
214
214
  NUM=$(printf "%02d" $((i + 1)))
215
215
 
216
- # 현재 스테이지 표시
216
+ # Mark current stage
217
217
  if [ "$STAGE_ID" == "$CURRENT_STAGE" ]; then
218
218
  ARROW=" ${YELLOW}←${NC}"
219
219
  else
@@ -225,7 +225,7 @@ done
225
225
 
226
226
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
227
227
 
228
- # 다음 단계 안내
228
+ # Next step guidance
229
229
  if [ "$CURRENT_STAGE" != "none" ] && [ -n "$CURRENT_STAGE" ]; then
230
230
  CURRENT_NUM=$(echo "$CURRENT_STAGE" | cut -d'-' -f1)
231
231
  CURRENT_NUM=$((10#$CURRENT_NUM))
@@ -233,13 +233,13 @@ if [ "$CURRENT_STAGE" != "none" ] && [ -n "$CURRENT_STAGE" ]; then
233
233
 
234
234
  if [ $NEXT_NUM -le 10 ]; then
235
235
  NEXT_SHORTCUT="${STAGE_SHORTCUTS[$((NEXT_NUM - 1))]}"
236
- printf "현재: ${CYAN}%s${NC} | 다음: ${GREEN}/run-stage %02d${NC} 또는 ${GREEN}/%s${NC}\n" \
236
+ printf "Current: ${CYAN}%s${NC} | Next: ${GREEN}/run-stage %02d${NC} or ${GREEN}/%s${NC}\n" \
237
237
  "$CURRENT_STAGE" "$NEXT_NUM" "$NEXT_SHORTCUT"
238
238
  else
239
- echo -e "현재: ${CYAN}$CURRENT_STAGE${NC} | ${GREEN}파이프라인 완료!${NC}"
239
+ echo -e "Current: ${CYAN}$CURRENT_STAGE${NC} | ${GREEN}Pipeline complete!${NC}"
240
240
  fi
241
241
  else
242
- echo -e "시작: ${GREEN}/init-project [name]${NC} 또는 ${GREEN}/run-stage 01${NC}"
242
+ echo -e "Start: ${GREEN}/init-project [name]${NC} or ${GREEN}/run-stage 01${NC}"
243
243
  fi
244
244
 
245
245
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"