@silbaram/artifact-driven-agent 0.1.6 → 0.1.9
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 +709 -516
- package/ai-dev-team/.ada-status.json +10 -0
- package/ai-dev-team/.ada-version +6 -0
- package/ai-dev-team/.current-template +1 -0
- package/ai-dev-team/.sessions/logs/20260124-014551-00f04724.log +5 -0
- package/ai-dev-team/.sessions/logs/20260124-014623-cb2b1d44.log +5 -0
- package/ai-dev-team/ada.config.json +15 -0
- package/ai-dev-team/artifacts/api.md +212 -0
- package/ai-dev-team/artifacts/decision.md +72 -0
- package/ai-dev-team/artifacts/improvement-reports/IMP-0000-template.md +57 -0
- package/ai-dev-team/artifacts/plan.md +187 -0
- package/ai-dev-team/artifacts/project.md +193 -0
- package/ai-dev-team/artifacts/sprints/_template/docs/release-notes.md +37 -0
- package/ai-dev-team/artifacts/sprints/_template/meta.md +54 -0
- package/ai-dev-team/artifacts/sprints/_template/retrospective.md +50 -0
- package/ai-dev-team/artifacts/sprints/_template/review-reports/review-template.md +49 -0
- package/ai-dev-team/artifacts/sprints/_template/tasks/task-template.md +43 -0
- package/ai-dev-team/artifacts/ui.md +104 -0
- package/ai-dev-team/roles/analyzer.md +265 -0
- package/ai-dev-team/roles/developer.md +222 -0
- package/ai-dev-team/roles/documenter.md +715 -0
- package/ai-dev-team/roles/improver.md +461 -0
- package/ai-dev-team/roles/manager.md +544 -0
- package/ai-dev-team/roles/planner.md +398 -0
- package/ai-dev-team/roles/reviewer.md +294 -0
- package/ai-dev-team/rules/api-change.md +198 -0
- package/ai-dev-team/rules/document-priority.md +199 -0
- package/ai-dev-team/rules/escalation.md +172 -0
- package/ai-dev-team/rules/iteration.md +236 -0
- package/ai-dev-team/rules/rfc.md +31 -0
- package/ai-dev-team/rules/rollback.md +218 -0
- package/bin/cli.js +49 -5
- package/core/artifacts/sprints/_template/meta.md +4 -4
- package/core/docs-templates/mkdocs/docs/architecture/overview.md +29 -0
- package/core/docs-templates/mkdocs/docs/changelog.md +36 -0
- package/core/docs-templates/mkdocs/docs/contributing/contributing.md +60 -0
- package/core/docs-templates/mkdocs/docs/getting-started/configuration.md +51 -0
- package/core/docs-templates/mkdocs/docs/getting-started/installation.md +41 -0
- package/core/docs-templates/mkdocs/docs/getting-started/quick-start.md +56 -0
- package/core/docs-templates/mkdocs/docs/guides/api-reference.md +83 -0
- package/core/docs-templates/mkdocs/docs/index.md +32 -0
- package/core/docs-templates/mkdocs/mkdocs.yml +86 -0
- package/core/roles/analyzer.md +32 -10
- package/core/roles/developer.md +222 -223
- package/core/roles/documenter.md +592 -170
- package/core/roles/improver.md +461 -0
- package/core/roles/manager.md +4 -1
- package/core/roles/planner.md +160 -10
- package/core/roles/reviewer.md +31 -3
- package/core/rules/document-priority.md +2 -1
- package/core/rules/rollback.md +3 -3
- package/package.json +1 -1
- package/src/commands/config.js +371 -0
- package/src/commands/docs.js +502 -0
- package/src/commands/interactive.js +324 -33
- package/src/commands/monitor.js +236 -0
- package/src/commands/run.js +360 -122
- package/src/commands/sessions.js +270 -70
- package/src/commands/setup.js +22 -1
- package/src/commands/sprint.js +295 -54
- package/src/commands/status.js +34 -1
- package/src/commands/upgrade.js +416 -0
- package/src/commands/validate.js +4 -3
- package/src/index.js +1 -0
- package/src/ui/dashboard.js +518 -0
- package/src/ui/keyHandler.js +147 -0
- package/src/ui/quickActions.js +111 -0
- package/src/utils/config.js +74 -0
- package/src/utils/files.js +70 -3
- package/src/utils/sessionState.js +472 -328
- package/src/utils/sessionState.process.test.js +101 -0
- package/src/utils/sessionState.test.js +183 -0
- package/src/utils/sprintUtils.js +134 -0
- package/src/utils/taskParser.js +134 -0
- package/src/utils/taskParser.test.js +76 -0
- package/ai-dev-team/artifacts/features/_template/qa.md +0 -16
- package/examples/todo-app/README.md +0 -23
- package/examples/todo-app/artifacts/backlog.md +0 -23
- package/examples/todo-app/artifacts/plan.md +0 -23
- package/examples/todo-app/artifacts/project.md +0 -23
|
@@ -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
|
+
- 각 역할은 **sprints/sprint-N/meta.md에 정의된 Task만** 작업한다
|
|
24
|
+
- 스프린트 외 작업은 금지 (Manager 승인 없이)
|
|
25
|
+
- "김에" 작업 금지
|
|
26
|
+
|
|
27
|
+
### 1.3 완료의 정의
|
|
28
|
+
|
|
29
|
+
Task는 다음을 모두 충족해야 DONE:
|
|
30
|
+
- [ ] 수용 조건 100% 충족
|
|
31
|
+
- [ ] 구현 완료
|
|
32
|
+
- [ ] 문서 반영 완료
|
|
33
|
+
- [ ] Reviewer PASS
|
|
34
|
+
- [ ] Reviewer PASS
|
|
35
|
+
- [ ] Manager 승인
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 2. 스프린트 라이프사이클
|
|
40
|
+
|
|
41
|
+
### 2.1 스프린트 시작
|
|
42
|
+
|
|
43
|
+
**트리거:** Manager가 스프린트 시작 선언
|
|
44
|
+
|
|
45
|
+
**절차:**
|
|
46
|
+
1. Manager가 backlog/task-NNN.md에서 READY 상태 Task 선택
|
|
47
|
+
2. 선택된 Task를 IN_SPRINT로 변경
|
|
48
|
+
3. sprints/sprint-N/meta.md 생성/갱신
|
|
49
|
+
4. 스프린트 목표 정의
|
|
50
|
+
5. 역할별 작업 배정
|
|
51
|
+
|
|
52
|
+
**산출물:**
|
|
53
|
+
- sprints/sprint-N/meta.md 갱신
|
|
54
|
+
- backlog/task-NNN.md 상태 갱신
|
|
55
|
+
|
|
56
|
+
### 2.2 스프린트 진행
|
|
57
|
+
|
|
58
|
+
**Task 상태 흐름:**
|
|
59
|
+
```
|
|
60
|
+
IN_SPRINT → IN_DEV → IN_REVIEW → IN_REVIEW → 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. sprints/sprint-N/meta.md 회고 작성
|
|
81
|
+
4. backlog/task-NNN.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
|
+
- sprints/sprint-N/meta.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 Reviewer
|
|
109
|
+
|
|
110
|
+
- IN_REVIEW 상태 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/task-NNN.md | Task 상태 변경 시 | 해당 역할 |
|
|
131
|
+
| sprints/sprint-N/meta.md | 매일 / 상태 변경 시 | Manager |
|
|
132
|
+
| 인터페이스 문서 | Task 완료 시 | Developer |
|
|
133
|
+
| review-reports/task-NNN.md | 리뷰 완료 시 | Reviewer |
|
|
134
|
+
| review-reports/task-NNN.md | Reviewer 완료 시 | Reviewer |
|
|
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
|
+
C0acC6a9C790: 긴급성 판단
|
|
160
|
+
├── 긴급 아님 → 다음 스프린트
|
|
161
|
+
└── 긴급 맞음 ↓
|
|
162
|
+
↓
|
|
163
|
+
C0acC6a9C790: 현재 스프린트에 추가
|
|
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/task-NNN.md에 READY Task 있음
|
|
196
|
+
- [ ] 스프린트 목표 정의됨
|
|
197
|
+
- [ ] sprints/sprint-N/meta.md 생성됨
|
|
198
|
+
- [ ] Task 담당자 배정됨
|
|
199
|
+
- [ ] 의존성 확인됨
|
|
200
|
+
|
|
201
|
+
### 스프린트 종료 체크리스트
|
|
202
|
+
|
|
203
|
+
- [ ] 모든 Task 상태 확인
|
|
204
|
+
- [ ] 미완료 Task 처리 결정됨
|
|
205
|
+
- [ ] 회고 작성됨
|
|
206
|
+
- [ ] backlog/task-NNN.md 갱신됨
|
|
207
|
+
- [ ] 스프린트 히스토리 기록됨
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## 7. 문서 참조 관계
|
|
212
|
+
|
|
213
|
+
```
|
|
214
|
+
backlog/task-NNN.md (전체 Task)
|
|
215
|
+
│
|
|
216
|
+
├── sprints/sprint-N/meta.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
|
+
| Reviewer | 스프린트 외 기능 검증 |
|
|
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. 사용자 리뷰
|
|
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
|
+
C0acC6a9C790: project.md 또는 설계 수정
|
|
54
|
+
↓
|
|
55
|
+
Developer: 수정된 설계로 재구현
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 3. Reviewer REJECT 시 되돌림
|
|
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
|
+
Reviewer REJECT
|
|
75
|
+
↓
|
|
76
|
+
Task 상태: IN_REVIEW → IN_DEV
|
|
77
|
+
↓
|
|
78
|
+
review-report.md에 FAIL 사유 기록
|
|
79
|
+
↓
|
|
80
|
+
원인에 따라 담당자 결정
|
|
81
|
+
↓
|
|
82
|
+
수정 후 재리뷰
|
|
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_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
|
+
```
|
package/bin/cli.js
CHANGED
|
@@ -8,8 +8,12 @@ import { validate } from '../src/commands/validate.js';
|
|
|
8
8
|
import { sessions } from '../src/commands/sessions.js';
|
|
9
9
|
import { logs } from '../src/commands/logs.js';
|
|
10
10
|
import { run } from '../src/commands/run.js';
|
|
11
|
+
import { config } from '../src/commands/config.js';
|
|
11
12
|
import { interactive } from '../src/commands/interactive.js';
|
|
13
|
+
import { upgrade } from '../src/commands/upgrade.js';
|
|
14
|
+
import { monitor } from '../src/commands/monitor.js';
|
|
12
15
|
import sprint from '../src/commands/sprint.js';
|
|
16
|
+
import docs from '../src/commands/docs.js';
|
|
13
17
|
import { createRequire } from 'node:module';
|
|
14
18
|
|
|
15
19
|
const require = createRequire(import.meta.url);
|
|
@@ -17,7 +21,8 @@ const { version } = require('../package.json');
|
|
|
17
21
|
program
|
|
18
22
|
.name('ada')
|
|
19
23
|
.description('Artifact-Driven AI Agent Framework\nAI가 규칙을 어기지 못하게 하는 문서 기반 개발')
|
|
20
|
-
.version(version)
|
|
24
|
+
.version(version)
|
|
25
|
+
.option('-m, --monitor', 'UI 모드 실행 (인터랙티브 인터페이스)');
|
|
21
26
|
|
|
22
27
|
// Setup command
|
|
23
28
|
program
|
|
@@ -38,6 +43,15 @@ program
|
|
|
38
43
|
.option('-f, --force', '확인 없이 강제 초기화')
|
|
39
44
|
.action(reset);
|
|
40
45
|
|
|
46
|
+
// Upgrade command
|
|
47
|
+
program
|
|
48
|
+
.command('upgrade')
|
|
49
|
+
.description('작업공간을 최신 버전으로 업그레이드')
|
|
50
|
+
.option('-f, --force', '확인 없이 강제 업그레이드')
|
|
51
|
+
.option('--dry-run', '변경 사항 미리보기 (실제 변경 없음)')
|
|
52
|
+
.option('--rollback', '이전 백업으로 롤백')
|
|
53
|
+
.action(upgrade);
|
|
54
|
+
|
|
41
55
|
// Validate command
|
|
42
56
|
program
|
|
43
57
|
.command('validate [doc]')
|
|
@@ -49,6 +63,7 @@ program
|
|
|
49
63
|
.command('sessions')
|
|
50
64
|
.description('AI 실행 세션 목록')
|
|
51
65
|
.option('-w, --watch', '실시간 모니터링 모드')
|
|
66
|
+
.option('-c, --clean', '완료된 세션 정리')
|
|
52
67
|
.action(sessions);
|
|
53
68
|
|
|
54
69
|
// Logs command
|
|
@@ -63,21 +78,50 @@ program
|
|
|
63
78
|
.description('스프린트 관리 (create, add, close, list)')
|
|
64
79
|
.action(sprint);
|
|
65
80
|
|
|
81
|
+
// Docs command
|
|
82
|
+
program
|
|
83
|
+
.command('docs <action>')
|
|
84
|
+
.description('문서 관리 (init, generate, publish, serve)')
|
|
85
|
+
.option('-g, --generator <type>', '문서 생성기 (mkdocs, jekyll)')
|
|
86
|
+
.action(docs);
|
|
87
|
+
|
|
88
|
+
// Monitor command (UI 모드)
|
|
89
|
+
program
|
|
90
|
+
.command('monitor')
|
|
91
|
+
.alias('m')
|
|
92
|
+
.description('UI 모드 (인터랙티브 인터페이스)')
|
|
93
|
+
.action(monitor);
|
|
94
|
+
|
|
95
|
+
// Config command
|
|
96
|
+
program
|
|
97
|
+
.command('config [action] [key] [value]')
|
|
98
|
+
.description('설정 조회/변경 (대화형), show, get <key>, set <key> <value>')
|
|
99
|
+
.action(config);
|
|
100
|
+
|
|
66
101
|
// Run command
|
|
67
102
|
program
|
|
68
|
-
.command('run <role>
|
|
69
|
-
.description('AI 에이전트 실행 (예: run backend claude)')
|
|
103
|
+
.command('run <role> [tool]')
|
|
104
|
+
.description('AI 에이전트 실행 (예: run backend [claude])')
|
|
70
105
|
.action(run);
|
|
71
106
|
|
|
72
107
|
// Parse arguments
|
|
73
108
|
const args = process.argv.slice(2);
|
|
74
109
|
|
|
110
|
+
// 명령어 목록
|
|
111
|
+
const COMMANDS = ['setup', 'status', 'reset', 'upgrade', 'validate', 'sessions', 'logs', 'run', 'sprint', 'docs', 'config', 'monitor', 'm'];
|
|
112
|
+
|
|
75
113
|
if (args.length === 0) {
|
|
76
114
|
// 인자 없으면 대화형 모드
|
|
77
115
|
interactive();
|
|
78
|
-
} else if (args.
|
|
79
|
-
//
|
|
116
|
+
} else if (args.includes('-m') || args.includes('--monitor')) {
|
|
117
|
+
// -m 또는 --monitor 옵션이 있으면 대시보드 실행
|
|
118
|
+
monitor();
|
|
119
|
+
} else if (args.length === 2 && !args[0].startsWith('-') && !COMMANDS.includes(args[0])) {
|
|
120
|
+
// 두 개의 인자가 명령어가 아니면 role tool로 간주 (간편 실행)
|
|
80
121
|
run(args[0], args[1]);
|
|
122
|
+
} else if (args.length === 1 && !args[0].startsWith('-') && !COMMANDS.includes(args[0])) {
|
|
123
|
+
// 인자가 하나면 role로 간주하고 도구는 자동 선택
|
|
124
|
+
run(args[0]);
|
|
81
125
|
} else {
|
|
82
126
|
program.parse();
|
|
83
127
|
}
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
| 종료 예정 | YYYY-MM-DD (또는 완료일) |
|
|
9
9
|
| 목표 | [스프린트 목표 설명] |
|
|
10
10
|
|
|
11
|
-
## Task
|
|
11
|
+
## Task 목록
|
|
12
12
|
|
|
13
|
-
| Task |
|
|
14
|
-
|
|
15
|
-
| task-NNN |
|
|
13
|
+
| Task | 제목 | 상태 | 우선순위 | 크기 |
|
|
14
|
+
|------|------|:----:|:--------:|:----:|
|
|
15
|
+
| task-NNN | [Task 제목] | BACKLOG | P0/P1/P2 | S/M/L |
|
|
16
16
|
|
|
17
17
|
**상태 범례:**
|
|
18
18
|
- BACKLOG: 스프린트에 할당됨, 작업 미시작
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# 아키텍처 개요
|
|
2
|
+
|
|
3
|
+
## 시스템 아키텍처
|
|
4
|
+
|
|
5
|
+
[고수준 아키텍처 다이어그램 및 설명]
|
|
6
|
+
|
|
7
|
+
## 구성 요소
|
|
8
|
+
|
|
9
|
+
### 구성 요소 1
|
|
10
|
+
**목적:** [설명]
|
|
11
|
+
**책임:**
|
|
12
|
+
- 책임 1
|
|
13
|
+
- 책임 2
|
|
14
|
+
|
|
15
|
+
### 구성 요소 2
|
|
16
|
+
**목적:** [설명]
|
|
17
|
+
**책임:**
|
|
18
|
+
- 책임 1
|
|
19
|
+
- 책임 2
|
|
20
|
+
|
|
21
|
+
## 데이터 흐름
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
사용자 → 프론트엔드 → API → 백엔드 → 데이터베이스
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## 기술 스택
|
|
28
|
+
|
|
29
|
+
자세한 정보는 [기술 스택](tech-stack.md)을 참고하세요.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# 변경 이력
|
|
2
|
+
|
|
3
|
+
이 프로젝트의 모든 주목할 만한 변경사항이 이 파일에 문서화됩니다.
|
|
4
|
+
|
|
5
|
+
형식은 [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)를 기반으로 하며,
|
|
6
|
+
이 프로젝트는 [Semantic Versioning](https://semver.org/spec/v2.0.0.html)을 따릅니다.
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
### Added (추가)
|
|
11
|
+
- 개발 중인 새로운 기능
|
|
12
|
+
|
|
13
|
+
### Changed (변경)
|
|
14
|
+
- 기존 기능의 변경사항
|
|
15
|
+
|
|
16
|
+
### Deprecated (중단 예정)
|
|
17
|
+
- 곧 제거될 예정인 기능
|
|
18
|
+
|
|
19
|
+
### Removed (제거)
|
|
20
|
+
- 제거된 기능
|
|
21
|
+
|
|
22
|
+
### Fixed (수정)
|
|
23
|
+
- 버그 수정
|
|
24
|
+
|
|
25
|
+
### Security (보안)
|
|
26
|
+
- 보안 업데이트
|
|
27
|
+
|
|
28
|
+
## [1.0.0] - YYYY-MM-DD
|
|
29
|
+
|
|
30
|
+
### Added (추가)
|
|
31
|
+
- 최초 릴리스
|
|
32
|
+
- 기능 1
|
|
33
|
+
- 기능 2
|
|
34
|
+
|
|
35
|
+
[Unreleased]: https://github.com/username/repo/compare/v1.0.0...HEAD
|
|
36
|
+
[1.0.0]: https://github.com/username/repo/releases/tag/v1.0.0
|