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.
- package/bin/crewx.js +6 -0
- package/package.json +9 -107
- package/LICENSE +0 -201
- package/README.md +0 -234
- package/crewx.yaml +0 -2069
- package/dist/agent.types.d.ts +0 -117
- package/dist/agent.types.js +0 -16
- package/dist/agent.types.js.map +0 -1
- package/dist/ai-provider.service.d.ts +0 -36
- package/dist/ai-provider.service.js +0 -191
- package/dist/ai-provider.service.js.map +0 -1
- package/dist/ai.service.d.ts +0 -57
- package/dist/ai.service.js +0 -629
- package/dist/ai.service.js.map +0 -1
- package/dist/app.module.d.ts +0 -5
- package/dist/app.module.js +0 -103
- package/dist/app.module.js.map +0 -1
- package/dist/cli/agent.handler.d.ts +0 -2
- package/dist/cli/agent.handler.js +0 -140
- package/dist/cli/agent.handler.js.map +0 -1
- package/dist/cli/chat.handler.d.ts +0 -19
- package/dist/cli/chat.handler.js +0 -431
- package/dist/cli/chat.handler.js.map +0 -1
- package/dist/cli/cli.handler.d.ts +0 -4
- package/dist/cli/cli.handler.js +0 -97
- package/dist/cli/cli.handler.js.map +0 -1
- package/dist/cli/doctor.handler.d.ts +0 -36
- package/dist/cli/doctor.handler.js +0 -382
- package/dist/cli/doctor.handler.js.map +0 -1
- package/dist/cli/execute.handler.d.ts +0 -2
- package/dist/cli/execute.handler.js +0 -319
- package/dist/cli/execute.handler.js.map +0 -1
- package/dist/cli/help.handler.d.ts +0 -2
- package/dist/cli/help.handler.js +0 -10
- package/dist/cli/help.handler.js.map +0 -1
- package/dist/cli/init.handler.d.ts +0 -26
- package/dist/cli/init.handler.js +0 -450
- package/dist/cli/init.handler.js.map +0 -1
- package/dist/cli/mcp.handler.d.ts +0 -3
- package/dist/cli/mcp.handler.js +0 -121
- package/dist/cli/mcp.handler.js.map +0 -1
- package/dist/cli/query.handler.d.ts +0 -2
- package/dist/cli/query.handler.js +0 -380
- package/dist/cli/query.handler.js.map +0 -1
- package/dist/cli/templates.handler.d.ts +0 -2
- package/dist/cli/templates.handler.js +0 -100
- package/dist/cli/templates.handler.js.map +0 -1
- package/dist/cli-options.d.ts +0 -29
- package/dist/cli-options.js +0 -234
- package/dist/cli-options.js.map +0 -1
- package/dist/config/timeout.config.d.ts +0 -14
- package/dist/config/timeout.config.js +0 -34
- package/dist/config/timeout.config.js.map +0 -1
- package/dist/constants.d.ts +0 -4
- package/dist/constants.js +0 -8
- package/dist/constants.js.map +0 -1
- package/dist/conversation/base-conversation-history.provider.d.ts +0 -12
- package/dist/conversation/base-conversation-history.provider.js +0 -45
- package/dist/conversation/base-conversation-history.provider.js.map +0 -1
- package/dist/conversation/cli-conversation-history.provider.d.ts +0 -16
- package/dist/conversation/cli-conversation-history.provider.js +0 -111
- package/dist/conversation/cli-conversation-history.provider.js.map +0 -1
- package/dist/conversation/conversation-config.d.ts +0 -9
- package/dist/conversation/conversation-config.js +0 -25
- package/dist/conversation/conversation-config.js.map +0 -1
- package/dist/conversation/conversation-history.interface.d.ts +0 -25
- package/dist/conversation/conversation-history.interface.js +0 -3
- package/dist/conversation/conversation-history.interface.js.map +0 -1
- package/dist/conversation/conversation-provider.factory.d.ts +0 -10
- package/dist/conversation/conversation-provider.factory.js +0 -50
- package/dist/conversation/conversation-provider.factory.js.map +0 -1
- package/dist/conversation/conversation-storage.service.d.ts +0 -16
- package/dist/conversation/conversation-storage.service.js +0 -220
- package/dist/conversation/conversation-storage.service.js.map +0 -1
- package/dist/conversation/index.d.ts +0 -7
- package/dist/conversation/index.js +0 -24
- package/dist/conversation/index.js.map +0 -1
- package/dist/conversation/slack-conversation-history.provider.d.ts +0 -28
- package/dist/conversation/slack-conversation-history.provider.js +0 -278
- package/dist/conversation/slack-conversation-history.provider.js.map +0 -1
- package/dist/crewx.tool.d.ts +0 -332
- package/dist/crewx.tool.js +0 -1463
- package/dist/crewx.tool.js.map +0 -1
- package/dist/guards/bearer-auth.guard.d.ts +0 -7
- package/dist/guards/bearer-auth.guard.js +0 -44
- package/dist/guards/bearer-auth.guard.js.map +0 -1
- package/dist/health.controller.d.ts +0 -6
- package/dist/health.controller.js +0 -32
- package/dist/health.controller.js.map +0 -1
- package/dist/knowledge/DocumentManager.d.ts +0 -4
- package/dist/knowledge/DocumentManager.js +0 -119
- package/dist/knowledge/DocumentManager.js.map +0 -1
- package/dist/main.d.ts +0 -1
- package/dist/main.js +0 -268
- package/dist/main.js.map +0 -1
- package/dist/mcp.controller.d.ts +0 -8
- package/dist/mcp.controller.js +0 -62
- package/dist/mcp.controller.js.map +0 -1
- package/dist/project.service.d.ts +0 -44
- package/dist/project.service.js +0 -299
- package/dist/project.service.js.map +0 -1
- package/dist/providers/ai-provider.interface.d.ts +0 -50
- package/dist/providers/ai-provider.interface.js +0 -23
- package/dist/providers/ai-provider.interface.js.map +0 -1
- package/dist/providers/base-ai.provider.d.ts +0 -50
- package/dist/providers/base-ai.provider.js +0 -624
- package/dist/providers/base-ai.provider.js.map +0 -1
- package/dist/providers/claude.provider.d.ts +0 -25
- package/dist/providers/claude.provider.js +0 -362
- package/dist/providers/claude.provider.js.map +0 -1
- package/dist/providers/codex.provider.d.ts +0 -17
- package/dist/providers/codex.provider.js +0 -99
- package/dist/providers/codex.provider.js.map +0 -1
- package/dist/providers/copilot.provider.d.ts +0 -25
- package/dist/providers/copilot.provider.js +0 -266
- package/dist/providers/copilot.provider.js.map +0 -1
- package/dist/providers/dynamic-provider.factory.d.ts +0 -55
- package/dist/providers/dynamic-provider.factory.js +0 -587
- package/dist/providers/dynamic-provider.factory.js.map +0 -1
- package/dist/providers/gemini.provider.d.ts +0 -22
- package/dist/providers/gemini.provider.js +0 -147
- package/dist/providers/gemini.provider.js.map +0 -1
- package/dist/services/agent-loader.service.d.ts +0 -29
- package/dist/services/agent-loader.service.js +0 -370
- package/dist/services/agent-loader.service.js.map +0 -1
- package/dist/services/auth.service.d.ts +0 -9
- package/dist/services/auth.service.js +0 -47
- package/dist/services/auth.service.js.map +0 -1
- package/dist/services/config-validator.service.d.ts +0 -28
- package/dist/services/config-validator.service.js +0 -467
- package/dist/services/config-validator.service.js.map +0 -1
- package/dist/services/config.service.d.ts +0 -45
- package/dist/services/config.service.js +0 -180
- package/dist/services/config.service.js.map +0 -1
- package/dist/services/context-enhancement.service.d.ts +0 -13
- package/dist/services/context-enhancement.service.js +0 -169
- package/dist/services/context-enhancement.service.js.map +0 -1
- package/dist/services/document-loader.service.d.ts +0 -16
- package/dist/services/document-loader.service.js +0 -137
- package/dist/services/document-loader.service.js.map +0 -1
- package/dist/services/help.service.d.ts +0 -5
- package/dist/services/help.service.js +0 -117
- package/dist/services/help.service.js.map +0 -1
- package/dist/services/intelligent-compression.service.d.ts +0 -20
- package/dist/services/intelligent-compression.service.js +0 -179
- package/dist/services/intelligent-compression.service.js.map +0 -1
- package/dist/services/mcp-client.service.d.ts +0 -26
- package/dist/services/mcp-client.service.js +0 -81
- package/dist/services/mcp-client.service.js.map +0 -1
- package/dist/services/parallel-processing.service.d.ts +0 -108
- package/dist/services/parallel-processing.service.js +0 -268
- package/dist/services/parallel-processing.service.js.map +0 -1
- package/dist/services/remote-agent.service.d.ts +0 -49
- package/dist/services/remote-agent.service.js +0 -215
- package/dist/services/remote-agent.service.js.map +0 -1
- package/dist/services/result-formatter.service.d.ts +0 -27
- package/dist/services/result-formatter.service.js +0 -126
- package/dist/services/result-formatter.service.js.map +0 -1
- package/dist/services/task-management.service.d.ts +0 -63
- package/dist/services/task-management.service.js +0 -272
- package/dist/services/task-management.service.js.map +0 -1
- package/dist/services/template.service.d.ts +0 -36
- package/dist/services/template.service.js +0 -195
- package/dist/services/template.service.js.map +0 -1
- package/dist/services/tool-call.service.d.ts +0 -53
- package/dist/services/tool-call.service.js +0 -1061
- package/dist/services/tool-call.service.js.map +0 -1
- package/dist/slack/formatters/message.formatter.d.ts +0 -25
- package/dist/slack/formatters/message.formatter.js +0 -246
- package/dist/slack/formatters/message.formatter.js.map +0 -1
- package/dist/slack/slack-bot.d.ts +0 -24
- package/dist/slack/slack-bot.js +0 -467
- package/dist/slack/slack-bot.js.map +0 -1
- package/dist/stderr.logger.d.ts +0 -8
- package/dist/stderr.logger.js +0 -26
- package/dist/stderr.logger.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/utils/config-utils.d.ts +0 -15
- package/dist/utils/config-utils.js +0 -69
- package/dist/utils/config-utils.js.map +0 -1
- package/dist/utils/error-utils.d.ts +0 -3
- package/dist/utils/error-utils.js +0 -27
- package/dist/utils/error-utils.js.map +0 -1
- package/dist/utils/math-utils.d.ts +0 -3
- package/dist/utils/math-utils.js +0 -10
- package/dist/utils/math-utils.js.map +0 -1
- package/dist/utils/mcp-installer.d.ts +0 -20
- package/dist/utils/mcp-installer.js +0 -199
- package/dist/utils/mcp-installer.js.map +0 -1
- package/dist/utils/mention-parser.d.ts +0 -18
- package/dist/utils/mention-parser.js +0 -136
- package/dist/utils/mention-parser.js.map +0 -1
- package/dist/utils/simple-security.d.ts +0 -3
- package/dist/utils/simple-security.js +0 -20
- package/dist/utils/simple-security.js.map +0 -1
- package/dist/utils/stdin-utils.d.ts +0 -27
- package/dist/utils/stdin-utils.js +0 -130
- package/dist/utils/stdin-utils.js.map +0 -1
- package/dist/utils/string-utils.d.ts +0 -1
- package/dist/utils/string-utils.js +0 -10
- package/dist/utils/string-utils.js.map +0 -1
- package/dist/utils/template-processor.d.ts +0 -32
- package/dist/utils/template-processor.js +0 -202
- package/dist/utils/template-processor.js.map +0 -1
- package/dist/version.d.ts +0 -1
- package/dist/version.js +0 -17
- package/dist/version.js.map +0 -1
- package/docs/CLA.md +0 -88
- package/docs/agent-configuration.md +0 -364
- package/docs/agent-registry-strategy.md +0 -348
- package/docs/branding-decision-crewx.md +0 -395
- package/docs/claude-code-docker-guide.md +0 -264
- package/docs/cli-guide.md +0 -439
- package/docs/development.md +0 -595
- package/docs/diagram1.svg +0 -1
- package/docs/guides/agent-best-practices.md +0 -97
- package/docs/guides/bug-management.md +0 -600
- package/docs/guides/git-bug-reference.md +0 -366
- package/docs/mcp-integration.md +0 -187
- package/docs/process/development-workflow.md +0 -84
- package/docs/remote-agents.md +0 -555
- package/docs/roadmap.md +0 -528
- package/docs/rules/branch-protection.md +0 -40
- package/docs/standards/rc-versioning.md +0 -60
- package/docs/standards/report-structure.md +0 -67
- package/docs/template-variables.md +0 -382
- package/docs/templates.md +0 -517
- package/docs/tools.md +0 -583
- package/docs/troubleshooting.md +0 -611
- package/templates/agents/default.yaml +0 -938
- package/templates/agents/minimal.yaml +0 -25
- package/templates/documents/crewcode-manual.md +0 -292
- 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: 하이브리드 시스템 가이드 초안 작성
|