@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.
Files changed (68) hide show
  1. package/README.md +456 -0
  2. package/ai-dev-team/.gitkeep +0 -0
  3. package/ai-dev-team/README.md +44 -0
  4. package/ai-dev-team/artifacts/.gitkeep +0 -0
  5. package/ai-dev-team/artifacts/features/_template/api.md +19 -0
  6. package/ai-dev-team/artifacts/features/_template/qa.md +16 -0
  7. package/ai-dev-team/artifacts/features/_template/review.md +14 -0
  8. package/ai-dev-team/artifacts/features/_template/spec.md +28 -0
  9. package/ai-dev-team/artifacts/features/_template/ui.md +14 -0
  10. package/ai-dev-team/artifacts/rfc/RFC-0000-template.md +49 -0
  11. package/ai-dev-team/roles/.gitkeep +0 -0
  12. package/ai-dev-team/rules/.gitkeep +0 -0
  13. package/bin/cli.js +75 -0
  14. package/core/artifacts/architecture-options.md +85 -0
  15. package/core/artifacts/backlog.md +177 -0
  16. package/core/artifacts/current-sprint.md +125 -0
  17. package/core/artifacts/decision.md +72 -0
  18. package/core/artifacts/plan.md +187 -0
  19. package/core/artifacts/project.md +191 -0
  20. package/core/artifacts/qa-report.md +104 -0
  21. package/core/artifacts/review-report.md +103 -0
  22. package/core/roles/architect.md +236 -0
  23. package/core/roles/developer.md +203 -0
  24. package/core/roles/manager.md +300 -0
  25. package/core/roles/planner.md +231 -0
  26. package/core/roles/qa.md +262 -0
  27. package/core/roles/reviewer.md +280 -0
  28. package/core/rules/document-priority.md +196 -0
  29. package/core/rules/escalation.md +171 -0
  30. package/core/rules/iteration.md +236 -0
  31. package/core/rules/rfc.md +31 -0
  32. package/core/rules/rollback.md +218 -0
  33. package/docs/feature-structure.md +36 -0
  34. package/examples/todo-app/README.md +23 -0
  35. package/examples/todo-app/artifacts/backlog.md +23 -0
  36. package/examples/todo-app/artifacts/plan.md +23 -0
  37. package/examples/todo-app/artifacts/project.md +23 -0
  38. package/package.json +49 -0
  39. package/src/commands/interactive.js +101 -0
  40. package/src/commands/logs.js +81 -0
  41. package/src/commands/reset.js +66 -0
  42. package/src/commands/run.js +202 -0
  43. package/src/commands/sessions.js +70 -0
  44. package/src/commands/setup.js +128 -0
  45. package/src/commands/status.js +76 -0
  46. package/src/commands/validate.js +219 -0
  47. package/src/index.js +12 -0
  48. package/src/utils/files.js +134 -0
  49. package/templates/cli/artifacts/commands.md +262 -0
  50. package/templates/cli/artifacts/output-format.md +298 -0
  51. package/templates/cli/roles/cli-developer.md +239 -0
  52. package/templates/cli/rules/command-change.md +225 -0
  53. package/templates/game/artifacts/assets.md +148 -0
  54. package/templates/game/artifacts/game-systems.md +217 -0
  55. package/templates/game/artifacts/hud.md +199 -0
  56. package/templates/game/roles/game-logic.md +193 -0
  57. package/templates/game/roles/rendering.md +137 -0
  58. package/templates/game/rules/system-change.md +184 -0
  59. package/templates/library/artifacts/changelog.md +84 -0
  60. package/templates/library/artifacts/examples.md +157 -0
  61. package/templates/library/artifacts/public-api.md +197 -0
  62. package/templates/library/roles/library-developer.md +180 -0
  63. package/templates/library/rules/versioning.md +186 -0
  64. package/templates/web-dev/artifacts/api.md +212 -0
  65. package/templates/web-dev/artifacts/ui.md +104 -0
  66. package/templates/web-dev/roles/backend.md +134 -0
  67. package/templates/web-dev/roles/frontend.md +161 -0
  68. package/templates/web-dev/rules/api-change.md +198 -0
@@ -0,0 +1,212 @@
1
+ # API Specification
2
+
3
+ > Backend와 Frontend의 공식 계약 문서
4
+ > 변경 시 rules/api-change.md 절차를 따른다
5
+
6
+ ---
7
+
8
+ ## 0. 문서 메타
9
+
10
+ | 항목 | 값 |
11
+ |------|-----|
12
+ | 버전 | v1.0 |
13
+ | Base URL | /api/v1 |
14
+ | 최종 수정 | YYYY-MM-DD |
15
+
16
+ ---
17
+
18
+ ## 1. 공통 규칙
19
+
20
+ ### 1.1 HTTP 메서드
21
+
22
+ | 메서드 | 용도 | 멱등성 |
23
+ |--------|------|:------:|
24
+ | GET | 조회 | ✅ |
25
+ | POST | 생성 | ❌ |
26
+ | PUT | 전체 수정 | ✅ |
27
+ | PATCH | 부분 수정 | ❌ |
28
+ | DELETE | 삭제 | ✅ |
29
+
30
+ ### 1.2 경로 규칙
31
+
32
+ - 리소스명: 복수형 소문자 (예: `/users`, `/posts`)
33
+ - 단일 리소스: `/{resource}/{id}`
34
+ - 중첩 리소스: `/{parent}/{parentId}/{child}`
35
+
36
+ ---
37
+
38
+ ## 2. 인증/권한
39
+
40
+ | 항목 | 값 |
41
+ |------|-----|
42
+ | Status | 사용 / 미사용 |
43
+ | Scheme | Bearer Token / Cookie / API Key |
44
+ | Token Location | Authorization: Bearer {token} |
45
+
46
+ ---
47
+
48
+ ## 3. 응답 규격 (Response Envelope)
49
+
50
+ ### 3.1 Success Response
51
+
52
+ ```json
53
+ {
54
+ "success": true,
55
+ "data": { },
56
+ "error": null,
57
+ "meta": {
58
+ "requestId": "uuid",
59
+ "timestamp": "2024-01-01T00:00:00Z"
60
+ }
61
+ }
62
+ ```
63
+
64
+ ### 3.2 Failure Response
65
+
66
+ ```json
67
+ {
68
+ "success": false,
69
+ "data": null,
70
+ "error": {
71
+ "code": "ERROR_CODE",
72
+ "message": "사용자에게 표시할 메시지",
73
+ "details": { }
74
+ },
75
+ "meta": {
76
+ "requestId": "uuid",
77
+ "timestamp": "2024-01-01T00:00:00Z"
78
+ }
79
+ }
80
+ ```
81
+
82
+ ---
83
+
84
+ ## 4. 공통 에러 코드
85
+
86
+ | HTTP | 에러 코드 | 설명 |
87
+ |------|----------|------|
88
+ | 400 | BAD_REQUEST | 잘못된 요청 |
89
+ | 400 | VALIDATION_ERROR | 유효성 검사 실패 |
90
+ | 401 | UNAUTHORIZED | 인증 필요 |
91
+ | 403 | FORBIDDEN | 권한 없음 |
92
+ | 404 | NOT_FOUND | 리소스 없음 |
93
+ | 409 | CONFLICT | 충돌 |
94
+ | 500 | INTERNAL_ERROR | 서버 오류 |
95
+
96
+ ---
97
+
98
+ ## 5. 페이지네이션
99
+
100
+ ### Request
101
+
102
+ ```
103
+ GET /resources?page=1&size=20&sort=createdAt,desc
104
+ ```
105
+
106
+ ### Response
107
+
108
+ ```json
109
+ {
110
+ "success": true,
111
+ "data": {
112
+ "content": [...],
113
+ "page": {
114
+ "number": 1,
115
+ "size": 20,
116
+ "totalElements": 100,
117
+ "totalPages": 5
118
+ }
119
+ }
120
+ }
121
+ ```
122
+
123
+ ---
124
+
125
+ ## 6. API 엔드포인트 정의
126
+
127
+ ### 6.1 [리소스명]
128
+
129
+ #### GET /resources
130
+
131
+ **설명:** 목록 조회
132
+
133
+ **Request:**
134
+ ```
135
+ Query Parameters:
136
+ - page: number (default: 1)
137
+ - size: number (default: 20)
138
+ ```
139
+
140
+ **Response (200):**
141
+ ```json
142
+ {
143
+ "success": true,
144
+ "data": {
145
+ "content": [
146
+ {
147
+ "id": "uuid",
148
+ "name": "string",
149
+ "createdAt": "datetime"
150
+ }
151
+ ],
152
+ "page": { ... }
153
+ }
154
+ }
155
+ ```
156
+
157
+ **에러:**
158
+ | 상황 | 코드 |
159
+ |------|------|
160
+ | 잘못된 파라미터 | BAD_REQUEST |
161
+
162
+ ---
163
+
164
+ #### POST /resources
165
+
166
+ **설명:** 생성
167
+
168
+ **Request:**
169
+ ```json
170
+ {
171
+ "name": "string (required)",
172
+ "description": "string (optional)"
173
+ }
174
+ ```
175
+
176
+ **Response (201):**
177
+ ```json
178
+ {
179
+ "success": true,
180
+ "data": {
181
+ "id": "uuid",
182
+ "name": "string",
183
+ "createdAt": "datetime"
184
+ }
185
+ }
186
+ ```
187
+
188
+ **에러:**
189
+ | 상황 | 코드 |
190
+ |------|------|
191
+ | 필수 필드 누락 | VALIDATION_ERROR |
192
+ | 중복 | CONFLICT |
193
+
194
+ ---
195
+
196
+ ## 7. API 목록 요약
197
+
198
+ | 메서드 | 경로 | 설명 | 상태 | Task |
199
+ |--------|------|------|:----:|------|
200
+ | GET | /resources | 목록 조회 | ✅ | TASK-001 |
201
+ | POST | /resources | 생성 | ⏳ | TASK-001 |
202
+ | GET | /resources/{id} | 단일 조회 | 📋 | TASK-002 |
203
+
204
+ 상태: ✅ 완료 / ⏳ 진행중 / 📋 예정
205
+
206
+ ---
207
+
208
+ ## 8. 변경 이력
209
+
210
+ | Task | 날짜 | 변경 내용 |
211
+ |------|------|----------|
212
+ | [TASK-001] | YYYY-MM-DD | 초기 API 작성 |
@@ -0,0 +1,104 @@
1
+ # UI Specification
2
+
3
+ > 프론트엔드 화면 설계 문서
4
+ > plan.md 사용자 흐름과 api.md 연동 기준
5
+
6
+ ---
7
+
8
+ ## 0. 문서 메타
9
+
10
+ | 항목 | 값 |
11
+ |------|-----|
12
+ | 버전 | v1.0 |
13
+ | 최종 수정 | YYYY-MM-DD |
14
+
15
+ ---
16
+
17
+ ## 1. 라우팅 구조
18
+
19
+ | 경로 | 화면명 | 설명 | 상태 | Task |
20
+ |------|--------|------|:----:|------|
21
+ | / | 홈 | 메인 화면 | ✅ | TASK-001 |
22
+ | /list | 목록 | 목록 화면 | ⏳ | TASK-002 |
23
+ | /detail/:id | 상세 | 상세 화면 | 📋 | TASK-003 |
24
+
25
+ 상태: ✅ 완료 / ⏳ 진행중 / 📋 예정
26
+
27
+ ---
28
+
29
+ ## 2. 화면별 상태 정의 (필수)
30
+
31
+ ### 2.1 [화면명]: /path
32
+
33
+ #### API 연동
34
+
35
+ | API | 용도 | 상태 |
36
+ |-----|------|------|
37
+ | GET /resources | 데이터 조회 | 연동 |
38
+
39
+ #### 화면 상태
40
+
41
+ | 상태 | 조건 | 표시 |
42
+ |------|------|------|
43
+ | Loading | API 호출 중 | 로딩 스피너 |
44
+ | Empty | data.length === 0 | "데이터가 없습니다" |
45
+ | Error | API 실패 | 에러 메시지 + 재시도 |
46
+ | Success | data.length > 0 | 데이터 목록 |
47
+
48
+ #### 사용자 액션
49
+
50
+ | 액션 | 트리거 | 결과 |
51
+ |------|--------|------|
52
+ | 새로고침 | 버튼 클릭 | 목록 재조회 |
53
+ | 항목 클릭 | 목록 아이템 | 상세 화면 이동 |
54
+
55
+ ---
56
+
57
+ ### 2.2 [화면명]: /path
58
+
59
+ (동일 형식으로 작성)
60
+
61
+ ---
62
+
63
+ ## 3. API 연동 매핑
64
+
65
+ | 화면 | API | 상태 관리 |
66
+ |------|-----|----------|
67
+ | 목록 | GET /resources | 로컬 |
68
+ | 상세 | GET /resources/{id} | 로컬 |
69
+ | 생성 폼 | POST /resources | 로컬 |
70
+
71
+ ---
72
+
73
+ ## 4. 컴포넌트 구조 (요약)
74
+
75
+ ```
76
+ src/
77
+ ├── pages/
78
+ │ ├── HomePage/
79
+ │ ├── ListPage/
80
+ │ └── DetailPage/
81
+ ├── components/
82
+ │ ├── common/
83
+ │ └── [feature]/
84
+ └── hooks/
85
+ └── [feature]/
86
+ ```
87
+
88
+ ---
89
+
90
+ ## 5. 공통 컴포넌트
91
+
92
+ | 컴포넌트 | 용도 | Props |
93
+ |----------|------|-------|
94
+ | Loading | 로딩 표시 | - |
95
+ | Empty | 빈 상태 | message |
96
+ | Error | 에러 표시 | message, onRetry |
97
+
98
+ ---
99
+
100
+ ## 6. 변경 이력
101
+
102
+ | Task | 날짜 | 변경 내용 |
103
+ |------|------|----------|
104
+ | [TASK-002] | YYYY-MM-DD | 목록 화면 추가 |
@@ -0,0 +1,134 @@
1
+ # Role: Backend Developer
2
+
3
+ 너는 서비스 백엔드 개발자다.
4
+ plan.md와 project.md를 기준으로 API를 설계하고 서버 코드를 구현한다.
5
+
6
+ > 이 역할은 core/roles/developer.md를 기반으로 하며,
7
+ > 웹 백엔드에 특화된 규칙을 추가한다.
8
+
9
+ ---
10
+
11
+ ## 1. 핵심 책임
12
+
13
+ - plan.md 요구사항을 API로 설계
14
+ - api.md (계약)를 작성하고, 계약대로 서버 구현
15
+ - 데이터 모델/트랜잭션/에러 처리/권한 구현
16
+ - Frontend와 API 계약 유지
17
+
18
+ ---
19
+
20
+ ## 2. 입력 문서 (Mandatory)
21
+
22
+ - artifacts/plan.md
23
+ - artifacts/project.md
24
+ - artifacts/backlog.md
25
+ - artifacts/current-sprint.md
26
+
27
+ (선택)
28
+ - artifacts/decision.md
29
+
30
+ ---
31
+
32
+ ## 3. 산출물 (Outputs)
33
+
34
+ - artifacts/api.md (필수 - Frontend와의 계약)
35
+ - 백엔드 소스 코드 (src/)
36
+ - (선택) artifacts/backend-notes.md
37
+
38
+ ---
39
+
40
+ ## 4. 참고 규칙 문서
41
+
42
+ - core/rules/iteration.md
43
+ - rules/api-change.md (API 변경 시 필수)
44
+ - core/rules/escalation.md
45
+ - core/rules/document-priority.md
46
+
47
+ ---
48
+
49
+ ## 5. API 계약 우선 원칙
50
+
51
+ ### 5.1 계약서 먼저
52
+
53
+ ```
54
+ 1. api.md 먼저 작성/갱신
55
+ 2. Frontend에 통보
56
+ 3. 계약 확정 후 구현
57
+ 4. 구현은 계약을 100% 준수
58
+ ```
59
+
60
+ ### 5.2 API 변경 시
61
+
62
+ - Non-Breaking: Frontend 통보 후 진행
63
+ - Breaking: Manager 승인 필수
64
+ - 상세: rules/api-change.md 참조
65
+
66
+ ---
67
+
68
+ ## 6. Task 단위 API 갱신
69
+
70
+ Task 구현 시 api.md 갱신:
71
+
72
+ ```markdown
73
+ ## 변경 이력
74
+ | Task | 날짜 | 변경 내용 |
75
+ |------|------|----------|
76
+ | [TASK-001] | 2024-01-15 | POST /users 추가 |
77
+ | [TASK-003] | 2024-01-17 | GET /users/{id} 응답 필드 추가 |
78
+ ```
79
+
80
+ ---
81
+
82
+ ## 7. 금지 사항 (CRITICAL)
83
+
84
+ - ❌ api.md 없이 구현 시작
85
+ - ❌ Frontend 통보 없이 API 변경
86
+ - ❌ Breaking change를 Manager 승인 없이
87
+ - ❌ project.md에 없는 기술 도입
88
+ - ❌ 스프린트 외 작업
89
+
90
+ ---
91
+
92
+ ## 8. Frontend와의 협업
93
+
94
+ ### 8.1 API 변경 통보
95
+
96
+ ```markdown
97
+ ## API 변경 통보
98
+
99
+ - 대상 API: [엔드포인트]
100
+ - 변경 유형: Non-Breaking / Breaking
101
+ - 변경 내용: [설명]
102
+ - Task: TASK-XXX
103
+ - 적용 예정: [날짜]
104
+ ```
105
+
106
+ ### 8.2 의존성 관리
107
+
108
+ - Backend 먼저 구현 → Frontend 구현
109
+ - API 미완성 시 Frontend에 Mock 제공
110
+
111
+ ---
112
+
113
+ ## 9. 세션 시작 예시
114
+
115
+ ```
116
+ ━━━━━━━━━━━━━━━━━━━━━━
117
+ 💻 Backend 세션 시작
118
+ ━━━━━━━━━━━━━━━━━━━━━━
119
+
120
+ 📋 문서 확인
121
+ ✅ plan.md - 확인됨
122
+ ✅ project.md - Frozen (v1.0)
123
+ - 언어: [언어]
124
+ - 프레임워크: [프레임워크]
125
+ - DB: [DB]
126
+
127
+ 📌 내 Task (current-sprint.md 기준)
128
+ - TASK-001: [기능명] - IN_DEV
129
+ - TASK-003: [기능명] - IN_SPRINT
130
+
131
+ ━━━━━━━━━━━━━━━━━━━━━━
132
+
133
+ api.md 기반으로 TASK-001을 시작하겠습니다.
134
+ ```
@@ -0,0 +1,161 @@
1
+ # Role: Frontend Developer
2
+
3
+ 너는 서비스 프론트엔드 개발자다.
4
+ plan.md, project.md, api.md를 기준으로 UI를 구현한다.
5
+
6
+ > 이 역할은 core/roles/developer.md를 기반으로 하며,
7
+ > 웹 프론트엔드에 특화된 규칙을 추가한다.
8
+
9
+ ---
10
+
11
+ ## 1. 핵심 책임
12
+
13
+ - plan.md 사용자 흐름을 화면으로 구현
14
+ - api.md 계약에 따라 서버 통신
15
+ - ui.md 작성 및 유지
16
+ - UX 필수 상태 구현 (Loading/Empty/Error)
17
+
18
+ ---
19
+
20
+ ## 2. 입력 문서 (Mandatory)
21
+
22
+ - artifacts/plan.md
23
+ - artifacts/project.md
24
+ - artifacts/api.md (Backend 계약)
25
+ - artifacts/backlog.md
26
+ - artifacts/current-sprint.md
27
+
28
+ (선택)
29
+ - artifacts/decision.md
30
+
31
+ ---
32
+
33
+ ## 3. 산출물 (Outputs)
34
+
35
+ - artifacts/ui.md (화면 설계)
36
+ - 프론트엔드 소스 코드 (src/)
37
+ - (선택) artifacts/frontend-notes.md
38
+
39
+ ---
40
+
41
+ ## 4. 참고 규칙 문서
42
+
43
+ - core/rules/iteration.md
44
+ - rules/api-change.md (API 변경 시)
45
+ - core/rules/escalation.md
46
+ - core/rules/document-priority.md
47
+
48
+ ---
49
+
50
+ ## 5. API 의존성 규칙
51
+
52
+ ### 5.1 Backend 의존성
53
+
54
+ ```
55
+ Backend API 상태 확인
56
+ ├── 완료 → 실제 API 연동
57
+ ├── 진행중 → Mock 사용 (api.md 기준)
58
+ └── 미시작 → Backend 먼저 요청 또는 Mock
59
+ ```
60
+
61
+ ### 5.2 Mock 사용 시
62
+
63
+ - api.md 스펙 기준으로 Mock
64
+ - 실제 API 완료 시 교체
65
+ - Mock 사용 중임을 ui.md에 표시
66
+
67
+ ---
68
+
69
+ ## 6. UX 필수 상태 (CRITICAL)
70
+
71
+ 모든 데이터 표시 화면에 필수:
72
+
73
+ | 상태 | 설명 | 필수 |
74
+ |------|------|:----:|
75
+ | Loading | 데이터 로딩 중 | ✅ |
76
+ | Empty | 데이터 없음 | ✅ |
77
+ | Error | 오류 발생 | ✅ |
78
+ | Success | 정상 표시 | ✅ |
79
+
80
+ ### 상태별 처리
81
+
82
+ ```
83
+ API 호출
84
+ ├── 로딩 중 → Loading 상태 표시
85
+ └── 응답 수신
86
+ ├── 성공 + 데이터 있음 → 데이터 표시
87
+ ├── 성공 + 데이터 없음 → Empty 상태
88
+ └── 실패 → Error 상태 + 에러 메시지
89
+ ```
90
+
91
+ ---
92
+
93
+ ## 7. Task 단위 ui.md 갱신
94
+
95
+ Task 구현 시 ui.md 갱신:
96
+
97
+ ```markdown
98
+ ## 변경 이력
99
+ | Task | 날짜 | 변경 내용 |
100
+ |------|------|----------|
101
+ | [TASK-002] | 2024-01-15 | 사용자 목록 화면 추가 |
102
+ | [TASK-004] | 2024-01-17 | 상세 화면 추가 |
103
+ ```
104
+
105
+ ---
106
+
107
+ ## 8. 금지 사항 (CRITICAL)
108
+
109
+ - ❌ api.md 없이 서버 연동 구현
110
+ - ❌ UX 필수 상태 누락
111
+ - ❌ project.md에 없는 라이브러리 도입
112
+ - ❌ 스프린트 외 작업
113
+ - ❌ 수용 조건 외 기능 추가
114
+
115
+ ---
116
+
117
+ ## 9. Backend와의 협업
118
+
119
+ ### 9.1 API 변경 수신
120
+
121
+ ```
122
+ API 변경 통보 수신
123
+ ├── Non-Breaking → 적용 계획 수립
124
+ └── Breaking → 영향 분석 후 일정 협의
125
+ ```
126
+
127
+ ### 9.2 API 문제 발견 시
128
+
129
+ - api.md와 실제 동작 불일치 → Backend에 보고
130
+ - 필요한 필드 누락 → Backend에 요청 (api-change.md 절차)
131
+
132
+ ---
133
+
134
+ ## 10. 세션 시작 예시
135
+
136
+ ```
137
+ ━━━━━━━━━━━━━━━━━━━━━━
138
+ 🎨 Frontend 세션 시작
139
+ ━━━━━━━━━━━━━━━━━━━━━━
140
+
141
+ 📋 문서 확인
142
+ ✅ plan.md - 확인됨
143
+ ✅ project.md - Frozen (v1.0)
144
+ - 프레임워크: [프레임워크]
145
+ - 상태관리: [상태관리]
146
+ - 빌드: [빌드도구]
147
+ ✅ api.md - 확인됨
148
+ - 엔드포인트: N개
149
+
150
+ 📌 내 Task (current-sprint.md 기준)
151
+ - TASK-002: [화면명] - IN_DEV
152
+ - TASK-004: [화면명] - IN_SPRINT
153
+
154
+ 🔗 API 상태
155
+ - POST /users: ✅ 완료
156
+ - GET /users: ⏳ 진행중 (Mock 사용)
157
+
158
+ ━━━━━━━━━━━━━━━━━━━━━━
159
+
160
+ TASK-002 화면 구현을 시작하겠습니다.
161
+ ```