@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,193 @@
|
|
|
1
|
+
# Project Standards (Frozen)
|
|
2
|
+
|
|
3
|
+
> 🔒 이 문서는 **Frozen** 상태입니다.
|
|
4
|
+
> 변경 시 RFC(Request for Change) 절차 필수.
|
|
5
|
+
> 모든 개발자는 이 문서의 규칙을 따릅니다.
|
|
6
|
+
|
|
7
|
+
**작성 주체:** 사용자와 팀이 함께 프로젝트 초기에 작성합니다.
|
|
8
|
+
**작성 시점:** plan.md 확정 후, 개발 시작 전에 작성하여 Frozen 상태로 전환합니다.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## ✅ 문서 완성도 체크리스트
|
|
13
|
+
|
|
14
|
+
> ⚠️ 모든 필수 항목이 체크되어야 Frozen 상태로 전환 가능
|
|
15
|
+
|
|
16
|
+
### 필수 섹션 (Required)
|
|
17
|
+
- [ ] 프로젝트 규모 정의 완료 (S/M/L)
|
|
18
|
+
- [ ] 기술 스택 전체 항목 결정됨
|
|
19
|
+
- [ ] 프로젝트 구조 정의됨
|
|
20
|
+
- [ ] 명명 규칙 정의됨
|
|
21
|
+
- [ ] 품질 기준 정의됨
|
|
22
|
+
|
|
23
|
+
### 품질 체크 (Quality)
|
|
24
|
+
- [ ] 모든 기술 선택에 근거 명시됨
|
|
25
|
+
- [ ] 버전 번호가 구체적으로 명시됨 (예: "1.x" 금지, "1.21.0" 필요)
|
|
26
|
+
- [ ] 금지 사항이 명확히 정의됨
|
|
27
|
+
|
|
28
|
+
### 연결성 체크 (Linkage)
|
|
29
|
+
- [ ] plan.md의 비기능 요구사항과 일관성 확인됨
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## ⚠️ Frozen 문서 변경 절차 (RFC)
|
|
34
|
+
|
|
35
|
+
> 이 문서가 Frozen 상태가 된 후에는 아래 절차로만 변경 가능
|
|
36
|
+
|
|
37
|
+
### RFC 절차
|
|
38
|
+
1. `rfc/` 디렉토리에 변경 제안서 작성
|
|
39
|
+
- 파일명: `RFC-NNNN-<title>.md`
|
|
40
|
+
2. RFC 문서에 포함할 내용:
|
|
41
|
+
- 변경 사유
|
|
42
|
+
- 영향 범위 분석
|
|
43
|
+
- 대안 검토
|
|
44
|
+
- 롤백 계획
|
|
45
|
+
3. Manager 승인
|
|
46
|
+
4. decision.md에 기록
|
|
47
|
+
5. project.md 업데이트
|
|
48
|
+
|
|
49
|
+
### RFC 없이 변경 가능한 항목
|
|
50
|
+
- 오타 수정
|
|
51
|
+
- 예시 추가 (규칙 변경 없이)
|
|
52
|
+
- 설명 보완 (의미 변경 없이)
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 0. 프로젝트 규모 정의 (Mandatory)
|
|
57
|
+
|
|
58
|
+
| 항목 | 값 |
|
|
59
|
+
|------|-----|
|
|
60
|
+
| 규모 | S / M / L |
|
|
61
|
+
| 판단 근거 | [근거] |
|
|
62
|
+
| 핵심 기능 수 | N개 |
|
|
63
|
+
| 예상 복잡도 | 낮음 / 중간 / 높음 |
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 1. 선택 요약 (Decision Summary)
|
|
68
|
+
|
|
69
|
+
> 프로젝트 기술 스택 및 아키텍처 선택 사항
|
|
70
|
+
|
|
71
|
+
| 항목 | 선택 | 근거 |
|
|
72
|
+
|------|------|------|
|
|
73
|
+
| [항목1] | [선택] | [근거] |
|
|
74
|
+
| [항목2] | [선택] | [근거] |
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 2. 기술 스택 (Frozen)
|
|
79
|
+
|
|
80
|
+
| 영역 | 선택 | 버전 | 비고 |
|
|
81
|
+
|------|------|------|------|
|
|
82
|
+
| 언어 | [선택] | [버전] | - |
|
|
83
|
+
| 프레임워크 | [선택] | [버전] | - |
|
|
84
|
+
| 데이터 저장 | [선택] | [버전] | - |
|
|
85
|
+
| 테스트 | [선택] | [버전] | - |
|
|
86
|
+
| 빌드 | [선택] | [버전] | - |
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 3. 아키텍처 규칙
|
|
91
|
+
|
|
92
|
+
### 3.1 프로젝트 구조
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
src/
|
|
96
|
+
├── [디렉토리]/
|
|
97
|
+
│ └── [설명]
|
|
98
|
+
├── [디렉토리]/
|
|
99
|
+
│ └── [설명]
|
|
100
|
+
└── [디렉토리]/
|
|
101
|
+
└── [설명]
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 3.2 명명 규칙
|
|
105
|
+
|
|
106
|
+
| 대상 | 규칙 | 예시 |
|
|
107
|
+
|------|------|------|
|
|
108
|
+
| 파일 | [규칙] | [예시] |
|
|
109
|
+
| 클래스/구조체 | [규칙] | [예시] |
|
|
110
|
+
| 함수/메서드 | [규칙] | [예시] |
|
|
111
|
+
| 변수 | [규칙] | [예시] |
|
|
112
|
+
|
|
113
|
+
### 3.3 코드 스타일
|
|
114
|
+
|
|
115
|
+
- 들여쓰기: [스페이스/탭, 개수]
|
|
116
|
+
- 최대 줄 길이: [N자]
|
|
117
|
+
- 린트 도구: [도구명]
|
|
118
|
+
- 포매터: [도구명]
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## 4. 품질 기준
|
|
123
|
+
|
|
124
|
+
### 4.1 테스트
|
|
125
|
+
|
|
126
|
+
| 항목 | 기준 |
|
|
127
|
+
|------|------|
|
|
128
|
+
| 테스트 프레임워크 | [선택] |
|
|
129
|
+
| 최소 커버리지 | [N%] |
|
|
130
|
+
| 필수 테스트 유형 | [단위/통합/E2E] |
|
|
131
|
+
|
|
132
|
+
### 4.2 코드 품질
|
|
133
|
+
|
|
134
|
+
| 항목 | 기준 |
|
|
135
|
+
|------|------|
|
|
136
|
+
| 린트 통과 | 필수 |
|
|
137
|
+
| 타입 체크 | [필수/권장] |
|
|
138
|
+
| 정적 분석 | [필수/권장] |
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 5. 의존성 관리
|
|
143
|
+
|
|
144
|
+
### 5.1 허용된 의존성
|
|
145
|
+
|
|
146
|
+
| 패키지 | 버전 | 용도 |
|
|
147
|
+
|--------|------|------|
|
|
148
|
+
| [패키지명] | [버전] | [용도] |
|
|
149
|
+
|
|
150
|
+
### 5.2 의존성 추가 규칙
|
|
151
|
+
|
|
152
|
+
- 새 의존성 추가 시: Manager 승인 필요
|
|
153
|
+
- 버전 업그레이드 시: [규칙]
|
|
154
|
+
- 금지된 패키지: [목록]
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 6. 문서화 규칙
|
|
159
|
+
|
|
160
|
+
### 6.1 코드 문서화
|
|
161
|
+
|
|
162
|
+
- 공개 인터페이스: 문서화 필수
|
|
163
|
+
- 내부 구현: [규칙]
|
|
164
|
+
- 문서화 형식: [형식]
|
|
165
|
+
|
|
166
|
+
### 6.2 산출물 문서
|
|
167
|
+
|
|
168
|
+
- 인터페이스 문서: [파일명]
|
|
169
|
+
- 변경 시 갱신 필수
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## 7. 제약 및 금지 사항 (Enforcement)
|
|
174
|
+
|
|
175
|
+
### 7.1 금지 사항
|
|
176
|
+
|
|
177
|
+
- ❌ 이 문서에 없는 기술/라이브러리 도입
|
|
178
|
+
- ❌ 규칙 무시한 코드 커밋
|
|
179
|
+
- ❌ 문서 없는 구조 변경
|
|
180
|
+
- ❌ Manager 승인 없는 의존성 추가
|
|
181
|
+
|
|
182
|
+
### 7.2 예외 처리
|
|
183
|
+
|
|
184
|
+
- 예외 필요 시: Manager에게 에스컬레이션
|
|
185
|
+
- 승인된 예외는 decision.md에 기록
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## 8. 변경 이력
|
|
190
|
+
|
|
191
|
+
| 버전 | 날짜 | 변경 내용 | 승인 |
|
|
192
|
+
|------|------|----------|------|
|
|
193
|
+
| v1.0 | YYYY-MM-DD | 초기 확정 | Manager |
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Release Notes - Sprint N
|
|
2
|
+
|
|
3
|
+
## 버전: v1.N.0
|
|
4
|
+
|
|
5
|
+
## 날짜: YYYY-MM-DD
|
|
6
|
+
|
|
7
|
+
### 새로운 기능
|
|
8
|
+
|
|
9
|
+
- [기능명]: [설명]
|
|
10
|
+
- [기능명]: [설명]
|
|
11
|
+
|
|
12
|
+
### 개선 사항
|
|
13
|
+
|
|
14
|
+
- [개선 내용]
|
|
15
|
+
- [개선 내용]
|
|
16
|
+
|
|
17
|
+
### 버그 수정
|
|
18
|
+
|
|
19
|
+
- task-NNN: [버그 설명] → [수정 내용]
|
|
20
|
+
- task-NNN: [버그 설명] → [수정 내용]
|
|
21
|
+
|
|
22
|
+
### Breaking Changes
|
|
23
|
+
|
|
24
|
+
> ⚠️ 기존 사용자에게 영향있는 변경
|
|
25
|
+
|
|
26
|
+
- [변경 내용]
|
|
27
|
+
- Migration: [마이그레이션 가이드]
|
|
28
|
+
|
|
29
|
+
### 알려진 이슈
|
|
30
|
+
|
|
31
|
+
- [알려진 문제와 임시 해결책]
|
|
32
|
+
|
|
33
|
+
### 의존성 변경
|
|
34
|
+
|
|
35
|
+
- 추가: [라이브러리명@버전]
|
|
36
|
+
- 업데이트: [라이브러리명] v1.0 → v2.0
|
|
37
|
+
- 제거: [라이브러리명]
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Sprint N 메타정보
|
|
2
|
+
|
|
3
|
+
| 항목 | 값 |
|
|
4
|
+
|------|-----|
|
|
5
|
+
| 스프린트 번호 | N |
|
|
6
|
+
| 상태 | active / completed |
|
|
7
|
+
| 시작일 | YYYY-MM-DD |
|
|
8
|
+
| 종료 예정 | YYYY-MM-DD (또는 완료일) |
|
|
9
|
+
| 목표 | [스프린트 목표 설명] |
|
|
10
|
+
|
|
11
|
+
## Task 목록
|
|
12
|
+
|
|
13
|
+
| Task | 제목 | 상태 | 우선순위 | 크기 |
|
|
14
|
+
|------|------|:----:|:--------:|:----:|
|
|
15
|
+
| task-NNN | [Task 제목] | BACKLOG | P0/P1/P2 | S/M/L |
|
|
16
|
+
|
|
17
|
+
**상태 범례:**
|
|
18
|
+
- BACKLOG: 스프린트에 할당됨, 작업 미시작
|
|
19
|
+
- IN_DEV: 개발 중
|
|
20
|
+
- DONE: 완료
|
|
21
|
+
- REJECTED: 리뷰 거부 (재작업 필요)
|
|
22
|
+
|
|
23
|
+
## 이월된 Task
|
|
24
|
+
|
|
25
|
+
> 이전 스프린트에서 미완료된 Task
|
|
26
|
+
|
|
27
|
+
| Task | 원 스프린트 | 이월 사유 |
|
|
28
|
+
|------|------------|----------|
|
|
29
|
+
| - | - | - |
|
|
30
|
+
|
|
31
|
+
## 차단 사항
|
|
32
|
+
|
|
33
|
+
> 현재 진행을 막고 있는 이슈
|
|
34
|
+
|
|
35
|
+
| Task | 차단 사유 | 담당자 | 상태 |
|
|
36
|
+
|------|----------|--------|------|
|
|
37
|
+
| - | - | - | - |
|
|
38
|
+
|
|
39
|
+
## 스프린트 회고 (완료 시 작성)
|
|
40
|
+
|
|
41
|
+
### 완료된 Task
|
|
42
|
+
- task-NNN: [설명]
|
|
43
|
+
|
|
44
|
+
### 미완료 Task (이월/취소)
|
|
45
|
+
- task-NNN: [사유]
|
|
46
|
+
|
|
47
|
+
### 잘된 점
|
|
48
|
+
- [내용]
|
|
49
|
+
|
|
50
|
+
### 개선할 점
|
|
51
|
+
- [내용]
|
|
52
|
+
|
|
53
|
+
### 다음 스프린트 제안
|
|
54
|
+
- [제안]
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Sprint N 회고
|
|
2
|
+
|
|
3
|
+
## 기간
|
|
4
|
+
- 시작: YYYY-MM-DD
|
|
5
|
+
- 종료: YYYY-MM-DD
|
|
6
|
+
|
|
7
|
+
## 목표 달성도
|
|
8
|
+
|
|
9
|
+
| 목표 | 달성 여부 | 비고 |
|
|
10
|
+
|------|:--------:|------|
|
|
11
|
+
| [목표 1] | ✅ / ⚠️ / ❌ | [설명] |
|
|
12
|
+
| [목표 2] | ✅ / ⚠️ / ❌ | [설명] |
|
|
13
|
+
|
|
14
|
+
## 완료된 Task (N개)
|
|
15
|
+
|
|
16
|
+
- task-001: [설명]
|
|
17
|
+
- task-002: [설명]
|
|
18
|
+
|
|
19
|
+
## 미완료 Task (N개)
|
|
20
|
+
|
|
21
|
+
| Task | 사유 | 처리 |
|
|
22
|
+
|------|------|------|
|
|
23
|
+
| task-NNN | [사유] | 이월 / 취소 |
|
|
24
|
+
|
|
25
|
+
## 잘된 점 (Keep)
|
|
26
|
+
|
|
27
|
+
- [구체적 내용]
|
|
28
|
+
- [구체적 내용]
|
|
29
|
+
|
|
30
|
+
## 개선할 점 (Problem)
|
|
31
|
+
|
|
32
|
+
- [구체적 문제점]
|
|
33
|
+
- [구체적 문제점]
|
|
34
|
+
|
|
35
|
+
## 시도할 것 (Try)
|
|
36
|
+
|
|
37
|
+
- [다음 스프린트에서 시도할 개선 방안]
|
|
38
|
+
- [다음 스프린트에서 시도할 개선 방안]
|
|
39
|
+
|
|
40
|
+
## 메트릭
|
|
41
|
+
|
|
42
|
+
- 계획 Task 수: N개
|
|
43
|
+
- 완료 Task 수: N개
|
|
44
|
+
- 완료율: X%
|
|
45
|
+
- 이월 Task 수: N개
|
|
46
|
+
|
|
47
|
+
## 다음 스프린트 제안
|
|
48
|
+
|
|
49
|
+
- [제안 1]
|
|
50
|
+
- [제안 2]
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Review Report: task-NNN
|
|
2
|
+
|
|
3
|
+
## Task 정보
|
|
4
|
+
- Task: task-NNN [Task 이름]
|
|
5
|
+
- Reviewer: reviewer
|
|
6
|
+
- Review Date: YYYY-MM-DD
|
|
7
|
+
|
|
8
|
+
## 수용 조건 체크
|
|
9
|
+
|
|
10
|
+
- [x] 조건 1 - 충족
|
|
11
|
+
- [x] 조건 2 - 충족
|
|
12
|
+
- [ ] 조건 3 - 미충족 (사유: ...)
|
|
13
|
+
|
|
14
|
+
## 기술 품질 체크
|
|
15
|
+
|
|
16
|
+
- [x] project.md 규칙 준수 (있으면)
|
|
17
|
+
- [x] 코드 스타일 준수
|
|
18
|
+
- [x] 테스트 작성 (필요 시)
|
|
19
|
+
- [ ] 문제 항목 (있으면)
|
|
20
|
+
|
|
21
|
+
## 판정: PASS / REJECT / WARN
|
|
22
|
+
|
|
23
|
+
**PASS** - 모든 조건 충족
|
|
24
|
+
|
|
25
|
+
또는
|
|
26
|
+
|
|
27
|
+
**REJECT** - 수용 조건 미충족
|
|
28
|
+
- 사유 1: [구체적 설명]
|
|
29
|
+
- 사유 2: [구체적 설명]
|
|
30
|
+
|
|
31
|
+
또는
|
|
32
|
+
|
|
33
|
+
**WARN** - 개선 권장
|
|
34
|
+
- 경미한 문제: [설명]
|
|
35
|
+
- 개선 제안: [내용]
|
|
36
|
+
|
|
37
|
+
## 코멘트
|
|
38
|
+
|
|
39
|
+
- [리뷰어의 전반적인 의견]
|
|
40
|
+
- [개선 제안 또는 칭찬]
|
|
41
|
+
|
|
42
|
+
## 수정 필요 사항 (REJECT인 경우)
|
|
43
|
+
|
|
44
|
+
1. [구체적 수정 지시]
|
|
45
|
+
2. [구체적 수정 지시]
|
|
46
|
+
|
|
47
|
+
### 참고
|
|
48
|
+
- project.md 섹션 X.X (있으면)
|
|
49
|
+
- 수용 조건 N번
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# TASK-NNN: [Task 이름]
|
|
2
|
+
|
|
3
|
+
| 항목 | 값 |
|
|
4
|
+
|------|-----|
|
|
5
|
+
| 상태 | BACKLOG / IN_DEV / DONE / REJECTED |
|
|
6
|
+
| 우선순위 | P0 / P1 / P2 |
|
|
7
|
+
| 크기 | S / M / L |
|
|
8
|
+
| 출처 | F001 (plan.md 기능 ID) |
|
|
9
|
+
| 담당 | - / developer |
|
|
10
|
+
| 의존성 | - 또는 task-NNN |
|
|
11
|
+
|
|
12
|
+
## 수용 조건 (Acceptance Criteria)
|
|
13
|
+
|
|
14
|
+
- [ ] 조건 1
|
|
15
|
+
- [ ] 조건 2
|
|
16
|
+
- [ ] 조건 3
|
|
17
|
+
|
|
18
|
+
## 구현 노트 (Developer 작성)
|
|
19
|
+
|
|
20
|
+
> Developer가 작업하면서 기록
|
|
21
|
+
|
|
22
|
+
- 구현 방식 설명
|
|
23
|
+
- 기술적 결정 사항
|
|
24
|
+
- 알려진 제약사항
|
|
25
|
+
|
|
26
|
+
## 이슈 (있으면)
|
|
27
|
+
|
|
28
|
+
> 작업 중 발견된 문제나 질문
|
|
29
|
+
|
|
30
|
+
### 이슈 제목
|
|
31
|
+
- 상황: [설명]
|
|
32
|
+
- 영향: [영향도]
|
|
33
|
+
- 제안: [해결 방안]
|
|
34
|
+
|
|
35
|
+
→ 사용자 승인 대기 / 해결됨
|
|
36
|
+
|
|
37
|
+
## 변경 이력
|
|
38
|
+
|
|
39
|
+
| 날짜 | 상태 변경 | 작성자 | 비고 |
|
|
40
|
+
|------|----------|--------|------|
|
|
41
|
+
| YYYY-MM-DD | BACKLOG 생성 | planner | 초기 생성 |
|
|
42
|
+
| YYYY-MM-DD | IN_DEV | developer | 작업 시작 |
|
|
43
|
+
| YYYY-MM-DD | DONE | developer | 구현 완료 |
|
|
@@ -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 | 목록 화면 추가 |
|