crewx 0.3.0 → 0.4.0-dev.0

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 (233) hide show
  1. package/bin/crewx.js +6 -0
  2. package/package.json +9 -107
  3. package/LICENSE +0 -201
  4. package/README.md +0 -234
  5. package/crewx.yaml +0 -2069
  6. package/dist/agent.types.d.ts +0 -117
  7. package/dist/agent.types.js +0 -16
  8. package/dist/agent.types.js.map +0 -1
  9. package/dist/ai-provider.service.d.ts +0 -36
  10. package/dist/ai-provider.service.js +0 -191
  11. package/dist/ai-provider.service.js.map +0 -1
  12. package/dist/ai.service.d.ts +0 -57
  13. package/dist/ai.service.js +0 -629
  14. package/dist/ai.service.js.map +0 -1
  15. package/dist/app.module.d.ts +0 -5
  16. package/dist/app.module.js +0 -103
  17. package/dist/app.module.js.map +0 -1
  18. package/dist/cli/agent.handler.d.ts +0 -2
  19. package/dist/cli/agent.handler.js +0 -140
  20. package/dist/cli/agent.handler.js.map +0 -1
  21. package/dist/cli/chat.handler.d.ts +0 -19
  22. package/dist/cli/chat.handler.js +0 -431
  23. package/dist/cli/chat.handler.js.map +0 -1
  24. package/dist/cli/cli.handler.d.ts +0 -4
  25. package/dist/cli/cli.handler.js +0 -97
  26. package/dist/cli/cli.handler.js.map +0 -1
  27. package/dist/cli/doctor.handler.d.ts +0 -36
  28. package/dist/cli/doctor.handler.js +0 -382
  29. package/dist/cli/doctor.handler.js.map +0 -1
  30. package/dist/cli/execute.handler.d.ts +0 -2
  31. package/dist/cli/execute.handler.js +0 -319
  32. package/dist/cli/execute.handler.js.map +0 -1
  33. package/dist/cli/help.handler.d.ts +0 -2
  34. package/dist/cli/help.handler.js +0 -10
  35. package/dist/cli/help.handler.js.map +0 -1
  36. package/dist/cli/init.handler.d.ts +0 -26
  37. package/dist/cli/init.handler.js +0 -450
  38. package/dist/cli/init.handler.js.map +0 -1
  39. package/dist/cli/mcp.handler.d.ts +0 -3
  40. package/dist/cli/mcp.handler.js +0 -121
  41. package/dist/cli/mcp.handler.js.map +0 -1
  42. package/dist/cli/query.handler.d.ts +0 -2
  43. package/dist/cli/query.handler.js +0 -380
  44. package/dist/cli/query.handler.js.map +0 -1
  45. package/dist/cli/templates.handler.d.ts +0 -2
  46. package/dist/cli/templates.handler.js +0 -100
  47. package/dist/cli/templates.handler.js.map +0 -1
  48. package/dist/cli-options.d.ts +0 -29
  49. package/dist/cli-options.js +0 -234
  50. package/dist/cli-options.js.map +0 -1
  51. package/dist/config/timeout.config.d.ts +0 -14
  52. package/dist/config/timeout.config.js +0 -34
  53. package/dist/config/timeout.config.js.map +0 -1
  54. package/dist/constants.d.ts +0 -4
  55. package/dist/constants.js +0 -8
  56. package/dist/constants.js.map +0 -1
  57. package/dist/conversation/base-conversation-history.provider.d.ts +0 -12
  58. package/dist/conversation/base-conversation-history.provider.js +0 -45
  59. package/dist/conversation/base-conversation-history.provider.js.map +0 -1
  60. package/dist/conversation/cli-conversation-history.provider.d.ts +0 -16
  61. package/dist/conversation/cli-conversation-history.provider.js +0 -111
  62. package/dist/conversation/cli-conversation-history.provider.js.map +0 -1
  63. package/dist/conversation/conversation-config.d.ts +0 -9
  64. package/dist/conversation/conversation-config.js +0 -25
  65. package/dist/conversation/conversation-config.js.map +0 -1
  66. package/dist/conversation/conversation-history.interface.d.ts +0 -25
  67. package/dist/conversation/conversation-history.interface.js +0 -3
  68. package/dist/conversation/conversation-history.interface.js.map +0 -1
  69. package/dist/conversation/conversation-provider.factory.d.ts +0 -10
  70. package/dist/conversation/conversation-provider.factory.js +0 -50
  71. package/dist/conversation/conversation-provider.factory.js.map +0 -1
  72. package/dist/conversation/conversation-storage.service.d.ts +0 -16
  73. package/dist/conversation/conversation-storage.service.js +0 -220
  74. package/dist/conversation/conversation-storage.service.js.map +0 -1
  75. package/dist/conversation/index.d.ts +0 -7
  76. package/dist/conversation/index.js +0 -24
  77. package/dist/conversation/index.js.map +0 -1
  78. package/dist/conversation/slack-conversation-history.provider.d.ts +0 -28
  79. package/dist/conversation/slack-conversation-history.provider.js +0 -278
  80. package/dist/conversation/slack-conversation-history.provider.js.map +0 -1
  81. package/dist/crewx.tool.d.ts +0 -332
  82. package/dist/crewx.tool.js +0 -1463
  83. package/dist/crewx.tool.js.map +0 -1
  84. package/dist/guards/bearer-auth.guard.d.ts +0 -7
  85. package/dist/guards/bearer-auth.guard.js +0 -44
  86. package/dist/guards/bearer-auth.guard.js.map +0 -1
  87. package/dist/health.controller.d.ts +0 -6
  88. package/dist/health.controller.js +0 -32
  89. package/dist/health.controller.js.map +0 -1
  90. package/dist/knowledge/DocumentManager.d.ts +0 -4
  91. package/dist/knowledge/DocumentManager.js +0 -119
  92. package/dist/knowledge/DocumentManager.js.map +0 -1
  93. package/dist/main.d.ts +0 -1
  94. package/dist/main.js +0 -268
  95. package/dist/main.js.map +0 -1
  96. package/dist/mcp.controller.d.ts +0 -8
  97. package/dist/mcp.controller.js +0 -62
  98. package/dist/mcp.controller.js.map +0 -1
  99. package/dist/project.service.d.ts +0 -44
  100. package/dist/project.service.js +0 -299
  101. package/dist/project.service.js.map +0 -1
  102. package/dist/providers/ai-provider.interface.d.ts +0 -50
  103. package/dist/providers/ai-provider.interface.js +0 -23
  104. package/dist/providers/ai-provider.interface.js.map +0 -1
  105. package/dist/providers/base-ai.provider.d.ts +0 -50
  106. package/dist/providers/base-ai.provider.js +0 -624
  107. package/dist/providers/base-ai.provider.js.map +0 -1
  108. package/dist/providers/claude.provider.d.ts +0 -25
  109. package/dist/providers/claude.provider.js +0 -362
  110. package/dist/providers/claude.provider.js.map +0 -1
  111. package/dist/providers/codex.provider.d.ts +0 -17
  112. package/dist/providers/codex.provider.js +0 -99
  113. package/dist/providers/codex.provider.js.map +0 -1
  114. package/dist/providers/copilot.provider.d.ts +0 -25
  115. package/dist/providers/copilot.provider.js +0 -266
  116. package/dist/providers/copilot.provider.js.map +0 -1
  117. package/dist/providers/dynamic-provider.factory.d.ts +0 -55
  118. package/dist/providers/dynamic-provider.factory.js +0 -587
  119. package/dist/providers/dynamic-provider.factory.js.map +0 -1
  120. package/dist/providers/gemini.provider.d.ts +0 -22
  121. package/dist/providers/gemini.provider.js +0 -147
  122. package/dist/providers/gemini.provider.js.map +0 -1
  123. package/dist/services/agent-loader.service.d.ts +0 -29
  124. package/dist/services/agent-loader.service.js +0 -370
  125. package/dist/services/agent-loader.service.js.map +0 -1
  126. package/dist/services/auth.service.d.ts +0 -9
  127. package/dist/services/auth.service.js +0 -47
  128. package/dist/services/auth.service.js.map +0 -1
  129. package/dist/services/config-validator.service.d.ts +0 -28
  130. package/dist/services/config-validator.service.js +0 -467
  131. package/dist/services/config-validator.service.js.map +0 -1
  132. package/dist/services/config.service.d.ts +0 -45
  133. package/dist/services/config.service.js +0 -180
  134. package/dist/services/config.service.js.map +0 -1
  135. package/dist/services/context-enhancement.service.d.ts +0 -13
  136. package/dist/services/context-enhancement.service.js +0 -169
  137. package/dist/services/context-enhancement.service.js.map +0 -1
  138. package/dist/services/document-loader.service.d.ts +0 -16
  139. package/dist/services/document-loader.service.js +0 -137
  140. package/dist/services/document-loader.service.js.map +0 -1
  141. package/dist/services/help.service.d.ts +0 -5
  142. package/dist/services/help.service.js +0 -117
  143. package/dist/services/help.service.js.map +0 -1
  144. package/dist/services/intelligent-compression.service.d.ts +0 -20
  145. package/dist/services/intelligent-compression.service.js +0 -179
  146. package/dist/services/intelligent-compression.service.js.map +0 -1
  147. package/dist/services/mcp-client.service.d.ts +0 -26
  148. package/dist/services/mcp-client.service.js +0 -81
  149. package/dist/services/mcp-client.service.js.map +0 -1
  150. package/dist/services/parallel-processing.service.d.ts +0 -108
  151. package/dist/services/parallel-processing.service.js +0 -268
  152. package/dist/services/parallel-processing.service.js.map +0 -1
  153. package/dist/services/remote-agent.service.d.ts +0 -49
  154. package/dist/services/remote-agent.service.js +0 -215
  155. package/dist/services/remote-agent.service.js.map +0 -1
  156. package/dist/services/result-formatter.service.d.ts +0 -27
  157. package/dist/services/result-formatter.service.js +0 -126
  158. package/dist/services/result-formatter.service.js.map +0 -1
  159. package/dist/services/task-management.service.d.ts +0 -63
  160. package/dist/services/task-management.service.js +0 -272
  161. package/dist/services/task-management.service.js.map +0 -1
  162. package/dist/services/template.service.d.ts +0 -36
  163. package/dist/services/template.service.js +0 -195
  164. package/dist/services/template.service.js.map +0 -1
  165. package/dist/services/tool-call.service.d.ts +0 -53
  166. package/dist/services/tool-call.service.js +0 -1061
  167. package/dist/services/tool-call.service.js.map +0 -1
  168. package/dist/slack/formatters/message.formatter.d.ts +0 -25
  169. package/dist/slack/formatters/message.formatter.js +0 -246
  170. package/dist/slack/formatters/message.formatter.js.map +0 -1
  171. package/dist/slack/slack-bot.d.ts +0 -24
  172. package/dist/slack/slack-bot.js +0 -467
  173. package/dist/slack/slack-bot.js.map +0 -1
  174. package/dist/stderr.logger.d.ts +0 -8
  175. package/dist/stderr.logger.js +0 -26
  176. package/dist/stderr.logger.js.map +0 -1
  177. package/dist/tsconfig.tsbuildinfo +0 -1
  178. package/dist/utils/config-utils.d.ts +0 -15
  179. package/dist/utils/config-utils.js +0 -69
  180. package/dist/utils/config-utils.js.map +0 -1
  181. package/dist/utils/error-utils.d.ts +0 -3
  182. package/dist/utils/error-utils.js +0 -27
  183. package/dist/utils/error-utils.js.map +0 -1
  184. package/dist/utils/math-utils.d.ts +0 -3
  185. package/dist/utils/math-utils.js +0 -10
  186. package/dist/utils/math-utils.js.map +0 -1
  187. package/dist/utils/mcp-installer.d.ts +0 -20
  188. package/dist/utils/mcp-installer.js +0 -199
  189. package/dist/utils/mcp-installer.js.map +0 -1
  190. package/dist/utils/mention-parser.d.ts +0 -18
  191. package/dist/utils/mention-parser.js +0 -136
  192. package/dist/utils/mention-parser.js.map +0 -1
  193. package/dist/utils/simple-security.d.ts +0 -3
  194. package/dist/utils/simple-security.js +0 -20
  195. package/dist/utils/simple-security.js.map +0 -1
  196. package/dist/utils/stdin-utils.d.ts +0 -27
  197. package/dist/utils/stdin-utils.js +0 -130
  198. package/dist/utils/stdin-utils.js.map +0 -1
  199. package/dist/utils/string-utils.d.ts +0 -1
  200. package/dist/utils/string-utils.js +0 -10
  201. package/dist/utils/string-utils.js.map +0 -1
  202. package/dist/utils/template-processor.d.ts +0 -32
  203. package/dist/utils/template-processor.js +0 -202
  204. package/dist/utils/template-processor.js.map +0 -1
  205. package/dist/version.d.ts +0 -1
  206. package/dist/version.js +0 -17
  207. package/dist/version.js.map +0 -1
  208. package/docs/CLA.md +0 -88
  209. package/docs/agent-configuration.md +0 -364
  210. package/docs/agent-registry-strategy.md +0 -348
  211. package/docs/branding-decision-crewx.md +0 -395
  212. package/docs/claude-code-docker-guide.md +0 -264
  213. package/docs/cli-guide.md +0 -439
  214. package/docs/development.md +0 -595
  215. package/docs/diagram1.svg +0 -1
  216. package/docs/guides/agent-best-practices.md +0 -97
  217. package/docs/guides/bug-management.md +0 -600
  218. package/docs/guides/git-bug-reference.md +0 -366
  219. package/docs/mcp-integration.md +0 -187
  220. package/docs/process/development-workflow.md +0 -84
  221. package/docs/remote-agents.md +0 -555
  222. package/docs/roadmap.md +0 -528
  223. package/docs/rules/branch-protection.md +0 -40
  224. package/docs/standards/rc-versioning.md +0 -60
  225. package/docs/standards/report-structure.md +0 -67
  226. package/docs/template-variables.md +0 -382
  227. package/docs/templates.md +0 -517
  228. package/docs/tools.md +0 -583
  229. package/docs/troubleshooting.md +0 -611
  230. package/templates/agents/default.yaml +0 -938
  231. package/templates/agents/minimal.yaml +0 -25
  232. package/templates/documents/crewcode-manual.md +0 -292
  233. package/templates/versions.json +0 -19
@@ -1,600 +0,0 @@
1
- # CrewX 버그 관리 가이드
2
-
3
- ## 개요
4
-
5
- CrewX 프로젝트는 **하이브리드 버그 관리 시스템**을 사용합니다:
6
- - **주 시스템: bug.md** - 상세 문서화, AI 에이전트 협업, QA 리포트
7
- - **보조 시스템: git-bug** - Git 네이티브 추적, 브랜치 독립적 동기화
8
-
9
- ## 버그 관리 시스템 구조
10
-
11
- ### 1. bug.md (Primary)
12
-
13
- **위치:** `/bug.md`
14
-
15
- **사용 목적:**
16
- - ✅ 상세한 버그 분석 및 재현 시나리오 작성
17
- - ✅ AI 에이전트가 직접 읽고 수정 가능
18
- - ✅ QA 리포트 및 테스트 결과 문서화
19
- - ✅ GitHub에서 직접 확인 가능 (가시성)
20
- - ✅ 마크다운 형식으로 풍부한 표현
21
-
22
- **구조:**
23
- ```markdown
24
- ## [버그 ID] 버그 제목
25
-
26
- **ID:** bug-XXXXXXXX (또는 git-bug hash)
27
- **우선순위:** 긴급/높음/중간/낮음
28
- **버전:** X.X.X
29
- **상태:** created/analyzed/in-progress/resolved/closed/rejected
30
- **등록일:** YYYY-MM-DD
31
- **종료일:** YYYY-MM-DD (해당 시)
32
-
33
- ### 현상
34
- [버그 발생 현상 상세 설명]
35
-
36
- ### 재현 방법
37
- 1. [단계별 재현 방법]
38
- 2. ...
39
-
40
- ### 원인 분석
41
- [근본 원인 분석]
42
-
43
- ### 해결 방법
44
- [수정 방법 및 코드 변경 사항]
45
-
46
- ### 테스트
47
- [테스트 시나리오 및 검증 방법]
48
-
49
- ### 영향 범위
50
- [영향받는 기능 및 사용자]
51
- ```
52
-
53
- ### 2. git-bug (Secondary)
54
-
55
- **저장 위치:** `.git/refs/bugs/`
56
-
57
- **사용 목적:**
58
- - ✅ Git 네이티브 추적 (커밋 연동)
59
- - ✅ 브랜치 독립적 (모든 브랜치에서 동일한 버그 목록)
60
- - ✅ push/pull로 팀 자동 동기화
61
- - ✅ 해시 기반 ID (충돌 없음)
62
- - ✅ CI/CD 파이프라인 통합
63
-
64
- **주요 명령어:**
65
- ```bash
66
- # 버그 목록
67
- git bug bug
68
-
69
- # 버그 상세 보기
70
- git bug bug show <hash>
71
-
72
- # 버그 상태 변경
73
- git bug bug status close <hash>
74
- git bug bug status open <hash>
75
-
76
- # 라벨 관리
77
- git bug bug label new <hash> priority:high
78
- git bug bug label new <hash> release:0.3.11
79
-
80
- # 코멘트 추가
81
- git bug bug comment new <hash> "수정 완료"
82
-
83
- # 원격 동기화
84
- git bug push origin
85
- git bug pull origin
86
- ```
87
-
88
- ## 워크플로우
89
-
90
- ### 버그 발견 시
91
-
92
- #### 1단계: bug.md에 등록 (Primary)
93
-
94
- ```bash
95
- # bug.md 파일 직접 편집
96
- vim bug.md
97
-
98
- # 또는 CrewX CLI 사용 (추후 구현 예정)
99
- crewx bug create "버그 제목" --priority=high
100
- ```
101
-
102
- #### 2단계: git-bug에 동기화
103
-
104
- ```bash
105
- # 수동 동기화
106
- git bug bug new --title "[bug-00000021] 버그 제목"
107
- # 생성된 해시 ID를 bug.md에 기록
108
-
109
- # 또는 자동 동기화 스크립트 사용
110
- ./scripts/sync-bugs.sh export
111
- ```
112
-
113
- #### 3단계: Git 커밋
114
-
115
- ```bash
116
- git add bug.md
117
- git commit -m "bug: register bug-00000021 - 버그 제목
118
-
119
- Ref: f7dd943" # git-bug 해시 ID 참조
120
- ```
121
-
122
- ### 버그 분석 시
123
-
124
- **AI 에이전트 활용:**
125
- ```bash
126
- # 자동 분석 스크립트
127
- ./scripts/bug-analyzer.sh
128
-
129
- # 또는 직접 에이전트 실행
130
- crewx query "@crewx_dev bug-00000021 분석해줘"
131
- crewx query "@claude bug-00000021 근본 원인 찾아줘"
132
- ```
133
-
134
- **bug.md 업데이트:**
135
- - 상태를 `analyzed`로 변경
136
- - 원인 분석 섹션 작성
137
- - 해결 방법 제안
138
-
139
- **git-bug 업데이트:**
140
- ```bash
141
- git bug bug comment new <hash> "원인: XXX로 분석됨"
142
- git bug bug label new <hash> analyzed
143
- ```
144
-
145
- ### 버그 수정 시
146
-
147
- #### 1단계: 브랜치 생성
148
-
149
- ```bash
150
- # git-bug 해시 사용 (권장)
151
- git checkout -b bugfix/f7dd943-oauth-session
152
-
153
- # 또는 기존 방식
154
- git checkout -b bugfix/bug-00000021
155
- ```
156
-
157
- #### 2단계: 코드 수정
158
-
159
- ```bash
160
- # 코드 수정 후 커밋
161
- git commit -m "fix: resolve oauth session timeout issue
162
-
163
- - OAuth 세션 만료 시간을 30분에서 1시간으로 연장
164
- - 세션 갱신 로직 개선
165
-
166
- Fixes: f7dd943
167
- Closes: bug-00000021"
168
- ```
169
-
170
- #### 3단계: bug.md 업데이트
171
-
172
- ```markdown
173
- **상태:** resolved
174
- **종료일:** 2025-10-05
175
-
176
- ### 해결 방법
177
- [실제 수정 내용 작성]
178
- ```
179
-
180
- #### 4단계: git-bug 종료
181
-
182
- ```bash
183
- git bug bug status close f7dd943
184
- git bug bug label new f7dd943 release:0.3.11
185
- ```
186
-
187
- ### QA 테스트 시
188
-
189
- #### 1단계: 테스트 수행
190
-
191
- ```bash
192
- # QA 에이전트 실행
193
- crewx x "@crewx_tester bug-00000021 테스트해줘"
194
- ```
195
-
196
- #### 2단계: 리포트 작성
197
-
198
- **bug.md에 테스트 결과 추가:**
199
- ```markdown
200
- ### 테스트
201
-
202
- **테스트일:** 2025-10-05
203
- **테스터:** @crewx_tester
204
-
205
- **시나리오 1:** OAuth 로그인 후 30분 대기
206
- - ✅ 세션 유지됨
207
-
208
- **시나리오 2:** 1시간 후 API 호출
209
- - ✅ 자동 갱신 작동
210
-
211
- **결과:** PASS
212
- ```
213
-
214
- **git-bug에 결과 기록:**
215
- ```bash
216
- git bug bug comment new f7dd943 "QA 테스트 통과 (5/5 시나리오)"
217
- git bug bug label new f7dd943 qa-passed
218
- ```
219
-
220
- #### 3단계: 상태 변경
221
-
222
- ```markdown
223
- # bug.md
224
- **상태:** closed
225
- ```
226
-
227
- ```bash
228
- # git-bug
229
- git bug bug status close f7dd943
230
- ```
231
-
232
- ## 동기화 전략
233
-
234
- ### bug.md → git-bug (Export)
235
-
236
- ```bash
237
- # 자동 동기화 스크립트 사용
238
- ./scripts/sync-bugs.sh export
239
-
240
- # 수동 동기화
241
- # 1. bug.md에서 created 상태 버그 추출
242
- # 2. git bug bug new로 생성
243
- # 3. 생성된 해시를 bug.md에 기록
244
- ```
245
-
246
- ### git-bug → bug.md (Import)
247
-
248
- ```bash
249
- # 자동 동기화 스크립트 사용
250
- ./scripts/sync-bugs.sh import
251
-
252
- # 주간 리포트 생성
253
- ./scripts/sync-bugs.sh report > docs/weekly-bugs.md
254
- ```
255
-
256
- ### 양방향 동기화 (Sync)
257
-
258
- ```bash
259
- # 전체 동기화
260
- ./scripts/sync-bugs.sh sync
261
-
262
- # CI/CD에서 자동 실행 설정
263
- # .github/workflows/sync-bugs.yml
264
- ```
265
-
266
- ### 충돌 처리 (Conflict Resolution)
267
-
268
- 동기화 중 bug.md와 git-bug 간에 데이터가 다를 경우 충돌이 발생할 수 있습니다.
269
-
270
- #### 충돌 감지 항목
271
-
272
- - **상태(status)** 불일치: bug.md는 `resolved`, git-bug는 `open`
273
- - **우선순위(priority)** 불일치: bug.md는 `긴급`, git-bug는 `높음`
274
- - **제목(title)** 불일치: 버그 제목이 서로 다름
275
-
276
- #### 충돌 해결 전략
277
-
278
- 스크립트는 3가지 전략을 지원합니다:
279
-
280
- **1. latest (기본값, 추천)**
281
- ```bash
282
- ./scripts/sync-bugs.sh sync
283
- # 또는 명시적 설정
284
- CONFLICT_STRATEGY=latest ./scripts/sync-bugs.sh sync
285
- ```
286
- - 최신 수정 시각을 비교하여 우선순위 결정
287
- - bug.md의 "종료일" 또는 생성일과 git-bug의 마지막 수정 시각 비교
288
- - 더 최근에 수정된 쪽의 데이터를 우선
289
-
290
- **2. bug-md-first (bug.md 우선)**
291
- ```bash
292
- CONFLICT_STRATEGY=bug-md-first ./scripts/sync-bugs.sh sync
293
- ```
294
- - bug.md를 Primary 소스로 간주
295
- - 충돌 시 항상 bug.md의 데이터로 git-bug 덮어쓰기
296
- - bug.md가 항상 정확한 경우 사용
297
-
298
- **3. manual (수동 확인)**
299
- ```bash
300
- CONFLICT_STRATEGY=manual ./scripts/sync-bugs.sh sync
301
- ```
302
- - 충돌 발견 시 사용자에게 알림
303
- - `.crewx/conflicts.log`에 상세 기록
304
- - 계속 진행 여부를 사용자에게 물어봄
305
-
306
- #### 충돌 로그 확인
307
-
308
- ```bash
309
- # 충돌 이력 확인
310
- cat .crewx/conflicts.log
311
-
312
- # 충돌 로그 예시
313
- [2025-10-05 19:30:00] CONFLICT: bug-00000001: Conflicts detected in [status,priority]
314
- [2025-10-05 19:30:00] CONFLICT: - bug.md: status=resolved, priority=긴급, title=OAuth 세션 타임아웃, updated=2025-10-05
315
- [2025-10-05 19:30:00] CONFLICT: - git-bug: status=open, priority=높음, updated=2025-10-04
316
- [2025-10-05 19:30:00] CONFLICT: - Resolution: bug.md (latest: 2025-10-05)
317
- ```
318
-
319
- #### 충돌 해결 워크플로우
320
-
321
- ```bash
322
- # 1. 동기화 실행 (latest 전략)
323
- ./scripts/sync-bugs.sh sync
324
-
325
- # 2. 충돌 로그 확인
326
- cat .crewx/conflicts.log
327
-
328
- # 3. 필요 시 수동 확인 모드로 재실행
329
- CONFLICT_STRATEGY=manual ./scripts/sync-bugs.sh sync
330
-
331
- # 4. 특정 버그만 수동 수정
332
- vim bug.md # 또는 git bug bug edit <hash>
333
-
334
- # 5. 재동기화
335
- ./scripts/sync-bugs.sh sync
336
- ```
337
-
338
- #### 충돌 예방 베스트 프랙티스
339
-
340
- 1. **단일 소스 원칙**: bug.md를 주 소스로 사용
341
- - AI 에이전트는 bug.md만 수정
342
- - git-bug는 추적 및 자동화용
343
-
344
- 2. **정기 동기화**: 충돌 누적 방지
345
- ```bash
346
- # cron 설정 (매일 자정)
347
- 0 0 * * * cd /path/to/crewx && ./scripts/sync-bugs.sh sync
348
- ```
349
-
350
- 3. **동기화 전 확인**: 변경 전 현재 상태 확인
351
- ```bash
352
- # bug.md 상태
353
- grep "^상태:" bug.md | sort | uniq -c
354
-
355
- # git-bug 상태
356
- git bug bug --format json | jq -r '.[].status' | sort | uniq -c
357
- ```
358
-
359
- 4. **롤백 준비**: 동기화 전 백업
360
- ```bash
361
- cp bug.md bug.md.backup
362
- git bug bug --format json > bugs-backup.json
363
- ```
364
-
365
- ## 릴리즈 프로세스
366
-
367
- ### 릴리즈 준비
368
-
369
- ```bash
370
- # 1. 해당 릴리즈 버그 확인
371
- git bug bug --label release:0.3.11 --status open
372
-
373
- # 2. Critical 버그 체크
374
- CRITICAL=$(git bug bug --label critical --status open | wc -l)
375
- if [ "$CRITICAL" -gt 0 ]; then
376
- echo "❌ Critical bugs must be resolved before release"
377
- exit 1
378
- fi
379
-
380
- # 3. 릴리즈 노트 생성
381
- git bug bug --label release:0.3.11 --status closed > release-notes-bugs.txt
382
- ```
383
-
384
- ### 릴리즈 노트 작성
385
-
386
- **bug.md 기반:**
387
- ```bash
388
- # bug.md에서 resolved/closed 버그 추출
389
- awk '/^##.*bug-/ {print}' bug.md | grep "0.3.11"
390
- ```
391
-
392
- **git-bug 기반:**
393
- ```bash
394
- git bug bug --label release:0.3.11 --status closed --format json | \
395
- jq -r '.[] | "- [\(.id[:7])] \(.title)"'
396
- ```
397
-
398
- ## 도구 및 자동화
399
-
400
- ### scripts/sync-bugs.sh
401
-
402
- 버그 데이터 양방향 동기화 스크립트
403
-
404
- ```bash
405
- ./scripts/sync-bugs.sh export # bug.md → git-bug
406
- ./scripts/sync-bugs.sh import # git-bug → bug.md
407
- ./scripts/sync-bugs.sh sync # 양방향 동기화
408
- ./scripts/sync-bugs.sh report # 주간 리포트
409
- ```
410
-
411
- ### scripts/bug-analyzer.sh
412
-
413
- created 상태 버그 자동 분석
414
-
415
- ```bash
416
- # 백그라운드 실행
417
- ./scripts/bug-analyzer.sh &
418
-
419
- # 설정
420
- ANALYZER_AGENT="crewx_dev" # 분석 에이전트
421
- CHECK_INTERVAL=60 # 체크 간격 (초)
422
- ```
423
-
424
- ### CI/CD 통합
425
-
426
- ```yaml
427
- # .github/workflows/bugs.yml
428
- name: Bug Sync
429
- on:
430
- push:
431
- branches: [develop, main]
432
- paths: ['bug.md']
433
-
434
- jobs:
435
- sync:
436
- runs-on: ubuntu-latest
437
- steps:
438
- - uses: actions/checkout@v3
439
- with:
440
- fetch-depth: 0
441
-
442
- - name: Install git-bug
443
- run: |
444
- wget https://github.com/MichaelMure/git-bug/releases/download/v0.8.0/git-bug_linux_amd64
445
- sudo mv git-bug_linux_amd64 /usr/local/bin/git-bug
446
- chmod +x /usr/local/bin/git-bug
447
-
448
- - name: Sync bugs
449
- run: ./scripts/sync-bugs.sh sync
450
-
451
- - name: Push changes
452
- run: |
453
- git config user.name "GitHub Actions"
454
- git config user.email "actions@github.com"
455
- git add bug.md
456
- git commit -m "chore: sync bug.md with git-bug" || true
457
- git bug push origin
458
- ```
459
-
460
- ## 베스트 프랙티스
461
-
462
- ### 1. bug.md를 소스로 사용
463
-
464
- - ✅ 새 버그는 항상 bug.md에 먼저 작성
465
- - ✅ AI 에이전트가 bug.md를 직접 수정
466
- - ✅ 상세한 분석과 재현 시나리오 포함
467
-
468
- ### 2. git-bug는 추적용
469
-
470
- - ✅ bug.md 작성 후 git-bug에 동기화
471
- - ✅ 브랜치 간 버그 상태 공유
472
- - ✅ 커밋 메시지에 `Fixes: <hash>` 참조
473
-
474
- ### 3. ID 관리
475
-
476
- - bug.md: `bug-XXXXXXXX` (시퀀셜 ID, 가독성)
477
- - git-bug: `f7dd943` (해시 ID, 충돌 없음)
478
- - 둘 다 bug.md에 기록: `**ID:** bug-00000021 (git-bug: f7dd943)`
479
-
480
- ### 4. 라벨 활용
481
-
482
- ```bash
483
- # 우선순위
484
- git bug bug label new <id> priority:critical
485
- git bug bug label new <id> priority:high
486
- git bug bug label new <id> priority:medium
487
- git bug bug label new <id> priority:low
488
-
489
- # 릴리즈
490
- git bug bug label new <id> release:0.3.11
491
-
492
- # 상태
493
- git bug bug label new <id> analyzed
494
- git bug bug label new <id> qa-passed
495
- git bug bug label new <id> hotfix
496
- ```
497
-
498
- ### 5. 커밋 메시지 규칙
499
-
500
- ```bash
501
- # 버그 수정 커밋
502
- git commit -m "fix: resolve oauth timeout
503
-
504
- Fixes: f7dd943
505
- Closes: bug-00000021"
506
-
507
- # 버그 등록 커밋
508
- git commit -m "bug: register memory leak issue
509
-
510
- Ref: 68339db"
511
- ```
512
-
513
- ## 문제 해결
514
-
515
- ### bug.md와 git-bug 불일치
516
-
517
- ```bash
518
- # 동기화 스크립트로 해결
519
- ./scripts/sync-bugs.sh sync
520
-
521
- # 충돌 로그 확인
522
- cat .crewx/conflicts.log
523
-
524
- # 수동 확인
525
- diff <(awk '/^## \[bug-/ {print $2}' bug.md | tr -d '[]') \
526
- <(git bug bug --format json | jq -r '.[].title' | grep -o 'bug-[0-9]*')
527
- ```
528
-
529
- ### 충돌 발생 시 대응 절차
530
-
531
- **1. 충돌 로그 분석**
532
- ```bash
533
- # 최근 충돌 확인
534
- tail -20 .crewx/conflicts.log
535
-
536
- # 특정 버그 충돌 이력
537
- grep "bug-00000001" .crewx/conflicts.log
538
- ```
539
-
540
- **2. 데이터 확인**
541
- ```bash
542
- # bug.md 데이터
543
- grep -A 10 "^ID: bug-00000001" bug.md
544
-
545
- # git-bug 데이터
546
- git bug bug show <hash>
547
- ```
548
-
549
- **3. 올바른 데이터 결정**
550
- - 최신 수정 확인: 어느 쪽이 더 최근에 업데이트되었는가?
551
- - 신뢰할 수 있는 소스: 어느 시스템의 데이터가 더 정확한가?
552
- - 변경 이력: Git 커밋 히스토리 확인
553
-
554
- **4. 수동 수정**
555
- ```bash
556
- # bug.md가 정확한 경우
557
- CONFLICT_STRATEGY=bug-md-first ./scripts/sync-bugs.sh export
558
-
559
- # git-bug가 정확한 경우 (bug.md 수동 수정 후)
560
- vim bug.md
561
- ./scripts/sync-bugs.sh sync
562
- ```
563
-
564
- ### git-bug 데이터 백업
565
-
566
- ```bash
567
- # JSON 백업
568
- git bug bug --format json > bugs-backup.json
569
-
570
- # 복원 스크립트
571
- ./scripts/restore-bugs.sh bugs-backup.json
572
- ```
573
-
574
- ### 팀원 git-bug 설치
575
-
576
- ```bash
577
- # macOS
578
- brew install git-bug
579
-
580
- # Linux
581
- wget https://github.com/MichaelMure/git-bug/releases/download/v0.8.0/git-bug_linux_amd64
582
- sudo mv git-bug_linux_amd64 /usr/local/bin/git-bug
583
- chmod +x /usr/local/bin/git-bug
584
-
585
- # 초기 설정
586
- git bug user new
587
- git bug user adopt <user-id>
588
- ```
589
-
590
- ## 참고 자료
591
-
592
- - [git-bug 공식 문서](https://github.com/MichaelMure/git-bug)
593
- - [bug.md 템플릿](../../bug.md)
594
- - [버그 분석 스크립트](../../scripts/bug-analyzer.sh)
595
- - [동기화 스크립트](../../scripts/sync-bugs.sh)
596
-
597
- ## 업데이트 이력
598
-
599
- - 2025-10-05: 충돌 처리 섹션 추가 (latest/bug-md-first/manual 전략)
600
- - 2025-10-05: 하이브리드 시스템 가이드 초안 작성