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.
- package/LICENSE +197 -9
- package/README.md +120 -28
- package/crewx.yaml +1273 -0
- package/dist/agent.types.d.ts +92 -0
- package/dist/agent.types.js +16 -0
- package/dist/agent.types.js.map +1 -0
- package/dist/ai-provider.service.d.ts +25 -0
- package/dist/ai-provider.service.js +138 -0
- package/dist/ai-provider.service.js.map +1 -0
- package/dist/ai.service.d.ts +50 -0
- package/dist/ai.service.js +625 -0
- package/dist/ai.service.js.map +1 -0
- package/dist/app.module.d.ts +5 -0
- package/dist/app.module.js +88 -0
- package/dist/app.module.js.map +1 -0
- package/dist/cli/chat.handler.d.ts +19 -0
- package/dist/cli/chat.handler.js +429 -0
- package/dist/cli/chat.handler.js.map +1 -0
- package/dist/cli/cli.handler.d.ts +4 -0
- package/dist/cli/cli.handler.js +93 -0
- package/dist/cli/cli.handler.js.map +1 -0
- package/dist/cli/doctor.handler.d.ts +36 -0
- package/dist/cli/doctor.handler.js +382 -0
- package/dist/cli/doctor.handler.js.map +1 -0
- package/dist/cli/execute.handler.d.ts +2 -0
- package/dist/cli/execute.handler.js +269 -0
- package/dist/cli/execute.handler.js.map +1 -0
- package/dist/cli/help.handler.d.ts +2 -0
- package/dist/cli/help.handler.js +10 -0
- package/dist/cli/help.handler.js.map +1 -0
- package/dist/cli/init.handler.d.ts +25 -0
- package/dist/cli/init.handler.js +355 -0
- package/dist/cli/init.handler.js.map +1 -0
- package/dist/cli/query.handler.d.ts +2 -0
- package/dist/cli/query.handler.js +351 -0
- package/dist/cli/query.handler.js.map +1 -0
- package/dist/cli/templates.handler.d.ts +2 -0
- package/dist/cli/templates.handler.js +100 -0
- package/dist/cli/templates.handler.js.map +1 -0
- package/dist/cli-options.d.ts +22 -0
- package/dist/cli-options.js +195 -0
- package/dist/cli-options.js.map +1 -0
- package/dist/config/timeout.config.d.ts +14 -0
- package/dist/config/timeout.config.js +34 -0
- package/dist/config/timeout.config.js.map +1 -0
- package/dist/constants.d.ts +4 -0
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -0
- package/dist/conversation/base-conversation-history.provider.d.ts +12 -0
- package/dist/conversation/base-conversation-history.provider.js +45 -0
- package/dist/conversation/base-conversation-history.provider.js.map +1 -0
- package/dist/conversation/cli-conversation-history.provider.d.ts +16 -0
- package/dist/conversation/cli-conversation-history.provider.js +104 -0
- package/dist/conversation/cli-conversation-history.provider.js.map +1 -0
- package/dist/conversation/conversation-config.d.ts +9 -0
- package/dist/conversation/conversation-config.js +25 -0
- package/dist/conversation/conversation-config.js.map +1 -0
- package/dist/conversation/conversation-history.interface.d.ts +25 -0
- package/dist/conversation/conversation-history.interface.js +3 -0
- package/dist/conversation/conversation-history.interface.js.map +1 -0
- package/dist/conversation/conversation-provider.factory.d.ts +10 -0
- package/dist/conversation/conversation-provider.factory.js +50 -0
- package/dist/conversation/conversation-provider.factory.js.map +1 -0
- package/dist/conversation/conversation-storage.service.d.ts +15 -0
- package/dist/conversation/conversation-storage.service.js +182 -0
- package/dist/conversation/conversation-storage.service.js.map +1 -0
- package/dist/conversation/index.d.ts +7 -0
- package/dist/conversation/index.js +24 -0
- package/dist/conversation/index.js.map +1 -0
- package/dist/conversation/slack-conversation-history.provider.d.ts +22 -0
- package/dist/conversation/slack-conversation-history.provider.js +239 -0
- package/dist/conversation/slack-conversation-history.provider.js.map +1 -0
- package/dist/crewx.tool.d.ts +421 -0
- package/dist/crewx.tool.js +1240 -0
- package/dist/crewx.tool.js.map +1 -0
- package/dist/knowledge/DocumentManager.d.ts +4 -0
- package/dist/knowledge/DocumentManager.js +119 -0
- package/dist/knowledge/DocumentManager.js.map +1 -0
- package/dist/main.d.ts +1 -0
- package/dist/main.js +230 -0
- package/dist/main.js.map +1 -0
- package/dist/mcp.controller.d.ts +8 -0
- package/dist/mcp.controller.js +60 -0
- package/dist/mcp.controller.js.map +1 -0
- package/dist/project.service.d.ts +44 -0
- package/dist/project.service.js +299 -0
- package/dist/project.service.js.map +1 -0
- package/dist/providers/ai-provider.interface.d.ts +30 -0
- package/dist/providers/ai-provider.interface.js +11 -0
- package/dist/providers/ai-provider.interface.js.map +1 -0
- package/dist/providers/base-ai.provider.d.ts +42 -0
- package/dist/providers/base-ai.provider.js +515 -0
- package/dist/providers/base-ai.provider.js.map +1 -0
- package/dist/providers/claude.provider.d.ts +25 -0
- package/dist/providers/claude.provider.js +376 -0
- package/dist/providers/claude.provider.js.map +1 -0
- package/dist/providers/copilot.provider.d.ts +25 -0
- package/dist/providers/copilot.provider.js +280 -0
- package/dist/providers/copilot.provider.js.map +1 -0
- package/dist/providers/gemini.provider.d.ts +22 -0
- package/dist/providers/gemini.provider.js +163 -0
- package/dist/providers/gemini.provider.js.map +1 -0
- package/dist/services/agent-loader.service.d.ts +23 -0
- package/dist/services/agent-loader.service.js +313 -0
- package/dist/services/agent-loader.service.js.map +1 -0
- package/dist/services/config-validator.service.d.ts +28 -0
- package/dist/services/config-validator.service.js +427 -0
- package/dist/services/config-validator.service.js.map +1 -0
- package/dist/services/config.service.d.ts +25 -0
- package/dist/services/config.service.js +102 -0
- package/dist/services/config.service.js.map +1 -0
- package/dist/services/context-enhancement.service.d.ts +13 -0
- package/dist/services/context-enhancement.service.js +169 -0
- package/dist/services/context-enhancement.service.js.map +1 -0
- package/dist/services/document-loader.service.d.ts +16 -0
- package/dist/services/document-loader.service.js +137 -0
- package/dist/services/document-loader.service.js.map +1 -0
- package/dist/services/help.service.d.ts +5 -0
- package/dist/services/help.service.js +112 -0
- package/dist/services/help.service.js.map +1 -0
- package/dist/services/intelligent-compression.service.d.ts +20 -0
- package/dist/services/intelligent-compression.service.js +179 -0
- package/dist/services/intelligent-compression.service.js.map +1 -0
- package/dist/services/parallel-processing.service.d.ts +108 -0
- package/dist/services/parallel-processing.service.js +266 -0
- package/dist/services/parallel-processing.service.js.map +1 -0
- package/dist/services/result-formatter.service.d.ts +27 -0
- package/dist/services/result-formatter.service.js +126 -0
- package/dist/services/result-formatter.service.js.map +1 -0
- package/dist/services/task-management.service.d.ts +63 -0
- package/dist/services/task-management.service.js +270 -0
- package/dist/services/task-management.service.js.map +1 -0
- package/dist/services/template.service.d.ts +36 -0
- package/dist/services/template.service.js +195 -0
- package/dist/services/template.service.js.map +1 -0
- package/dist/services/tool-call.service.d.ts +53 -0
- package/dist/services/tool-call.service.js +819 -0
- package/dist/services/tool-call.service.js.map +1 -0
- package/dist/slack/formatters/message.formatter.d.ts +25 -0
- package/dist/slack/formatters/message.formatter.js +246 -0
- package/dist/slack/formatters/message.formatter.js.map +1 -0
- package/dist/slack/slack-bot.d.ts +23 -0
- package/dist/slack/slack-bot.js +435 -0
- package/dist/slack/slack-bot.js.map +1 -0
- package/dist/stderr.logger.d.ts +8 -0
- package/dist/stderr.logger.js +26 -0
- package/dist/stderr.logger.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/utils/config-utils.d.ts +15 -0
- package/dist/utils/config-utils.js +69 -0
- package/dist/utils/config-utils.js.map +1 -0
- package/dist/utils/error-utils.d.ts +3 -0
- package/dist/utils/error-utils.js +27 -0
- package/dist/utils/error-utils.js.map +1 -0
- package/dist/utils/math-utils.d.ts +3 -0
- package/dist/utils/math-utils.js +10 -0
- package/dist/utils/math-utils.js.map +1 -0
- package/dist/utils/mcp-installer.d.ts +20 -0
- package/dist/utils/mcp-installer.js +199 -0
- package/dist/utils/mcp-installer.js.map +1 -0
- package/dist/utils/mention-parser.d.ts +18 -0
- package/dist/utils/mention-parser.js +136 -0
- package/dist/utils/mention-parser.js.map +1 -0
- package/dist/utils/simple-security.d.ts +3 -0
- package/dist/utils/simple-security.js +20 -0
- package/dist/utils/simple-security.js.map +1 -0
- package/dist/utils/stdin-utils.d.ts +2 -0
- package/dist/utils/stdin-utils.js +87 -0
- package/dist/utils/stdin-utils.js.map +1 -0
- package/dist/utils/string-utils.d.ts +1 -0
- package/dist/utils/string-utils.js +10 -0
- package/dist/utils/string-utils.js.map +1 -0
- package/dist/utils/template-processor.d.ts +32 -0
- package/dist/utils/template-processor.js +188 -0
- package/dist/utils/template-processor.js.map +1 -0
- package/docs/agent-configuration.md +373 -0
- package/docs/agent-registry-strategy.md +348 -0
- package/docs/branding-decision-crewx.md +395 -0
- package/docs/claude-code-docker-guide.md +264 -0
- package/docs/cli-guide.md +295 -0
- package/docs/development.md +595 -0
- package/docs/guides/agent-best-practices.md +97 -0
- package/docs/guides/bug-management.md +600 -0
- package/docs/guides/git-bug-reference.md +366 -0
- package/docs/mcp-integration.md +187 -0
- package/docs/process/development-workflow.md +84 -0
- package/docs/roadmap.md +528 -0
- package/docs/rules/branch-protection.md +40 -0
- package/docs/standards/rc-versioning.md +60 -0
- package/docs/standards/report-structure.md +67 -0
- package/docs/templates.md +517 -0
- package/docs/tools.md +583 -0
- package/docs/troubleshooting.md +585 -0
- package/package.json +106 -21
- 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.
|