crewx 0.1.0 → 0.1.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 (195) hide show
  1. package/LICENSE +197 -9
  2. package/README.md +120 -28
  3. package/crewx.yaml +1273 -0
  4. package/dist/agent.types.d.ts +92 -0
  5. package/dist/agent.types.js +16 -0
  6. package/dist/agent.types.js.map +1 -0
  7. package/dist/ai-provider.service.d.ts +25 -0
  8. package/dist/ai-provider.service.js +138 -0
  9. package/dist/ai-provider.service.js.map +1 -0
  10. package/dist/ai.service.d.ts +50 -0
  11. package/dist/ai.service.js +625 -0
  12. package/dist/ai.service.js.map +1 -0
  13. package/dist/app.module.d.ts +5 -0
  14. package/dist/app.module.js +88 -0
  15. package/dist/app.module.js.map +1 -0
  16. package/dist/cli/chat.handler.d.ts +19 -0
  17. package/dist/cli/chat.handler.js +429 -0
  18. package/dist/cli/chat.handler.js.map +1 -0
  19. package/dist/cli/cli.handler.d.ts +4 -0
  20. package/dist/cli/cli.handler.js +93 -0
  21. package/dist/cli/cli.handler.js.map +1 -0
  22. package/dist/cli/doctor.handler.d.ts +36 -0
  23. package/dist/cli/doctor.handler.js +382 -0
  24. package/dist/cli/doctor.handler.js.map +1 -0
  25. package/dist/cli/execute.handler.d.ts +2 -0
  26. package/dist/cli/execute.handler.js +269 -0
  27. package/dist/cli/execute.handler.js.map +1 -0
  28. package/dist/cli/help.handler.d.ts +2 -0
  29. package/dist/cli/help.handler.js +10 -0
  30. package/dist/cli/help.handler.js.map +1 -0
  31. package/dist/cli/init.handler.d.ts +25 -0
  32. package/dist/cli/init.handler.js +355 -0
  33. package/dist/cli/init.handler.js.map +1 -0
  34. package/dist/cli/query.handler.d.ts +2 -0
  35. package/dist/cli/query.handler.js +351 -0
  36. package/dist/cli/query.handler.js.map +1 -0
  37. package/dist/cli/templates.handler.d.ts +2 -0
  38. package/dist/cli/templates.handler.js +100 -0
  39. package/dist/cli/templates.handler.js.map +1 -0
  40. package/dist/cli-options.d.ts +22 -0
  41. package/dist/cli-options.js +195 -0
  42. package/dist/cli-options.js.map +1 -0
  43. package/dist/config/timeout.config.d.ts +14 -0
  44. package/dist/config/timeout.config.js +34 -0
  45. package/dist/config/timeout.config.js.map +1 -0
  46. package/dist/constants.d.ts +4 -0
  47. package/dist/constants.js +8 -0
  48. package/dist/constants.js.map +1 -0
  49. package/dist/conversation/base-conversation-history.provider.d.ts +12 -0
  50. package/dist/conversation/base-conversation-history.provider.js +45 -0
  51. package/dist/conversation/base-conversation-history.provider.js.map +1 -0
  52. package/dist/conversation/cli-conversation-history.provider.d.ts +16 -0
  53. package/dist/conversation/cli-conversation-history.provider.js +104 -0
  54. package/dist/conversation/cli-conversation-history.provider.js.map +1 -0
  55. package/dist/conversation/conversation-config.d.ts +9 -0
  56. package/dist/conversation/conversation-config.js +25 -0
  57. package/dist/conversation/conversation-config.js.map +1 -0
  58. package/dist/conversation/conversation-history.interface.d.ts +25 -0
  59. package/dist/conversation/conversation-history.interface.js +3 -0
  60. package/dist/conversation/conversation-history.interface.js.map +1 -0
  61. package/dist/conversation/conversation-provider.factory.d.ts +10 -0
  62. package/dist/conversation/conversation-provider.factory.js +50 -0
  63. package/dist/conversation/conversation-provider.factory.js.map +1 -0
  64. package/dist/conversation/conversation-storage.service.d.ts +15 -0
  65. package/dist/conversation/conversation-storage.service.js +182 -0
  66. package/dist/conversation/conversation-storage.service.js.map +1 -0
  67. package/dist/conversation/index.d.ts +7 -0
  68. package/dist/conversation/index.js +24 -0
  69. package/dist/conversation/index.js.map +1 -0
  70. package/dist/conversation/slack-conversation-history.provider.d.ts +22 -0
  71. package/dist/conversation/slack-conversation-history.provider.js +239 -0
  72. package/dist/conversation/slack-conversation-history.provider.js.map +1 -0
  73. package/dist/crewx.tool.d.ts +421 -0
  74. package/dist/crewx.tool.js +1240 -0
  75. package/dist/crewx.tool.js.map +1 -0
  76. package/dist/knowledge/DocumentManager.d.ts +4 -0
  77. package/dist/knowledge/DocumentManager.js +119 -0
  78. package/dist/knowledge/DocumentManager.js.map +1 -0
  79. package/dist/main.d.ts +1 -0
  80. package/dist/main.js +230 -0
  81. package/dist/main.js.map +1 -0
  82. package/dist/mcp.controller.d.ts +8 -0
  83. package/dist/mcp.controller.js +60 -0
  84. package/dist/mcp.controller.js.map +1 -0
  85. package/dist/project.service.d.ts +44 -0
  86. package/dist/project.service.js +299 -0
  87. package/dist/project.service.js.map +1 -0
  88. package/dist/providers/ai-provider.interface.d.ts +30 -0
  89. package/dist/providers/ai-provider.interface.js +11 -0
  90. package/dist/providers/ai-provider.interface.js.map +1 -0
  91. package/dist/providers/base-ai.provider.d.ts +42 -0
  92. package/dist/providers/base-ai.provider.js +515 -0
  93. package/dist/providers/base-ai.provider.js.map +1 -0
  94. package/dist/providers/claude.provider.d.ts +25 -0
  95. package/dist/providers/claude.provider.js +376 -0
  96. package/dist/providers/claude.provider.js.map +1 -0
  97. package/dist/providers/copilot.provider.d.ts +25 -0
  98. package/dist/providers/copilot.provider.js +280 -0
  99. package/dist/providers/copilot.provider.js.map +1 -0
  100. package/dist/providers/gemini.provider.d.ts +22 -0
  101. package/dist/providers/gemini.provider.js +163 -0
  102. package/dist/providers/gemini.provider.js.map +1 -0
  103. package/dist/services/agent-loader.service.d.ts +23 -0
  104. package/dist/services/agent-loader.service.js +313 -0
  105. package/dist/services/agent-loader.service.js.map +1 -0
  106. package/dist/services/config-validator.service.d.ts +28 -0
  107. package/dist/services/config-validator.service.js +427 -0
  108. package/dist/services/config-validator.service.js.map +1 -0
  109. package/dist/services/config.service.d.ts +25 -0
  110. package/dist/services/config.service.js +102 -0
  111. package/dist/services/config.service.js.map +1 -0
  112. package/dist/services/context-enhancement.service.d.ts +13 -0
  113. package/dist/services/context-enhancement.service.js +169 -0
  114. package/dist/services/context-enhancement.service.js.map +1 -0
  115. package/dist/services/document-loader.service.d.ts +16 -0
  116. package/dist/services/document-loader.service.js +137 -0
  117. package/dist/services/document-loader.service.js.map +1 -0
  118. package/dist/services/help.service.d.ts +5 -0
  119. package/dist/services/help.service.js +112 -0
  120. package/dist/services/help.service.js.map +1 -0
  121. package/dist/services/intelligent-compression.service.d.ts +20 -0
  122. package/dist/services/intelligent-compression.service.js +179 -0
  123. package/dist/services/intelligent-compression.service.js.map +1 -0
  124. package/dist/services/parallel-processing.service.d.ts +108 -0
  125. package/dist/services/parallel-processing.service.js +266 -0
  126. package/dist/services/parallel-processing.service.js.map +1 -0
  127. package/dist/services/result-formatter.service.d.ts +27 -0
  128. package/dist/services/result-formatter.service.js +126 -0
  129. package/dist/services/result-formatter.service.js.map +1 -0
  130. package/dist/services/task-management.service.d.ts +63 -0
  131. package/dist/services/task-management.service.js +270 -0
  132. package/dist/services/task-management.service.js.map +1 -0
  133. package/dist/services/template.service.d.ts +36 -0
  134. package/dist/services/template.service.js +195 -0
  135. package/dist/services/template.service.js.map +1 -0
  136. package/dist/services/tool-call.service.d.ts +53 -0
  137. package/dist/services/tool-call.service.js +819 -0
  138. package/dist/services/tool-call.service.js.map +1 -0
  139. package/dist/slack/formatters/message.formatter.d.ts +25 -0
  140. package/dist/slack/formatters/message.formatter.js +246 -0
  141. package/dist/slack/formatters/message.formatter.js.map +1 -0
  142. package/dist/slack/slack-bot.d.ts +23 -0
  143. package/dist/slack/slack-bot.js +435 -0
  144. package/dist/slack/slack-bot.js.map +1 -0
  145. package/dist/stderr.logger.d.ts +8 -0
  146. package/dist/stderr.logger.js +26 -0
  147. package/dist/stderr.logger.js.map +1 -0
  148. package/dist/tsconfig.tsbuildinfo +1 -0
  149. package/dist/utils/config-utils.d.ts +15 -0
  150. package/dist/utils/config-utils.js +69 -0
  151. package/dist/utils/config-utils.js.map +1 -0
  152. package/dist/utils/error-utils.d.ts +3 -0
  153. package/dist/utils/error-utils.js +27 -0
  154. package/dist/utils/error-utils.js.map +1 -0
  155. package/dist/utils/math-utils.d.ts +3 -0
  156. package/dist/utils/math-utils.js +10 -0
  157. package/dist/utils/math-utils.js.map +1 -0
  158. package/dist/utils/mcp-installer.d.ts +20 -0
  159. package/dist/utils/mcp-installer.js +199 -0
  160. package/dist/utils/mcp-installer.js.map +1 -0
  161. package/dist/utils/mention-parser.d.ts +18 -0
  162. package/dist/utils/mention-parser.js +136 -0
  163. package/dist/utils/mention-parser.js.map +1 -0
  164. package/dist/utils/simple-security.d.ts +3 -0
  165. package/dist/utils/simple-security.js +20 -0
  166. package/dist/utils/simple-security.js.map +1 -0
  167. package/dist/utils/stdin-utils.d.ts +2 -0
  168. package/dist/utils/stdin-utils.js +87 -0
  169. package/dist/utils/stdin-utils.js.map +1 -0
  170. package/dist/utils/string-utils.d.ts +1 -0
  171. package/dist/utils/string-utils.js +10 -0
  172. package/dist/utils/string-utils.js.map +1 -0
  173. package/dist/utils/template-processor.d.ts +32 -0
  174. package/dist/utils/template-processor.js +188 -0
  175. package/dist/utils/template-processor.js.map +1 -0
  176. package/docs/agent-configuration.md +373 -0
  177. package/docs/agent-registry-strategy.md +348 -0
  178. package/docs/branding-decision-crewx.md +395 -0
  179. package/docs/claude-code-docker-guide.md +264 -0
  180. package/docs/cli-guide.md +295 -0
  181. package/docs/development.md +595 -0
  182. package/docs/guides/agent-best-practices.md +97 -0
  183. package/docs/guides/bug-management.md +600 -0
  184. package/docs/guides/git-bug-reference.md +366 -0
  185. package/docs/mcp-integration.md +187 -0
  186. package/docs/process/development-workflow.md +84 -0
  187. package/docs/roadmap.md +528 -0
  188. package/docs/rules/branch-protection.md +40 -0
  189. package/docs/standards/rc-versioning.md +60 -0
  190. package/docs/standards/report-structure.md +67 -0
  191. package/docs/templates.md +517 -0
  192. package/docs/tools.md +583 -0
  193. package/docs/troubleshooting.md +585 -0
  194. package/package.json +106 -21
  195. package/bin/crewx.js +0 -20
@@ -0,0 +1,595 @@
1
+ # CrewX 개발 프로세스
2
+
3
+ **Version:** 1.0 (Draft)
4
+ **Last Updated:** 2025-10-05
5
+ **Owner:** Development Team Lead (GitHub Copilot)
6
+
7
+ ---
8
+
9
+ ## 📋 목차
10
+ 1. [개요](#개요)
11
+ 2. [버그 워크플로우](#버그-워크플로우)
12
+ 3. [브랜치 전략](#브랜치-전략)
13
+ 4. [에이전트 협업](#에이전트-협업)
14
+ 5. [통합 검증 프로세스](#통합-검증-프로세스)
15
+ 6. [릴리스 프로세스](#릴리스-프로세스)
16
+
17
+ ---
18
+
19
+ ## 개요
20
+
21
+ CrewX는 AI 에이전트 협업 기반 개발을 지향합니다.
22
+ - **개발팀장**: GitHub Copilot (작업 분배, 조율, 의사결정)
23
+ - **개발자 에이전트**: @claude, @copilot (분석, 구현)
24
+ - **테스터 에이전트**: @crewx_tester (검증)
25
+
26
+ ---
27
+
28
+ ## 버그 워크플로우
29
+
30
+ ### 버그 상태 전이
31
+ ```
32
+ created → analyzed → in-progress → resolved → closed
33
+
34
+ rejected
35
+ ```
36
+
37
+ ### 상태별 설명
38
+ - **created**: 버그 최초 등록, 재현 시나리오 작성
39
+ - **analyzed**: 원인 분석 완료, 해결책 도출
40
+ - **in-progress**: 수정 작업 진행 중
41
+ - **resolved**: 수정 완료, 테스트 통과, 커밋 완료 (머지 대기)
42
+ - **closed**: develop 브랜치에 머지 완료, 릴리스 반영
43
+ - **rejected**: 수정 실패 또는 재현 불가, 재작업 필요
44
+
45
+ ### bug.md 관리
46
+ - 모든 버그는 `bug.md` 파일에 등록
47
+ - ID 포맷: `bug-00000XXX` (순차 증가)
48
+ - 필수 필드: ID, 우선순위, 버전, 상태, 작성자, 작업자, 생성일, 수정일, 현상, 해결책
49
+
50
+ ### 버그 작업 프로세스
51
+ 1. **버그 발견** → `bug.md`에 `created` 상태로 등록
52
+ 2. **분석 위임** → @claude에게 원인 분석 요청 → `analyzed`
53
+ 3. **수정 위임** → @copilot에게 구현 요청 → `in-progress`
54
+ 4. **검증 위임** → @crewx_tester에게 테스트 요청
55
+ 5. **수정 완료** → 커밋, 상태 `resolved`
56
+ 6. **머지 후** → 상태 `closed`
57
+
58
+ ---
59
+
60
+ ## 브랜치 전략
61
+
62
+ ### 브랜치 구조
63
+ ```
64
+ main (프로덕션, 항상 안정)
65
+
66
+ develop (개발 통합)
67
+
68
+ release/X.X.X-rc.N (릴리스 후보 통합)
69
+
70
+ bugfix/HASH (개별 버그 수정, main 기반, HASH=git-bug 7자 해시)
71
+ feature/feature-name (기능 개발, main 기반)
72
+ hotfix/hotfix-name (긴급 수정, main 기반)
73
+ ```
74
+
75
+ **브랜치 네이밍 규칙:**
76
+ - `bugfix/HASH`: 버그 수정 (**main에서 분기**, HASH는 git-bug 7자 해시)
77
+ - `feature/feature-name`: 기능 개발 (**main에서 분기**)
78
+ - `hotfix/hotfix-name`: 긴급 수정 (main에서 분기)
79
+ - `release/X.X.X-rc.N`: RC 통합 브랜치 (develop에서 분기)
80
+
81
+ **Bug ID 형식:**
82
+ - ✅ git-bug 해시 사용: `c8b3f1d` (7자)
83
+ - ❌ 슬러그 형식 사용 금지: `bug-00000027` (deprecated)
84
+
85
+ ### Worktree 활용
86
+ **모든 브랜치는 Git Worktree로 생성하여 격리된 환경 제공**
87
+
88
+ #### 버그 수정 워크플로우
89
+ ```bash
90
+ # 1. 버그 찾기 및 상세 확인
91
+ git bug bug --status open
92
+ git bug bug show c8b3f1d # 7자 해시 사용
93
+
94
+ # 2. Worktree 생성 (main 기반)
95
+ cd $(git rev-parse --show-toplevel) # 프로젝트 루트로 이동
96
+ git worktree add worktree/bugfix-c8b3f1d -b bugfix/c8b3f1d main
97
+
98
+ # 3. 작업 브랜치 기록 (git-bug에 추적 정보 저장)
99
+ git bug bug comment new c8b3f1d --message "Working on: bugfix/c8b3f1d
100
+ Worktree: $(git rev-parse --show-toplevel)/worktree/bugfix-c8b3f1d"
101
+
102
+ # 4. 작업
103
+ cd worktree/bugfix-c8b3f1d
104
+ # ... 코드 수정 ...
105
+ git add .
106
+ git commit -m "fix(bug): resolve c8b3f1d - description"
107
+
108
+ # 5. git-bug 상태 업데이트
109
+ git bug bug label rm c8b3f1d status:open
110
+ git bug bug label new c8b3f1d status:resolved
111
+ git bug bug comment new c8b3f1d --message "Fixed: description"
112
+
113
+ # 5. 통합 검증 대기 (release/X.X.X-rc.N으로 통합)
114
+ ```
115
+
116
+ #### 릴리스 후보(RC) 브랜치 워크플로우
117
+ ```bash
118
+ # 1. RC 브랜치를 worktree로 생성 (develop 기반)
119
+ # 네이밍: release/X.X.X-rc.N (업계 표준)
120
+ git worktree add worktree/release-0.3.9-rc.2 -b release/0.3.9-rc.2 develop
121
+
122
+ # 2. 모든 resolved 버그 머지 (git-bug 해시 사용)
123
+ cd worktree/release-0.3.9-rc.2
124
+ git merge --no-ff bugfix/c8b3f1d
125
+ git merge --no-ff bugfix/a70534f
126
+ git merge --no-ff bugfix/6e4d67c
127
+ # ... (모든 resolved 버그)
128
+
129
+ # 3. 빌드 및 통합 검증
130
+ npm run build
131
+
132
+ # 4. QA팀장에게 통합 테스트 요청
133
+ # @crewx_qa_lead가 테스터들을 조율하여 병렬 테스트 수행
134
+
135
+ # 5-A. 테스트 통과 시 (PASS)
136
+ cd $(git rev-parse --show-toplevel) # 프로젝트 루트로 이동
137
+ git checkout develop
138
+ git merge --no-ff release/0.3.9-rc.2
139
+
140
+ # 버전 태그 및 npm 배포
141
+ npm version 0.3.9-rc.2
142
+ npm run build
143
+ npm publish --tag next
144
+ git push origin develop --tags
145
+
146
+ # 5-B. 테스트 실패 시 (FAIL)
147
+ # - QA 리포트 검토 (reports/qa-report-0.3.9-rc.2-FAIL.md)
148
+ # - 실패한 버그를 bug.md에서 resolved → rejected 처리
149
+ # - rc.3 생성하여 재시도 또는 실패 버그 제외
150
+ ```
151
+
152
+ **핵심 원칙:**
153
+ - ✅ RC 브랜치 네이밍: `release/X.X.X-rc.N` (develop/X.X.X-rcN 대신)
154
+ - ✅ **버그/피처는 main에서 분기**: 안정 버전 기준, 혼동 방지
155
+ - ✅ RC는 통합 테스트 전용: 새 개발 금지
156
+ - ✅ 실패 시 재시도: rc.1 → rc.2 → rc.3 (부분 머지 금지)
157
+
158
+ ---
159
+
160
+ ## 에이전트 협업
161
+
162
+ ### 에이전트 역할 정의
163
+
164
+ #### 1. GitHub Copilot (개발팀장)
165
+ **역할:**
166
+ - 작업 분해 및 todo 관리
167
+ - 에이전트 선택 및 작업 배분
168
+ - 진행 상황 모니터링
169
+ - 의사결정 및 대표님께 보고
170
+
171
+ **하지 않는 것:**
172
+ - ❌ 직접 코드 작성
173
+ - ❌ 직접 분석 수행
174
+ - ❌ 직접 테스트 실행
175
+
176
+ **도구:**
177
+ - `executeAgent` / `executeAgentParallel`
178
+ - `queryAgent` / `queryAgentParallel`
179
+ - `manage_todo_list`
180
+
181
+ #### 2. @crewx_qa_lead (QA팀장) ⭐ NEW
182
+ **Agent ID:** `crewx_qa_lead`
183
+ **Provider:** Claude Sonnet
184
+ **역할:**
185
+ - 테스트 계획 수립
186
+ - 테스터에게 테스트 위임
187
+ - 테스트 결과 수집 및 분석
188
+ - 통합 QA 리포트 생성
189
+ - Go/No-Go 의사결정
190
+
191
+ **활용 시나리오:**
192
+ - resolved 버그 검증 관리
193
+ - RC 브랜치 통합 테스트 조율
194
+ - 여러 버그 병렬 검증 관리
195
+
196
+ **특징:**
197
+ - 직접 테스트하지 않음 (테스터에게 위임)
198
+ - 병렬 테스트 조율 전문
199
+ - 통합 QA 리포트 작성
200
+ - development.md 이해
201
+
202
+ **워크플로우:**
203
+ ```
204
+ GitHub Copilot (팀장)
205
+ ↓ 테스트 요청
206
+ @crewx_qa_lead (QA팀장)
207
+ ↓ 테스트 위임 (병렬)
208
+ @crewx_tester (테스터들)
209
+ ↓ 개별 리포트
210
+ @crewx_qa_lead (QA팀장)
211
+ ↓ 통합 리포트
212
+ GitHub Copilot (팀장)
213
+ ```
214
+
215
+ #### 3. @crewx_dev (CrewX 전문 개발자)
216
+ **Agent ID:** `crewx_dev`
217
+ **Provider:** Claude Sonnet
218
+ **역할:**
219
+ - CrewX 프로젝트 버그 수정
220
+ - 기능 개발 및 구현
221
+ - Git worktree 워크플로우 전문
222
+ - bug.md 업데이트
223
+
224
+ **활용 시나리오:**
225
+ - CrewX 프로젝트 버그 수정
226
+ - 새 기능 구현
227
+ - 코드 품질 개선
228
+
229
+ **특징:**
230
+ - Git worktree 워크플로우 숙지
231
+ - bug.md 관리 경험
232
+ - CrewX 아키텍처 이해
233
+
234
+ #### 3. @crewx_tester (검증 전문)
235
+ **Agent ID:** `crewx_tester`
236
+ **Provider:** Claude Sonnet
237
+ **역할:**
238
+ - 수정 사항 검증
239
+ - 재현 시나리오 테스트
240
+ - 엣지 케이스 확인
241
+ - 테스트 리포트 작성 (reports/ 디렉토리)
242
+
243
+ **활용 시나리오:**
244
+ - resolved 버그 검증
245
+ - 통합 테스트
246
+ - 릴리스 전 QA
247
+
248
+ **특징:**
249
+ - 체계적인 테스트 시나리오 작성
250
+ - 상세한 테스트 리포트 생성
251
+ - 버그 재현 능력
252
+
253
+ #### 4. @claude (범용 분석)
254
+ **Built-in Agent**
255
+ **역할:**
256
+ - 복잡한 버그 원인 분석
257
+ - 아키텍처 리뷰 및 설계
258
+ - 보안 취약점 분석
259
+ - 상세 문서 작성
260
+
261
+ **활용 시나리오:**
262
+ - 버그 원인을 알 수 없을 때
263
+ - 여러 요인이 복합된 문제
264
+ - 설계 결정이 필요할 때
265
+
266
+ #### 5. @copilot (범용 구현)
267
+ **Built-in Agent**
268
+ **역할:**
269
+ - 일반적인 코드 작성
270
+ - 테스트 코드 작성
271
+ - 코드 리뷰
272
+ - Best Practice 적용
273
+
274
+ **활용 시나리오:**
275
+ - 명확한 수정 방향이 있을 때
276
+ - 빠른 구현이 필요할 때
277
+ - 범용 코드 작성
278
+
279
+ ### 에이전트 선택 가이드
280
+
281
+ | 작업 유형 | 추천 에이전트 | 이유 |
282
+ |---------|-------------|------|
283
+ | CrewX 버그 수정 | @crewx_dev | Git worktree 워크플로우, bug.md 관리 |
284
+ | CrewX 기능 개발 | @crewx_dev | 프로젝트 아키텍처 이해 |
285
+ | 테스트 관리 | @crewx_qa_lead | 테스트 계획, 병렬 테스트 조율 |
286
+ | 버그 검증 | @crewx_tester | 실제 테스트 실행 (QA팀장이 위임) |
287
+ | 복잡한 분석 | @claude | 심층 분석 능력 |
288
+ | 범용 코드 작성 | @copilot | 빠른 구현 |
289
+
290
+ ### 역할 계층 구조
291
+ ```
292
+ 대표님 (CEO/CTO)
293
+
294
+ GitHub Copilot (개발팀장)
295
+
296
+ ├─ @crewx_dev (개발자) → 버그 수정/기능 개발
297
+ ├─ @crewx_qa_lead (QA팀장) → 테스트 관리
298
+ │ ↓
299
+ │ └─ @crewx_tester (테스터) → 실제 테스트
300
+ ├─ @claude (분석가) → 복잡한 분석
301
+ └─ @copilot (구현자) → 범용 구현
302
+ ```
303
+
304
+ ### 병렬 처리 전략
305
+
306
+ #### 언제 병렬 처리?
307
+ 1. **다중 버그 분석**: 여러 버그의 원인을 동시에 분석
308
+ 2. **다각도 리뷰**: 같은 코드를 여러 관점에서 검토
309
+ 3. **통합 검증**: 여러 수정사항을 동시에 테스트
310
+
311
+ #### 병렬 처리 예시
312
+ ```javascript
313
+ // ❌ 비효율적 (순차)
314
+ await queryAgent("@claude", "bug-00000013 분석");
315
+ await queryAgent("@claude", "bug-00000014 분석");
316
+ await queryAgent("@claude", "bug-00000015 분석");
317
+
318
+ // ✅ 효율적 (병렬)
319
+ await queryAgentParallel([
320
+ { agentId: "claude", query: "bug-00000013 분석" },
321
+ { agentId: "claude", query: "bug-00000014 분석" },
322
+ { agentId: "claude", query: "bug-00000015 분석" },
323
+ ]);
324
+ ```
325
+
326
+ ---
327
+
328
+ ## 통합 검증 프로세스
329
+
330
+ ### 기존 방식 (비효율)
331
+ ```
332
+ bug-00000013 수정 → 검증 → 머지
333
+ bug-00000014 수정 → 검증 → 머지
334
+ bug-00000015 수정 → 검증 → 머지
335
+ ```
336
+ - ❌ 순차 처리로 시간 소요
337
+ - ❌ 버그 간 충돌 사전 감지 불가
338
+ - ❌ 병렬 처리 미활용
339
+
340
+ ### 새 방식 (효율) ✅
341
+ ```
342
+ 모든 resolved 버그
343
+
344
+ develop/0.3.9-rc.2 (통합 브랜치)
345
+
346
+ 병렬 검증 (모든 버그 동시 테스트)
347
+
348
+ PASS → develop 머지
349
+ FAIL → 문제 버그 제외 후 재시도
350
+ ```
351
+
352
+ ### 통합 검증 워크플로우
353
+
354
+ #### 1. resolved 버그 수집
355
+ ```bash
356
+ # bug.md에서 resolved 상태 버그 목록 추출
357
+ grep -B 5 "상태: resolved" bug.md | grep "^ID:"
358
+
359
+ # 결과 예시:
360
+ # ID: bug-00000013
361
+ # ID: bug-00000014
362
+ # ID: bug-00000015
363
+ # ... (총 13개)
364
+ ```
365
+
366
+ #### 2. RC 브랜치 생성 및 통합
367
+ ```bash
368
+ # RC 브랜치 생성 (worktree로 격리, release/ 네이밍)
369
+ git worktree add worktree/release-0.3.9-rc.2 -b release/0.3.9-rc.2 develop
370
+ cd worktree/release-0.3.9-rc.2
371
+
372
+ # 모든 resolved 버그 머지
373
+ git merge --no-ff bugfix/bug-00000013
374
+ git merge --no-ff bugfix/bug-00000014
375
+ git merge --no-ff bugfix/bug-00000015
376
+ # ... (충돌 발생 시 해결)
377
+ ```
378
+
379
+ #### 3. 통합 테스트 (병렬)
380
+ ```bash
381
+ # 빌드
382
+ npm run build
383
+
384
+ # QA팀장에게 통합 검증 요청
385
+ # 자동화 가능한 버그만 @crewx_tester에게 위임
386
+ # Slack Bot 관련 버그는 수동 테스트 필요
387
+
388
+ executeAgent({
389
+ agentId: "crewx_qa_lead",
390
+ task: `
391
+ release/0.3.9-rc.2 브랜치의 모든 resolved 버그 통합 검증:
392
+ - bug-00000013: STDERR 에러 처리 (자동 테스트 가능)
393
+ - bug-00000014: Git commits 누락 처리 (자동 테스트 가능)
394
+ - bug-00000019: Slack Bot EPIPE 에러 (⚠️ 수동 테스트 필요)
395
+
396
+ 자동화 가능한 버그는 @crewx_tester에게 병렬 테스트 위임.
397
+ 수동 테스트 필요한 버그는 테스트 시나리오 작성 후 Dev Lead에게 보고.
398
+ `,
399
+ projectPath: "./worktree/release-0.3.9-rc.2" // 상대경로
400
+ });
401
+ ```
402
+
403
+ **테스트 분류:**
404
+ - ✅ **자동 테스트 가능**: CLI 명령어, API 호출, 파일 처리 등
405
+ - ⚠️ **수동 테스트 필요**: Slack Bot, 브라우저 UI, 외부 서비스 연동 등
406
+
407
+ #### 4. 테스트 결과 판단 및 처리
408
+
409
+ ##### 4-1. 모든 테스트 PASS ✅
410
+ ```bash
411
+ # QA팀장 리포트: qa-report-0.3.9-rc.2-PASS.md
412
+ # 모든 버그 검증 통과
413
+
414
+ # 1. develop 브랜치로 머지
415
+ cd $(git rev-parse --show-toplevel) # 프로젝트 루트로 이동
416
+ git checkout develop
417
+ git merge --no-ff release/0.3.9-rc.2
418
+ git push origin develop
419
+
420
+ # 2. bug.md 업데이트
421
+ # 모든 테스트 통과한 버그: resolved → closed
422
+
423
+ # 3. RC 배포
424
+ npm version 0.3.9-rc.2
425
+ npm run build
426
+ npm publish --tag next
427
+
428
+ # 4. 다음 정식 릴리스 준비
429
+ # - main 브랜치로 머지 계획
430
+ # - 최종 검증 후 npm publish (latest 태그)
431
+ ```
432
+
433
+ ##### 4-2. 일부 테스트 FAIL ❌
434
+ ```bash
435
+ # 예시: 3개 버그 중 1개 실패
436
+ # - bug-00000013: ✅ PASS
437
+ # - bug-00000014: ❌ FAIL (still crashes)
438
+ # - bug-00000015: ✅ PASS
439
+
440
+ # 1. QA팀장이 실패 리포트 작성
441
+ # 파일: qa-report-0.3.9-rc.2-FAIL.md
442
+ # 내용:
443
+ # - 어떤 버그가 실패했는지
444
+ # - 왜 실패했는지 (원인)
445
+ # - 무엇을 수정해야 하는지
446
+ # - 통과한 버그 목록
447
+ # - 실패한 버그 목록 및 재작업 계획
448
+
449
+ # 2. bug.md 업데이트
450
+ # 실패한 버그: resolved → rejected
451
+ # 거부 사유 추가
452
+ # 수정일 업데이트
453
+
454
+ # 3. 개발팀장이 실패한 버그 재작업 지시
455
+ # bug-00000014를 @crewx_dev에게 다시 할당
456
+
457
+ # 4. 다음 RC 버전 생성 (재시도)
458
+ # release/0.3.9-rc.3 생성 (실패한 버그 제외)
459
+ # 또는 실패 버그 수정 후 다시 rc.3에 포함
460
+
461
+ # 5. rc.3 생성 및 재테스트
462
+ git worktree add worktree/release-0.3.9-rc.3 -b release/0.3.9-rc.3 develop
463
+ cd worktree/release-0.3.9-rc.3
464
+
465
+ # 통과한 버그만 머지 or 수정된 버그 포함
466
+ git merge --no-ff bugfix/bug-00000013
467
+ git merge --no-ff bugfix/bug-00000015
468
+ # bug-00000014는 제외 또는 재수정 후 포함
469
+
470
+ # 빌드 및 QA팀장에게 rc.3 테스트 요청
471
+ npm run build
472
+ # executeAgent crewx_qa_lead...
473
+ ```
474
+
475
+ **핵심 원칙:**
476
+ - ❌ **부분 머지 금지**: Cherry-pick이나 선택적 머지 하지 않음
477
+ - ✅ **RC 버전 진행**: rc.1 실패 → rc.2 생성 → 재테스트
478
+ - ✅ **실패 리포트 보관**: 각 RC 버전마다 PASS/FAIL 리포트 생성
479
+ - ✅ **추적 가능성**: 릴리스 히스토리로 개선점 파악
480
+
481
+ ---
482
+
483
+ ## 릴리스 프로세스
484
+
485
+ ### 버전 전략 (Semantic Versioning)
486
+ ```
487
+ MAJOR.MINOR.PATCH-TAG
488
+ | | | |
489
+ | | | └─ rc.1, rc.2 (릴리스 후보)
490
+ | | └─────── 버그 수정
491
+ | └─────────── 기능 추가 (하위 호환)
492
+ └───────────────── Breaking Changes
493
+ ```
494
+
495
+ ### 릴리스 워크플로우
496
+
497
+ #### 1. RC 릴리스 (테스트용)
498
+ ```bash
499
+ # 1. RC 브랜치를 worktree로 생성 (develop 기반)
500
+ cd $(git rev-parse --show-toplevel) # 프로젝트 루트로 이동
501
+ git worktree add worktree/release-0.3.9-rc.2 -b release/0.3.9-rc.2 develop
502
+
503
+ # 2. 통합 검증 완료된 RC 브랜치로 이동
504
+ cd worktree/release-0.3.9-rc.2
505
+
506
+ # 3. 버전 업데이트
507
+ npm version 0.3.9-rc.2
508
+
509
+ # 4. 빌드 및 배포
510
+ npm run build
511
+ npm publish --tag next --access public
512
+
513
+ # 5. 브랜치 및 태그 푸시 (⚠️ 중요: 누락하면 안됨)
514
+ git push -u origin release/0.3.9-rc.2
515
+ git push origin v0.3.9-rc.2
516
+
517
+ # 6. develop 머지
518
+ cd $(git rev-parse --show-toplevel) # 프로젝트 루트로 이동
519
+ git checkout develop
520
+ git merge --no-ff release/0.3.9-rc.2
521
+ git push origin develop
522
+
523
+ # 7. 실제 환경 테스트 (Slack Bot 등)
524
+ npm install -g crewx@next
525
+ # Slack Bot 재시작하여 수동 검증
526
+ ```
527
+
528
+ #### 2. 정식 릴리스
529
+ ```bash
530
+ # 1. 릴리스 브랜치 생성 (⚠️ 중요: 누락하면 안됨)
531
+ cd $(git rev-parse --show-toplevel) # 프로젝트 루트로 이동
532
+ git worktree add worktree/release-0.3.9 -b release/0.3.9 develop
533
+
534
+ # 2. 릴리스 브랜치로 이동
535
+ cd worktree/release-0.3.9
536
+
537
+ # 3. 버전 업데이트 (RC suffix 제거)
538
+ npm version 0.3.9
539
+
540
+ # 4. 빌드 및 배포
541
+ npm run build
542
+ npm publish --access public
543
+
544
+ # 5. 브랜치 및 태그 푸시 (⚠️ 중요: 누락하면 안됨)
545
+ git push -u origin release/0.3.9
546
+ git push origin v0.3.9
547
+
548
+ # 6. develop 브랜치 머지
549
+ cd /Users/doha/git/crewx
550
+ git checkout develop
551
+ git merge --no-ff release/0.3.9
552
+ git push origin develop
553
+
554
+ # 7. main 브랜치 머지
555
+ git checkout main
556
+ git merge --no-ff release/0.3.9
557
+ git push origin main
558
+
559
+ # 8. GitHub Release 생성
560
+ # - 릴리스 노트 작성
561
+ # - 변경사항 요약
562
+ # - 해결된 버그 목록
563
+ ```
564
+
565
+ ### 릴리스 체크리스트
566
+ - [ ] 모든 resolved 버그가 통합 검증 통과
567
+ - [ ] bug.md에서 모든 버그 `closed` 처리
568
+ - [ ] package.json 버전 업데이트
569
+ - [ ] CHANGELOG.md 업데이트
570
+ - [ ] npm publish 성공
571
+ - [ ] GitHub Release 생성
572
+ - [ ] Slack Bot 업데이트 확인
573
+
574
+ ---
575
+
576
+ ## 문서 업데이트 규칙
577
+
578
+ - 프로세스 변경 시 이 문서 먼저 업데이트
579
+ - 변경 이력은 Git 커밋으로 관리
580
+ - 주요 변경 시 버전 번호 증가
581
+ - 대표님 승인 후 확정
582
+
583
+ ---
584
+
585
+ ## 참고 문서
586
+
587
+ - `bug.md`: 버그 트래킹
588
+ - `.github/copilot-instructions.md`: Copilot 역할 정의
589
+ - `agents.yaml`: 에이전트 설정
590
+ - `package.json`: 버전 관리
591
+
592
+ ---
593
+
594
+ **문서 상태: 초안 (Draft)**
595
+ **검토 필요: 대표님 피드백 대기**
@@ -0,0 +1,97 @@
1
+ # Agent Best Practices
2
+
3
+ Guidelines for creating effective AI agents in CrewX.
4
+
5
+ ## Agent Specialization
6
+
7
+ Each agent should have a clear, focused purpose:
8
+
9
+ - **@claude** - Complex reasoning, architecture decisions
10
+ - **@copilot** - Code implementation, best practices
11
+ - **@gemini** - Performance optimization, data analysis
12
+
13
+ ## System Prompt Design
14
+
15
+ ### Be Specific
16
+
17
+ Good:
18
+ ```yaml
19
+ system_prompt: |
20
+ You are a TypeScript expert specializing in NestJS applications.
21
+ Focus on type safety, dependency injection, and testing.
22
+ ```
23
+
24
+ Bad:
25
+ ```yaml
26
+ system_prompt: |
27
+ You are a helpful assistant.
28
+ ```
29
+
30
+ ### Provide Context
31
+
32
+ Include relevant documentation, coding standards, or project-specific guidelines in your system prompt.
33
+
34
+ ### Use Document References
35
+
36
+ Reference documents instead of duplicating content:
37
+
38
+ ```yaml
39
+ system_prompt: |
40
+ You are a senior developer.
41
+
42
+ <coding-standards>
43
+ {{{documents.coding-standards.content}}}
44
+ </coding-standards>
45
+ ```
46
+
47
+ ## Model Selection
48
+
49
+ Choose the right model for your task:
50
+
51
+ - `sonnet` - Balanced performance (recommended)
52
+ - `opus` - Complex reasoning tasks
53
+ - `haiku` - Fast, simple tasks
54
+
55
+ Specify the model in your query:
56
+ ```bash
57
+ crewx q "@claude:opus design this architecture"
58
+ ```
59
+
60
+ ## Parallel Execution
61
+
62
+ Leverage parallel execution for independent tasks:
63
+
64
+ ```bash
65
+ # Good - parallel analysis
66
+ crewx q "@claude @copilot @gemini review this code"
67
+
68
+ # Bad - sequential when parallel is possible
69
+ crewx q "@claude review this code"
70
+ crewx q "@copilot review this code"
71
+ crewx q "@gemini review this code"
72
+ ```
73
+
74
+ ## Task Breakdown
75
+
76
+ Break complex tasks into agent-specific subtasks:
77
+
78
+ ```bash
79
+ # Architecture
80
+ crewx q "@claude design user authentication system"
81
+
82
+ # Implementation
83
+ crewx x "@copilot implement JWT middleware"
84
+
85
+ # Optimization
86
+ crewx q "@gemini optimize authentication performance"
87
+ ```
88
+
89
+ ## Error Handling
90
+
91
+ Check task logs when things go wrong:
92
+
93
+ ```bash
94
+ crewx logs [taskId]
95
+ ```
96
+
97
+ Review agent responses for warnings or suggestions.