@silbaram/artifact-driven-agent 0.1.6 → 0.1.7
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/README.md +530 -516
- package/package.json +1 -1
- package/src/commands/run.js +65 -12
- package/src/commands/sessions.js +706 -445
- package/src/utils/sessionState.js +12 -2
package/README.md
CHANGED
|
@@ -1,516 +1,530 @@
|
|
|
1
|
-
# Artifact-Driven AI Agent Framework
|
|
2
|
-
|
|
3
|
-
**문서 기반 멀티 AI 에이전트 개발 프레임워크**
|
|
4
|
-
|
|
5
|
-
4개 핵심 역할(Planner, Developer, Reviewer, Documenter)이 스프린트 단위로 협업하여 안정적인 개발 워크플로우를 만듭니다.
|
|
6
|
-
|
|
7
|
-
## 🎯 목표
|
|
8
|
-
|
|
9
|
-
- AI가 감으로 개발하지 못하게 한다
|
|
10
|
-
- 모든 판단을 문서 기준으로 고정한다
|
|
11
|
-
- **스프린트/Task 단위 반복 개발 파이프라인**을 만든다
|
|
12
|
-
|
|
13
|
-
## 💡 핵심 개념
|
|
14
|
-
|
|
15
|
-
이 구조는 AI가 똑똑해서 돌아가는 시스템이 아니다.
|
|
16
|
-
**AI가 규칙을 어기지 못해서** 안정적으로 돌아간다.
|
|
17
|
-
|
|
18
|
-
### 문서 기반 제약 구현
|
|
19
|
-
|
|
20
|
-
AI 에이전트 실행 시, 시스템 프롬프트에 다음을 포함합니다:
|
|
21
|
-
|
|
22
|
-
1. **모든 규칙 파일 내용** (rules/*.md)
|
|
23
|
-
2. **핵심 산출물 내용** (plan.md, project.md, 현재 스프린트 Task 파일)
|
|
24
|
-
3. **인터페이스 문서 내용** (api.md, ui.md 등)
|
|
25
|
-
|
|
26
|
-
이를 통해 AI는:
|
|
27
|
-
- 문서에 명시된 규칙을 따라야만 함
|
|
28
|
-
- 현재 스프린트 범위를 벗어날 수 없음
|
|
29
|
-
- project.md에 없는 기술을 추가할 수 없음
|
|
30
|
-
|
|
31
|
-
**파일명만 나열하지 않고, 내용을 포함**하는 것이 핵심입니다.
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## 🚀 설치
|
|
36
|
-
|
|
37
|
-
### npm 설치 (권장)
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
# 전역 설치
|
|
41
|
-
npm install -g @silbaram/artifact-driven-agent
|
|
42
|
-
|
|
43
|
-
# 또는 npx로 바로 실행
|
|
44
|
-
npx @silbaram/artifact-driven-agent setup web
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
### 저장소 클론
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
git clone https://github.com/silbaram/artifact-driven-agent.git
|
|
51
|
-
cd artifact-driven-agent
|
|
52
|
-
npm install
|
|
53
|
-
npm link # 전역 명령어 등록
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
### 설치 확인
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
ada --version
|
|
60
|
-
ada --help
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
## 🖥️ 빠른 시작
|
|
66
|
-
|
|
67
|
-
### 1. 프로젝트 세팅
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
ada setup web # 웹 서비스
|
|
71
|
-
ada setup lib # 라이브러리
|
|
72
|
-
ada setup game # 게임
|
|
73
|
-
ada setup cli # CLI 도구
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### 2. 기획 시작
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
ada planner claude # 요구사항 수집 → plan.md + backlog/*.md 생성
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### 3. 스프린트 생성
|
|
83
|
-
|
|
84
|
-
```bash
|
|
85
|
-
ada sprint create # 새 스프린트 생성
|
|
86
|
-
ada sprint add task-001 task-002 # Task 추가
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### 4. 개발
|
|
90
|
-
|
|
91
|
-
```bash
|
|
92
|
-
ada developer claude # Task 구현 → DONE 상태로 변경
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### 5. 리뷰
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
ada reviewer claude # 코드 리뷰 → review-reports/ 생성
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
### 6. 스프린트 종료
|
|
102
|
-
|
|
103
|
-
```bash
|
|
104
|
-
ada sprint close # 스프린트 종료
|
|
105
|
-
ada documenter claude # 문서 작성
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
## 👥 역할 시스템
|
|
111
|
-
|
|
112
|
-
### 핵심 역할 (4개) - 모든 프로젝트 필수
|
|
113
|
-
|
|
114
|
-
| 역할 | 책임 | 산출물 |
|
|
115
|
-
|------|------|--------|
|
|
116
|
-
| **Planner** | 요구사항 수집, Task 분해 | plan.md, backlog/*.md |
|
|
117
|
-
| **Developer** | 코드 구현, Task 완료 | 소스 코드, Task 파일 업데이트 |
|
|
118
|
-
| **Reviewer** | 코드 리뷰, 품질 판정 | review-reports/*.md |
|
|
119
|
-
| **Documenter** | 스프린트 완료 시 문서 작성 | API Changelog, Release Notes, User Guide |
|
|
120
|
-
|
|
121
|
-
### 선택 역할 (1개) - 기존 프로젝트 도입 시
|
|
122
|
-
|
|
123
|
-
| 역할 | 책임 | 사용 시점 |
|
|
124
|
-
|------|------|----------|
|
|
125
|
-
| **Analyzer** | 기존 코드베이스 분석, project.md 역생성 | 레거시 프로젝트에 ada 도입 시 |
|
|
126
|
-
|
|
127
|
-
---
|
|
128
|
-
|
|
129
|
-
## 📂 디렉토리 구조
|
|
130
|
-
|
|
131
|
-
### 프로젝트 루트
|
|
132
|
-
|
|
133
|
-
```
|
|
134
|
-
artifact-driven-agent/
|
|
135
|
-
├── bin/cli.js # CLI 진입점
|
|
136
|
-
├── src/
|
|
137
|
-
│ ├── commands/ # 명령어 구현
|
|
138
|
-
│ │ ├── setup.js
|
|
139
|
-
│ │ ├── run.js
|
|
140
|
-
│ │ ├── sprint.js # 스프린트 관리
|
|
141
|
-
│ │ └── sessions.js # 세션 모니터링
|
|
142
|
-
│ └── utils/
|
|
143
|
-
│ ├── files.js
|
|
144
|
-
│ └── sessionState.js
|
|
145
|
-
├── core/ # 범용 핵심
|
|
146
|
-
│ ├── roles/ # 5개 역할
|
|
147
|
-
│ ├── artifacts/ # 산출물 템플릿
|
|
148
|
-
│ │ └── sprints/
|
|
149
|
-
│ │ └── _template/ # 스프린트 템플릿
|
|
150
|
-
│ └── rules/ # 5개 규칙
|
|
151
|
-
└── templates/ # 프로젝트 유형별
|
|
152
|
-
├── web-dev/
|
|
153
|
-
├── library/
|
|
154
|
-
├── game/
|
|
155
|
-
└── cli/
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### 작업 디렉토리 (setup 후)
|
|
159
|
-
|
|
160
|
-
```
|
|
161
|
-
ai-dev-team/
|
|
162
|
-
├── artifacts/
|
|
163
|
-
│ ├── plan.md # 전체 요구사항
|
|
164
|
-
│ ├── project.md # 기술 기준 (선택)
|
|
165
|
-
│ ├── backlog/ # 스프린트 미할당 Task
|
|
166
|
-
│ │ ├── task-001.md
|
|
167
|
-
│ │ └── task-002.md
|
|
168
|
-
│ └── sprints/ # 스프린트별 디렉토리
|
|
169
|
-
│ ├── sprint-1/ # 완료된 스프린트
|
|
170
|
-
│ │ ├── meta.md
|
|
171
|
-
│ │ ├── tasks/
|
|
172
|
-
│ │ │ ├── task-003.md
|
|
173
|
-
│ │ │ └── task-004.md
|
|
174
|
-
│ │ ├── review-reports/
|
|
175
|
-
│ │ │ ├── task-003.md
|
|
176
|
-
│ │ │ └── task-004.md
|
|
177
|
-
│ │ ├── docs/
|
|
178
|
-
│ │ │ ├── api-changelog.md
|
|
179
|
-
│ │ │ └── release-notes.md
|
|
180
|
-
│ │ └── retrospective.md
|
|
181
|
-
│ └── sprint-2/ # 진행 중인 스프린트
|
|
182
|
-
│ ├── meta.md
|
|
183
|
-
│ └── tasks/
|
|
184
|
-
│ └── task-005.md
|
|
185
|
-
├── roles/ # core + template 병합
|
|
186
|
-
├── rules/
|
|
187
|
-
└── .sessions/ # 세션 이력
|
|
188
|
-
├── logs/
|
|
189
|
-
└── .ada-status.json # 멀티 세션 상태 파일
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
---
|
|
193
|
-
|
|
194
|
-
## 🖥️ CLI 명령어
|
|
195
|
-
|
|
196
|
-
### 기본 명령어
|
|
197
|
-
|
|
198
|
-
| 명령어 | 설명 |
|
|
199
|
-
|--------|------|
|
|
200
|
-
| `ada` | 대화형 모드 |
|
|
201
|
-
| `ada setup [template]` | 템플릿 세팅 (web, lib, game, cli) |
|
|
202
|
-
| `ada status` | 상태 확인 |
|
|
203
|
-
| `ada validate [doc]` | 문서 검증 |
|
|
204
|
-
| `ada reset [-f]` | 초기화 |
|
|
205
|
-
|
|
206
|
-
### 스프린트 관리
|
|
207
|
-
|
|
208
|
-
| 명령어 | 설명 |
|
|
209
|
-
|--------|------|
|
|
210
|
-
| `ada sprint create` | 새 스프린트 생성 |
|
|
211
|
-
| `ada sprint add task-001 ...` | Task 추가 |
|
|
212
|
-
| `ada sprint close` | 현재 스프린트 종료 |
|
|
213
|
-
| `ada sprint list` | 스프린트 목록 |
|
|
214
|
-
|
|
215
|
-
### AI 에이전트 실행
|
|
216
|
-
|
|
217
|
-
```bash
|
|
218
|
-
# 정식 형식
|
|
219
|
-
ada run <role> <tool>
|
|
220
|
-
|
|
221
|
-
# 단축 형식 (run 생략)
|
|
222
|
-
ada <role> <tool>
|
|
223
|
-
|
|
224
|
-
# 예시
|
|
225
|
-
ada planner claude
|
|
226
|
-
ada developer codex
|
|
227
|
-
ada reviewer gemini
|
|
228
|
-
ada documenter claude
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
**지원 도구:** claude, codex, gemini, copilot
|
|
232
|
-
|
|
233
|
-
### 세션 모니터링
|
|
234
|
-
|
|
235
|
-
```bash
|
|
236
|
-
# 세션 목록 및 상태
|
|
237
|
-
ada sessions
|
|
238
|
-
|
|
239
|
-
# 실시간 모니터링 대시보드
|
|
240
|
-
ada sessions --watch
|
|
241
|
-
ada sessions -w
|
|
242
|
-
|
|
243
|
-
#
|
|
244
|
-
|
|
245
|
-
ada logs
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
→
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
|
308
|
-
|
|
309
|
-
| `
|
|
310
|
-
| `
|
|
311
|
-
| `
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
|
318
|
-
|
|
319
|
-
|
|
|
320
|
-
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
|
331
|
-
|
|
332
|
-
|
|
|
333
|
-
|
|
|
334
|
-
|
|
|
335
|
-
| sprints/sprint-N/
|
|
336
|
-
| sprints/sprint-N/
|
|
337
|
-
| sprints/sprint-N/
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
|
344
|
-
|
|
345
|
-
|
|
|
346
|
-
|
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
**세션
|
|
373
|
-
-
|
|
374
|
-
-
|
|
375
|
-
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
-
|
|
401
|
-
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
###
|
|
408
|
-
|
|
409
|
-
-
|
|
410
|
-
-
|
|
411
|
-
-
|
|
412
|
-
-
|
|
413
|
-
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
-
|
|
460
|
-
-
|
|
461
|
-
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
-
|
|
470
|
-
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
###
|
|
482
|
-
|
|
483
|
-
```bash
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
---
|
|
497
|
-
|
|
498
|
-
##
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
-
|
|
504
|
-
|
|
505
|
-
---
|
|
506
|
-
|
|
507
|
-
##
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
1
|
+
# Artifact-Driven AI Agent Framework
|
|
2
|
+
|
|
3
|
+
**문서 기반 멀티 AI 에이전트 개발 프레임워크**
|
|
4
|
+
|
|
5
|
+
4개 핵심 역할(Planner, Developer, Reviewer, Documenter)이 스프린트 단위로 협업하여 안정적인 개발 워크플로우를 만듭니다.
|
|
6
|
+
|
|
7
|
+
## 🎯 목표
|
|
8
|
+
|
|
9
|
+
- AI가 감으로 개발하지 못하게 한다
|
|
10
|
+
- 모든 판단을 문서 기준으로 고정한다
|
|
11
|
+
- **스프린트/Task 단위 반복 개발 파이프라인**을 만든다
|
|
12
|
+
|
|
13
|
+
## 💡 핵심 개념
|
|
14
|
+
|
|
15
|
+
이 구조는 AI가 똑똑해서 돌아가는 시스템이 아니다.
|
|
16
|
+
**AI가 규칙을 어기지 못해서** 안정적으로 돌아간다.
|
|
17
|
+
|
|
18
|
+
### 문서 기반 제약 구현
|
|
19
|
+
|
|
20
|
+
AI 에이전트 실행 시, 시스템 프롬프트에 다음을 포함합니다:
|
|
21
|
+
|
|
22
|
+
1. **모든 규칙 파일 내용** (rules/*.md)
|
|
23
|
+
2. **핵심 산출물 내용** (plan.md, project.md, 현재 스프린트 Task 파일)
|
|
24
|
+
3. **인터페이스 문서 내용** (api.md, ui.md 등)
|
|
25
|
+
|
|
26
|
+
이를 통해 AI는:
|
|
27
|
+
- 문서에 명시된 규칙을 따라야만 함
|
|
28
|
+
- 현재 스프린트 범위를 벗어날 수 없음
|
|
29
|
+
- project.md에 없는 기술을 추가할 수 없음
|
|
30
|
+
|
|
31
|
+
**파일명만 나열하지 않고, 내용을 포함**하는 것이 핵심입니다.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 🚀 설치
|
|
36
|
+
|
|
37
|
+
### npm 설치 (권장)
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# 전역 설치
|
|
41
|
+
npm install -g @silbaram/artifact-driven-agent
|
|
42
|
+
|
|
43
|
+
# 또는 npx로 바로 실행
|
|
44
|
+
npx @silbaram/artifact-driven-agent setup web
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 저장소 클론
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
git clone https://github.com/silbaram/artifact-driven-agent.git
|
|
51
|
+
cd artifact-driven-agent
|
|
52
|
+
npm install
|
|
53
|
+
npm link # 전역 명령어 등록
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 설치 확인
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
ada --version
|
|
60
|
+
ada --help
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 🖥️ 빠른 시작
|
|
66
|
+
|
|
67
|
+
### 1. 프로젝트 세팅
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
ada setup web # 웹 서비스
|
|
71
|
+
ada setup lib # 라이브러리
|
|
72
|
+
ada setup game # 게임
|
|
73
|
+
ada setup cli # CLI 도구
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 2. 기획 시작
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
ada planner claude # 요구사항 수집 → plan.md + backlog/*.md 생성
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 3. 스프린트 생성
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
ada sprint create # 새 스프린트 생성
|
|
86
|
+
ada sprint add task-001 task-002 # Task 추가
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 4. 개발
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
ada developer claude # Task 구현 → DONE 상태로 변경
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 5. 리뷰
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
ada reviewer claude # 코드 리뷰 → review-reports/ 생성
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 6. 스프린트 종료
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
ada sprint close # 스프린트 종료
|
|
105
|
+
ada documenter claude # 문서 작성
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## 👥 역할 시스템
|
|
111
|
+
|
|
112
|
+
### 핵심 역할 (4개) - 모든 프로젝트 필수
|
|
113
|
+
|
|
114
|
+
| 역할 | 책임 | 산출물 |
|
|
115
|
+
|------|------|--------|
|
|
116
|
+
| **Planner** | 요구사항 수집, Task 분해 | plan.md, backlog/*.md |
|
|
117
|
+
| **Developer** | 코드 구현, Task 완료 | 소스 코드, Task 파일 업데이트 |
|
|
118
|
+
| **Reviewer** | 코드 리뷰, 품질 판정 | review-reports/*.md |
|
|
119
|
+
| **Documenter** | 스프린트 완료 시 문서 작성 | API Changelog, Release Notes, User Guide |
|
|
120
|
+
|
|
121
|
+
### 선택 역할 (1개) - 기존 프로젝트 도입 시
|
|
122
|
+
|
|
123
|
+
| 역할 | 책임 | 사용 시점 |
|
|
124
|
+
|------|------|----------|
|
|
125
|
+
| **Analyzer** | 기존 코드베이스 분석, project.md 역생성 | 레거시 프로젝트에 ada 도입 시 |
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## 📂 디렉토리 구조
|
|
130
|
+
|
|
131
|
+
### 프로젝트 루트
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
artifact-driven-agent/
|
|
135
|
+
├── bin/cli.js # CLI 진입점
|
|
136
|
+
├── src/
|
|
137
|
+
│ ├── commands/ # 명령어 구현
|
|
138
|
+
│ │ ├── setup.js
|
|
139
|
+
│ │ ├── run.js
|
|
140
|
+
│ │ ├── sprint.js # 스프린트 관리
|
|
141
|
+
│ │ └── sessions.js # 세션 모니터링
|
|
142
|
+
│ └── utils/
|
|
143
|
+
│ ├── files.js
|
|
144
|
+
│ └── sessionState.js
|
|
145
|
+
├── core/ # 범용 핵심
|
|
146
|
+
│ ├── roles/ # 5개 역할
|
|
147
|
+
│ ├── artifacts/ # 산출물 템플릿
|
|
148
|
+
│ │ └── sprints/
|
|
149
|
+
│ │ └── _template/ # 스프린트 템플릿
|
|
150
|
+
│ └── rules/ # 5개 규칙
|
|
151
|
+
└── templates/ # 프로젝트 유형별
|
|
152
|
+
├── web-dev/
|
|
153
|
+
├── library/
|
|
154
|
+
├── game/
|
|
155
|
+
└── cli/
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### 작업 디렉토리 (setup 후)
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
ai-dev-team/
|
|
162
|
+
├── artifacts/
|
|
163
|
+
│ ├── plan.md # 전체 요구사항
|
|
164
|
+
│ ├── project.md # 기술 기준 (선택)
|
|
165
|
+
│ ├── backlog/ # 스프린트 미할당 Task
|
|
166
|
+
│ │ ├── task-001.md
|
|
167
|
+
│ │ └── task-002.md
|
|
168
|
+
│ └── sprints/ # 스프린트별 디렉토리
|
|
169
|
+
│ ├── sprint-1/ # 완료된 스프린트
|
|
170
|
+
│ │ ├── meta.md
|
|
171
|
+
│ │ ├── tasks/
|
|
172
|
+
│ │ │ ├── task-003.md
|
|
173
|
+
│ │ │ └── task-004.md
|
|
174
|
+
│ │ ├── review-reports/
|
|
175
|
+
│ │ │ ├── task-003.md
|
|
176
|
+
│ │ │ └── task-004.md
|
|
177
|
+
│ │ ├── docs/
|
|
178
|
+
│ │ │ ├── api-changelog.md
|
|
179
|
+
│ │ │ └── release-notes.md
|
|
180
|
+
│ │ └── retrospective.md
|
|
181
|
+
│ └── sprint-2/ # 진행 중인 스프린트
|
|
182
|
+
│ ├── meta.md
|
|
183
|
+
│ └── tasks/
|
|
184
|
+
│ └── task-005.md
|
|
185
|
+
├── roles/ # core + template 병합
|
|
186
|
+
├── rules/
|
|
187
|
+
└── .sessions/ # 세션 이력
|
|
188
|
+
├── logs/
|
|
189
|
+
└── .ada-status.json # 멀티 세션 상태 파일
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## 🖥️ CLI 명령어
|
|
195
|
+
|
|
196
|
+
### 기본 명령어
|
|
197
|
+
|
|
198
|
+
| 명령어 | 설명 |
|
|
199
|
+
|--------|------|
|
|
200
|
+
| `ada` | 대화형 모드 |
|
|
201
|
+
| `ada setup [template]` | 템플릿 세팅 (web, lib, game, cli) |
|
|
202
|
+
| `ada status` | 상태 확인 |
|
|
203
|
+
| `ada validate [doc]` | 문서 검증 |
|
|
204
|
+
| `ada reset [-f]` | 초기화 |
|
|
205
|
+
|
|
206
|
+
### 스프린트 관리
|
|
207
|
+
|
|
208
|
+
| 명령어 | 설명 |
|
|
209
|
+
|--------|------|
|
|
210
|
+
| `ada sprint create` | 새 스프린트 생성 |
|
|
211
|
+
| `ada sprint add task-001 ...` | Task 추가 |
|
|
212
|
+
| `ada sprint close` | 현재 스프린트 종료 |
|
|
213
|
+
| `ada sprint list` | 스프린트 목록 |
|
|
214
|
+
|
|
215
|
+
### AI 에이전트 실행
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
# 정식 형식
|
|
219
|
+
ada run <role> <tool>
|
|
220
|
+
|
|
221
|
+
# 단축 형식 (run 생략)
|
|
222
|
+
ada <role> <tool>
|
|
223
|
+
|
|
224
|
+
# 예시
|
|
225
|
+
ada planner claude
|
|
226
|
+
ada developer codex
|
|
227
|
+
ada reviewer gemini
|
|
228
|
+
ada documenter claude
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
**지원 도구:** claude, codex, gemini, copilot
|
|
232
|
+
|
|
233
|
+
### 세션 모니터링
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
# 세션 목록 및 상태
|
|
237
|
+
ada sessions
|
|
238
|
+
|
|
239
|
+
# 실시간 모니터링 대시보드
|
|
240
|
+
ada sessions --watch
|
|
241
|
+
ada sessions -w
|
|
242
|
+
|
|
243
|
+
# 대기 질문이 있으면 자동으로 응답 프롬프트가 표시됩니다.
|
|
244
|
+
# 세션 로그 확인
|
|
245
|
+
ada logs
|
|
246
|
+
ada logs [session-id]
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## 🔄 워크플로우
|
|
252
|
+
|
|
253
|
+
### 신규 프로젝트
|
|
254
|
+
|
|
255
|
+
```
|
|
256
|
+
1. Planner: 요구사항 수집
|
|
257
|
+
→ plan.md + backlog/*.md 생성
|
|
258
|
+
|
|
259
|
+
2. Manager: 스프린트 생성/Task 할당
|
|
260
|
+
→ (plan.md Confirmed 후 watch에서 승인하면 자동 실행)
|
|
261
|
+
→ 자동 실행: ada sprint create
|
|
262
|
+
→ 자동 실행: ada sprint add task-001 task-002
|
|
263
|
+
|
|
264
|
+
3. Developer: Task 구현
|
|
265
|
+
→ 코드 작성
|
|
266
|
+
→ Task 상태를 DONE으로 변경
|
|
267
|
+
|
|
268
|
+
4. Reviewer: 코드 리뷰
|
|
269
|
+
→ review-reports/*.md 생성
|
|
270
|
+
→ PASS/REJECT 판정
|
|
271
|
+
|
|
272
|
+
5. 사용자: 스프린트 종료
|
|
273
|
+
→ ada sprint close
|
|
274
|
+
|
|
275
|
+
6. Documenter: 문서 작성
|
|
276
|
+
→ docs/*.md 생성 (API Changelog, Release Notes 등)
|
|
277
|
+
|
|
278
|
+
7. 다음 스프린트 시작
|
|
279
|
+
→ ada sprint create
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
### 기존 프로젝트
|
|
283
|
+
|
|
284
|
+
```
|
|
285
|
+
0. Analyzer: 코드베이스 분석
|
|
286
|
+
→ project.md 역생성
|
|
287
|
+
|
|
288
|
+
1. Planner: 추가 기능 기획
|
|
289
|
+
→ plan.md 업데이트
|
|
290
|
+
→ backlog/*.md 생성
|
|
291
|
+
|
|
292
|
+
2. 이후 신규 프로젝트와 동일
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
### Task 상태 흐름
|
|
296
|
+
|
|
297
|
+
```
|
|
298
|
+
BACKLOG → IN_DEV → DONE → (리뷰 후) → 스프린트 완료
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
## 📋 규칙 시스템
|
|
304
|
+
|
|
305
|
+
### Core 규칙 (5개)
|
|
306
|
+
|
|
307
|
+
| 규칙 | 용도 |
|
|
308
|
+
|------|------|
|
|
309
|
+
| `iteration.md` | 스프린트/Task 단위 작업 규칙 |
|
|
310
|
+
| `escalation.md` | 에스컬레이션 기준 |
|
|
311
|
+
| `rollback.md` | REJECT 시 처리 절차 |
|
|
312
|
+
| `document-priority.md` | 문서 충돌 시 우선순위 |
|
|
313
|
+
| `rfc.md` | Frozen 문서 변경 절차 |
|
|
314
|
+
|
|
315
|
+
### 템플릿별 규칙
|
|
316
|
+
|
|
317
|
+
| 템플릿 | 규칙 | 용도 |
|
|
318
|
+
|--------|------|------|
|
|
319
|
+
| web-dev | `api-change.md` | API 변경 절차 |
|
|
320
|
+
| library | `versioning.md` | Semantic Versioning |
|
|
321
|
+
| game | `system-change.md` | 게임 시스템 변경 |
|
|
322
|
+
| cli | `command-change.md` | CLI 명령어 변경 |
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## 📄 산출물
|
|
327
|
+
|
|
328
|
+
### Core 산출물
|
|
329
|
+
|
|
330
|
+
| 문서 | 관리자 | 용도 |
|
|
331
|
+
|------|--------|------|
|
|
332
|
+
| plan.md | Planner | 전체 요구사항 |
|
|
333
|
+
| project.md | 사용자/팀 (선택) | 기술 기준 (Frozen) |
|
|
334
|
+
| backlog/*.md | Planner | 스프린트 미할당 Task |
|
|
335
|
+
| sprints/sprint-N/meta.md | 자동 생성 | 스프린트 메타정보 |
|
|
336
|
+
| sprints/sprint-N/tasks/*.md | Developer | Task별 상세 정보 |
|
|
337
|
+
| sprints/sprint-N/review-reports/*.md | Reviewer | 리뷰 결과 |
|
|
338
|
+
| sprints/sprint-N/docs/*.md | Documenter | 릴리스 문서 |
|
|
339
|
+
| sprints/sprint-N/retrospective.md | 사용자 | 회고 |
|
|
340
|
+
|
|
341
|
+
### 템플릿별 산출물
|
|
342
|
+
|
|
343
|
+
| 템플릿 | 문서 | 용도 |
|
|
344
|
+
|--------|------|------|
|
|
345
|
+
| web-dev | api.md, ui.md | API 계약, 화면 설계 |
|
|
346
|
+
| library | public-api.md, changelog.md | 공개 API, 변경 이력 |
|
|
347
|
+
| game | game-systems.md, assets.md | 시스템, 에셋 |
|
|
348
|
+
| cli | commands.md, output-format.md | 명령어, 출력 형식 |
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## 🖥️ 멀티 세션 모드
|
|
353
|
+
|
|
354
|
+
여러 터미널에서 동시에 다른 역할을 실행할 수 있습니다.
|
|
355
|
+
|
|
356
|
+
### 사용 예시
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
# 터미널 1: Planner
|
|
360
|
+
ada planner claude
|
|
361
|
+
|
|
362
|
+
# 터미널 2: Developer
|
|
363
|
+
ada developer codex
|
|
364
|
+
|
|
365
|
+
# 터미널 3: Reviewer
|
|
366
|
+
ada reviewer gemini
|
|
367
|
+
|
|
368
|
+
# 터미널 4: 실시간 모니터링
|
|
369
|
+
ada sessions --watch
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
**세션 모니터링 포인트**
|
|
373
|
+
- 대기 질문이 생성되면 watch 화면이 자동 프롬프트로 전환됩니다.
|
|
374
|
+
- 프롬프트는 사용자가 직접 입력하며, 응답은 `.ada-status.json`에 저장됩니다.
|
|
375
|
+
- 승인형 질문에 '예'로 응답하면 필요한 CLI 작업을 자동 실행합니다.
|
|
376
|
+
|
|
377
|
+
### 자동 세션 관리
|
|
378
|
+
|
|
379
|
+
**세션 시작 시:**
|
|
380
|
+
- `.ada-status.json`에 자동 등록
|
|
381
|
+
- 터미널 타이틀 설정 (예: "ADA: developer (codex)")
|
|
382
|
+
- 역할 이모지 배너 표시
|
|
383
|
+
|
|
384
|
+
**세션 종료 시:**
|
|
385
|
+
- 상태 파일에서 자동 제거
|
|
386
|
+
- 세션 로그 저장
|
|
387
|
+
|
|
388
|
+
### 상태 파일
|
|
389
|
+
|
|
390
|
+
```
|
|
391
|
+
ai-dev-team/.sessions/.ada-status.json
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
모든 세션이 이 파일을 통해 상태를 공유합니다.
|
|
395
|
+
|
|
396
|
+
**구성:**
|
|
397
|
+
- `activeSessions[]`: 실행 중인 세션
|
|
398
|
+
- `pendingQuestions[]`: 대기 질문 및 응답 상태
|
|
399
|
+
- `taskProgress[]`: Task 진행 상황
|
|
400
|
+
- `notifications[]`: 세션 간 알림
|
|
401
|
+
- (기존 Manager 관련 필드는 제거됨)
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
## ⚠️ 핵심 원칙
|
|
406
|
+
|
|
407
|
+
### 금지 사항
|
|
408
|
+
|
|
409
|
+
- ❌ 문서 없는 진행
|
|
410
|
+
- ❌ 기준 없는 판단
|
|
411
|
+
- ❌ 감으로 추가된 기술
|
|
412
|
+
- ❌ 스프린트 외 작업
|
|
413
|
+
- ❌ "김에" 리팩토링
|
|
414
|
+
- ❌ 역할 간 경계 침범
|
|
415
|
+
|
|
416
|
+
### 필수 사항
|
|
417
|
+
|
|
418
|
+
- ✅ 문서 기준 판단
|
|
419
|
+
- ✅ 역할별 책임 분리
|
|
420
|
+
- ✅ Task 단위 반복 개발
|
|
421
|
+
- ✅ 스프린트 단위 관리
|
|
422
|
+
- ✅ REJECT 시 원인 분석
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
426
|
+
## 📊 템플릿 비교
|
|
427
|
+
|
|
428
|
+
| 템플릿 | 설명 | 특화 문서 |
|
|
429
|
+
|--------|------|----------|
|
|
430
|
+
| **web-dev** | 웹 서비스/API 서버 | api.md, ui.md |
|
|
431
|
+
| **library** | npm/pip 라이브러리 | public-api.md, changelog.md |
|
|
432
|
+
| **game** | 게임 개발 | game-systems.md, assets.md |
|
|
433
|
+
| **cli** | CLI 도구 | commands.md, output-format.md |
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
## 🎯 주요 개선 사항 (v0.2.0)
|
|
438
|
+
|
|
439
|
+
### 역할 시스템 간소화
|
|
440
|
+
|
|
441
|
+
**이전 (v0.1.x):**
|
|
442
|
+
- 7개 Core 역할 + 템플릿별 특화 역할 (총 13개)
|
|
443
|
+
- Manager 중심의 복잡한 승인 프로세스
|
|
444
|
+
- 역할 간 blocking 문제 (backend ↔ frontend)
|
|
445
|
+
|
|
446
|
+
**현재 (v0.2.x):**
|
|
447
|
+
- 4개 핵심 역할 (planner, developer, reviewer, documenter)
|
|
448
|
+
- 사용자 직접 스프린트 관리 (CLI 명령어)
|
|
449
|
+
- 단순화된 워크플로우
|
|
450
|
+
|
|
451
|
+
### 스프린트 기반 구조
|
|
452
|
+
|
|
453
|
+
**이전:**
|
|
454
|
+
- 단일 파일 (backlog.md, current-sprint.md)
|
|
455
|
+
- Git 충돌 위험
|
|
456
|
+
- Task별 독립성 부족
|
|
457
|
+
|
|
458
|
+
**현재:**
|
|
459
|
+
- 디렉토리 기반 (sprints/sprint-N/)
|
|
460
|
+
- Task별 개별 파일 (task-NNN.md)
|
|
461
|
+
- 리뷰/문서도 Task별 분리
|
|
462
|
+
- 완료된 스프린트는 불변 (이력 보존)
|
|
463
|
+
|
|
464
|
+
### 자동화 개선
|
|
465
|
+
|
|
466
|
+
**추가된 CLI 명령어:**
|
|
467
|
+
- `ada sprint create` - 스프린트 자동 생성
|
|
468
|
+
- `ada sprint add` - Task 자동 추가
|
|
469
|
+
- `ada sprint close` - 스프린트 종료 및 회고 템플릿 생성
|
|
470
|
+
- `ada sprint list` - 스프린트 목록 확인
|
|
471
|
+
|
|
472
|
+
---
|
|
473
|
+
|
|
474
|
+
## 🔧 개발 환경
|
|
475
|
+
|
|
476
|
+
### 필수 요구사항
|
|
477
|
+
|
|
478
|
+
- Node.js 18+
|
|
479
|
+
- npm 7+
|
|
480
|
+
|
|
481
|
+
### 로컬 개발
|
|
482
|
+
|
|
483
|
+
```bash
|
|
484
|
+
git clone https://github.com/silbaram/artifact-driven-agent.git
|
|
485
|
+
cd artifact-driven-agent
|
|
486
|
+
npm install
|
|
487
|
+
npm link # 전역 ada 명령어 등록
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
### 테스트
|
|
491
|
+
|
|
492
|
+
```bash
|
|
493
|
+
npm test # Node.js 내장 test runner 사용
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
---
|
|
497
|
+
|
|
498
|
+
## 📄 문서
|
|
499
|
+
|
|
500
|
+
- **CLAUDE.md**: Claude Code AI를 위한 상세 가이드
|
|
501
|
+
- **core/roles/*.md**: 각 역할의 상세 규칙
|
|
502
|
+
- **core/rules/*.md**: 핵심 규칙 문서
|
|
503
|
+
- **templates/*/**: 템플릿별 특화 문서
|
|
504
|
+
|
|
505
|
+
---
|
|
506
|
+
|
|
507
|
+
## 🤝 기여
|
|
508
|
+
|
|
509
|
+
이슈 및 PR 환영합니다!
|
|
510
|
+
|
|
511
|
+
**보고 위치:**
|
|
512
|
+
- GitHub Issues: https://github.com/silbaram/artifact-driven-agent/issues
|
|
513
|
+
|
|
514
|
+
---
|
|
515
|
+
|
|
516
|
+
## 📄 라이선스
|
|
517
|
+
|
|
518
|
+
MIT License
|
|
519
|
+
|
|
520
|
+
---
|
|
521
|
+
|
|
522
|
+
## 📮 연락처
|
|
523
|
+
|
|
524
|
+
- GitHub: [@silbaram](https://github.com/silbaram)
|
|
525
|
+
- npm: [@silbaram/artifact-driven-agent](https://www.npmjs.com/package/@silbaram/artifact-driven-agent)
|
|
526
|
+
|
|
527
|
+
|
|
528
|
+
|
|
529
|
+
|
|
530
|
+
|