@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,197 @@
|
|
|
1
|
+
# Public API Specification
|
|
2
|
+
|
|
3
|
+
> 라이브러리의 공개 인터페이스 정의
|
|
4
|
+
> 사용자에게 노출되는 모든 API를 문서화
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 0. 문서 메타
|
|
9
|
+
|
|
10
|
+
| 항목 | 값 |
|
|
11
|
+
|------|-----|
|
|
12
|
+
| 라이브러리명 | [이름] |
|
|
13
|
+
| 현재 버전 | v1.0.0 |
|
|
14
|
+
| 최종 수정 | YYYY-MM-DD |
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 1. 개요
|
|
19
|
+
|
|
20
|
+
### 1.1 라이브러리 소개
|
|
21
|
+
|
|
22
|
+
[라이브러리 한 줄 설명]
|
|
23
|
+
|
|
24
|
+
### 1.2 설치
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# npm
|
|
28
|
+
npm install [package-name]
|
|
29
|
+
|
|
30
|
+
# pip
|
|
31
|
+
pip install [package-name]
|
|
32
|
+
|
|
33
|
+
# 기타
|
|
34
|
+
[설치 명령]
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 1.3 빠른 시작
|
|
38
|
+
|
|
39
|
+
```python
|
|
40
|
+
# 기본 사용 예시
|
|
41
|
+
import library
|
|
42
|
+
|
|
43
|
+
result = library.main_function()
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 2. 공개 API 목록
|
|
49
|
+
|
|
50
|
+
| API | 설명 | 버전 | 상태 |
|
|
51
|
+
|-----|------|------|:----:|
|
|
52
|
+
| `mainFunction()` | 주요 기능 | v1.0.0 | ✅ |
|
|
53
|
+
| `helperFunction()` | 보조 기능 | v1.0.0 | ✅ |
|
|
54
|
+
| `oldFunction()` | 이전 기능 | v1.0.0 | ⚠️ Deprecated |
|
|
55
|
+
|
|
56
|
+
상태: ✅ 안정 / ⚠️ Deprecated / 🧪 실험적
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 3. API 상세
|
|
61
|
+
|
|
62
|
+
### 3.1 mainFunction
|
|
63
|
+
|
|
64
|
+
```python
|
|
65
|
+
def main_function(param1: str, param2: int = 10) -> Result:
|
|
66
|
+
"""
|
|
67
|
+
주요 기능 설명
|
|
68
|
+
|
|
69
|
+
Args:
|
|
70
|
+
param1: 첫 번째 파라미터 설명
|
|
71
|
+
param2: 두 번째 파라미터 (기본값: 10)
|
|
72
|
+
|
|
73
|
+
Returns:
|
|
74
|
+
Result: 결과 객체
|
|
75
|
+
|
|
76
|
+
Raises:
|
|
77
|
+
ValueError: param1이 빈 문자열인 경우
|
|
78
|
+
TypeError: param2가 정수가 아닌 경우
|
|
79
|
+
|
|
80
|
+
Example:
|
|
81
|
+
>>> result = main_function("hello", 20)
|
|
82
|
+
>>> print(result.value)
|
|
83
|
+
'processed: hello'
|
|
84
|
+
"""
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**파라미터:**
|
|
88
|
+
|
|
89
|
+
| 이름 | 타입 | 필수 | 기본값 | 설명 |
|
|
90
|
+
|------|------|:----:|--------|------|
|
|
91
|
+
| param1 | str | ✅ | - | 첫 번째 파라미터 |
|
|
92
|
+
| param2 | int | ❌ | 10 | 두 번째 파라미터 |
|
|
93
|
+
|
|
94
|
+
**반환값:**
|
|
95
|
+
|
|
96
|
+
| 타입 | 설명 |
|
|
97
|
+
|------|------|
|
|
98
|
+
| Result | 결과 객체 |
|
|
99
|
+
|
|
100
|
+
**예외:**
|
|
101
|
+
|
|
102
|
+
| 예외 | 조건 |
|
|
103
|
+
|------|------|
|
|
104
|
+
| ValueError | param1이 빈 문자열 |
|
|
105
|
+
| TypeError | param2가 정수 아님 |
|
|
106
|
+
|
|
107
|
+
**예시:**
|
|
108
|
+
|
|
109
|
+
```python
|
|
110
|
+
# 기본 사용
|
|
111
|
+
result = main_function("hello")
|
|
112
|
+
|
|
113
|
+
# 옵션 지정
|
|
114
|
+
result = main_function("hello", param2=20)
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
### 3.2 helperFunction
|
|
120
|
+
|
|
121
|
+
(동일 형식으로 작성)
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 4. 데이터 타입
|
|
126
|
+
|
|
127
|
+
### 4.1 Result
|
|
128
|
+
|
|
129
|
+
```python
|
|
130
|
+
class Result:
|
|
131
|
+
value: str # 처리 결과
|
|
132
|
+
status: str # 상태 ("success" | "error")
|
|
133
|
+
metadata: dict # 추가 정보
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**필드:**
|
|
137
|
+
|
|
138
|
+
| 필드 | 타입 | 설명 |
|
|
139
|
+
|------|------|------|
|
|
140
|
+
| value | str | 처리 결과 |
|
|
141
|
+
| status | str | 상태 |
|
|
142
|
+
| metadata | dict | 추가 정보 |
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## 5. 상수 및 설정
|
|
147
|
+
|
|
148
|
+
### 5.1 상수
|
|
149
|
+
|
|
150
|
+
| 상수 | 값 | 설명 |
|
|
151
|
+
|------|-----|------|
|
|
152
|
+
| DEFAULT_TIMEOUT | 30 | 기본 타임아웃 (초) |
|
|
153
|
+
| MAX_RETRIES | 3 | 최대 재시도 횟수 |
|
|
154
|
+
|
|
155
|
+
### 5.2 설정
|
|
156
|
+
|
|
157
|
+
```python
|
|
158
|
+
# 전역 설정
|
|
159
|
+
library.configure(
|
|
160
|
+
timeout=60,
|
|
161
|
+
debug=True
|
|
162
|
+
)
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## 6. Deprecated API
|
|
168
|
+
|
|
169
|
+
> 다음 Major 버전에서 제거 예정
|
|
170
|
+
|
|
171
|
+
### 6.1 oldFunction (Deprecated since v1.2.0)
|
|
172
|
+
|
|
173
|
+
```python
|
|
174
|
+
# ⚠️ Deprecated: main_function() 사용 권장
|
|
175
|
+
def old_function(param):
|
|
176
|
+
...
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**대체 방법:**
|
|
180
|
+
|
|
181
|
+
```python
|
|
182
|
+
# Before (deprecated)
|
|
183
|
+
old_function(param)
|
|
184
|
+
|
|
185
|
+
# After (recommended)
|
|
186
|
+
main_function(param)
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## 7. 변경 이력
|
|
192
|
+
|
|
193
|
+
| 버전 | 날짜 | 변경 내용 | Task |
|
|
194
|
+
|------|------|----------|------|
|
|
195
|
+
| v1.0.0 | YYYY-MM-DD | 초기 릴리스 | - |
|
|
196
|
+
| v1.1.0 | YYYY-MM-DD | helperFunction 추가 | TASK-003 |
|
|
197
|
+
| v1.2.0 | YYYY-MM-DD | oldFunction deprecated | TASK-005 |
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# Role: Library Developer
|
|
2
|
+
|
|
3
|
+
너는 라이브러리/SDK 개발자다.
|
|
4
|
+
plan.md와 project.md를 기준으로 공개 API를 설계하고 라이브러리를 구현한다.
|
|
5
|
+
|
|
6
|
+
> 이 역할은 core/roles/developer.md를 기반으로 하며,
|
|
7
|
+
> 라이브러리 개발에 특화된 규칙을 추가한다.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. 핵심 책임
|
|
12
|
+
|
|
13
|
+
- plan.md 요구사항을 공개 API로 설계
|
|
14
|
+
- public-api.md (공개 인터페이스) 작성 및 유지
|
|
15
|
+
- 사용자 친화적인 API 설계
|
|
16
|
+
- 하위 호환성 유지
|
|
17
|
+
- 예제 코드 및 문서화
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. 입력 문서 (Mandatory)
|
|
22
|
+
|
|
23
|
+
- artifacts/plan.md
|
|
24
|
+
- artifacts/project.md
|
|
25
|
+
- artifacts/backlog.md
|
|
26
|
+
- artifacts/current-sprint.md
|
|
27
|
+
|
|
28
|
+
(선택)
|
|
29
|
+
- artifacts/decision.md
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 3. 산출물 (Outputs)
|
|
34
|
+
|
|
35
|
+
- artifacts/public-api.md (공개 인터페이스 정의)
|
|
36
|
+
- artifacts/examples.md (사용 예제)
|
|
37
|
+
- artifacts/changelog.md (변경 이력)
|
|
38
|
+
- 라이브러리 소스 코드 (src/)
|
|
39
|
+
- (선택) artifacts/dev-notes.md
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 4. 참고 규칙 문서
|
|
44
|
+
|
|
45
|
+
- core/rules/iteration.md
|
|
46
|
+
- rules/versioning.md (버전 관리)
|
|
47
|
+
- core/rules/escalation.md
|
|
48
|
+
- core/rules/document-priority.md
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 5. 공개 API 설계 원칙
|
|
53
|
+
|
|
54
|
+
### 5.1 API 우선 설계
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
1. public-api.md 먼저 작성
|
|
58
|
+
2. 사용자 관점에서 검토
|
|
59
|
+
3. 예제 코드 작성
|
|
60
|
+
4. 구현 진행
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 5.2 API 품질 기준
|
|
64
|
+
|
|
65
|
+
| 기준 | 설명 |
|
|
66
|
+
|------|------|
|
|
67
|
+
| 직관성 | 이름만으로 용도 파악 |
|
|
68
|
+
| 일관성 | 유사 기능은 유사 패턴 |
|
|
69
|
+
| 최소성 | 필요한 것만 공개 |
|
|
70
|
+
| 확장성 | 미래 변경 고려 |
|
|
71
|
+
|
|
72
|
+
### 5.3 하위 호환성
|
|
73
|
+
|
|
74
|
+
- Public API 변경 시 Semantic Versioning 적용
|
|
75
|
+
- Breaking change는 Major 버전 증가
|
|
76
|
+
- Deprecation 경고 → 다음 Major에서 제거
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## 6. Semantic Versioning (필수)
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
MAJOR.MINOR.PATCH
|
|
84
|
+
|
|
85
|
+
MAJOR: 하위 비호환 변경
|
|
86
|
+
MINOR: 하위 호환 기능 추가
|
|
87
|
+
PATCH: 버그 수정
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### 버전 증가 기준
|
|
91
|
+
|
|
92
|
+
| 변경 유형 | 버전 |
|
|
93
|
+
|----------|------|
|
|
94
|
+
| 버그 수정 | PATCH |
|
|
95
|
+
| 새 기능 (호환) | MINOR |
|
|
96
|
+
| 새 기능 (비호환) | MAJOR |
|
|
97
|
+
| API 제거 | MAJOR |
|
|
98
|
+
| 동작 변경 | MAJOR |
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 7. 문서화 규칙
|
|
103
|
+
|
|
104
|
+
### 7.1 public-api.md
|
|
105
|
+
|
|
106
|
+
모든 공개 API 포함:
|
|
107
|
+
- 함수/메서드 시그니처
|
|
108
|
+
- 파라미터 설명
|
|
109
|
+
- 반환값 설명
|
|
110
|
+
- 예외/에러
|
|
111
|
+
- 사용 예시
|
|
112
|
+
|
|
113
|
+
### 7.2 examples.md
|
|
114
|
+
|
|
115
|
+
주요 사용 시나리오:
|
|
116
|
+
- 빠른 시작 (Quick Start)
|
|
117
|
+
- 일반적인 사용 패턴
|
|
118
|
+
- 고급 사용법
|
|
119
|
+
|
|
120
|
+
### 7.3 changelog.md
|
|
121
|
+
|
|
122
|
+
모든 버전의 변경 사항:
|
|
123
|
+
- 추가된 기능
|
|
124
|
+
- 변경된 기능
|
|
125
|
+
- 제거된 기능
|
|
126
|
+
- 버그 수정
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 8. Task 단위 문서 갱신
|
|
131
|
+
|
|
132
|
+
Task 구현 시:
|
|
133
|
+
|
|
134
|
+
```markdown
|
|
135
|
+
## changelog.md
|
|
136
|
+
### [Unreleased]
|
|
137
|
+
- [TASK-001] 새 기능 추가: [설명]
|
|
138
|
+
|
|
139
|
+
## public-api.md
|
|
140
|
+
### 추가된 API
|
|
141
|
+
- `newFunction()` - [설명] [TASK-001]
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## 9. 금지 사항 (CRITICAL)
|
|
147
|
+
|
|
148
|
+
- ❌ public-api.md 없이 구현
|
|
149
|
+
- ❌ 문서화 없이 공개 API 추가
|
|
150
|
+
- ❌ 경고 없이 API deprecation
|
|
151
|
+
- ❌ PATCH 버전에서 기능 추가
|
|
152
|
+
- ❌ MINOR 버전에서 Breaking change
|
|
153
|
+
- ❌ 스프린트 외 작업
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## 10. 세션 시작 예시
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
━━━━━━━━━━━━━━━━━━━━━━
|
|
161
|
+
📦 Library Developer 세션 시작
|
|
162
|
+
━━━━━━━━━━━━━━━━━━━━━━
|
|
163
|
+
|
|
164
|
+
📋 문서 확인
|
|
165
|
+
✅ plan.md - 확인됨
|
|
166
|
+
✅ project.md - Frozen (v1.0)
|
|
167
|
+
- 언어: [언어]
|
|
168
|
+
- 패키지 매니저: [매니저]
|
|
169
|
+
- 테스트: [프레임워크]
|
|
170
|
+
|
|
171
|
+
📌 현재 버전: v1.2.0
|
|
172
|
+
|
|
173
|
+
📌 내 Task (current-sprint.md 기준)
|
|
174
|
+
- TASK-001: [기능명] - IN_DEV
|
|
175
|
+
- TASK-003: [기능명] - IN_SPRINT
|
|
176
|
+
|
|
177
|
+
━━━━━━━━━━━━━━━━━━━━━━
|
|
178
|
+
|
|
179
|
+
public-api.md 기반으로 TASK-001을 시작하겠습니다.
|
|
180
|
+
```
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# Versioning Rules (버전 관리 규칙)
|
|
2
|
+
|
|
3
|
+
> 라이브러리 버전 관리 규칙
|
|
4
|
+
> Semantic Versioning 2.0.0 기반
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. 버전 형식
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
MAJOR.MINOR.PATCH[-PRERELEASE][+BUILD]
|
|
12
|
+
|
|
13
|
+
예시:
|
|
14
|
+
1.0.0
|
|
15
|
+
2.1.3
|
|
16
|
+
1.0.0-alpha.1
|
|
17
|
+
1.0.0-beta.2+build.123
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 2. 버전 증가 규칙
|
|
23
|
+
|
|
24
|
+
### 2.1 MAJOR (주 버전)
|
|
25
|
+
|
|
26
|
+
하위 호환되지 않는 변경 시 증가:
|
|
27
|
+
|
|
28
|
+
| 변경 유형 | 예시 |
|
|
29
|
+
|----------|------|
|
|
30
|
+
| 공개 API 제거 | `removeFunction()` 삭제 |
|
|
31
|
+
| 공개 API 시그니처 변경 | 파라미터 타입 변경 |
|
|
32
|
+
| 동작 변경 | 반환값 의미 변경 |
|
|
33
|
+
| 필수 파라미터 추가 | 기존 함수에 필수 인자 |
|
|
34
|
+
|
|
35
|
+
### 2.2 MINOR (부 버전)
|
|
36
|
+
|
|
37
|
+
하위 호환되는 기능 추가 시 증가:
|
|
38
|
+
|
|
39
|
+
| 변경 유형 | 예시 |
|
|
40
|
+
|----------|------|
|
|
41
|
+
| 새 기능 추가 | 새 함수/클래스 |
|
|
42
|
+
| 선택적 파라미터 추가 | 기본값 있는 인자 |
|
|
43
|
+
| Deprecation 표시 | 제거 예고 |
|
|
44
|
+
|
|
45
|
+
### 2.3 PATCH (수정 버전)
|
|
46
|
+
|
|
47
|
+
하위 호환되는 버그 수정 시 증가:
|
|
48
|
+
|
|
49
|
+
| 변경 유형 | 예시 |
|
|
50
|
+
|----------|------|
|
|
51
|
+
| 버그 수정 | 동작 오류 수정 |
|
|
52
|
+
| 성능 개선 | API 변경 없는 최적화 |
|
|
53
|
+
| 문서 수정 | 오타, 설명 보완 |
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 3. Pre-release 버전
|
|
58
|
+
|
|
59
|
+
### 3.1 단계
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
alpha → beta → rc → release
|
|
63
|
+
|
|
64
|
+
예시:
|
|
65
|
+
1.0.0-alpha.1
|
|
66
|
+
1.0.0-alpha.2
|
|
67
|
+
1.0.0-beta.1
|
|
68
|
+
1.0.0-rc.1
|
|
69
|
+
1.0.0
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 3.2 Pre-release 규칙
|
|
73
|
+
|
|
74
|
+
- alpha: 불안정, API 변경 가능
|
|
75
|
+
- beta: 기능 완료, 버그 수정 중
|
|
76
|
+
- rc: 릴리스 후보, 중요 버그만 수정
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## 4. Deprecation 절차
|
|
81
|
+
|
|
82
|
+
### 4.1 Deprecation 단계
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
1. MINOR 버전에서 Deprecated 표시
|
|
86
|
+
2. 경고 메시지 출력 (런타임)
|
|
87
|
+
3. 최소 1개 MINOR 버전 유지
|
|
88
|
+
4. 다음 MAJOR에서 제거
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### 4.2 Deprecation 표시
|
|
92
|
+
|
|
93
|
+
```markdown
|
|
94
|
+
## public-api.md
|
|
95
|
+
|
|
96
|
+
### oldFunction() ⚠️ Deprecated
|
|
97
|
+
|
|
98
|
+
> **Deprecated since v1.2.0**
|
|
99
|
+
> v2.0.0에서 제거 예정
|
|
100
|
+
> 대신 `newFunction()`을 사용하세요.
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### 4.3 changelog.md 기록
|
|
104
|
+
|
|
105
|
+
```markdown
|
|
106
|
+
## [1.2.0] - YYYY-MM-DD
|
|
107
|
+
|
|
108
|
+
### Deprecated
|
|
109
|
+
- `oldFunction()` - v2.0.0에서 제거 예정, `newFunction()` 사용 권장
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 5. 변경 유형별 버전 결정
|
|
115
|
+
|
|
116
|
+
| 변경 | MAJOR | MINOR | PATCH |
|
|
117
|
+
|------|:-----:|:-----:|:-----:|
|
|
118
|
+
| API 제거 | ✅ | | |
|
|
119
|
+
| API 시그니처 변경 | ✅ | | |
|
|
120
|
+
| 동작 변경 (비호환) | ✅ | | |
|
|
121
|
+
| 새 기능 추가 | | ✅ | |
|
|
122
|
+
| API Deprecation | | ✅ | |
|
|
123
|
+
| 버그 수정 | | | ✅ |
|
|
124
|
+
| 문서 수정 | | | ✅ |
|
|
125
|
+
| 내부 리팩토링 | | | ✅ |
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## 6. changelog.md 형식
|
|
130
|
+
|
|
131
|
+
```markdown
|
|
132
|
+
# Changelog
|
|
133
|
+
|
|
134
|
+
모든 주요 변경 사항을 기록합니다.
|
|
135
|
+
[Keep a Changelog](https://keepachangelog.com) 형식을 따릅니다.
|
|
136
|
+
|
|
137
|
+
## [Unreleased]
|
|
138
|
+
|
|
139
|
+
### Added
|
|
140
|
+
- [TASK-XXX] 새 기능
|
|
141
|
+
|
|
142
|
+
### Changed
|
|
143
|
+
- [TASK-XXX] 변경 사항
|
|
144
|
+
|
|
145
|
+
### Deprecated
|
|
146
|
+
- [TASK-XXX] 제거 예정 기능
|
|
147
|
+
|
|
148
|
+
### Removed
|
|
149
|
+
- [TASK-XXX] 제거된 기능
|
|
150
|
+
|
|
151
|
+
### Fixed
|
|
152
|
+
- [TASK-XXX] 버그 수정
|
|
153
|
+
|
|
154
|
+
## [1.1.0] - YYYY-MM-DD
|
|
155
|
+
|
|
156
|
+
### Added
|
|
157
|
+
- [TASK-001] 초기 기능
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## 7. 릴리스 체크리스트
|
|
163
|
+
|
|
164
|
+
### 릴리스 전
|
|
165
|
+
|
|
166
|
+
- [ ] 모든 Task 완료 (DONE)
|
|
167
|
+
- [ ] changelog.md 갱신
|
|
168
|
+
- [ ] public-api.md 갱신
|
|
169
|
+
- [ ] examples.md 갱신 (필요 시)
|
|
170
|
+
- [ ] 테스트 통과
|
|
171
|
+
- [ ] 버전 번호 결정
|
|
172
|
+
|
|
173
|
+
### 릴리스 후
|
|
174
|
+
|
|
175
|
+
- [ ] 버전 태그 생성
|
|
176
|
+
- [ ] 패키지 배포
|
|
177
|
+
- [ ] 릴리스 노트 공개
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## 8. 금지 사항
|
|
182
|
+
|
|
183
|
+
- ❌ PATCH에서 새 기능 추가
|
|
184
|
+
- ❌ MINOR에서 Breaking change
|
|
185
|
+
- ❌ Deprecation 없이 API 제거
|
|
186
|
+
- ❌ changelog.md 갱신 없이 릴리스
|