@silbaram/artifact-driven-agent 0.1.0 → 0.1.1
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 +471 -273
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,77 +21,46 @@ CLI 기반 멀티 AI 에이전트를 사용해 기획 → 설계 → 개발 →
|
|
|
21
21
|
```
|
|
22
22
|
artifact-driven-agent/
|
|
23
23
|
│
|
|
24
|
-
├──
|
|
25
|
-
├──
|
|
24
|
+
├── package.json # npm 패키지 설정
|
|
25
|
+
├── bin/
|
|
26
|
+
│ └── cli.js # CLI 진입점 (ada 명령어)
|
|
26
27
|
│
|
|
27
|
-
├──
|
|
28
|
-
│ ├──
|
|
29
|
-
│ ├──
|
|
30
|
-
│ ├──
|
|
31
|
-
│
|
|
32
|
-
│
|
|
28
|
+
├── src/ # CLI 소스 코드
|
|
29
|
+
│ ├── index.js # 모듈 익스포트
|
|
30
|
+
│ ├── commands/ # 명령어 구현
|
|
31
|
+
│ │ ├── setup.js # 템플릿 세팅
|
|
32
|
+
│ │ ├── status.js # 상태 확인
|
|
33
|
+
│ │ ├── reset.js # 초기화
|
|
34
|
+
│ │ ├── validate.js # 문서 검증
|
|
35
|
+
│ │ ├── sessions.js # 세션 목록
|
|
36
|
+
│ │ ├── logs.js # 로그 확인
|
|
37
|
+
│ │ ├── run.js # AI 에이전트 실행
|
|
38
|
+
│ │ └── interactive.js # 대화형 모드
|
|
39
|
+
│ └── utils/
|
|
40
|
+
│ └── files.js # 파일/경로 유틸리티
|
|
33
41
|
│
|
|
34
|
-
├──
|
|
35
|
-
│ ├── roles/
|
|
36
|
-
│ ├── artifacts/
|
|
37
|
-
│
|
|
38
|
-
│ │ │ └── _template/ # Feature 템플릿
|
|
39
|
-
│ │ └── rfc/ # RFC 변경 요청서
|
|
40
|
-
│ │ └── RFC-0000-template.md
|
|
41
|
-
│ └── rules/ # 세팅된 규칙들
|
|
42
|
+
├── core/ # 범용 핵심 (6역할, 8산출물, 5규칙)
|
|
43
|
+
│ ├── roles/
|
|
44
|
+
│ ├── artifacts/
|
|
45
|
+
│ └── rules/
|
|
42
46
|
│
|
|
43
|
-
├──
|
|
44
|
-
│ ├──
|
|
45
|
-
│
|
|
46
|
-
│
|
|
47
|
-
│
|
|
48
|
-
│ │ ├── developer.md
|
|
49
|
-
│ │ ├── reviewer.md
|
|
50
|
-
│ │ ├── qa.md
|
|
51
|
-
│ │ └── manager.md
|
|
52
|
-
│ │
|
|
53
|
-
│ ├── artifacts/ # 8개: 공통 산출물 템플릿
|
|
54
|
-
│ │ ├── plan.md
|
|
55
|
-
│ │ ├── project.md
|
|
56
|
-
│ │ ├── backlog.md
|
|
57
|
-
│ │ ├── current-sprint.md
|
|
58
|
-
│ │ ├── decision.md
|
|
59
|
-
│ │ ├── architecture-options.md
|
|
60
|
-
│ │ ├── review-report.md
|
|
61
|
-
│ │ └── qa-report.md
|
|
62
|
-
│ │
|
|
63
|
-
│ └── rules/ # 5개: 공통 규칙
|
|
64
|
-
│ ├── iteration.md
|
|
65
|
-
│ ├── escalation.md
|
|
66
|
-
│ ├── rollback.md
|
|
67
|
-
│ ├── document-priority.md
|
|
68
|
-
│ └── rfc.md # RFC 변경 관리 규칙
|
|
47
|
+
├── templates/ # 프로젝트 유형별 템플릿
|
|
48
|
+
│ ├── web-dev/
|
|
49
|
+
│ ├── library/
|
|
50
|
+
│ ├── game/
|
|
51
|
+
│ └── cli/
|
|
69
52
|
│
|
|
70
|
-
├──
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
│ └── cli/ # CLI 도구 개발
|
|
75
|
-
│
|
|
76
|
-
├── docs/ # 📖 가이드 문서
|
|
77
|
-
│ └── feature-structure.md # Feature 단위 구조 가이드
|
|
78
|
-
│
|
|
79
|
-
└── examples/ # 📚 예제 프로젝트
|
|
80
|
-
└── todo-app/ # Todo App 예제
|
|
81
|
-
├── README.md
|
|
82
|
-
└── artifacts/
|
|
83
|
-
├── plan.md
|
|
84
|
-
├── project.md
|
|
85
|
-
└── backlog.md
|
|
53
|
+
├── ai-dev-team/ # 작업 디렉토리 (setup 후 사용)
|
|
54
|
+
├── docs/ # 가이드 문서
|
|
55
|
+
├── examples/ # 예제 프로젝트
|
|
56
|
+
└── scripts/ # 쉘 스크립트 (레거시)
|
|
86
57
|
```
|
|
87
58
|
|
|
88
59
|
---
|
|
89
60
|
|
|
90
|
-
## 🚀
|
|
91
|
-
|
|
92
|
-
### 설치 방법
|
|
61
|
+
## 🚀 설치
|
|
93
62
|
|
|
94
|
-
|
|
63
|
+
### 방법 1: npm 설치 (권장)
|
|
95
64
|
|
|
96
65
|
```bash
|
|
97
66
|
# 전역 설치
|
|
@@ -101,311 +70,563 @@ npm install -g @silbaram/artifact-driven-agent
|
|
|
101
70
|
npx @silbaram/artifact-driven-agent setup web
|
|
102
71
|
```
|
|
103
72
|
|
|
104
|
-
|
|
73
|
+
### 방법 2: 저장소 클론
|
|
105
74
|
|
|
106
75
|
```bash
|
|
107
|
-
# 저장소 클론
|
|
108
76
|
git clone https://github.com/silbaram/artifact-driven-agent.git
|
|
109
77
|
cd artifact-driven-agent
|
|
110
78
|
npm install
|
|
111
79
|
npm link # 전역 명령어 등록
|
|
112
80
|
```
|
|
113
81
|
|
|
114
|
-
###
|
|
82
|
+
### 설치 확인
|
|
115
83
|
|
|
116
84
|
```bash
|
|
117
|
-
|
|
118
|
-
ada
|
|
119
|
-
|
|
120
|
-
# 또는 직접 지정
|
|
121
|
-
ada setup web # 웹 서비스 개발 (web-dev 별칭)
|
|
122
|
-
ada setup library # 라이브러리 개발 (lib 별칭)
|
|
123
|
-
ada setup game # 게임 개발
|
|
124
|
-
ada setup cli # CLI 도구 개발
|
|
85
|
+
ada --version
|
|
86
|
+
ada --help
|
|
125
87
|
```
|
|
126
88
|
|
|
127
|
-
|
|
128
|
-
> ```powershell
|
|
129
|
-
> # 현재 세션에서만 실행 허용
|
|
130
|
-
> Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
|
|
131
|
-
> ```
|
|
89
|
+
---
|
|
132
90
|
|
|
133
|
-
|
|
91
|
+
## 🖥️ CLI 명령어 상세
|
|
134
92
|
|
|
135
|
-
|
|
136
|
-
# 대화형으로 역할/도구 선택
|
|
137
|
-
ada
|
|
93
|
+
### 전체 명령어 요약
|
|
138
94
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
ada
|
|
142
|
-
ada
|
|
143
|
-
|
|
95
|
+
| 명령어 | 설명 |
|
|
96
|
+
|--------|------|
|
|
97
|
+
| `ada` | 대화형 모드 |
|
|
98
|
+
| `ada setup [template]` | 템플릿 세팅 |
|
|
99
|
+
| `ada status` | 상태 확인 |
|
|
100
|
+
| `ada reset [-f]` | 초기화 |
|
|
101
|
+
| `ada validate [doc]` | 문서 검증 |
|
|
102
|
+
| `ada sessions` | 세션 목록 |
|
|
103
|
+
| `ada logs [id]` | 로그 확인 |
|
|
104
|
+
| `ada run <role> <tool>` | AI 실행 |
|
|
105
|
+
| `ada <role> <tool>` | AI 실행 (단축) |
|
|
144
106
|
|
|
145
107
|
---
|
|
146
108
|
|
|
147
|
-
|
|
109
|
+
### `ada setup` - 프로젝트 세팅
|
|
148
110
|
|
|
149
|
-
|
|
111
|
+
**소스:** `src/commands/setup.js`
|
|
150
112
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
113
|
+
템플릿을 선택하여 ai-dev-team 디렉토리를 구성합니다.
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# 대화형 선택
|
|
117
|
+
ada setup
|
|
118
|
+
|
|
119
|
+
# 직접 지정
|
|
120
|
+
ada setup web # 웹 서비스 (web-dev 별칭)
|
|
121
|
+
ada setup lib # 라이브러리 (library 별칭)
|
|
122
|
+
ada setup game # 게임
|
|
123
|
+
ada setup cli # CLI 도구
|
|
124
|
+
```
|
|
157
125
|
|
|
158
|
-
|
|
126
|
+
**동작:**
|
|
127
|
+
1. `core/` 디렉토리의 공통 roles, artifacts, rules 복사
|
|
128
|
+
2. 선택한 템플릿의 전용 파일 병합
|
|
129
|
+
3. Feature/RFC 템플릿 복사
|
|
130
|
+
4. `.current-template` 파일에 현재 템플릿 저장
|
|
159
131
|
|
|
160
|
-
|
|
161
|
-
| --------------- | --------------------------------- |
|
|
162
|
-
| (인자 없음) | 대화형으로 역할/도구 선택 후 실행 |
|
|
163
|
-
| `<role> <tool>` | 직접 역할과 도구 지정해서 실행 |
|
|
132
|
+
---
|
|
164
133
|
|
|
165
|
-
###
|
|
134
|
+
### `ada status` - 상태 확인
|
|
166
135
|
|
|
167
|
-
|
|
168
|
-
| ------------------- | ----------------------------------------- |
|
|
169
|
-
| `validate` | 산출물 문서 검증 (plan.md, project.md 등) |
|
|
170
|
-
| `sessions` | AI 실행 세션 목록 |
|
|
171
|
-
| `logs` | 가장 최근 세션 로그 확인 |
|
|
172
|
-
| `logs <session-id>` | 특정 세션 로그 확인 |
|
|
136
|
+
**소스:** `src/commands/status.js`
|
|
173
137
|
|
|
174
|
-
|
|
138
|
+
현재 세팅 상태를 확인합니다.
|
|
175
139
|
|
|
176
140
|
```bash
|
|
177
|
-
# 웹 개발로 세팅
|
|
178
|
-
ada setup web
|
|
179
|
-
|
|
180
|
-
# 현재 상태 확인
|
|
181
141
|
ada status
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**출력 내용:**
|
|
145
|
+
- 현재 템플릿
|
|
146
|
+
- 역할 목록
|
|
147
|
+
- 산출물 목록 (상태 표시: Draft/Confirmed/Frozen)
|
|
148
|
+
- 규칙 목록
|
|
149
|
+
|
|
150
|
+
---
|
|
182
151
|
|
|
183
|
-
|
|
152
|
+
### `ada validate` - 문서 검증
|
|
153
|
+
|
|
154
|
+
**소스:** `src/commands/validate.js`
|
|
155
|
+
|
|
156
|
+
산출물 문서의 완성도를 자동 검사합니다.
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
# 전체 검증
|
|
184
160
|
ada validate
|
|
185
161
|
|
|
186
|
-
#
|
|
162
|
+
# 특정 문서만
|
|
163
|
+
ada validate plan
|
|
164
|
+
ada validate project
|
|
165
|
+
ada validate backlog
|
|
166
|
+
ada validate sprint
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**검사 항목:**
|
|
170
|
+
|
|
171
|
+
| 문서 | 검사 내용 |
|
|
172
|
+
|------|----------|
|
|
173
|
+
| plan.md | 필수 섹션(서비스 개요, 기능 목록, 비기능 요구사항), TBD 3개 이하 |
|
|
174
|
+
| project.md | 필수 섹션(프로젝트 규모, 기술 스택), Frozen 상태, 버전 형식 |
|
|
175
|
+
| backlog.md | Task 개수, 수용 조건 존재 |
|
|
176
|
+
| current-sprint.md | 스프린트 번호, 목표 섹션 |
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
### `ada run` / `ada <role> <tool>` - AI 에이전트 실행
|
|
181
|
+
|
|
182
|
+
**소스:** `src/commands/run.js`
|
|
183
|
+
|
|
184
|
+
특정 역할로 AI 도구를 실행합니다.
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
# 정식 명령어
|
|
188
|
+
ada run backend claude
|
|
189
|
+
ada run planner codex
|
|
190
|
+
|
|
191
|
+
# 단축 명령어 (run 생략)
|
|
187
192
|
ada backend claude
|
|
193
|
+
ada planner codex
|
|
194
|
+
ada frontend gemini
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
**지원 역할:**
|
|
198
|
+
- Core: planner, architect, developer, reviewer, qa, manager
|
|
199
|
+
- 템플릿별: backend, frontend, library-developer, game-logic, rendering, cli-developer
|
|
188
200
|
|
|
189
|
-
|
|
201
|
+
**지원 도구:** claude, codex, gemini, copilot
|
|
202
|
+
|
|
203
|
+
**동작:**
|
|
204
|
+
1. 세션 ID 생성 (YYYYMMDD-HHMMSS-random)
|
|
205
|
+
2. 역할 파일 로드 → 시스템 프롬프트 생성
|
|
206
|
+
3. AI CLI 도구 실행 또는 프롬프트 출력
|
|
207
|
+
4. 세션/로그 기록
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
### `ada sessions` - 세션 목록
|
|
212
|
+
|
|
213
|
+
**소스:** `src/commands/sessions.js`
|
|
214
|
+
|
|
215
|
+
AI 에이전트 실행 이력을 확인합니다.
|
|
216
|
+
|
|
217
|
+
```bash
|
|
190
218
|
ada sessions
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
---
|
|
191
222
|
|
|
192
|
-
|
|
223
|
+
### `ada logs` - 로그 확인
|
|
224
|
+
|
|
225
|
+
**소스:** `src/commands/logs.js`
|
|
226
|
+
|
|
227
|
+
세션별 상세 로그를 확인합니다.
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
# 최근 세션 로그
|
|
193
231
|
ada logs
|
|
232
|
+
|
|
233
|
+
# 특정 세션 로그
|
|
234
|
+
ada logs 20241228-143022-a1b2c3d4
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
### `ada reset` - 초기화
|
|
240
|
+
|
|
241
|
+
**소스:** `src/commands/reset.js`
|
|
242
|
+
|
|
243
|
+
ai-dev-team 디렉토리를 초기 상태로 되돌립니다.
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
# 확인 후 초기화
|
|
247
|
+
ada reset
|
|
248
|
+
|
|
249
|
+
# 강제 초기화
|
|
250
|
+
ada reset --force
|
|
251
|
+
ada reset -f
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
### `ada` (인자 없음) - 대화형 모드
|
|
257
|
+
|
|
258
|
+
**소스:** `src/commands/interactive.js`
|
|
259
|
+
|
|
260
|
+
대화형으로 역할과 도구를 선택합니다.
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
ada
|
|
194
264
|
```
|
|
195
265
|
|
|
266
|
+
**동작:**
|
|
267
|
+
1. 세팅 안 됐으면 setup 제안
|
|
268
|
+
2. 역할 선택 (목록 표시)
|
|
269
|
+
3. 도구 선택 (목록 표시)
|
|
270
|
+
4. AI 에이전트 실행
|
|
271
|
+
|
|
196
272
|
---
|
|
197
273
|
|
|
198
274
|
## 👥 역할 (Roles)
|
|
199
275
|
|
|
200
|
-
### Core 역할 (
|
|
276
|
+
### Core 역할 (6개)
|
|
201
277
|
|
|
202
|
-
| 역할
|
|
203
|
-
|
|
204
|
-
| Planner
|
|
205
|
-
| Architect | architect.md | 규모 예측, 기술 스택
|
|
206
|
-
| Developer | developer.md | 코드 구현 (범용)
|
|
207
|
-
| Reviewer
|
|
208
|
-
| QA
|
|
209
|
-
| Manager
|
|
278
|
+
| 역할 | 파일 | 책임 |
|
|
279
|
+
|------|------|------|
|
|
280
|
+
| **Planner** | planner.md | 요구사항 수집, Task 분해, plan.md/backlog.md 작성 |
|
|
281
|
+
| **Architect** | architect.md | 규모 예측, 기술 스택 결정, project.md 작성 |
|
|
282
|
+
| **Developer** | developer.md | 코드 구현 (범용) |
|
|
283
|
+
| **Reviewer** | reviewer.md | 코드 리뷰, PASS/REJECT 판정 |
|
|
284
|
+
| **QA** | qa.md | 수용 조건 검증, PASS/FAIL 판정 |
|
|
285
|
+
| **Manager** | manager.md | 스프린트 관리, 승인, 에스컬레이션 처리 |
|
|
210
286
|
|
|
211
287
|
### 템플릿별 특화 역할
|
|
212
288
|
|
|
213
|
-
| 템플릿
|
|
214
|
-
|
|
215
|
-
| web
|
|
216
|
-
| web
|
|
289
|
+
| 템플릿 | 역할 | 책임 |
|
|
290
|
+
|--------|------|------|
|
|
291
|
+
| web-dev | backend | API 설계, 서버 구현 |
|
|
292
|
+
| web-dev | frontend | UI 구현, API 연동 |
|
|
217
293
|
| library | library-developer | 공개 API 설계, 버전 관리 |
|
|
218
|
-
| game
|
|
219
|
-
| game
|
|
220
|
-
| cli
|
|
294
|
+
| game | game-logic | 게임 시스템 설계 |
|
|
295
|
+
| game | rendering | 화면/이펙트 구현 |
|
|
296
|
+
| cli | cli-developer | 명령어 설계, 출력 형식 |
|
|
221
297
|
|
|
222
298
|
---
|
|
223
299
|
|
|
224
300
|
## 📄 산출물 (Artifacts)
|
|
225
301
|
|
|
226
|
-
### Core 산출물
|
|
302
|
+
### Core 산출물 (8개)
|
|
227
303
|
|
|
228
|
-
| 문서
|
|
229
|
-
|
|
230
|
-
| plan.md
|
|
231
|
-
| project.md
|
|
232
|
-
| backlog.md
|
|
233
|
-
| current-sprint.md
|
|
234
|
-
| decision.md
|
|
235
|
-
| architecture-options.md | 아키텍처
|
|
236
|
-
| review-report.md
|
|
237
|
-
| qa-report.md
|
|
304
|
+
| 문서 | 용도 | 관리자 | 상태 |
|
|
305
|
+
|------|------|--------|------|
|
|
306
|
+
| plan.md | 기획서 | Planner | Draft → Confirmed |
|
|
307
|
+
| project.md | 기술 기준 | Architect | Draft → **Frozen** |
|
|
308
|
+
| backlog.md | Task 목록 | Planner, Manager | - |
|
|
309
|
+
| current-sprint.md | 현재 스프린트 | Manager | - |
|
|
310
|
+
| decision.md | 판단 기록 (최우선) | Manager | - |
|
|
311
|
+
| architecture-options.md | 아키텍처 옵션 | Architect | - |
|
|
312
|
+
| review-report.md | 리뷰 결과 | Reviewer | - |
|
|
313
|
+
| qa-report.md | QA 결과 | QA | - |
|
|
238
314
|
|
|
239
315
|
### 템플릿별 산출물
|
|
240
316
|
|
|
241
|
-
| 템플릿
|
|
242
|
-
|
|
243
|
-
| web
|
|
244
|
-
|
|
|
245
|
-
|
|
|
246
|
-
|
|
|
247
|
-
| library | changelog.md | 버전 변경 이력 |
|
|
248
|
-
| game | game-systems.md | 게임 시스템 |
|
|
249
|
-
| game | assets.md | 에셋 목록 |
|
|
250
|
-
| game | hud.md | HUD/UI 설계 |
|
|
251
|
-
| cli | commands.md | 명령어 정의 |
|
|
252
|
-
| cli | output-format.md | 출력 형식 |
|
|
317
|
+
| 템플릿 | 문서 | 용도 |
|
|
318
|
+
|--------|------|------|
|
|
319
|
+
| web-dev | api.md, ui.md | API 계약, 화면 설계 |
|
|
320
|
+
| library | public-api.md, examples.md, changelog.md | 공개 API, 예제, 변경 이력 |
|
|
321
|
+
| game | game-systems.md, assets.md, hud.md | 시스템, 에셋, HUD |
|
|
322
|
+
| cli | commands.md, output-format.md | 명령어, 출력 형식 |
|
|
253
323
|
|
|
254
324
|
---
|
|
255
325
|
|
|
256
|
-
## 📋 규칙 (Rules)
|
|
326
|
+
## 📋 규칙 (Rules) 전체 상세
|
|
257
327
|
|
|
258
|
-
### Core 규칙
|
|
328
|
+
### Core 규칙 (5개)
|
|
259
329
|
|
|
260
|
-
|
|
261
|
-
| -------------------- | ----------------------- |
|
|
262
|
-
| iteration.md | 스프린트/Task 단위 작업 |
|
|
263
|
-
| escalation.md | Manager 보고 기준 |
|
|
264
|
-
| rollback.md | REJECT/FAIL 시 되돌림 |
|
|
265
|
-
| document-priority.md | 문서 충돌 해결 |
|
|
266
|
-
| rfc.md | Frozen 문서 변경 절차 |
|
|
267
|
-
|
|
268
|
-
### 템플릿별 규칙
|
|
330
|
+
---
|
|
269
331
|
|
|
270
|
-
|
|
271
|
-
| ------- | ----------------- | ------------------- |
|
|
272
|
-
| web | api-change.md | API 변경 절차 |
|
|
273
|
-
| library | versioning.md | Semantic Versioning |
|
|
274
|
-
| game | system-change.md | 게임 시스템 변경 |
|
|
275
|
-
| cli | command-change.md | 명령어 변경 절차 |
|
|
332
|
+
#### 1. `iteration.md` - 스프린트/Task 단위 작업
|
|
276
333
|
|
|
277
|
-
|
|
334
|
+
**위치:** `core/rules/iteration.md`
|
|
278
335
|
|
|
279
|
-
|
|
336
|
+
Task 단위 반복 개발 규칙을 정의합니다.
|
|
280
337
|
|
|
281
|
-
|
|
338
|
+
**핵심 원칙:**
|
|
282
339
|
|
|
283
340
|
```
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
↓
|
|
290
|
-
[Sprint Loop]
|
|
291
|
-
Developer → Reviewer → QA → Manager (Task 완료)
|
|
292
|
-
↓
|
|
293
|
-
Manager (스프린트 종료)
|
|
294
|
-
↓
|
|
295
|
-
(다음 스프린트 또는 완료)
|
|
341
|
+
❌ 잘못된 방식 (Waterfall)
|
|
342
|
+
전체 기획 → 전체 설계 → 전체 개발 → 전체 테스트
|
|
343
|
+
|
|
344
|
+
✅ 올바른 방식 (Iterative)
|
|
345
|
+
Task 1 완성 → Task 2 완성 → Task 3 완성 → ...
|
|
296
346
|
```
|
|
297
347
|
|
|
298
|
-
|
|
348
|
+
**작업 범위 제한:**
|
|
349
|
+
- `current-sprint.md`에 정의된 Task만 작업
|
|
350
|
+
- 스프린트 외 작업 금지 (Manager 승인 없이)
|
|
351
|
+
- "김에" 작업 금지
|
|
352
|
+
|
|
353
|
+
**Task 완료 조건:**
|
|
354
|
+
- [ ] 수용 조건 100% 충족
|
|
355
|
+
- [ ] Reviewer PASS
|
|
356
|
+
- [ ] QA PASS
|
|
357
|
+
- [ ] Manager 확인
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
#### 2. `escalation.md` - Manager 보고 기준
|
|
362
|
+
|
|
363
|
+
**위치:** `core/rules/escalation.md`
|
|
364
|
+
|
|
365
|
+
Manager에게 보고해야 하는 상황을 정의합니다.
|
|
366
|
+
|
|
367
|
+
**에스컬레이션 원칙:**
|
|
368
|
+
- 판단 불가 시 → 즉시 에스컬레이션
|
|
369
|
+
- 규칙 외 상황 → 즉시 에스컬레이션
|
|
370
|
+
- 혼자 결정하지 않음
|
|
371
|
+
|
|
372
|
+
**즉시 에스컬레이션 (BLOCK):**
|
|
373
|
+
|
|
374
|
+
| 상황 | 예시 |
|
|
375
|
+
|------|------|
|
|
376
|
+
| project.md에 없는 기술 필요 | 새 라이브러리 도입 필요 |
|
|
377
|
+
| 요구사항 모호/충돌 | plan.md 해석 불가 |
|
|
378
|
+
| 문서 간 충돌 | plan.md ↔ project.md 불일치 |
|
|
379
|
+
| 역할 간 해석 불일치 | 같은 문서 다르게 해석 |
|
|
380
|
+
| 구현 불가능 판단 | 기술적으로 불가 |
|
|
381
|
+
| 보안/안전 이슈 | 심각한 취약점 발견 |
|
|
382
|
+
|
|
383
|
+
**보고 사항 (REPORT):**
|
|
384
|
+
- 예상보다 규모가 큼
|
|
385
|
+
- 의존성 문제 발견
|
|
386
|
+
- 일정 지연 예상
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
#### 3. `rollback.md` - REJECT/FAIL 시 되돌림
|
|
391
|
+
|
|
392
|
+
**위치:** `core/rules/rollback.md`
|
|
393
|
+
|
|
394
|
+
REJECT/FAIL 발생 시 처리 절차를 정의합니다.
|
|
395
|
+
|
|
396
|
+
**되돌림 원칙:**
|
|
397
|
+
- REJECT/FAIL은 정상적인 피드백
|
|
398
|
+
- 되돌림 시 원인 분석 필수
|
|
399
|
+
- 반복 되돌림 시 프로세스 점검
|
|
400
|
+
|
|
401
|
+
**Reviewer REJECT 처리:**
|
|
402
|
+
|
|
403
|
+
| REJECT 유형 | 되돌림 대상 | Manager 개입 |
|
|
404
|
+
|-------------|------------|:------------:|
|
|
405
|
+
| 수용 조건 미충족 | Developer | 불필요 |
|
|
406
|
+
| project.md 규칙 위반 | Developer | 불필요 |
|
|
407
|
+
| 구조적 문제 | Architect | 필요 |
|
|
408
|
+
| 설계 수준 문제 | Architect | 필요 |
|
|
409
|
+
|
|
410
|
+
**QA FAIL 처리:**
|
|
411
|
+
|
|
412
|
+
| FAIL 유형 | 되돌림 대상 |
|
|
413
|
+
|-----------|------------|
|
|
414
|
+
| 버그 | Developer |
|
|
415
|
+
| 수용 조건 오해 | Planner |
|
|
416
|
+
| 설계 문제 | Architect |
|
|
417
|
+
|
|
418
|
+
**3회 반복 시:** Manager가 원인 분석 후 프로세스 점검
|
|
419
|
+
|
|
420
|
+
---
|
|
421
|
+
|
|
422
|
+
#### 4. `document-priority.md` - 문서 충돌 해결
|
|
423
|
+
|
|
424
|
+
**위치:** `core/rules/document-priority.md`
|
|
425
|
+
|
|
426
|
+
문서 간 충돌 시 우선순위를 정의합니다.
|
|
427
|
+
|
|
428
|
+
**우선순위 (높은 순):**
|
|
299
429
|
|
|
300
430
|
```
|
|
301
|
-
|
|
431
|
+
1. decision.md ← Manager 판단 (최우선)
|
|
432
|
+
2. project.md ← 기술 기준 (Frozen)
|
|
433
|
+
3. plan.md ← 요구사항 기준
|
|
434
|
+
4. backlog.md ← Task/수용 조건
|
|
435
|
+
5. 인터페이스 문서 ← api.md, ui.md 등
|
|
436
|
+
6. current-sprint.md ← 현재 범위
|
|
437
|
+
7. architecture-options.md
|
|
438
|
+
8. review/qa-report.md
|
|
302
439
|
```
|
|
303
440
|
|
|
441
|
+
**충돌 해결:**
|
|
442
|
+
- 상위 문서가 정답
|
|
443
|
+
- 하위 문서를 상위에 맞게 수정
|
|
444
|
+
- 수정 불가 시 Manager 에스컬레이션
|
|
445
|
+
|
|
304
446
|
---
|
|
305
447
|
|
|
306
|
-
|
|
448
|
+
#### 5. `rfc.md` - Frozen 문서 변경 절차
|
|
307
449
|
|
|
308
|
-
|
|
450
|
+
**위치:** `core/rules/rfc.md`
|
|
309
451
|
|
|
310
|
-
|
|
452
|
+
Frozen 상태 문서 변경을 위한 공식 절차입니다.
|
|
311
453
|
|
|
454
|
+
**RFC 필요 상황:**
|
|
312
455
|
- project.md 변경
|
|
313
456
|
- plan.md의 확정된 기능 범위 변경
|
|
314
457
|
- decision.md 항목 번복
|
|
315
458
|
|
|
316
|
-
|
|
459
|
+
**RFC 절차:**
|
|
317
460
|
|
|
318
|
-
|
|
461
|
+
```
|
|
462
|
+
1. RFC 문서 작성 (ai-dev-team/artifacts/rfc/RFC-NNNN-title.md)
|
|
319
463
|
2. Manager 리뷰
|
|
320
464
|
3. 승인/거부 결정
|
|
321
465
|
4. 승인 시: 문서 업데이트 + decision.md 기록
|
|
466
|
+
```
|
|
322
467
|
|
|
323
|
-
|
|
468
|
+
**RFC 상태:**
|
|
469
|
+
|
|
470
|
+
| 상태 | 설명 |
|
|
471
|
+
|------|------|
|
|
472
|
+
| Draft | 작성 중 |
|
|
473
|
+
| Under Review | 리뷰 중 |
|
|
474
|
+
| Approved | 승인됨 |
|
|
475
|
+
| Rejected | 거부됨 |
|
|
476
|
+
|
|
477
|
+
**긴급 변경:**
|
|
478
|
+
- 보안 취약점, 심각한 버그 등
|
|
479
|
+
- 구두 승인 후 적용
|
|
480
|
+
- 24시간 내 RFC 사후 작성
|
|
324
481
|
|
|
325
482
|
---
|
|
326
483
|
|
|
327
|
-
|
|
484
|
+
### 템플릿별 규칙
|
|
485
|
+
|
|
486
|
+
---
|
|
328
487
|
|
|
329
|
-
|
|
488
|
+
#### `api-change.md` (web-dev)
|
|
330
489
|
|
|
331
|
-
|
|
332
|
-
ai-dev-team/artifacts/features/
|
|
333
|
-
├── F001-user-auth/
|
|
334
|
-
│ ├── spec.md # Feature 스펙
|
|
335
|
-
│ ├── api.md # Feature API
|
|
336
|
-
│ ├── ui.md # Feature UI
|
|
337
|
-
│ ├── review.md # 리뷰 기록
|
|
338
|
-
│ └── qa.md # QA 기록
|
|
339
|
-
└── _template/ # 템플릿
|
|
340
|
-
```
|
|
490
|
+
**위치:** `templates/web-dev/rules/api-change.md`
|
|
341
491
|
|
|
342
|
-
|
|
492
|
+
REST API 변경 절차를 정의합니다.
|
|
493
|
+
|
|
494
|
+
**변경 유형:**
|
|
495
|
+
|
|
496
|
+
| 유형 | 예시 | 승인 필요 |
|
|
497
|
+
|------|------|:--------:|
|
|
498
|
+
| 추가 | 새 엔드포인트 | 불필요 |
|
|
499
|
+
| 수정 (호환) | 선택 필드 추가 | 불필요 |
|
|
500
|
+
| 수정 (Breaking) | 필수 필드 추가, 삭제 | **Manager 승인** |
|
|
501
|
+
| 삭제 | 엔드포인트 제거 | **Manager 승인** |
|
|
502
|
+
|
|
503
|
+
**Breaking Change 절차:**
|
|
504
|
+
1. api.md에 Deprecated 표시
|
|
505
|
+
2. RFC 작성
|
|
506
|
+
3. Manager 승인
|
|
507
|
+
4. 마이그레이션 가이드 작성
|
|
508
|
+
5. 변경 적용
|
|
343
509
|
|
|
344
510
|
---
|
|
345
511
|
|
|
346
|
-
|
|
512
|
+
#### `versioning.md` (library)
|
|
347
513
|
|
|
348
|
-
|
|
514
|
+
**위치:** `templates/library/rules/versioning.md`
|
|
349
515
|
|
|
350
|
-
|
|
351
|
-
ada validate
|
|
352
|
-
```
|
|
516
|
+
Semantic Versioning 규칙을 정의합니다.
|
|
353
517
|
|
|
354
|
-
|
|
518
|
+
**버전 형식:** `MAJOR.MINOR.PATCH`
|
|
355
519
|
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
520
|
+
| 변경 유형 | 버전 증가 | 예시 |
|
|
521
|
+
|----------|----------|------|
|
|
522
|
+
| Breaking Change | MAJOR | 1.0.0 → 2.0.0 |
|
|
523
|
+
| 새 기능 (호환) | MINOR | 1.0.0 → 1.1.0 |
|
|
524
|
+
| 버그 수정 | PATCH | 1.0.0 → 1.0.1 |
|
|
525
|
+
|
|
526
|
+
**changelog.md 필수 기록:**
|
|
527
|
+
- 변경 내용
|
|
528
|
+
- Breaking Change 여부
|
|
529
|
+
- 마이그레이션 가이드 (필요 시)
|
|
360
530
|
|
|
361
531
|
---
|
|
362
532
|
|
|
363
|
-
|
|
533
|
+
#### `system-change.md` (game)
|
|
364
534
|
|
|
365
|
-
|
|
535
|
+
**위치:** `templates/game/rules/system-change.md`
|
|
366
536
|
|
|
367
|
-
|
|
368
|
-
# 세션 목록
|
|
369
|
-
ada sessions
|
|
537
|
+
게임 시스템 변경 절차를 정의합니다.
|
|
370
538
|
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
539
|
+
**변경 영향 분석 필수:**
|
|
540
|
+
- 밸런스 영향
|
|
541
|
+
- 다른 시스템 의존성
|
|
542
|
+
- 저장 데이터 호환성
|
|
543
|
+
|
|
544
|
+
**변경 유형:**
|
|
545
|
+
|
|
546
|
+
| 유형 | 승인 필요 |
|
|
547
|
+
|------|:--------:|
|
|
548
|
+
| 수치 조정 (10% 이내) | 불필요 |
|
|
549
|
+
| 수치 조정 (10% 초과) | QA 확인 |
|
|
550
|
+
| 시스템 로직 변경 | **Manager 승인** |
|
|
551
|
+
| 새 시스템 추가 | **Architect 설계** |
|
|
552
|
+
|
|
553
|
+
---
|
|
554
|
+
|
|
555
|
+
#### `command-change.md` (cli)
|
|
556
|
+
|
|
557
|
+
**위치:** `templates/cli/rules/command-change.md`
|
|
558
|
+
|
|
559
|
+
CLI 명령어 변경 절차를 정의합니다.
|
|
560
|
+
|
|
561
|
+
**하위 호환성 원칙:**
|
|
562
|
+
- 기존 명령어 삭제 금지 (Deprecated 후 다음 메이저 버전)
|
|
563
|
+
- 기존 옵션 동작 변경 금지
|
|
564
|
+
- 출력 형식 변경 시 --format 옵션 제공
|
|
565
|
+
|
|
566
|
+
**변경 유형:**
|
|
567
|
+
|
|
568
|
+
| 유형 | 승인 필요 |
|
|
569
|
+
|------|:--------:|
|
|
570
|
+
| 새 명령어 추가 | 불필요 |
|
|
571
|
+
| 새 옵션 추가 | 불필요 |
|
|
572
|
+
| 명령어 Deprecated | **Manager 승인** |
|
|
573
|
+
| 출력 형식 변경 | QA 확인 |
|
|
574
|
+
|
|
575
|
+
---
|
|
576
|
+
|
|
577
|
+
## 🔄 워크플로우
|
|
578
|
+
|
|
579
|
+
### 전체 흐름
|
|
580
|
+
|
|
581
|
+
```
|
|
582
|
+
Planner (plan.md + backlog.md)
|
|
583
|
+
↓
|
|
584
|
+
Architect (project.md → Frozen)
|
|
585
|
+
↓
|
|
586
|
+
Manager (스프린트 시작)
|
|
587
|
+
↓
|
|
588
|
+
[Sprint Loop]
|
|
589
|
+
Developer → Reviewer → QA → Manager (Task 완료)
|
|
590
|
+
↓
|
|
591
|
+
Manager (스프린트 종료)
|
|
592
|
+
↓
|
|
593
|
+
(다음 스프린트 또는 완료)
|
|
374
594
|
```
|
|
375
595
|
|
|
376
|
-
###
|
|
596
|
+
### Task 상태 흐름
|
|
377
597
|
|
|
378
598
|
```
|
|
379
|
-
|
|
380
|
-
예: 20241227-143022-a1b2c3d4
|
|
599
|
+
BACKLOG → READY → IN_SPRINT → IN_DEV → IN_REVIEW → IN_QA → DONE
|
|
381
600
|
```
|
|
382
601
|
|
|
383
602
|
---
|
|
384
603
|
|
|
385
|
-
##
|
|
386
|
-
|
|
387
|
-
`examples/todo-app/`에 완성된 예제가 있습니다.
|
|
604
|
+
## 📦 Feature 단위 구조 (대규모)
|
|
388
605
|
|
|
389
|
-
|
|
390
|
-
- 기간: 1주일
|
|
391
|
-
- 완료된 산출물: plan.md, project.md, backlog.md
|
|
606
|
+
규모 M 이상, 기능 3개 이상일 때 사용합니다.
|
|
392
607
|
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
608
|
+
```
|
|
609
|
+
ai-dev-team/artifacts/features/
|
|
610
|
+
├── F001-user-auth/
|
|
611
|
+
│ ├── spec.md
|
|
612
|
+
│ ├── api.md
|
|
613
|
+
│ ├── ui.md
|
|
614
|
+
│ ├── review.md
|
|
615
|
+
│ └── qa.md
|
|
616
|
+
└── _template/
|
|
617
|
+
```
|
|
397
618
|
|
|
398
619
|
---
|
|
399
620
|
|
|
400
621
|
## 📊 템플릿 비교
|
|
401
622
|
|
|
402
|
-
| 항목
|
|
403
|
-
|
|
404
|
-
| 개발자 역할 |
|
|
405
|
-
| API 계약
|
|
406
|
-
| 버전 관리
|
|
407
|
-
| 에셋 관리
|
|
408
|
-
| UI/UX 문서
|
|
623
|
+
| 항목 | web-dev | library | game | cli |
|
|
624
|
+
|------|:-------:|:-------:|:----:|:---:|
|
|
625
|
+
| 개발자 역할 | 2개 | 1개 | 2개 | 1개 |
|
|
626
|
+
| API 계약 | ✅ | ✅ | - | ✅ |
|
|
627
|
+
| 버전 관리 | - | ✅ | - | ✅ |
|
|
628
|
+
| 에셋 관리 | - | - | ✅ | - |
|
|
629
|
+
| UI/UX 문서 | ✅ | - | ✅ | ✅ |
|
|
409
630
|
|
|
410
631
|
---
|
|
411
632
|
|
|
@@ -417,40 +638,17 @@ YYYYMMDD-HHMMSS-<random>
|
|
|
417
638
|
- ❌ 기준 없는 판단
|
|
418
639
|
- ❌ 감으로 추가된 기술
|
|
419
640
|
- ❌ 스프린트 외 작업
|
|
420
|
-
- ❌
|
|
641
|
+
- ❌ Frozen 문서 무단 변경
|
|
421
642
|
|
|
422
643
|
### 필수 사항
|
|
423
644
|
|
|
424
645
|
- ✅ 문서 기준 판단
|
|
425
646
|
- ✅ 역할별 책임 분리
|
|
426
647
|
- ✅ Task 단위 반복 개발
|
|
427
|
-
- ✅
|
|
428
|
-
|
|
429
|
-
---
|
|
430
|
-
|
|
431
|
-
## 📚 추가 정보
|
|
432
|
-
|
|
433
|
-
### 문서 우선순위
|
|
434
|
-
|
|
435
|
-
```
|
|
436
|
-
decision.md > project.md > plan.md > backlog.md > 인터페이스 문서
|
|
437
|
-
```
|
|
438
|
-
|
|
439
|
-
### 에스컬레이션 기준
|
|
440
|
-
|
|
441
|
-
- project.md에 없는 기술 필요 → BLOCK
|
|
442
|
-
- 요구사항 모호 → BLOCK
|
|
443
|
-
- 예상보다 규모 큼 → 보고
|
|
444
|
-
|
|
445
|
-
### 되돌림 규칙
|
|
446
|
-
|
|
447
|
-
- Reviewer REJECT → Developer 수정
|
|
448
|
-
- QA FAIL → 원인에 따라 대상 결정
|
|
449
|
-
- 3회 반복 → Manager 개입
|
|
648
|
+
- ✅ 변경 시 RFC 절차
|
|
450
649
|
|
|
451
650
|
---
|
|
452
651
|
|
|
453
|
-
##
|
|
652
|
+
## 📄 라이선스
|
|
454
653
|
|
|
455
|
-
|
|
456
|
-
새로운 템플릿이나 규칙 개선 제안은 언제나 환영합니다.
|
|
654
|
+
MIT License
|