claude-symphony 0.0.1 → 0.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.
Files changed (148) hide show
  1. package/README.md +16 -12
  2. package/bin/create.js +80 -69
  3. package/package.json +1 -1
  4. package/template/.claude/commands/benchmark.md +32 -32
  5. package/template/.claude/commands/brainstorm.md +33 -33
  6. package/template/.claude/commands/checkpoint.md +42 -42
  7. package/template/.claude/commands/codex.md +52 -52
  8. package/template/.claude/commands/collaborate.md +47 -47
  9. package/template/.claude/commands/context.md +77 -77
  10. package/template/.claude/commands/deploy.md +50 -50
  11. package/template/.claude/commands/fork.md +46 -46
  12. package/template/.claude/commands/gemini.md +43 -43
  13. package/template/.claude/commands/handoff.md +42 -42
  14. package/template/.claude/commands/implement.md +42 -42
  15. package/template/.claude/commands/init-project.md +25 -25
  16. package/template/.claude/commands/next.md +67 -67
  17. package/template/.claude/commands/planning.md +38 -38
  18. package/template/.claude/commands/qa.md +47 -47
  19. package/template/.claude/commands/refactor.md +50 -50
  20. package/template/.claude/commands/research.md +31 -31
  21. package/template/.claude/commands/restore.md +53 -53
  22. package/template/.claude/commands/run-stage.md +45 -45
  23. package/template/.claude/commands/stages.md +49 -49
  24. package/template/.claude/commands/status.md +41 -41
  25. package/template/.claude/commands/tasks.md +33 -33
  26. package/template/.claude/commands/test.md +45 -45
  27. package/template/.claude/commands/ui-ux.md +31 -31
  28. package/template/.claude/commands/validate.md +81 -81
  29. package/template/.claude/hooks/ai-selector.sh +39 -39
  30. package/template/.claude/hooks/auto-checkpoint.sh +30 -30
  31. package/template/.claude/hooks/output-validator.sh +45 -45
  32. package/template/.claude/hooks/post-stage.sh +28 -28
  33. package/template/.claude/hooks/pre-stage.sh +47 -47
  34. package/template/.claude/hooks/session-start.sh +27 -27
  35. package/template/.claude/hooks/statusline.sh +24 -24
  36. package/template/.claude/hooks/stop.sh +26 -26
  37. package/template/.claude/settings.json +32 -32
  38. package/template/.claude/skills/ai-collaboration/README.md +31 -31
  39. package/template/.claude/skills/ai-collaboration/debate.md +66 -66
  40. package/template/.claude/skills/ai-collaboration/parallel.md +34 -34
  41. package/template/.claude/skills/ai-collaboration/prompts/CLAUDE.md +59 -63
  42. package/template/.claude/skills/auto-checkpoint/README.md +46 -46
  43. package/template/.claude/skills/auto-checkpoint/prompts/CLAUDE.md +68 -72
  44. package/template/.claude/skills/auto-checkpoint/rollback.md +95 -95
  45. package/template/.claude/skills/auto-checkpoint/trigger.md +37 -37
  46. package/template/.claude/skills/context-compression/README.md +69 -69
  47. package/template/.claude/skills/context-compression/analyze.md +74 -74
  48. package/template/.claude/skills/context-compression/compress.md +103 -103
  49. package/template/.claude/skills/context-compression/prompts/compression.md +78 -78
  50. package/template/.claude/skills/output-validator/README.md +33 -33
  51. package/template/.claude/skills/output-validator/prompts/CLAUDE.md +74 -78
  52. package/template/.claude/skills/output-validator/validate.md +76 -76
  53. package/template/.claude/skills/smart-handoff/README.md +35 -35
  54. package/template/.claude/skills/smart-handoff/extract.md +42 -42
  55. package/template/.claude/skills/smart-handoff/prompts/CLAUDE.md +52 -54
  56. package/template/.claude/skills/smart-handoff/summarize.md +55 -55
  57. package/template/.claude/skills/stage-transition/README.md +50 -50
  58. package/template/.claude/skills/stage-transition/handoff-gen.md +89 -89
  59. package/template/.claude/skills/stage-transition/prompts/transition.md +74 -74
  60. package/template/.claude/skills/stage-transition/validate.md +41 -41
  61. package/template/CLAUDE.md +334 -335
  62. package/template/config/ai_benchmarking.yaml +22 -22
  63. package/template/config/ai_collaboration.yaml +18 -18
  64. package/template/config/ai_logging.yaml +50 -50
  65. package/template/config/auto_checkpoint.yaml +32 -32
  66. package/template/config/context.yaml +20 -20
  67. package/template/config/git.yaml +51 -51
  68. package/template/config/handoff_intelligence.yaml +23 -23
  69. package/template/config/mcp_fallbacks.yaml +71 -71
  70. package/template/config/memory_integration.yaml +23 -23
  71. package/template/config/model_enforcement.yaml +53 -53
  72. package/template/config/models.yaml +24 -24
  73. package/template/config/output_validation.yaml +44 -44
  74. package/template/config/pipeline.yaml +25 -25
  75. package/template/config/pipeline_forking.yaml +40 -40
  76. package/template/config/qa_logging.yaml +67 -67
  77. package/template/config/smart_rollback.yaml +48 -48
  78. package/template/config/stage_personas.yaml +154 -154
  79. package/template/config/workflow.yaml +16 -16
  80. package/template/scripts/ai-benchmark.sh +41 -41
  81. package/template/scripts/codex-wrapper.sh +32 -32
  82. package/template/scripts/context-manager.sh +136 -136
  83. package/template/scripts/create-checkpoint.sh +34 -34
  84. package/template/scripts/gemini-wrapper.sh +31 -31
  85. package/template/scripts/init-project.sh +40 -40
  86. package/template/scripts/list-stages.sh +30 -30
  87. package/template/scripts/next-stage.sh +67 -67
  88. package/template/scripts/output-validate.sh +2 -2
  89. package/template/scripts/pipeline-fork.sh +68 -68
  90. package/template/scripts/pre-run-check.sh +84 -84
  91. package/template/scripts/restore-checkpoint.sh +50 -50
  92. package/template/scripts/run-stage.sh +44 -44
  93. package/template/scripts/show-status.sh +30 -30
  94. package/template/scripts/smart-handoff.sh +70 -70
  95. package/template/stages/01-brainstorm/CLAUDE.md +70 -74
  96. package/template/stages/01-brainstorm/README.md +54 -54
  97. package/template/stages/01-brainstorm/config.yaml +18 -18
  98. package/template/stages/01-brainstorm/prompts/collaboration.md +24 -24
  99. package/template/stages/01-brainstorm/prompts/ideation.md +41 -41
  100. package/template/stages/01-brainstorm/prompts/persona.md +50 -50
  101. package/template/stages/01-brainstorm/prompts/requirements.md +55 -55
  102. package/template/stages/01-brainstorm/prompts/validation.md +28 -28
  103. package/template/stages/01-brainstorm/templates/ideas.md +47 -47
  104. package/template/stages/01-brainstorm/templates/requirements_analysis.md +61 -61
  105. package/template/stages/02-research/CLAUDE.md +72 -76
  106. package/template/stages/02-research/config.yaml +12 -12
  107. package/template/stages/02-research/prompts/collaboration.md +29 -29
  108. package/template/stages/02-research/prompts/feasibility.md +38 -38
  109. package/template/stages/02-research/prompts/market_analysis.md +29 -29
  110. package/template/stages/02-research/prompts/tech_stack.md +34 -34
  111. package/template/stages/02-research/prompts/validation.md +29 -29
  112. package/template/stages/03-planning/CLAUDE.md +88 -92
  113. package/template/stages/03-planning/config.yaml +10 -10
  114. package/template/stages/03-planning/prompts/architecture.md +43 -43
  115. package/template/stages/03-planning/prompts/collaboration.md +34 -34
  116. package/template/stages/03-planning/prompts/validation.md +34 -34
  117. package/template/stages/04-ui-ux/CLAUDE.md +68 -72
  118. package/template/stages/04-ui-ux/config.yaml +5 -5
  119. package/template/stages/04-ui-ux/prompts/collaboration.md +35 -35
  120. package/template/stages/04-ui-ux/prompts/validation.md +30 -30
  121. package/template/stages/05-task-management/CLAUDE.md +81 -85
  122. package/template/stages/05-task-management/config.yaml +17 -17
  123. package/template/stages/05-task-management/prompts/collaboration.md +30 -30
  124. package/template/stages/05-task-management/prompts/validation.md +33 -33
  125. package/template/stages/05-task-management/templates/notion_integration.md +70 -70
  126. package/template/stages/05-task-management/templates/parallel_groups.yaml +64 -64
  127. package/template/stages/05-task-management/templates/task_schema.yaml +33 -33
  128. package/template/stages/06-implementation/CLAUDE.md +117 -121
  129. package/template/stages/06-implementation/config.yaml +10 -10
  130. package/template/stages/06-implementation/prompts/collaboration.md +29 -29
  131. package/template/stages/06-implementation/prompts/validation.md +36 -36
  132. package/template/stages/07-refactoring/CLAUDE.md +120 -124
  133. package/template/stages/07-refactoring/config.yaml +11 -11
  134. package/template/stages/07-refactoring/prompts/collaboration.md +36 -36
  135. package/template/stages/07-refactoring/prompts/validation.md +40 -40
  136. package/template/stages/08-qa/CLAUDE.md +80 -84
  137. package/template/stages/08-qa/config.yaml +7 -7
  138. package/template/stages/08-qa/prompts/collaboration.md +34 -34
  139. package/template/stages/08-qa/prompts/validation.md +41 -41
  140. package/template/stages/09-testing/CLAUDE.md +86 -90
  141. package/template/stages/09-testing/config.yaml +10 -10
  142. package/template/stages/09-testing/prompts/collaboration.md +38 -38
  143. package/template/stages/09-testing/prompts/validation.md +41 -41
  144. package/template/stages/10-deployment/CLAUDE.md +86 -90
  145. package/template/stages/10-deployment/config.yaml +11 -11
  146. package/template/stages/10-deployment/prompts/collaboration.md +37 -37
  147. package/template/stages/10-deployment/prompts/validation.md +54 -54
  148. package/template/stages/10-deployment/templates/github-actions-cd.yaml +1 -1
@@ -1,5 +1,5 @@
1
1
  #!/bin/bash
2
- # run-stage.sh - 스테이지 실행
2
+ # run-stage.sh - Stage execution
3
3
  # claude-symphony workflow pipeline
4
4
 
5
5
  set -e
@@ -8,55 +8,55 @@ STAGE_ID="$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 "$STAGE_ID" ]; then
20
- echo "사용법: $0 <stage-id>"
20
+ echo "Usage: $0 <stage-id>"
21
21
  echo ""
22
- echo "사용 가능한 스테이지:"
23
- echo " 01-brainstorm 브레인스토밍"
24
- echo " 02-research 리서치"
25
- echo " 03-planning 기획"
26
- echo " 04-ui-ux UI/UX 설계"
27
- echo " 05-task-management 태스크 관리"
28
- echo " 06-implementation 구현"
29
- echo " 07-refactoring 리팩토링"
22
+ echo "Available stages:"
23
+ echo " 01-brainstorm Brainstorming"
24
+ echo " 02-research Research"
25
+ echo " 03-planning Planning"
26
+ echo " 04-ui-ux UI/UX Design"
27
+ echo " 05-task-management Task Management"
28
+ echo " 06-implementation Implementation"
29
+ echo " 07-refactoring Refactoring"
30
30
  echo " 08-qa QA"
31
- echo " 09-testing 테스팅"
32
- echo " 10-deployment 배포"
31
+ echo " 09-testing Testing"
32
+ echo " 10-deployment Deployment"
33
33
  exit 1
34
34
  fi
35
35
 
36
- # 스테이지 디렉토리 확인
36
+ # Check stage directory
37
37
  STAGE_DIR="$PROJECT_ROOT/stages/$STAGE_ID"
38
38
 
39
39
  if [ ! -d "$STAGE_DIR" ]; then
40
- echo -e "${RED}오류:${NC} 스테이지를 찾을 없습니다: $STAGE_ID"
40
+ echo -e "${RED}Error:${NC} Stage not found: $STAGE_ID"
41
41
  exit 1
42
42
  fi
43
43
 
44
44
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
45
- echo "🚀 스테이지 실행: $STAGE_ID"
45
+ echo "🚀 Stage Execution: $STAGE_ID"
46
46
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
47
47
 
48
- # 1. Pre-stage 훅 실행
48
+ # 1. Execute pre-stage hook
49
49
  echo ""
50
- echo -e "${BLUE}[1/3] Pre-Stage 훅 실행${NC}"
50
+ echo -e "${BLUE}[1/3] Executing Pre-Stage Hook${NC}"
51
51
  if [ -f "$PROJECT_ROOT/.claude/hooks/pre-stage.sh" ]; then
52
52
  bash "$PROJECT_ROOT/.claude/hooks/pre-stage.sh" "$STAGE_ID"
53
53
  else
54
- echo -e "${YELLOW}⚠${NC} Pre-stage 훅이 없습니다."
54
+ echo -e "${YELLOW}⚠${NC} No pre-stage hook found."
55
55
  fi
56
56
 
57
- # 2. 상태 업데이트
57
+ # 2. Update status
58
58
  echo ""
59
- echo -e "${BLUE}[2/3] 상태 업데이트${NC}"
59
+ echo -e "${BLUE}[2/3] Updating Status${NC}"
60
60
  PROGRESS_FILE="$PROJECT_ROOT/state/progress.json"
61
61
 
62
62
  if command -v jq &> /dev/null; then
@@ -65,14 +65,14 @@ if command -v jq &> /dev/null; then
65
65
  .stages.\"$STAGE_ID\".started_at = \"$TIMESTAMP\" | \
66
66
  .pipeline.updated_at = \"$TIMESTAMP\"" \
67
67
  "$PROGRESS_FILE" > "${PROGRESS_FILE}.tmp" && mv "${PROGRESS_FILE}.tmp" "$PROGRESS_FILE"
68
- echo -e "${GREEN}✓${NC} progress.json 업데이트됨"
68
+ echo -e "${GREEN}✓${NC} progress.json updated"
69
69
  else
70
- echo -e "${YELLOW}⚠${NC} jq 미설치 - 수동 업데이트 필요"
70
+ echo -e "${YELLOW}⚠${NC} jq not installed - Manual update required"
71
71
  fi
72
72
 
73
- # 3. 모델 강제 실행 확인 (Issue #12, #14 해결)
73
+ # 3. Model enforcement check (Issue #12, #14 resolution)
74
74
  echo ""
75
- echo -e "${BLUE}[3/5] AI 모델 강제 실행 확인${NC}"
75
+ echo -e "${BLUE}[3/5] AI Model Enforcement Check${NC}"
76
76
  STAGE_CONFIG="$STAGE_DIR/config.yaml"
77
77
  MODEL_ENFORCEMENT="$PROJECT_ROOT/config/model_enforcement.yaml"
78
78
 
@@ -85,10 +85,10 @@ if command -v yq &> /dev/null && [ -f "$STAGE_CONFIG" ]; then
85
85
  if [ "$AUTO_INVOKE_ENABLED" = "true" ]; then
86
86
  echo ""
87
87
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
88
- echo -e "${YELLOW}🤖 AI 모델 자동 호출 설정${NC}"
88
+ echo -e "${YELLOW}🤖 AI Model Auto-Invoke Settings${NC}"
89
89
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
90
- echo " 모델: $AUTO_INVOKE_MODEL"
91
- echo " 필수: $AUTO_INVOKE_REQUIRED"
90
+ echo " Model: $AUTO_INVOKE_MODEL"
91
+ echo " Required: $AUTO_INVOKE_REQUIRED"
92
92
  if [ -n "$AUTO_INVOKE_MSG" ] && [ "$AUTO_INVOKE_MSG" != "null" ]; then
93
93
  echo ""
94
94
  echo -e " ${GREEN}$AUTO_INVOKE_MSG${NC}"
@@ -96,44 +96,44 @@ if command -v yq &> /dev/null && [ -f "$STAGE_CONFIG" ]; then
96
96
 
97
97
  if [ "$AUTO_INVOKE_REQUIRED" = "true" ]; then
98
98
  echo ""
99
- echo -e " ${YELLOW}⚠️ 스테이지는 ${AUTO_INVOKE_MODEL} 사용이 필수입니다.${NC}"
100
- echo -e " ${BLUE}→ /${AUTO_INVOKE_MODEL} 명령어로 호출하세요.${NC}"
99
+ echo -e " ${YELLOW}⚠️ This stage requires using ${AUTO_INVOKE_MODEL}.${NC}"
100
+ echo -e " ${BLUE}→ Use /${AUTO_INVOKE_MODEL} command to invoke.${NC}"
101
101
  fi
102
102
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
103
103
  fi
104
104
  else
105
- echo -e "${YELLOW}⚠${NC} yq 미설치 또는 config.yaml 없음 - 모델 강제 확인 건너뜀"
105
+ echo -e "${YELLOW}⚠${NC} yq not installed or config.yaml not found - Skipping model enforcement check"
106
106
  fi
107
107
 
108
- # 4. CLAUDE.md 표시
108
+ # 4. Display CLAUDE.md
109
109
  echo ""
110
- echo -e "${BLUE}[4/5] 스테이지 지침 로드${NC}"
110
+ echo -e "${BLUE}[4/5] Loading Stage Instructions${NC}"
111
111
  CLAUDE_MD="$STAGE_DIR/CLAUDE.md"
112
112
 
113
113
  if [ -f "$CLAUDE_MD" ]; then
114
114
  echo ""
115
115
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
116
- echo -e "${GREEN}스테이지 CLAUDE.md:${NC}"
116
+ echo -e "${GREEN}Stage CLAUDE.md:${NC}"
117
117
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
118
118
  cat "$CLAUDE_MD"
119
119
  echo ""
120
120
  else
121
- echo -e "${YELLOW}⚠${NC} CLAUDE.md 없습니다."
121
+ echo -e "${YELLOW}⚠${NC} CLAUDE.md not found."
122
122
  fi
123
123
 
124
- # 5. 다음 단계 안내
124
+ # 5. Next steps guidance
125
125
  echo ""
126
126
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
127
- echo -e "${GREEN}✓${NC} 스테이지 $STAGE_ID 시작됨"
127
+ echo -e "${GREEN}✓${NC} Stage $STAGE_ID started"
128
128
  echo ""
129
- echo -e "${BLUE}작업 완료 후:${NC}"
130
- echo " /handoff - 핸드오프 문서 생성"
131
- echo " /checkpoint [설명] - 체크포인트 생성 (06, 07 스테이지)"
129
+ echo -e "${BLUE}After completing work:${NC}"
130
+ echo " /handoff - Generate handoff document"
131
+ echo " /checkpoint [description] - Create checkpoint (stages 06, 07)"
132
132
 
133
- # AI 모델 호출 안내 추가
133
+ # Add AI model invoke guidance
134
134
  if [ -n "$AUTO_INVOKE_MODEL" ] && [ "$AUTO_INVOKE_MODEL" != "null" ]; then
135
135
  echo ""
136
- echo -e "${YELLOW}AI 모델 사용:${NC}"
137
- echo " /${AUTO_INVOKE_MODEL} \"프롬프트\" - ${AUTO_INVOKE_MODEL} 호출"
136
+ echo -e "${YELLOW}AI Model Usage:${NC}"
137
+ echo " /${AUTO_INVOKE_MODEL} \"prompt\" - Invoke ${AUTO_INVOKE_MODEL}"
138
138
  fi
139
139
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
@@ -1,5 +1,5 @@
1
1
  #!/bin/bash
2
- # show-status.sh - 파이프라인 상태 표시
2
+ # show-status.sh - Pipeline status 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
  CONFIG_FILE="$PROJECT_ROOT/config/pipeline.yaml"
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
+ # Option handling
22
22
  OUTPUT_JSON=false
23
23
  OUTPUT_BRIEF=false
24
24
 
@@ -31,30 +31,30 @@ while [[ "$#" -gt 0 ]]; do
31
31
  shift
32
32
  done
33
33
 
34
- # jq 확인
34
+ # Check jq
35
35
  if ! command -v jq &> /dev/null; then
36
- echo -e "${RED}오류:${NC} jq 필요합니다."
36
+ echo -e "${RED}Error:${NC} jq is required."
37
37
  exit 1
38
38
  fi
39
39
 
40
- # progress.json 확인
40
+ # Check progress.json
41
41
  if [ ! -f "$PROGRESS_FILE" ]; then
42
- echo -e "${RED}오류:${NC} progress.json을 찾을 수 없습니다."
43
- echo " 먼저 /init-project 실행하세요."
42
+ echo -e "${RED}Error:${NC} Cannot find progress.json."
43
+ echo " Please run /init-project first."
44
44
  exit 1
45
45
  fi
46
46
 
47
- # 데이터 추출
47
+ # Extract data
48
48
  PROJECT_NAME=$(jq -r '.project_name // "unnamed"' "$PROGRESS_FILE")
49
49
  CURRENT_STAGE=$(jq -r '.current_stage // "none"' "$PROGRESS_FILE")
50
50
  CHECKPOINT_COUNT=$(jq -r '.checkpoints | length' "$PROGRESS_FILE")
51
51
 
52
- # 스테이지 정보 배열
52
+ # Stage info arrays
53
53
  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")
54
54
  declare -a STAGE_NAMES=("brainstorm" "research" "planning" "ui-ux" "task-mgmt" "implementation" "refactoring" "qa" "testing" "deployment")
55
55
  declare -a STAGE_AI=("Gemini+Claude" "Claude+MCP" "Gemini" "Gemini" "ClaudeCode" "ClaudeCode" "Codex" "ClaudeCode" "Codex" "ClaudeCode")
56
56
 
57
- # 완료된 스테이지 수 계산
57
+ # Calculate completed stages
58
58
  COMPLETED=0
59
59
  CURRENT_NUM=0
60
60
  for i in "${!STAGE_IDS[@]}"; do
@@ -70,7 +70,7 @@ done
70
70
  TOTAL=10
71
71
  PERCENT=$((COMPLETED * 100 / TOTAL))
72
72
 
73
- # JSON 출력
73
+ # JSON output
74
74
  if [ "$OUTPUT_JSON" = true ]; then
75
75
  jq -n \
76
76
  --arg project "$PROJECT_NAME" \
@@ -82,13 +82,13 @@ if [ "$OUTPUT_JSON" = true ]; then
82
82
  exit 0
83
83
  fi
84
84
 
85
- # 간략 출력
85
+ # Brief output
86
86
  if [ "$OUTPUT_BRIEF" = true ]; then
87
- echo "[$PROJECT_NAME] $COMPLETED/$TOTAL 완료 | 현재: $CURRENT_STAGE | 체크포인트: $CHECKPOINT_COUNT"
87
+ echo "[$PROJECT_NAME] $COMPLETED/$TOTAL completed | Current: $CURRENT_STAGE | Checkpoints: $CHECKPOINT_COUNT"
88
88
  exit 0
89
89
  fi
90
90
 
91
- # 진행률 생성
91
+ # Generate progress bar
92
92
  progress_bar() {
93
93
  local percent=$1
94
94
  local width=20
@@ -100,7 +100,7 @@ progress_bar() {
100
100
  printf "]"
101
101
  }
102
102
 
103
- # 상태 아이콘 반환
103
+ # Return status icon
104
104
  status_icon() {
105
105
  case $1 in
106
106
  completed) echo "✅" ;;
@@ -112,26 +112,26 @@ status_icon() {
112
112
  esac
113
113
  }
114
114
 
115
- # 상태 텍스트 (한글)
115
+ # Status text
116
116
  status_text() {
117
117
  case $1 in
118
- completed) echo "완료" ;;
119
- in_progress) echo "진행중" ;;
120
- pending) echo "대기" ;;
121
- failed) echo "실패" ;;
122
- paused) echo "중지" ;;
123
- *) echo "대기" ;;
118
+ completed) echo "done" ;;
119
+ in_progress) echo "active" ;;
120
+ pending) echo "pending" ;;
121
+ failed) echo "failed" ;;
122
+ paused) echo "paused" ;;
123
+ *) echo "pending" ;;
124
124
  esac
125
125
  }
126
126
 
127
- # 출력
127
+ # Output
128
128
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
129
129
  echo -e "📊 ${WHITE}Pipeline Status:${NC} ${CYAN}$PROJECT_NAME${NC}"
130
130
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
131
131
  echo -e "Progress: $(progress_bar $PERCENT) ${GREEN}$PERCENT%${NC} ($COMPLETED/$TOTAL)"
132
132
  echo ""
133
133
 
134
- # 스테이지 목록
134
+ # Stage list
135
135
  for i in "${!STAGE_IDS[@]}"; do
136
136
  STAGE_ID="${STAGE_IDS[$i]}"
137
137
  STAGE_NAME="${STAGE_NAMES[$i]}"
@@ -143,14 +143,14 @@ for i in "${!STAGE_IDS[@]}"; do
143
143
 
144
144
  NUM=$(printf "%02d" $((i + 1)))
145
145
 
146
- # 현재 스테이지 표시
146
+ # Mark current stage
147
147
  if [ "$STAGE_ID" == "$CURRENT_STAGE" ]; then
148
148
  ARROW=" ${YELLOW}←${NC}"
149
149
  else
150
150
  ARROW=""
151
151
  fi
152
152
 
153
- # 색상 설정
153
+ # Color setting
154
154
  if [ "$STATUS" == "completed" ]; then
155
155
  NAME_COLOR=$GREEN
156
156
  elif [ "$STATUS" == "in_progress" ]; then
@@ -166,7 +166,7 @@ done
166
166
  echo ""
167
167
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
168
168
 
169
- # 마지막 핸드오프 찾기
169
+ # Find last handoff
170
170
  LAST_HANDOFF=""
171
171
  for ((i=${#STAGE_IDS[@]}-1; i>=0; i--)); do
172
172
  STAGE_ID="${STAGE_IDS[$i]}"
@@ -177,9 +177,9 @@ for ((i=${#STAGE_IDS[@]}-1; i>=0; i--)); do
177
177
  done
178
178
 
179
179
  if [ -n "$LAST_HANDOFF" ]; then
180
- echo -e "체크포인트: ${CYAN}${CHECKPOINT_COUNT}개${NC} | 마지막 핸드오프: ${GREEN}${LAST_HANDOFF}${NC}"
180
+ echo -e "Checkpoints: ${CYAN}${CHECKPOINT_COUNT}${NC} | Last handoff: ${GREEN}${LAST_HANDOFF}${NC}"
181
181
  else
182
- echo -e "체크포인트: ${CYAN}${CHECKPOINT_COUNT}개${NC} | 핸드오프: 없음"
182
+ echo -e "Checkpoints: ${CYAN}${CHECKPOINT_COUNT}${NC} | Handoff: None"
183
183
  fi
184
184
 
185
185
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
@@ -1,6 +1,6 @@
1
1
  #!/bin/bash
2
2
  # claude-symphony Smart HANDOFF Script
3
- # 스마트 컨텍스트 추출 HANDOFF 생성
3
+ # Smart context extraction and HANDOFF generation
4
4
 
5
5
  set -e
6
6
 
@@ -9,18 +9,18 @@ PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
9
9
  PROGRESS_FILE="$PROJECT_ROOT/state/progress.json"
10
10
  CONTEXT_DIR="$PROJECT_ROOT/state/context"
11
11
 
12
- # 색상 정의
12
+ # Color definitions
13
13
  GREEN='\033[0;32m'
14
14
  BLUE='\033[0;34m'
15
15
  YELLOW='\033[1;33m'
16
16
  NC='\033[0m'
17
17
 
18
- # 로그 함수
18
+ # Log functions
19
19
  log_info() { echo -e "${BLUE}[HANDOFF]${NC} $1"; }
20
20
  log_success() { echo -e "${GREEN}[HANDOFF]${NC} $1"; }
21
21
  log_warning() { echo -e "${YELLOW}[HANDOFF]${NC} $1"; }
22
22
 
23
- # 현재 스테이지 확인
23
+ # Get current stage
24
24
  get_current_stage() {
25
25
  if [ -f "$PROGRESS_FILE" ]; then
26
26
  cat "$PROGRESS_FILE" 2>/dev/null | grep -o '"current_stage"[[:space:]]*:[[:space:]]*"[^"]*"' | cut -d'"' -f4
@@ -29,15 +29,15 @@ get_current_stage() {
29
29
  fi
30
30
  }
31
31
 
32
- # Git 변경 파일 추출
32
+ # Extract changed files from Git
33
33
  extract_changed_files() {
34
- log_info "변경된 파일 추출 중..."
34
+ log_info "Extracting changed files..."
35
35
 
36
36
  if git rev-parse --is-inside-work-tree > /dev/null 2>&1; then
37
- echo "### 수정된 파일"
37
+ echo "### Modified Files"
38
38
  echo ""
39
- echo "| 파일 | 변경 유형 | 변경량 |"
40
- echo "|------|----------|--------|"
39
+ echo "| File | Change Type | Changes |"
40
+ echo "|------|-------------|---------|"
41
41
 
42
42
  git diff --stat HEAD~10 2>/dev/null | head -20 | while read -r line; do
43
43
  if [[ "$line" =~ ^[[:space:]]*([^|]+)\|[[:space:]]*([0-9]+) ]]; then
@@ -49,16 +49,16 @@ extract_changed_files() {
49
49
 
50
50
  echo ""
51
51
  else
52
- echo "Git 저장소가 아닙니다."
52
+ echo "Not a Git repository."
53
53
  fi
54
54
  }
55
55
 
56
- # 최근 커밋 추출
56
+ # Extract recent commits
57
57
  extract_recent_commits() {
58
- log_info "최근 커밋 추출 중..."
58
+ log_info "Extracting recent commits..."
59
59
 
60
60
  if git rev-parse --is-inside-work-tree > /dev/null 2>&1; then
61
- echo "### 최근 커밋"
61
+ echo "### Recent Commits"
62
62
  echo ""
63
63
 
64
64
  git log --oneline -5 2>/dev/null | while read -r line; do
@@ -69,83 +69,83 @@ extract_recent_commits() {
69
69
  fi
70
70
  }
71
71
 
72
- # HANDOFF 템플릿 생성
72
+ # Generate HANDOFF template
73
73
  generate_handoff() {
74
74
  local stage="$1"
75
75
  local mode="$2"
76
76
  local stage_dir="$PROJECT_ROOT/stages/$stage"
77
77
  local handoff_file="$stage_dir/HANDOFF.md"
78
78
 
79
- log_info "HANDOFF 생성 중: $stage"
79
+ log_info "Generating HANDOFF: $stage"
80
80
 
81
81
  mkdir -p "$stage_dir"
82
82
 
83
- # 타임스탬프
83
+ # Timestamp
84
84
  local timestamp=$(date +%Y-%m-%d\ %H:%M:%S)
85
85
 
86
86
  cat > "$handoff_file" << EOF
87
87
  # HANDOFF - $stage
88
88
 
89
- > 생성 시간: $timestamp
90
- > 모드: $mode
89
+ > Generated: $timestamp
90
+ > Mode: $mode
91
91
 
92
- ## 요약
92
+ ## Summary
93
93
 
94
- [스테이지 완료 상태를 1-2문장으로 요약]
94
+ [Summarize stage completion status in 1-2 sentences]
95
95
 
96
- ## 완료된 작업
96
+ ## Completed Tasks
97
97
 
98
- - [ ] 완료된 작업 1
99
- - [ ] 완료된 작업 2
100
- - [ ] 완료된 작업 3
98
+ - [ ] Completed task 1
99
+ - [ ] Completed task 2
100
+ - [ ] Completed task 3
101
101
 
102
- ## 핵심 결정사항
102
+ ## Key Decisions
103
103
 
104
- ### 결정 1
105
- - **선택**: [선택한 옵션]
106
- - **이유**: [선택 이유]
107
- - **대안**: [고려한 대안]
104
+ ### Decision 1
105
+ - **Choice**: [Selected option]
106
+ - **Reason**: [Selection rationale]
107
+ - **Alternatives**: [Considered alternatives]
108
108
 
109
109
  $(extract_changed_files)
110
110
 
111
111
  $(extract_recent_commits)
112
112
 
113
- ## 대기 이슈
113
+ ## Pending Issues
114
114
 
115
- - [ ] 이슈 1 (우선순위: 높음)
116
- - [ ] 이슈 2 (우선순위: 중간)
115
+ - [ ] Issue 1 (Priority: High)
116
+ - [ ] Issue 2 (Priority: Medium)
117
117
 
118
- ## 다음 단계
118
+ ## Next Steps
119
119
 
120
- 1. [즉시 실행 가능한 첫 번째 액션]
121
- 2. [ 번째 액션]
122
- 3. [ 번째 액션]
120
+ 1. [First immediately actionable item]
121
+ 2. [Second action]
122
+ 3. [Third action]
123
123
 
124
- ## 참조
124
+ ## References
125
125
 
126
- - 이전 HANDOFF: [링크]
127
- - 관련 문서: [링크]
126
+ - Previous HANDOFF: [link]
127
+ - Related documents: [link]
128
128
 
129
129
  ---
130
130
 
131
- ## AI 호출 기록
131
+ ## AI Call Log
132
132
 
133
- | AI | 시간 | 목적 | 결과 |
134
- |----|------|------|------|
133
+ | AI | Time | Purpose | Result |
134
+ |----|------|---------|--------|
135
135
  | - | - | - | - |
136
136
 
137
137
  EOF
138
138
 
139
- log_success "HANDOFF 생성 완료: $handoff_file"
139
+ log_success "HANDOFF generated: $handoff_file"
140
140
  }
141
141
 
142
- # 컴팩트 모드 HANDOFF
142
+ # Compact mode HANDOFF
143
143
  generate_compact_handoff() {
144
144
  local stage="$1"
145
145
  local stage_dir="$PROJECT_ROOT/stages/$stage"
146
146
  local handoff_file="$stage_dir/HANDOFF.md"
147
147
 
148
- log_info "컴팩트 HANDOFF 생성 중: $stage"
148
+ log_info "Generating compact HANDOFF: $stage"
149
149
 
150
150
  mkdir -p "$stage_dir"
151
151
 
@@ -156,29 +156,29 @@ generate_compact_handoff() {
156
156
 
157
157
  ## Critical
158
158
 
159
- [차단 이슈 즉시 해결 필요 사항]
159
+ [Blocking issues and items requiring immediate resolution]
160
160
 
161
161
  ## Next Actions
162
162
 
163
- 1. [ 번째 즉시 실행 액션]
164
- 2. [ 번째 액션]
163
+ 1. [First immediately actionable item]
164
+ 2. [Second action]
165
165
 
166
166
  ## Context
167
167
 
168
- [최소 필수 컨텍스트]
168
+ [Minimum essential context]
169
169
 
170
170
  EOF
171
171
 
172
- log_success "컴팩트 HANDOFF 생성 완료: $handoff_file"
172
+ log_success "Compact HANDOFF generated: $handoff_file"
173
173
  }
174
174
 
175
- # 복구용 상세 HANDOFF
175
+ # Recovery detailed HANDOFF
176
176
  generate_recovery_handoff() {
177
177
  local stage="$1"
178
178
  local stage_dir="$PROJECT_ROOT/stages/$stage"
179
179
  local handoff_file="$stage_dir/HANDOFF_RECOVERY.md"
180
180
 
181
- log_info "복구용 HANDOFF 생성 중: $stage"
181
+ log_info "Generating recovery HANDOFF: $stage"
182
182
 
183
183
  mkdir -p "$stage_dir"
184
184
 
@@ -189,14 +189,14 @@ generate_recovery_handoff() {
189
189
 
190
190
  ## Full Context
191
191
 
192
- ### 현재 상태
193
- [상세 상태 설명]
192
+ ### Current State
193
+ [Detailed state description]
194
194
 
195
- ### 완료된 모든 작업
196
- [상세 작업 목록]
195
+ ### All Completed Tasks
196
+ [Complete task list]
197
197
 
198
- ### 모든 결정사항
199
- [결정사항 전체 목록]
198
+ ### All Decisions
199
+ [Full decision list]
200
200
 
201
201
  $(extract_changed_files)
202
202
 
@@ -204,33 +204,33 @@ $(extract_recent_commits)
204
204
 
205
205
  ## Step-by-Step Recovery
206
206
 
207
- ### 1단계: 환경 확인
207
+ ### Step 1: Verify Environment
208
208
  \`\`\`bash
209
- # 필요한 명령어
209
+ # Required commands
210
210
  \`\`\`
211
211
 
212
- ### 2단계: 상태 복원
213
- [복원 절차]
212
+ ### Step 2: Restore State
213
+ [Restoration procedure]
214
214
 
215
- ### 3단계: 작업 재개
216
- [재개 절차]
215
+ ### Step 3: Resume Work
216
+ [Resume procedure]
217
217
 
218
- ## 관련 체크포인트
218
+ ## Related Checkpoints
219
219
 
220
- - [체크포인트 목록]
220
+ - [Checkpoint list]
221
221
 
222
222
  EOF
223
223
 
224
- log_success "복구용 HANDOFF 생성 완료: $handoff_file"
224
+ log_success "Recovery HANDOFF generated: $handoff_file"
225
225
  }
226
226
 
227
- # 메인 실행
227
+ # Main execution
228
228
  main() {
229
229
  local mode="${1:-default}"
230
230
  local stage="${2:-$(get_current_stage)}"
231
231
 
232
232
  if [ "$stage" = "unknown" ]; then
233
- log_warning "현재 스테이지를 확인할 없습니다. 기본값 사용"
233
+ log_warning "Cannot determine current stage. Using default value"
234
234
  stage="00-unknown"
235
235
  fi
236
236
 
@@ -245,7 +245,7 @@ main() {
245
245
  generate_recovery_handoff "$stage"
246
246
  ;;
247
247
  *)
248
- echo "사용법: $0 [default|compact|recovery] [stage_id]"
248
+ echo "Usage: $0 [default|compact|recovery] [stage_id]"
249
249
  exit 1
250
250
  ;;
251
251
  esac