@silbaram/artifact-driven-agent 0.1.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/README.md +456 -0
- package/ai-dev-team/.gitkeep +0 -0
- package/ai-dev-team/README.md +44 -0
- package/ai-dev-team/artifacts/.gitkeep +0 -0
- package/ai-dev-team/artifacts/features/_template/api.md +19 -0
- package/ai-dev-team/artifacts/features/_template/qa.md +16 -0
- package/ai-dev-team/artifacts/features/_template/review.md +14 -0
- package/ai-dev-team/artifacts/features/_template/spec.md +28 -0
- package/ai-dev-team/artifacts/features/_template/ui.md +14 -0
- package/ai-dev-team/artifacts/rfc/RFC-0000-template.md +49 -0
- package/ai-dev-team/roles/.gitkeep +0 -0
- package/ai-dev-team/rules/.gitkeep +0 -0
- package/bin/cli.js +75 -0
- package/core/artifacts/architecture-options.md +85 -0
- package/core/artifacts/backlog.md +177 -0
- package/core/artifacts/current-sprint.md +125 -0
- package/core/artifacts/decision.md +72 -0
- package/core/artifacts/plan.md +187 -0
- package/core/artifacts/project.md +191 -0
- package/core/artifacts/qa-report.md +104 -0
- package/core/artifacts/review-report.md +103 -0
- package/core/roles/architect.md +236 -0
- package/core/roles/developer.md +203 -0
- package/core/roles/manager.md +300 -0
- package/core/roles/planner.md +231 -0
- package/core/roles/qa.md +262 -0
- package/core/roles/reviewer.md +280 -0
- package/core/rules/document-priority.md +196 -0
- package/core/rules/escalation.md +171 -0
- package/core/rules/iteration.md +236 -0
- package/core/rules/rfc.md +31 -0
- package/core/rules/rollback.md +218 -0
- package/docs/feature-structure.md +36 -0
- package/examples/todo-app/README.md +23 -0
- package/examples/todo-app/artifacts/backlog.md +23 -0
- package/examples/todo-app/artifacts/plan.md +23 -0
- package/examples/todo-app/artifacts/project.md +23 -0
- package/package.json +49 -0
- package/src/commands/interactive.js +101 -0
- package/src/commands/logs.js +81 -0
- package/src/commands/reset.js +66 -0
- package/src/commands/run.js +202 -0
- package/src/commands/sessions.js +70 -0
- package/src/commands/setup.js +128 -0
- package/src/commands/status.js +76 -0
- package/src/commands/validate.js +219 -0
- package/src/index.js +12 -0
- package/src/utils/files.js +134 -0
- package/templates/cli/artifacts/commands.md +262 -0
- package/templates/cli/artifacts/output-format.md +298 -0
- package/templates/cli/roles/cli-developer.md +239 -0
- package/templates/cli/rules/command-change.md +225 -0
- package/templates/game/artifacts/assets.md +148 -0
- package/templates/game/artifacts/game-systems.md +217 -0
- package/templates/game/artifacts/hud.md +199 -0
- package/templates/game/roles/game-logic.md +193 -0
- package/templates/game/roles/rendering.md +137 -0
- package/templates/game/rules/system-change.md +184 -0
- package/templates/library/artifacts/changelog.md +84 -0
- package/templates/library/artifacts/examples.md +157 -0
- package/templates/library/artifacts/public-api.md +197 -0
- package/templates/library/roles/library-developer.md +180 -0
- package/templates/library/rules/versioning.md +186 -0
- package/templates/web-dev/artifacts/api.md +212 -0
- package/templates/web-dev/artifacts/ui.md +104 -0
- package/templates/web-dev/roles/backend.md +134 -0
- package/templates/web-dev/roles/frontend.md +161 -0
- package/templates/web-dev/rules/api-change.md +198 -0
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Escalation Rules (에스컬레이션 규칙)
|
|
2
|
+
|
|
3
|
+
> 이 문서는 Manager에게 보고해야 하는 상황과 절차를 정의한다.
|
|
4
|
+
> 모든 역할이 이 규칙을 따른다.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. 에스컬레이션 원칙
|
|
9
|
+
|
|
10
|
+
- 판단 불가 시 → 즉시 에스컬레이션
|
|
11
|
+
- 규칙 외 상황 → 즉시 에스컬레이션
|
|
12
|
+
- 작업 완료 후 이상 발견 → 보고
|
|
13
|
+
- 혼자 결정하지 않음
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 2. 즉시 에스컬레이션 (BLOCK)
|
|
18
|
+
|
|
19
|
+
> 작업을 **중단**하고 Manager에게 보고해야 하는 상황
|
|
20
|
+
|
|
21
|
+
### 2.1 BLOCK 상황
|
|
22
|
+
|
|
23
|
+
| 상황 | 예시 |
|
|
24
|
+
|------|------|
|
|
25
|
+
| project.md에 없는 기술 필요 | 새 라이브러리 도입 필요 |
|
|
26
|
+
| 요구사항 모호/충돌 | plan.md 해석 불가 |
|
|
27
|
+
| 문서 간 충돌 | plan.md ↔ project.md 불일치 |
|
|
28
|
+
| 역할 간 해석 불일치 | 같은 문서 다르게 해석 |
|
|
29
|
+
| 구현 불가능 판단 | 기술적으로 불가 |
|
|
30
|
+
| 보안/안전 이슈 | 심각한 취약점 발견 |
|
|
31
|
+
|
|
32
|
+
### 2.2 BLOCK 시 조치
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
1. 즉시 작업 중단
|
|
36
|
+
2. 현재 상태 저장
|
|
37
|
+
3. Manager에게 BLOCK 보고
|
|
38
|
+
4. Manager 판단 대기
|
|
39
|
+
5. 판단에 따라 진행
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 3. 작업 완료 후 보고
|
|
45
|
+
|
|
46
|
+
> 작업은 완료하되, Manager에게 **알려야** 하는 상황
|
|
47
|
+
|
|
48
|
+
### 3.1 보고 상황
|
|
49
|
+
|
|
50
|
+
| 상황 | 예시 |
|
|
51
|
+
|------|------|
|
|
52
|
+
| 예상보다 규모 큼 | Task가 예상보다 복잡 |
|
|
53
|
+
| 경미한 이슈 발견 | 작은 개선점 발견 |
|
|
54
|
+
| 문서 오류 발견 | 오타, 불일치 |
|
|
55
|
+
| 일정 지연 예상 | 예상보다 시간 필요 |
|
|
56
|
+
|
|
57
|
+
### 3.2 보고 시 조치
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
1. 작업 완료
|
|
61
|
+
2. 이슈 기록
|
|
62
|
+
3. Manager에게 보고
|
|
63
|
+
4. 필요시 추가 조치
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 4. 에스컬레이션 형식
|
|
69
|
+
|
|
70
|
+
### 4.1 BLOCK 보고 형식
|
|
71
|
+
|
|
72
|
+
```markdown
|
|
73
|
+
## Issue: [제목]
|
|
74
|
+
|
|
75
|
+
- 유형: BLOCK
|
|
76
|
+
- 보고자: [역할]
|
|
77
|
+
- 일시: YYYY-MM-DD HH:MM
|
|
78
|
+
- Task: TASK-XXX (해당 시)
|
|
79
|
+
|
|
80
|
+
### 상황
|
|
81
|
+
[구체적 상황 설명]
|
|
82
|
+
|
|
83
|
+
### 문제점
|
|
84
|
+
[무엇이 문제인지]
|
|
85
|
+
|
|
86
|
+
### 시도한 것
|
|
87
|
+
[이미 시도한 해결책]
|
|
88
|
+
|
|
89
|
+
### 필요한 판단
|
|
90
|
+
[Manager에게 필요한 결정]
|
|
91
|
+
|
|
92
|
+
### 제안 (있으면)
|
|
93
|
+
[해결책 제안]
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 4.2 보고 형식
|
|
97
|
+
|
|
98
|
+
```markdown
|
|
99
|
+
## Report: [제목]
|
|
100
|
+
|
|
101
|
+
- 유형: INFO / WARN
|
|
102
|
+
- 보고자: [역할]
|
|
103
|
+
- 일시: YYYY-MM-DD HH:MM
|
|
104
|
+
- Task: TASK-XXX (해당 시)
|
|
105
|
+
|
|
106
|
+
### 내용
|
|
107
|
+
[보고 내용]
|
|
108
|
+
|
|
109
|
+
### 영향
|
|
110
|
+
[예상되는 영향]
|
|
111
|
+
|
|
112
|
+
### 제안 (있으면)
|
|
113
|
+
[조치 제안]
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## 5. 역할별 에스컬레이션 권한
|
|
119
|
+
|
|
120
|
+
| 역할 | BLOCK 가능 | 보고 대상 |
|
|
121
|
+
|------|:----------:|----------|
|
|
122
|
+
| Planner | ✅ | 요구사항 모호, 충돌 |
|
|
123
|
+
| Architect | ✅ | 기술적 불가, 규모 초과 |
|
|
124
|
+
| Developer | ✅ | 구현 불가, 기술 부족 |
|
|
125
|
+
| Reviewer | ✅ | 아키텍처 문제, 심각한 이슈 |
|
|
126
|
+
| QA | ✅ | 검증 불가, 조건 모호 |
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 6. 에스컬레이션 금지 사항
|
|
131
|
+
|
|
132
|
+
- ❌ 판단 가능한 것을 에스컬레이션
|
|
133
|
+
- ❌ 문서에 답이 있는 것을 에스컬레이션
|
|
134
|
+
- ❌ 개인 선호를 이유로 에스컬레이션
|
|
135
|
+
- ❌ BLOCK 없이 작업 중단
|
|
136
|
+
- ❌ 보고 없이 예외 처리
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## 7. 에스컬레이션 응답 시간 기대치
|
|
141
|
+
|
|
142
|
+
| 유형 | 기대 응답 |
|
|
143
|
+
|------|----------|
|
|
144
|
+
| BLOCK (긴급) | 즉시 ~ 1시간 |
|
|
145
|
+
| BLOCK (일반) | 4시간 이내 |
|
|
146
|
+
| 보고 (WARN) | 24시간 이내 |
|
|
147
|
+
| 보고 (INFO) | 다음 체크인 |
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## 8. 에스컬레이션 흐름도
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
155
|
+
│ │
|
|
156
|
+
│ 이슈 발생 │
|
|
157
|
+
│ ↓ │
|
|
158
|
+
│ 문서에 답이 있는가? │
|
|
159
|
+
│ ├── Yes → 문서대로 처리 │
|
|
160
|
+
│ └── No ↓ │
|
|
161
|
+
│ │
|
|
162
|
+
│ 내 권한으로 판단 가능? │
|
|
163
|
+
│ ├── Yes → 판단 후 진행 (필요시 보고) │
|
|
164
|
+
│ └── No ↓ │
|
|
165
|
+
│ │
|
|
166
|
+
│ 즉시 중단 필요? │
|
|
167
|
+
│ ├── Yes → BLOCK 에스컬레이션 │
|
|
168
|
+
│ └── No → 작업 완료 후 보고 │
|
|
169
|
+
│ │
|
|
170
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
171
|
+
```
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# Iteration Rules (스프린트/Task 단위 작업 규칙)
|
|
2
|
+
|
|
3
|
+
> 이 문서는 Task 단위 반복 개발의 규칙을 정의한다.
|
|
4
|
+
> 모든 역할이 이 규칙을 따른다.
|
|
5
|
+
> Manager가 스프린트를 관리한다.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. 핵심 원칙
|
|
10
|
+
|
|
11
|
+
### 1.1 Task 단위 개발
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
❌ 잘못된 방식 (Waterfall)
|
|
15
|
+
전체 기획 → 전체 설계 → 전체 개발 → 전체 테스트
|
|
16
|
+
|
|
17
|
+
✅ 올바른 방식 (Iterative)
|
|
18
|
+
Task 1 완성 → Task 2 완성 → Task 3 완성 → ...
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### 1.2 작업 범위 제한
|
|
22
|
+
|
|
23
|
+
- 각 역할은 **current-sprint.md에 정의된 Task만** 작업한다
|
|
24
|
+
- 스프린트 외 작업은 금지 (Manager 승인 없이)
|
|
25
|
+
- "김에" 작업 금지
|
|
26
|
+
|
|
27
|
+
### 1.3 완료의 정의
|
|
28
|
+
|
|
29
|
+
Task는 다음을 모두 충족해야 DONE:
|
|
30
|
+
- [ ] 수용 조건 100% 충족
|
|
31
|
+
- [ ] 구현 완료
|
|
32
|
+
- [ ] 문서 반영 완료
|
|
33
|
+
- [ ] Reviewer PASS
|
|
34
|
+
- [ ] QA PASS
|
|
35
|
+
- [ ] Manager 승인
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 2. 스프린트 라이프사이클
|
|
40
|
+
|
|
41
|
+
### 2.1 스프린트 시작
|
|
42
|
+
|
|
43
|
+
**트리거:** Manager가 스프린트 시작 선언
|
|
44
|
+
|
|
45
|
+
**절차:**
|
|
46
|
+
1. Manager가 backlog.md에서 READY 상태 Task 선택
|
|
47
|
+
2. 선택된 Task를 IN_SPRINT로 변경
|
|
48
|
+
3. current-sprint.md 생성/갱신
|
|
49
|
+
4. 스프린트 목표 정의
|
|
50
|
+
5. 역할별 작업 배정
|
|
51
|
+
|
|
52
|
+
**산출물:**
|
|
53
|
+
- current-sprint.md 갱신
|
|
54
|
+
- backlog.md 상태 갱신
|
|
55
|
+
|
|
56
|
+
### 2.2 스프린트 진행
|
|
57
|
+
|
|
58
|
+
**Task 상태 흐름:**
|
|
59
|
+
```
|
|
60
|
+
IN_SPRINT → IN_DEV → IN_REVIEW → IN_QA → DONE
|
|
61
|
+
↑ ↓ ↓
|
|
62
|
+
└──────────┴──────────┘
|
|
63
|
+
(REJECT/FAIL 시)
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**일일 확인 사항:**
|
|
67
|
+
- 각 Task 상태
|
|
68
|
+
- 차단 사항 (Blockers)
|
|
69
|
+
- 예상 완료 여부
|
|
70
|
+
|
|
71
|
+
### 2.3 스프린트 종료
|
|
72
|
+
|
|
73
|
+
**트리거:**
|
|
74
|
+
- 모든 Task DONE, 또는
|
|
75
|
+
- 스프린트 종료일 도달
|
|
76
|
+
|
|
77
|
+
**절차:**
|
|
78
|
+
1. 완료/미완료 Task 정리
|
|
79
|
+
2. 미완료 Task 처리 결정 (이월/취소)
|
|
80
|
+
3. current-sprint.md 회고 작성
|
|
81
|
+
4. backlog.md 상태 갱신
|
|
82
|
+
5. 다음 스프린트 준비
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 3. 역할별 이터레이션 규칙
|
|
87
|
+
|
|
88
|
+
### 3.1 Planner
|
|
89
|
+
|
|
90
|
+
- 스프린트 중 새 요구사항 → backlog에 BACKLOG 상태로 추가
|
|
91
|
+
- 현재 스프린트의 Task 변경 금지 (Manager 승인 없이)
|
|
92
|
+
- 진행 중(IN_DEV+) Task의 수용 조건 변경 금지
|
|
93
|
+
|
|
94
|
+
### 3.2 Developer
|
|
95
|
+
|
|
96
|
+
- current-sprint.md의 내 Task만 작업
|
|
97
|
+
- Task 완료 후 다음 Task로 이동
|
|
98
|
+
- 스프린트 외 작업 금지
|
|
99
|
+
- 수용 조건 외 기능 추가 금지
|
|
100
|
+
|
|
101
|
+
### 3.3 Reviewer
|
|
102
|
+
|
|
103
|
+
- IN_REVIEW 상태 Task만 리뷰
|
|
104
|
+
- 해당 Task 범위 내 코드만 리뷰
|
|
105
|
+
- 스프린트 외 코드 리뷰 금지
|
|
106
|
+
- 수용 조건 외 요구 금지
|
|
107
|
+
|
|
108
|
+
### 3.4 QA
|
|
109
|
+
|
|
110
|
+
- IN_QA 상태 Task만 검증
|
|
111
|
+
- 해당 Task 수용 조건만 검증
|
|
112
|
+
- 스프린트 외 기능 검증 금지
|
|
113
|
+
- 수용 조건 외 기준으로 FAIL 금지
|
|
114
|
+
|
|
115
|
+
### 3.5 Manager
|
|
116
|
+
|
|
117
|
+
- 스프린트 시작/종료 결정
|
|
118
|
+
- Task 상태 전환 승인 (→ DONE)
|
|
119
|
+
- 긴급 Task 추가 승인
|
|
120
|
+
- 스프린트 범위 변경 승인
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 4. Task 단위 문서 갱신
|
|
125
|
+
|
|
126
|
+
### 4.1 갱신 시점
|
|
127
|
+
|
|
128
|
+
| 문서 | 갱신 시점 | 담당 |
|
|
129
|
+
|------|----------|------|
|
|
130
|
+
| backlog.md | Task 상태 변경 시 | 해당 역할 |
|
|
131
|
+
| current-sprint.md | 매일 / 상태 변경 시 | Manager |
|
|
132
|
+
| 인터페이스 문서 | Task 완료 시 | Developer |
|
|
133
|
+
| review-report.md | 리뷰 완료 시 | Reviewer |
|
|
134
|
+
| qa-report.md | QA 완료 시 | QA |
|
|
135
|
+
| decision.md | 판단 발생 시 | Manager |
|
|
136
|
+
|
|
137
|
+
### 4.2 Task 태그
|
|
138
|
+
|
|
139
|
+
문서 변경 시 관련 Task ID를 태그:
|
|
140
|
+
|
|
141
|
+
```markdown
|
|
142
|
+
## 변경 이력
|
|
143
|
+
| Task | 날짜 | 변경 내용 |
|
|
144
|
+
|------|------|----------|
|
|
145
|
+
| [TASK-001] | 2024-01-15 | 초기 구현 |
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## 5. 예외 상황 처리
|
|
151
|
+
|
|
152
|
+
### 5.1 긴급 Task 추가
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
긴급 요청 발생
|
|
156
|
+
↓
|
|
157
|
+
Planner: backlog에 P0로 추가
|
|
158
|
+
↓
|
|
159
|
+
Manager: 긴급성 판단
|
|
160
|
+
├── 긴급 아님 → 다음 스프린트
|
|
161
|
+
└── 긴급 맞음 ↓
|
|
162
|
+
↓
|
|
163
|
+
Manager: 현재 스프린트에 추가
|
|
164
|
+
↓
|
|
165
|
+
필요시 다른 Task 조정
|
|
166
|
+
↓
|
|
167
|
+
decision.md에 예외 기록
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### 5.2 요구사항 변경
|
|
171
|
+
|
|
172
|
+
- 진행 중 Task: 현재 수용 조건으로 완료 후 새 Task 생성
|
|
173
|
+
- 미시작 Task: 수용 조건 수정 가능 (Manager 승인)
|
|
174
|
+
|
|
175
|
+
### 5.3 차단 (Blocker) 발생
|
|
176
|
+
|
|
177
|
+
```
|
|
178
|
+
차단 발생
|
|
179
|
+
↓
|
|
180
|
+
Task 상태 → BLOCKED
|
|
181
|
+
↓
|
|
182
|
+
Manager에게 즉시 보고
|
|
183
|
+
↓
|
|
184
|
+
해결 방안 결정
|
|
185
|
+
↓
|
|
186
|
+
해결 후 원래 상태로 복귀
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## 6. 스프린트 체크리스트
|
|
192
|
+
|
|
193
|
+
### 스프린트 시작 체크리스트
|
|
194
|
+
|
|
195
|
+
- [ ] backlog.md에 READY Task 있음
|
|
196
|
+
- [ ] 스프린트 목표 정의됨
|
|
197
|
+
- [ ] current-sprint.md 생성됨
|
|
198
|
+
- [ ] Task 담당자 배정됨
|
|
199
|
+
- [ ] 의존성 확인됨
|
|
200
|
+
|
|
201
|
+
### 스프린트 종료 체크리스트
|
|
202
|
+
|
|
203
|
+
- [ ] 모든 Task 상태 확인
|
|
204
|
+
- [ ] 미완료 Task 처리 결정됨
|
|
205
|
+
- [ ] 회고 작성됨
|
|
206
|
+
- [ ] backlog.md 갱신됨
|
|
207
|
+
- [ ] 스프린트 히스토리 기록됨
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## 7. 문서 참조 관계
|
|
212
|
+
|
|
213
|
+
```
|
|
214
|
+
backlog.md (전체 Task)
|
|
215
|
+
│
|
|
216
|
+
├── current-sprint.md (현재 범위)
|
|
217
|
+
│ │
|
|
218
|
+
│ ├── 인터페이스 문서 (Task별 변경)
|
|
219
|
+
│ └── 소스 코드
|
|
220
|
+
│
|
|
221
|
+
├── plan.md (요구사항 출처)
|
|
222
|
+
└── project.md (기술 기준)
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## 8. 금지 사항 요약
|
|
228
|
+
|
|
229
|
+
| 역할 | 금지 사항 |
|
|
230
|
+
|------|----------|
|
|
231
|
+
| 전체 | 스프린트 외 작업 |
|
|
232
|
+
| 전체 | 수용 조건 외 기능 추가 |
|
|
233
|
+
| Developer | "김에" 리팩토링 |
|
|
234
|
+
| Reviewer | 스프린트 외 코드 리뷰 |
|
|
235
|
+
| QA | 스프린트 외 기능 검증 |
|
|
236
|
+
| Planner | 진행 중 Task 변경 |
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# RFC (Request for Change) 규칙
|
|
2
|
+
|
|
3
|
+
> Frozen 문서 변경을 위한 공식 절차
|
|
4
|
+
|
|
5
|
+
## RFC가 필요한 경우
|
|
6
|
+
|
|
7
|
+
- project.md 변경
|
|
8
|
+
- plan.md의 확정된 기능 범위 변경
|
|
9
|
+
- 승인된 decision.md 항목 번복
|
|
10
|
+
|
|
11
|
+
## RFC 절차
|
|
12
|
+
|
|
13
|
+
1. RFC 문서 작성 (`rfc/RFC-NNNN-title.md`)
|
|
14
|
+
2. Manager 리뷰
|
|
15
|
+
3. 승인/거부 결정
|
|
16
|
+
4. 승인 시: 문서 업데이트 + decision.md 기록
|
|
17
|
+
|
|
18
|
+
## RFC 상태
|
|
19
|
+
|
|
20
|
+
| 상태 | 설명 |
|
|
21
|
+
|------|------|
|
|
22
|
+
| Draft | 작성 중 |
|
|
23
|
+
| Under Review | 리뷰 중 |
|
|
24
|
+
| Approved | 승인됨 |
|
|
25
|
+
| Rejected | 거부됨 |
|
|
26
|
+
|
|
27
|
+
## 긴급 변경
|
|
28
|
+
|
|
29
|
+
- 보안 취약점, 심각한 버그 등
|
|
30
|
+
- 구두 승인 후 적용
|
|
31
|
+
- 24시간 내 RFC 사후 작성
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# Rollback Rules (되돌림 규칙)
|
|
2
|
+
|
|
3
|
+
> 이 문서는 REJECT/FAIL 발생 시 되돌림 절차를 정의한다.
|
|
4
|
+
> Manager가 되돌림을 관리한다.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. 되돌림 원칙
|
|
9
|
+
|
|
10
|
+
- REJECT/FAIL은 정상적인 피드백
|
|
11
|
+
- 되돌림은 품질 보장 과정
|
|
12
|
+
- 되돌림 시 원인 분석 필수
|
|
13
|
+
- 반복 되돌림 시 프로세스 점검
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 2. Reviewer REJECT 시 되돌림
|
|
18
|
+
|
|
19
|
+
### 2.1 REJECT 유형별 처리
|
|
20
|
+
|
|
21
|
+
| REJECT 유형 | 되돌림 대상 | Manager 개입 |
|
|
22
|
+
|-------------|------------|:------------:|
|
|
23
|
+
| 수용 조건 미충족 | Developer | 불필요 |
|
|
24
|
+
| project.md 규칙 위반 | Developer | 불필요 |
|
|
25
|
+
| 구조적 문제 | Architect | 필요 |
|
|
26
|
+
| 설계 수준 문제 | Architect | 필요 |
|
|
27
|
+
|
|
28
|
+
### 2.2 REJECT 처리 절차
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
Reviewer REJECT
|
|
32
|
+
↓
|
|
33
|
+
Task 상태: IN_REVIEW → IN_DEV
|
|
34
|
+
↓
|
|
35
|
+
review-report.md에 REJECT 사유 기록
|
|
36
|
+
↓
|
|
37
|
+
Developer가 수정
|
|
38
|
+
↓
|
|
39
|
+
Task 상태: IN_DEV → IN_REVIEW
|
|
40
|
+
↓
|
|
41
|
+
Reviewer 재리뷰
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 2.3 구조적 REJECT 시
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
Reviewer: 구조적 문제로 REJECT
|
|
48
|
+
↓
|
|
49
|
+
Manager에게 에스컬레이션
|
|
50
|
+
↓
|
|
51
|
+
Manager: Architect 재검토 결정
|
|
52
|
+
↓
|
|
53
|
+
Architect: project.md 또는 설계 수정
|
|
54
|
+
↓
|
|
55
|
+
Developer: 수정된 설계로 재구현
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 3. QA FAIL 시 되돌림
|
|
61
|
+
|
|
62
|
+
### 3.1 FAIL 유형별 처리
|
|
63
|
+
|
|
64
|
+
| FAIL 유형 | 되돌림 대상 | 조치 |
|
|
65
|
+
|-----------|------------|------|
|
|
66
|
+
| 구현 누락 | Developer | 누락 기능 구현 |
|
|
67
|
+
| 버그 | Developer | 버그 수정 |
|
|
68
|
+
| 조건 모호 | Planner | 조건 명확화 |
|
|
69
|
+
| 기술적 불가 | Architect | 설계 재검토 |
|
|
70
|
+
|
|
71
|
+
### 3.2 FAIL 처리 절차
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
QA FAIL
|
|
75
|
+
↓
|
|
76
|
+
Task 상태: IN_QA → IN_DEV
|
|
77
|
+
↓
|
|
78
|
+
qa-report.md에 FAIL 사유 기록
|
|
79
|
+
↓
|
|
80
|
+
원인에 따라 담당자 결정
|
|
81
|
+
↓
|
|
82
|
+
수정 후 재리뷰 → 재QA
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 4. BLOCK 시 되돌림
|
|
88
|
+
|
|
89
|
+
### 4.1 BLOCK 상황
|
|
90
|
+
|
|
91
|
+
| 상황 | 처리 |
|
|
92
|
+
|------|------|
|
|
93
|
+
| 기술적 불가 | Architect 재검토 |
|
|
94
|
+
| 요구사항 불명확 | Planner 명확화 |
|
|
95
|
+
| 외부 의존성 | 대기 또는 우회 |
|
|
96
|
+
|
|
97
|
+
### 4.2 BLOCK 처리 절차
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
BLOCK 발생
|
|
101
|
+
↓
|
|
102
|
+
Task 상태 → BLOCKED
|
|
103
|
+
↓
|
|
104
|
+
Manager에게 에스컬레이션
|
|
105
|
+
↓
|
|
106
|
+
Manager: 원인 분석 및 대상 결정
|
|
107
|
+
↓
|
|
108
|
+
해당 역할이 문제 해결
|
|
109
|
+
↓
|
|
110
|
+
Task 상태 복원 → 재진행
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 5. 문서 수정 시 연쇄 영향
|
|
116
|
+
|
|
117
|
+
### 5.1 plan.md 수정 시
|
|
118
|
+
|
|
119
|
+
| 영향 | 조치 |
|
|
120
|
+
|------|------|
|
|
121
|
+
| 기존 Task 영향 | backlog.md 수용 조건 검토 |
|
|
122
|
+
| 새 기능 추가 | 새 Task 생성 |
|
|
123
|
+
| 기능 삭제 | 관련 Task 취소 검토 |
|
|
124
|
+
|
|
125
|
+
### 5.2 project.md 수정 시
|
|
126
|
+
|
|
127
|
+
| 영향 | 조치 |
|
|
128
|
+
|------|------|
|
|
129
|
+
| 기술 스택 변경 | 전체 코드 검토 필요 |
|
|
130
|
+
| 규칙 변경 | 영향받는 Task 재리뷰 |
|
|
131
|
+
| 구조 변경 | 영향받는 코드 수정 |
|
|
132
|
+
|
|
133
|
+
> ⚠️ project.md는 Frozen이므로 수정 시 Manager 승인 필수
|
|
134
|
+
|
|
135
|
+
### 5.3 연쇄 영향 흐름
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
상위 문서 수정
|
|
139
|
+
↓
|
|
140
|
+
영향받는 하위 문서 식별
|
|
141
|
+
↓
|
|
142
|
+
영향받는 Task 식별
|
|
143
|
+
↓
|
|
144
|
+
Task 상태에 따른 처리:
|
|
145
|
+
├── DONE → 재검증 필요 여부 판단
|
|
146
|
+
├── IN_QA/IN_REVIEW → 재검증
|
|
147
|
+
├── IN_DEV → 수정 반영
|
|
148
|
+
└── IN_SPRINT/READY → 문서만 갱신
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## 6. 되돌림 제한 규칙
|
|
154
|
+
|
|
155
|
+
### 6.1 반복 되돌림
|
|
156
|
+
|
|
157
|
+
| 횟수 | 조치 |
|
|
158
|
+
|:----:|------|
|
|
159
|
+
| 1-2회 | 정상 피드백 |
|
|
160
|
+
| 3회 | Manager 개입, 원인 분석 |
|
|
161
|
+
| 4회+ | 프로세스/역량 점검 |
|
|
162
|
+
|
|
163
|
+
### 6.2 되돌림 제한
|
|
164
|
+
|
|
165
|
+
- 같은 사유로 3회 이상 되돌림 금지
|
|
166
|
+
- 3회 도달 시 근본 원인 해결 필수
|
|
167
|
+
- Manager가 되돌림 패턴 모니터링
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## 7. 되돌림 기록 형식
|
|
172
|
+
|
|
173
|
+
### decision.md 기록
|
|
174
|
+
|
|
175
|
+
```markdown
|
|
176
|
+
## Rollback #[번호]
|
|
177
|
+
|
|
178
|
+
| 항목 | 값 |
|
|
179
|
+
|------|-----|
|
|
180
|
+
| 일시 | YYYY-MM-DD |
|
|
181
|
+
| Task | TASK-XXX |
|
|
182
|
+
| 유형 | REJECT / FAIL / BLOCK |
|
|
183
|
+
| 원인 | [원인] |
|
|
184
|
+
|
|
185
|
+
### 상세
|
|
186
|
+
- 문제: [문제 설명]
|
|
187
|
+
- 원인 분석: [원인]
|
|
188
|
+
- 되돌림 대상: [역할]
|
|
189
|
+
- 조치: [조치 내용]
|
|
190
|
+
|
|
191
|
+
### 재발 방지
|
|
192
|
+
- [방지 조치]
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 8. 되돌림 흐름 요약
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
201
|
+
│ │
|
|
202
|
+
│ REJECT / FAIL / BLOCK 발생 │
|
|
203
|
+
│ ↓ │
|
|
204
|
+
│ 원인 분석 │
|
|
205
|
+
│ ↓ │
|
|
206
|
+
│ 되돌림 대상 결정 │
|
|
207
|
+
│ (Developer / Planner / Architect) │
|
|
208
|
+
│ ↓ │
|
|
209
|
+
│ decision.md 기록 │
|
|
210
|
+
│ ↓ │
|
|
211
|
+
│ 수정 수행 │
|
|
212
|
+
│ ↓ │
|
|
213
|
+
│ 재검증 (영향받는 단계부터) │
|
|
214
|
+
│ ↓ │
|
|
215
|
+
│ 완료 또는 재되돌림 │
|
|
216
|
+
│ │
|
|
217
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
218
|
+
```
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Feature 단위 Artifacts 구조
|
|
2
|
+
|
|
3
|
+
> 대규모 프로젝트에서 병렬 개발을 위한 Feature 분리 구조
|
|
4
|
+
|
|
5
|
+
## 📁 구조
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
ai-dev-team/artifacts/features/
|
|
9
|
+
├── F001-user-auth/
|
|
10
|
+
│ ├── spec.md # Feature 스펙
|
|
11
|
+
│ ├── api.md # Feature API
|
|
12
|
+
│ ├── ui.md # Feature UI
|
|
13
|
+
│ ├── review.md # 리뷰 기록
|
|
14
|
+
│ └── qa.md # QA 기록
|
|
15
|
+
└── _template/ # 템플릿
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## 🎯 언제 사용하는가?
|
|
19
|
+
|
|
20
|
+
### 사용 권장
|
|
21
|
+
- 프로젝트 규모 M 이상
|
|
22
|
+
- 기능 3개 이상
|
|
23
|
+
- 병렬 개발 필요
|
|
24
|
+
|
|
25
|
+
### 사용 불필요
|
|
26
|
+
- 프로젝트 규모 S
|
|
27
|
+
- 기능 2개 이하
|
|
28
|
+
- 순차 개발
|
|
29
|
+
|
|
30
|
+
## 📋 명명 규칙
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
<Feature-ID>-<feature-name>/
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
예시: `F001-user-auth/`, `F002-dashboard/`
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# 예제: Todo App 프로젝트
|
|
2
|
+
|
|
3
|
+
> Artifact-Driven AI Agent Framework 예제
|
|
4
|
+
|
|
5
|
+
## 프로젝트 개요
|
|
6
|
+
|
|
7
|
+
- **규모**: S (Small)
|
|
8
|
+
- **기간**: 1주일
|
|
9
|
+
- **상태**: ✅ 완료
|
|
10
|
+
|
|
11
|
+
## 워크플로우
|
|
12
|
+
|
|
13
|
+
1. Planner: plan.md 작성 → Confirmed
|
|
14
|
+
2. Architect: project.md 작성 → Frozen
|
|
15
|
+
3. Manager: 스프린트 시작
|
|
16
|
+
4. Developer/Reviewer/QA: Task 완료
|
|
17
|
+
5. Manager: 스프린트 종료
|
|
18
|
+
|
|
19
|
+
## 산출물
|
|
20
|
+
|
|
21
|
+
- `artifacts/plan.md` - 기획서
|
|
22
|
+
- `artifacts/project.md` - 기술 기준
|
|
23
|
+
- `artifacts/backlog.md` - Task 목록
|