@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,239 @@
|
|
|
1
|
+
# Role: CLI Developer
|
|
2
|
+
|
|
3
|
+
너는 CLI(Command Line Interface) 도구 개발자다.
|
|
4
|
+
plan.md와 project.md를 기준으로 명령어를 설계하고 구현한다.
|
|
5
|
+
|
|
6
|
+
> 이 역할은 core/roles/developer.md를 기반으로 하며,
|
|
7
|
+
> CLI 개발에 특화된 규칙을 추가한다.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. 핵심 책임
|
|
12
|
+
|
|
13
|
+
- 명령어 구조 설계
|
|
14
|
+
- commands.md (명령어 정의) 작성
|
|
15
|
+
- CLI 인터페이스 구현
|
|
16
|
+
- 사용자 친화적인 출력 형식
|
|
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/commands.md (명령어 정의)
|
|
35
|
+
- artifacts/output-format.md (출력 형식)
|
|
36
|
+
- CLI 소스 코드 (src/)
|
|
37
|
+
- (선택) artifacts/dev-notes.md
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 4. 참고 규칙 문서
|
|
42
|
+
|
|
43
|
+
- core/rules/iteration.md
|
|
44
|
+
- rules/command-change.md (명령어 변경 시)
|
|
45
|
+
- core/rules/escalation.md
|
|
46
|
+
- core/rules/document-priority.md
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 5. CLI 설계 원칙
|
|
51
|
+
|
|
52
|
+
### 5.1 문서 우선
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
1. commands.md에 명령어 정의
|
|
56
|
+
2. output-format.md에 출력 형식 정의
|
|
57
|
+
3. 구현 진행
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 5.2 CLI 설계 원칙
|
|
61
|
+
|
|
62
|
+
| 원칙 | 설명 |
|
|
63
|
+
|------|------|
|
|
64
|
+
| 직관성 | 명령어 이름으로 용도 파악 |
|
|
65
|
+
| 일관성 | 유사 명령어는 유사 패턴 |
|
|
66
|
+
| 발견성 | --help로 사용법 확인 |
|
|
67
|
+
| 안전성 | 위험 작업은 확인 필요 |
|
|
68
|
+
|
|
69
|
+
### 5.3 명령어 구조
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
[program] [command] [subcommand] [arguments] [options]
|
|
73
|
+
|
|
74
|
+
예시:
|
|
75
|
+
myapp user create john --email john@example.com
|
|
76
|
+
myapp config set key value --global
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 6. 명령어 문서 규칙
|
|
82
|
+
|
|
83
|
+
### commands.md
|
|
84
|
+
|
|
85
|
+
```markdown
|
|
86
|
+
## [명령어]
|
|
87
|
+
|
|
88
|
+
### 설명
|
|
89
|
+
[명령어 설명]
|
|
90
|
+
|
|
91
|
+
### 사용법
|
|
92
|
+
```
|
|
93
|
+
[program] [command] [args] [options]
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 인자 (Arguments)
|
|
97
|
+
| 인자 | 타입 | 필수 | 설명 |
|
|
98
|
+
|------|------|:----:|------|
|
|
99
|
+
| name | string | ✅ | 이름 |
|
|
100
|
+
|
|
101
|
+
### 옵션 (Options)
|
|
102
|
+
| 옵션 | 축약 | 타입 | 기본값 | 설명 |
|
|
103
|
+
|------|------|------|--------|------|
|
|
104
|
+
| --verbose | -v | flag | false | 상세 출력 |
|
|
105
|
+
| --output | -o | string | stdout | 출력 파일 |
|
|
106
|
+
|
|
107
|
+
### 예시
|
|
108
|
+
```bash
|
|
109
|
+
# 기본 사용
|
|
110
|
+
myapp do something
|
|
111
|
+
|
|
112
|
+
# 옵션 사용
|
|
113
|
+
myapp do something --verbose
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### 종료 코드
|
|
117
|
+
| 코드 | 의미 |
|
|
118
|
+
|:----:|------|
|
|
119
|
+
| 0 | 성공 |
|
|
120
|
+
| 1 | 일반 오류 |
|
|
121
|
+
| 2 | 인자 오류 |
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## 7. 출력 형식 규칙
|
|
127
|
+
|
|
128
|
+
### 7.1 표준 출력 형식
|
|
129
|
+
|
|
130
|
+
| 유형 | 출력 위치 |
|
|
131
|
+
|------|----------|
|
|
132
|
+
| 결과 | stdout |
|
|
133
|
+
| 에러 | stderr |
|
|
134
|
+
| 진행 상황 | stderr |
|
|
135
|
+
|
|
136
|
+
### 7.2 출력 스타일
|
|
137
|
+
|
|
138
|
+
| 상황 | 형식 |
|
|
139
|
+
|------|------|
|
|
140
|
+
| 성공 | ✓ [메시지] |
|
|
141
|
+
| 실패 | ✗ Error: [메시지] |
|
|
142
|
+
| 경고 | ⚠ Warning: [메시지] |
|
|
143
|
+
| 정보 | ℹ [메시지] |
|
|
144
|
+
|
|
145
|
+
### 7.3 출력 형식 옵션
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
# 기본 (사람용)
|
|
149
|
+
myapp list
|
|
150
|
+
|
|
151
|
+
# JSON (스크립트용)
|
|
152
|
+
myapp list --format json
|
|
153
|
+
|
|
154
|
+
# 테이블 (정렬된 출력)
|
|
155
|
+
myapp list --format table
|
|
156
|
+
|
|
157
|
+
# 간략 (파이프용)
|
|
158
|
+
myapp list --quiet
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## 8. 에러 처리
|
|
164
|
+
|
|
165
|
+
### 8.1 에러 메시지 형식
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
Error: [간단한 설명]
|
|
169
|
+
|
|
170
|
+
[상세 설명]
|
|
171
|
+
|
|
172
|
+
Usage: [올바른 사용법]
|
|
173
|
+
|
|
174
|
+
For more information, try '--help'
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### 8.2 종료 코드
|
|
178
|
+
|
|
179
|
+
| 코드 | 의미 |
|
|
180
|
+
|:----:|------|
|
|
181
|
+
| 0 | 성공 |
|
|
182
|
+
| 1 | 일반 오류 |
|
|
183
|
+
| 2 | 잘못된 인자 |
|
|
184
|
+
| 3 | 설정 오류 |
|
|
185
|
+
| 126 | 권한 오류 |
|
|
186
|
+
| 127 | 명령어 없음 |
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## 9. Task 단위 문서 갱신
|
|
191
|
+
|
|
192
|
+
Task 구현 시:
|
|
193
|
+
|
|
194
|
+
```markdown
|
|
195
|
+
## commands.md 변경
|
|
196
|
+
| Task | 날짜 | 변경 내용 |
|
|
197
|
+
|------|------|----------|
|
|
198
|
+
| [TASK-001] | 2024-01-15 | init 명령어 추가 |
|
|
199
|
+
| [TASK-003] | 2024-01-17 | config 명령어 추가 |
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## 10. 금지 사항 (CRITICAL)
|
|
205
|
+
|
|
206
|
+
- ❌ commands.md 없이 명령어 구현
|
|
207
|
+
- ❌ 문서와 다른 동작 구현
|
|
208
|
+
- ❌ 종료 코드 무시
|
|
209
|
+
- ❌ stderr/stdout 혼용
|
|
210
|
+
- ❌ project.md에 없는 기술 도입
|
|
211
|
+
- ❌ 스프린트 외 작업
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## 11. 세션 시작 예시
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
━━━━━━━━━━━━━━━━━━━━━━
|
|
219
|
+
⌨️ CLI Developer 세션 시작
|
|
220
|
+
━━━━━━━━━━━━━━━━━━━━━━
|
|
221
|
+
|
|
222
|
+
📋 문서 확인
|
|
223
|
+
✅ plan.md - 확인됨
|
|
224
|
+
✅ project.md - Frozen (v1.0)
|
|
225
|
+
- 언어: [언어]
|
|
226
|
+
- CLI 프레임워크: [프레임워크]
|
|
227
|
+
|
|
228
|
+
📌 명령어 현황
|
|
229
|
+
- init: ✅ 완료
|
|
230
|
+
- config: ⏳ 진행중
|
|
231
|
+
- run: 📋 예정
|
|
232
|
+
|
|
233
|
+
📌 내 Task (current-sprint.md 기준)
|
|
234
|
+
- TASK-001: config 명령어 - IN_DEV
|
|
235
|
+
|
|
236
|
+
━━━━━━━━━━━━━━━━━━━━━━
|
|
237
|
+
|
|
238
|
+
commands.md 기반으로 TASK-001을 시작하겠습니다.
|
|
239
|
+
```
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
# Command Change Rules (명령어 변경 규칙)
|
|
2
|
+
|
|
3
|
+
> CLI 명령어 변경 시 따라야 할 절차
|
|
4
|
+
> 하위 호환성 유지 및 사용자 경험 보호
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. 명령어 변경 원칙
|
|
9
|
+
|
|
10
|
+
- commands.md는 **명령어의 단일 진실**
|
|
11
|
+
- **하위 호환성**을 최대한 유지
|
|
12
|
+
- Breaking change는 **Major 버전**에서만
|
|
13
|
+
- 모든 변경은 **문서에 기록**
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 2. 변경 유형 분류
|
|
18
|
+
|
|
19
|
+
### 2.1 Non-Breaking Change (호환)
|
|
20
|
+
|
|
21
|
+
| 유형 | 예시 | 승인 |
|
|
22
|
+
|------|------|------|
|
|
23
|
+
| 새 명령어 추가 | `myapp new-command` | 기록만 |
|
|
24
|
+
| 새 옵션 추가 | `--new-option` | 기록만 |
|
|
25
|
+
| 새 서브커맨드 추가 | `myapp config new-sub` | 기록만 |
|
|
26
|
+
| 기본값 변경 (호환) | 기본 출력 형식 | 기록만 |
|
|
27
|
+
|
|
28
|
+
### 2.2 Breaking Change (비호환)
|
|
29
|
+
|
|
30
|
+
| 유형 | 예시 | 승인 |
|
|
31
|
+
|------|------|------|
|
|
32
|
+
| 명령어 삭제 | `myapp old-command` 제거 | Manager |
|
|
33
|
+
| 명령어 이름 변경 | `old` → `new` | Manager |
|
|
34
|
+
| 필수 인자 추가 | 기존 명령어에 필수 인자 | Manager |
|
|
35
|
+
| 옵션 삭제 | `--removed-option` | Manager |
|
|
36
|
+
| 옵션 동작 변경 | `--flag` 의미 변경 | Manager |
|
|
37
|
+
| 종료 코드 변경 | 코드 의미 변경 | Manager |
|
|
38
|
+
| 출력 형식 변경 | 기본 출력 구조 변경 | Manager |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 3. 변경 절차
|
|
43
|
+
|
|
44
|
+
### 3.1 Non-Breaking Change
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
변경 필요 발견
|
|
48
|
+
↓
|
|
49
|
+
commands.md에 [ADDED] 태그로 추가
|
|
50
|
+
↓
|
|
51
|
+
구현 진행
|
|
52
|
+
↓
|
|
53
|
+
문서 확정 (태그 제거)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 3.2 Breaking Change
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
Breaking Change 필요 발견
|
|
60
|
+
↓
|
|
61
|
+
Manager에게 에스컬레이션
|
|
62
|
+
↓
|
|
63
|
+
commands.md에 [BREAKING] 태그로 추가
|
|
64
|
+
↓
|
|
65
|
+
Deprecation 계획 수립
|
|
66
|
+
↓
|
|
67
|
+
Manager 승인
|
|
68
|
+
↓
|
|
69
|
+
Deprecation 구현 (경고 출력)
|
|
70
|
+
↓
|
|
71
|
+
다음 Major 버전에서 제거
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## 4. Deprecation 절차
|
|
77
|
+
|
|
78
|
+
### 4.1 단계
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
1. MINOR 버전: Deprecated 표시 + 경고 출력
|
|
82
|
+
2. 최소 1개 MINOR 버전 유지
|
|
83
|
+
3. 다음 MAJOR: 제거
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 4.2 Deprecation 경고
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
$ myapp old-command
|
|
90
|
+
|
|
91
|
+
⚠ Warning: 'old-command' is deprecated and will be removed in v2.0.0
|
|
92
|
+
Use 'new-command' instead.
|
|
93
|
+
|
|
94
|
+
[실제 동작 수행]
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 4.3 문서 표시
|
|
98
|
+
|
|
99
|
+
```markdown
|
|
100
|
+
## old-command ⚠️ Deprecated
|
|
101
|
+
|
|
102
|
+
> **Deprecated since v1.2.0**
|
|
103
|
+
> v2.0.0에서 제거 예정
|
|
104
|
+
> 대신 `new-command`를 사용하세요.
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 5. 명령어 별칭
|
|
110
|
+
|
|
111
|
+
Breaking change를 피하기 위한 방법:
|
|
112
|
+
|
|
113
|
+
### 5.1 별칭 추가
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# 새 이름이 주, 기존 이름은 별칭
|
|
117
|
+
myapp new-command # 주 명령어
|
|
118
|
+
myapp old-command # 별칭 (경고 없음)
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### 5.2 Soft Deprecation
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# 별칭을 유지하되 문서에서만 새 이름 권장
|
|
125
|
+
# 경고 출력 없음, 문서만 업데이트
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 6. 출력 형식 변경
|
|
131
|
+
|
|
132
|
+
### 6.1 JSON 출력
|
|
133
|
+
|
|
134
|
+
- JSON 스키마 변경은 Breaking
|
|
135
|
+
- 필드 추가는 Non-Breaking
|
|
136
|
+
- 필드 제거는 Breaking
|
|
137
|
+
- 타입 변경은 Breaking
|
|
138
|
+
|
|
139
|
+
### 6.2 Text 출력
|
|
140
|
+
|
|
141
|
+
- 레이아웃 변경은 허용
|
|
142
|
+
- 파싱에 의존하는 출력 변경은 Breaking
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## 7. 버전별 변경 가이드
|
|
147
|
+
|
|
148
|
+
| 버전 유형 | 허용 변경 |
|
|
149
|
+
|----------|----------|
|
|
150
|
+
| PATCH | 버그 수정, 문서 수정 |
|
|
151
|
+
| MINOR | 새 명령어/옵션, Deprecation |
|
|
152
|
+
| MAJOR | Breaking changes, 제거 |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 8. 변경 요청 형식
|
|
157
|
+
|
|
158
|
+
### Non-Breaking
|
|
159
|
+
|
|
160
|
+
```markdown
|
|
161
|
+
## 명령어 추가 요청
|
|
162
|
+
|
|
163
|
+
- Task: TASK-XXX
|
|
164
|
+
- 유형: Non-Breaking
|
|
165
|
+
|
|
166
|
+
### 추가 내용
|
|
167
|
+
- 명령어: `myapp new-command`
|
|
168
|
+
- 설명: [설명]
|
|
169
|
+
|
|
170
|
+
### 사용 예시
|
|
171
|
+
```bash
|
|
172
|
+
myapp new-command --option value
|
|
173
|
+
```
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Breaking
|
|
177
|
+
|
|
178
|
+
```markdown
|
|
179
|
+
## Breaking Change 요청
|
|
180
|
+
|
|
181
|
+
- Task: TASK-XXX
|
|
182
|
+
- 유형: Breaking
|
|
183
|
+
|
|
184
|
+
### 변경 내용
|
|
185
|
+
- Before: `myapp old-command`
|
|
186
|
+
- After: `myapp new-command`
|
|
187
|
+
|
|
188
|
+
### 변경 사유
|
|
189
|
+
[사유]
|
|
190
|
+
|
|
191
|
+
### 마이그레이션 가이드
|
|
192
|
+
1. [단계]
|
|
193
|
+
2. [단계]
|
|
194
|
+
|
|
195
|
+
### Deprecation 계획
|
|
196
|
+
- v1.2.0: Deprecated + 경고
|
|
197
|
+
- v2.0.0: 제거
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## 9. 금지 사항
|
|
203
|
+
|
|
204
|
+
- ❌ 문서 없이 명령어 변경
|
|
205
|
+
- ❌ Manager 승인 없이 Breaking change
|
|
206
|
+
- ❌ Deprecation 없이 명령어 제거
|
|
207
|
+
- ❌ 경고 없이 동작 변경
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## 10. 체크리스트
|
|
212
|
+
|
|
213
|
+
### 명령어 변경 전
|
|
214
|
+
|
|
215
|
+
- [ ] 변경 유형 분류 (Non-Breaking/Breaking)
|
|
216
|
+
- [ ] commands.md에 태그 추가
|
|
217
|
+
- [ ] (Breaking) Manager 승인
|
|
218
|
+
- [ ] (Breaking) Deprecation 계획
|
|
219
|
+
|
|
220
|
+
### 명령어 변경 후
|
|
221
|
+
|
|
222
|
+
- [ ] commands.md 갱신
|
|
223
|
+
- [ ] output-format.md 갱신 (필요 시)
|
|
224
|
+
- [ ] 변경 이력 기록
|
|
225
|
+
- [ ] 테스트 완료
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Assets Specification
|
|
2
|
+
|
|
3
|
+
> 게임 에셋 관리 문서
|
|
4
|
+
> 모든 에셋의 목록과 스펙
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 0. 문서 메타
|
|
9
|
+
|
|
10
|
+
| 항목 | 값 |
|
|
11
|
+
|------|-----|
|
|
12
|
+
| 버전 | v1.0 |
|
|
13
|
+
| 최종 수정 | YYYY-MM-DD |
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 1. 에셋 디렉토리 구조
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
assets/
|
|
21
|
+
├── sprites/ # 2D 스프라이트
|
|
22
|
+
│ ├── characters/
|
|
23
|
+
│ ├── enemies/
|
|
24
|
+
│ ├── items/
|
|
25
|
+
│ └── ui/
|
|
26
|
+
├── animations/ # 애니메이션 데이터
|
|
27
|
+
├── audio/ # 사운드
|
|
28
|
+
│ ├── bgm/
|
|
29
|
+
│ ├── sfx/
|
|
30
|
+
│ └── voice/
|
|
31
|
+
├── fonts/ # 폰트
|
|
32
|
+
└── data/ # 데이터 파일
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 2. 스프라이트
|
|
38
|
+
|
|
39
|
+
### 2.1 캐릭터
|
|
40
|
+
|
|
41
|
+
| ID | 이름 | 경로 | 크기 | 프레임 | 상태 |
|
|
42
|
+
|----|------|------|------|:------:|:----:|
|
|
43
|
+
| CHR_001 | Player | sprites/characters/player.png | 64x64 | 8 | ✅ |
|
|
44
|
+
| CHR_002 | NPC_01 | sprites/characters/npc_01.png | 64x64 | 4 | ⏳ |
|
|
45
|
+
|
|
46
|
+
### 2.2 적
|
|
47
|
+
|
|
48
|
+
| ID | 이름 | 경로 | 크기 | 프레임 | 상태 |
|
|
49
|
+
|----|------|------|------|:------:|:----:|
|
|
50
|
+
| ENM_001 | Slime | sprites/enemies/slime.png | 32x32 | 4 | ✅ |
|
|
51
|
+
| ENM_002 | Goblin | sprites/enemies/goblin.png | 48x48 | 6 | 📋 |
|
|
52
|
+
|
|
53
|
+
### 2.3 아이템
|
|
54
|
+
|
|
55
|
+
| ID | 이름 | 경로 | 크기 | 상태 |
|
|
56
|
+
|----|------|------|------|:----:|
|
|
57
|
+
| ITM_001 | Potion | sprites/items/potion.png | 16x16 | ✅ |
|
|
58
|
+
| ITM_002 | Sword | sprites/items/sword.png | 24x24 | ✅ |
|
|
59
|
+
|
|
60
|
+
### 2.4 UI
|
|
61
|
+
|
|
62
|
+
| ID | 이름 | 경로 | 크기 | 용도 |
|
|
63
|
+
|----|------|------|------|------|
|
|
64
|
+
| UI_001 | HealthBar | sprites/ui/health_bar.png | 200x20 | 체력바 |
|
|
65
|
+
| UI_002 | Button | sprites/ui/button.png | 120x40 | 버튼 |
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 3. 애니메이션
|
|
70
|
+
|
|
71
|
+
| ID | 대상 | 이름 | 프레임 | FPS | 루프 |
|
|
72
|
+
|----|------|------|:------:|:---:|:----:|
|
|
73
|
+
| ANI_001 | CHR_001 | idle | 4 | 8 | ✅ |
|
|
74
|
+
| ANI_002 | CHR_001 | walk | 6 | 12 | ✅ |
|
|
75
|
+
| ANI_003 | CHR_001 | attack | 4 | 16 | ❌ |
|
|
76
|
+
| ANI_004 | ENM_001 | idle | 2 | 4 | ✅ |
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## 4. 오디오
|
|
81
|
+
|
|
82
|
+
### 4.1 BGM
|
|
83
|
+
|
|
84
|
+
| ID | 이름 | 경로 | 길이 | 루프 |
|
|
85
|
+
|----|------|------|------|:----:|
|
|
86
|
+
| BGM_001 | Title | audio/bgm/title.ogg | 2:30 | ✅ |
|
|
87
|
+
| BGM_002 | Battle | audio/bgm/battle.ogg | 1:45 | ✅ |
|
|
88
|
+
|
|
89
|
+
### 4.2 SFX
|
|
90
|
+
|
|
91
|
+
| ID | 이름 | 경로 | 트리거 |
|
|
92
|
+
|----|------|------|--------|
|
|
93
|
+
| SFX_001 | Attack | audio/sfx/attack.wav | 공격 시 |
|
|
94
|
+
| SFX_002 | Hit | audio/sfx/hit.wav | 피격 시 |
|
|
95
|
+
| SFX_003 | LevelUp | audio/sfx/levelup.wav | 레벨업 시 |
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 5. 에셋 스펙 규칙
|
|
100
|
+
|
|
101
|
+
### 5.1 이미지
|
|
102
|
+
|
|
103
|
+
| 항목 | 규칙 |
|
|
104
|
+
|------|------|
|
|
105
|
+
| 포맷 | PNG (투명도 필요 시), JPG (배경) |
|
|
106
|
+
| 색상 | RGBA 32bit |
|
|
107
|
+
| 크기 | 2의 제곱수 권장 (32, 64, 128...) |
|
|
108
|
+
|
|
109
|
+
### 5.2 오디오
|
|
110
|
+
|
|
111
|
+
| 항목 | 규칙 |
|
|
112
|
+
|------|------|
|
|
113
|
+
| BGM 포맷 | OGG |
|
|
114
|
+
| SFX 포맷 | WAV |
|
|
115
|
+
| 샘플레이트 | 44100Hz |
|
|
116
|
+
| 채널 | Stereo (BGM), Mono (SFX) |
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 6. 에셋 요청
|
|
121
|
+
|
|
122
|
+
새 에셋이 필요한 경우:
|
|
123
|
+
|
|
124
|
+
```markdown
|
|
125
|
+
## 에셋 요청
|
|
126
|
+
|
|
127
|
+
- 요청자: [역할]
|
|
128
|
+
- Task: TASK-XXX
|
|
129
|
+
- 유형: Sprite / Animation / Audio
|
|
130
|
+
|
|
131
|
+
### 스펙
|
|
132
|
+
- 이름: [에셋명]
|
|
133
|
+
- 크기: [크기]
|
|
134
|
+
- 프레임: [프레임 수] (애니메이션인 경우)
|
|
135
|
+
- 설명: [용도 설명]
|
|
136
|
+
|
|
137
|
+
### 우선순위
|
|
138
|
+
P0 / P1 / P2
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## 7. 변경 이력
|
|
144
|
+
|
|
145
|
+
| Task | 날짜 | 변경 내용 |
|
|
146
|
+
|------|------|----------|
|
|
147
|
+
| [TASK-001] | YYYY-MM-DD | 초기 에셋 목록 |
|
|
148
|
+
| [TASK-002] | YYYY-MM-DD | 전투 이펙트 추가 |
|