@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,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 갱신 없이 릴리스