aiwf 0.3.16 → 0.3.18
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.ko.md +1 -1
- package/README.md +88 -229
- package/docs/ADR_MANAGEMENT_GUIDE.ko.md +602 -0
- package/docs/ADR_MANAGEMENT_GUIDE.md +602 -0
- package/docs/API_REFERENCE_FULL.ko.md +160 -4
- package/docs/API_REFERENCE_FULL.md +160 -4
- package/docs/EXAMPLES.ko.md +695 -0
- package/docs/EXAMPLES.md +12 -12
- package/docs/GETTING_STARTED.md +19 -25
- package/docs/MODULE_MANAGEMENT_GUIDE.ko.md +289 -0
- package/docs/MODULE_MANAGEMENT_GUIDE.md +289 -0
- package/docs/PRD.ko.md +2 -2
- package/docs/PRD.md +2 -2
- package/docs/YOLO_SYSTEM_GUIDE.ko.md +542 -0
- package/docs/YOLO_SYSTEM_GUIDE.md +542 -0
- package/package.json +1 -1
- package/src/config/file-lists.js +5 -5
- package/templates/README.md +0 -78
- package/templates/api-server/config.json +0 -64
- package/templates/api-server/template/.aiwf/config.json +0 -56
- package/templates/api-server/template/.aiwf/feature-ledger.json +0 -42
- package/templates/api-server/template/.aiwf/personas/backend-engineer.json +0 -40
- package/templates/api-server/template/.aiwf/scripts/cli.js +0 -111
- package/templates/api-server/template/.env.example +0 -29
- package/templates/api-server/template/.eslintrc.json +0 -23
- package/templates/api-server/template/README.md +0 -171
- package/templates/api-server/template/jest.config.js +0 -26
- package/templates/api-server/template/nodemon.json +0 -9
- package/templates/api-server/template/package.json +0 -61
- package/templates/api-server/template/src/app.ts +0 -60
- package/templates/api-server/template/src/config/swagger.ts +0 -38
- package/templates/api-server/template/src/controllers/aiwfController.ts +0 -54
- package/templates/api-server/template/src/controllers/authController.ts +0 -128
- package/templates/api-server/template/src/controllers/statusController.ts +0 -28
- package/templates/api-server/template/src/index.ts +0 -28
- package/templates/api-server/template/src/middleware/aiwfMiddleware.ts +0 -50
- package/templates/api-server/template/src/middleware/authMiddleware.ts +0 -41
- package/templates/api-server/template/src/middleware/errorHandler.ts +0 -42
- package/templates/api-server/template/src/middleware/notFoundHandler.ts +0 -14
- package/templates/api-server/template/src/middleware/requestLogger.ts +0 -20
- package/templates/api-server/template/src/routes/aiwf.ts +0 -31
- package/templates/api-server/template/src/routes/index.ts +0 -13
- package/templates/api-server/template/src/routes/v1/index.ts +0 -67
- package/templates/api-server/template/src/utils/logger.ts +0 -37
- package/templates/api-server/template/tests/app.test.ts +0 -40
- package/templates/api-server/template/tsconfig.json +0 -43
- package/templates/npm-library/config.json +0 -61
- package/templates/npm-library/template/LICENSE +0 -21
- package/templates/npm-library/template/README.md +0 -201
- package/templates/npm-library/template/package.json +0 -78
- package/templates/web-app/config.json +0 -53
- package/templates/web-app/template/.aiwf/config.json +0 -54
- package/templates/web-app/template/.aiwf/feature-ledger.json +0 -37
- package/templates/web-app/template/.aiwf/personas/fullstack-developer.json +0 -40
- package/templates/web-app/template/.aiwf/scripts/cli.js +0 -110
- package/templates/web-app/template/.eslintrc.cjs +0 -20
- package/templates/web-app/template/README.md +0 -151
- package/templates/web-app/template/index.html +0 -14
- package/templates/web-app/template/package.json +0 -44
- package/templates/web-app/template/postcss.config.js +0 -6
- package/templates/web-app/template/public/vite.svg +0 -1
- package/templates/web-app/template/src/App.tsx +0 -21
- package/templates/web-app/template/src/components/Layout.tsx +0 -57
- package/templates/web-app/template/src/components/aiwf/ContextStatus.tsx +0 -107
- package/templates/web-app/template/src/components/aiwf/TokenUsage.tsx +0 -71
- package/templates/web-app/template/src/index.css +0 -60
- package/templates/web-app/template/src/main.tsx +0 -10
- package/templates/web-app/template/src/pages/AiwfDashboard.tsx +0 -57
- package/templates/web-app/template/src/pages/HomePage.tsx +0 -89
- package/templates/web-app/template/src/pages/NotFound.tsx +0 -25
- package/templates/web-app/template/src/stores/aiwfStore.ts +0 -126
- package/templates/web-app/template/src/types/global.d.ts +0 -9
- package/templates/web-app/template/src/vite-env.d.ts +0 -1
- package/templates/web-app/template/tailwind.config.js +0 -30
- package/templates/web-app/template/tsconfig.json +0 -37
- package/templates/web-app/template/tsconfig.node.json +0 -10
- package/templates/web-app/template/vite.config.ts +0 -23
- /package/rules/global/{code-style-guide.md → aiwf-code-style-guide.md} +0 -0
- /package/rules/global/{coding-principles.md → aiwf-coding-principles.md} +0 -0
- /package/rules/global/{development-process.md → aiwf-development-process.md} +0 -0
- /package/rules/global/{global-rules.md → aiwf-global-rules.md} +0 -0
- /package/rules/manual/{generate-plan-docs.md → aiwf-generate-plan-docs.md} +0 -0
|
@@ -0,0 +1,602 @@
|
|
|
1
|
+
# AIWF Architecture Decision Record (ADR) 관리 가이드
|
|
2
|
+
|
|
3
|
+
> AIWF 프로젝트에서 ADR을 사용하여 아키텍처 결정을 관리하는 종합 가이드
|
|
4
|
+
|
|
5
|
+
[한국어](ADR_MANAGEMENT_GUIDE.ko.md) | [English](ADR_MANAGEMENT_GUIDE.md)
|
|
6
|
+
|
|
7
|
+
## 목차
|
|
8
|
+
|
|
9
|
+
1. [ADR이란?](#adr이란)
|
|
10
|
+
2. [AIWF에서 ADR을 사용하는 이유](#aiwf에서-adr을-사용하는-이유)
|
|
11
|
+
3. [ADR 구조](#adr-구조)
|
|
12
|
+
4. [AIWF와의 통합](#aiwf와의-통합)
|
|
13
|
+
5. [ADR 생성](#adr-생성)
|
|
14
|
+
6. [ADR 관리](#adr-관리)
|
|
15
|
+
7. [ADR 템플릿](#adr-템플릿)
|
|
16
|
+
8. [모범 사례](#모범-사례)
|
|
17
|
+
9. [자동화 및 도구](#자동화-및-도구)
|
|
18
|
+
10. [예제](#예제)
|
|
19
|
+
|
|
20
|
+
## ADR이란?
|
|
21
|
+
|
|
22
|
+
Architecture Decision Record(ADR)는 프로젝트에서 내려진 중요한 아키텍처 결정을 컨텍스트와 결과와 함께 기록하는 짧은 텍스트 문서입니다. 특정 결정이 내려진 이유의 역사적 기록 역할을 하며, 미래의 개발자들이 아키텍처 선택의 배경을 이해하는 데 도움을 줍니다.
|
|
23
|
+
|
|
24
|
+
### 주요 특징
|
|
25
|
+
|
|
26
|
+
- **불변성**: 작성된 후에는 변경되지 않음 (대체만 가능)
|
|
27
|
+
- **번호 체계**: 쉬운 참조를 위한 순차적 번호 매기기
|
|
28
|
+
- **풍부한 컨텍스트**: 결정에 이르게 된 상황 포함
|
|
29
|
+
- **결과 인식**: 결과와 트레이드오프 문서화
|
|
30
|
+
|
|
31
|
+
## AIWF에서 ADR을 사용하는 이유
|
|
32
|
+
|
|
33
|
+
### AI 지원 개발의 이점
|
|
34
|
+
|
|
35
|
+
1. **AI 컨텍스트**: Claude Code에 결정의 역사적 컨텍스트 제공
|
|
36
|
+
2. **자율 가이던스**: YOLO 모드가 정보에 기반한 아키텍처 선택을 하도록 도움
|
|
37
|
+
3. **일관성**: AI가 확립된 아키텍처 패턴을 따르도록 보장
|
|
38
|
+
4. **문서화**: 개발 세션 간 아키텍처 지식 유지
|
|
39
|
+
|
|
40
|
+
### AIWF 특화 장점
|
|
41
|
+
|
|
42
|
+
- **스프린트 계획**: ADR이 태스크 생성과 우선순위에 정보 제공
|
|
43
|
+
- **페르소나 컨텍스트**: 다른 AI 페르소나가 관련 결정 참조 가능
|
|
44
|
+
- **품질 제어**: Engineering Guard가 결정 준수 여부 검증 가능
|
|
45
|
+
- **복구**: 체크포인트 시스템이 컨텍스트 복원을 위해 ADR 참조 가능
|
|
46
|
+
|
|
47
|
+
## ADR 구조
|
|
48
|
+
|
|
49
|
+
### 표준 ADR 형식
|
|
50
|
+
|
|
51
|
+
```markdown
|
|
52
|
+
# ADR-001: 결정 제목
|
|
53
|
+
|
|
54
|
+
**날짜**: YYYY-MM-DD
|
|
55
|
+
**상태**: [제안됨 | 승인됨 | 폐기됨 | 대체됨]
|
|
56
|
+
**컨텍스트**: AIWF 프로젝트 컨텍스트
|
|
57
|
+
|
|
58
|
+
## 컨텍스트
|
|
59
|
+
|
|
60
|
+
이 결정을 촉발한 문제나 상황에 대한 설명.
|
|
61
|
+
|
|
62
|
+
## 결정
|
|
63
|
+
|
|
64
|
+
내려진 아키텍처 결정.
|
|
65
|
+
|
|
66
|
+
## 결과
|
|
67
|
+
|
|
68
|
+
### 긍정적
|
|
69
|
+
- 이 결정의 이점과 장점
|
|
70
|
+
|
|
71
|
+
### 부정적
|
|
72
|
+
- 단점과 트레이드오프
|
|
73
|
+
|
|
74
|
+
### 중립적
|
|
75
|
+
- 기타 효과와 고려사항
|
|
76
|
+
|
|
77
|
+
## 구현 참고사항
|
|
78
|
+
|
|
79
|
+
AIWF 내에서의 구현을 위한 구체적인 가이던스.
|
|
80
|
+
|
|
81
|
+
## 관련 결정
|
|
82
|
+
- 관련 ADR에 대한 링크
|
|
83
|
+
- 영향받는 AIWF 구성요소에 대한 참조
|
|
84
|
+
|
|
85
|
+
## 준수 검증
|
|
86
|
+
- 이 결정에 대한 준수 여부를 확인하는 방법
|
|
87
|
+
- 해당되는 경우 Engineering Guard 규칙
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### AIWF 강화 구조
|
|
91
|
+
|
|
92
|
+
```markdown
|
|
93
|
+
# ADR-001: 결정 제목
|
|
94
|
+
|
|
95
|
+
**날짜**: YYYY-MM-DD
|
|
96
|
+
**상태**: 승인됨
|
|
97
|
+
**컨텍스트**: AIWF v0.3.16+ 프로젝트
|
|
98
|
+
**영향 범위**: [CLI | YOLO | Personas | Templates]
|
|
99
|
+
**페르소나 관련성**: [architect | developer | security]
|
|
100
|
+
|
|
101
|
+
## 컨텍스트
|
|
102
|
+
[표준 컨텍스트 섹션]
|
|
103
|
+
|
|
104
|
+
## 결정
|
|
105
|
+
[표준 결정 섹션]
|
|
106
|
+
|
|
107
|
+
## AIWF 통합
|
|
108
|
+
|
|
109
|
+
### CLI 영향
|
|
110
|
+
이 결정이 CLI 명령어와 워크플로에 미치는 영향.
|
|
111
|
+
|
|
112
|
+
### YOLO 모드 고려사항
|
|
113
|
+
자율 실행과 안전 메커니즘에 대한 의미.
|
|
114
|
+
|
|
115
|
+
### 페르소나 가이드라인
|
|
116
|
+
다른 AI 페르소나를 위한 구체적인 가이던스.
|
|
117
|
+
|
|
118
|
+
### 템플릿 업데이트
|
|
119
|
+
프로젝트 템플릿에 필요한 변경사항.
|
|
120
|
+
|
|
121
|
+
## 결과
|
|
122
|
+
[표준 결과 섹션]
|
|
123
|
+
|
|
124
|
+
## 검증 규칙
|
|
125
|
+
|
|
126
|
+
### Engineering Guard 규칙
|
|
127
|
+
```yaml
|
|
128
|
+
# .aiwf/yolo-config.yaml 추가사항
|
|
129
|
+
custom_rules:
|
|
130
|
+
- name: "ADR-001 준수"
|
|
131
|
+
pattern: "validation_pattern"
|
|
132
|
+
severity: "warning"
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### 자동화된 검사
|
|
136
|
+
- 준수 검증을 위한 단위 테스트
|
|
137
|
+
- CI/CD 파이프라인 검증
|
|
138
|
+
- AIWF 명령어 통합
|
|
139
|
+
|
|
140
|
+
## 구현 가이드
|
|
141
|
+
|
|
142
|
+
### 단계별 구현
|
|
143
|
+
1. [상세한 구현 단계]
|
|
144
|
+
2. [AIWF 특화 고려사항]
|
|
145
|
+
3. [검증 체크포인트]
|
|
146
|
+
|
|
147
|
+
### 코드 예제
|
|
148
|
+
```javascript
|
|
149
|
+
// 구현 예제
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## 관련 문서
|
|
153
|
+
- [관련 AIWF 문서에 대한 링크]
|
|
154
|
+
- [관련 ADR]
|
|
155
|
+
- [AIWF 모듈 문서]
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## AIWF와의 통합
|
|
159
|
+
|
|
160
|
+
### 디렉토리 구조
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
.aiwf/
|
|
164
|
+
├── adrs/
|
|
165
|
+
│ ├── 0001-module-architecture.md
|
|
166
|
+
│ ├── 0002-yolo-safety-mechanisms.md
|
|
167
|
+
│ ├── 0003-persona-selection-strategy.md
|
|
168
|
+
│ └── template.md
|
|
169
|
+
├── yolo-config.yaml
|
|
170
|
+
└── state.json
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### AIWF 명령어 통합
|
|
174
|
+
|
|
175
|
+
#### 계획된 명령어 (향후 개선)
|
|
176
|
+
```bash
|
|
177
|
+
# 새 ADR 생성
|
|
178
|
+
aiwf adr create "데이터베이스 마이그레이션 전략"
|
|
179
|
+
|
|
180
|
+
# ADR 목록
|
|
181
|
+
aiwf adr list
|
|
182
|
+
|
|
183
|
+
# 특정 ADR 표시
|
|
184
|
+
aiwf adr show 001
|
|
185
|
+
|
|
186
|
+
# 현재 작업에 ADR 연결
|
|
187
|
+
aiwf adr link 001 --to-task T001
|
|
188
|
+
|
|
189
|
+
# ADR에 대한 현재 코드 검증
|
|
190
|
+
aiwf adr validate
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Claude Code 통합
|
|
194
|
+
|
|
195
|
+
#### ADR 인식 명령어
|
|
196
|
+
```markdown
|
|
197
|
+
# Claude Code에서
|
|
198
|
+
/aiwf_prime # 이제 ADR 컨텍스트 로딩 포함
|
|
199
|
+
/aiwf_create_milestone_plan # 관련 ADR 참조
|
|
200
|
+
/aiwf_yolo # ADR 제약사항 고려
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## ADR 생성
|
|
204
|
+
|
|
205
|
+
### ADR을 생성해야 할 때
|
|
206
|
+
|
|
207
|
+
1. **주요 아키텍처 변경**: 데이터베이스 스키마, API 설계, 모듈 구조
|
|
208
|
+
2. **기술 선택**: 프레임워크 선택, 라이브러리 채택, 도구 통합
|
|
209
|
+
3. **AIWF 특화 결정**: YOLO 동작, 페르소나 설정, 템플릿 설계
|
|
210
|
+
4. **보안 결정**: 인증, 권한 부여, 데이터 보호
|
|
211
|
+
5. **성능 결정**: 캐싱 전략, 최적화 접근법
|
|
212
|
+
|
|
213
|
+
### 생성 과정
|
|
214
|
+
|
|
215
|
+
#### 수동 생성
|
|
216
|
+
```bash
|
|
217
|
+
# 1. 템플릿 복사
|
|
218
|
+
cp .aiwf/adrs/template.md .aiwf/adrs/0001-your-decision.md
|
|
219
|
+
|
|
220
|
+
# 2. ADR 편집
|
|
221
|
+
vim .aiwf/adrs/0001-your-decision.md
|
|
222
|
+
|
|
223
|
+
# 3. 현재 작업에 연결
|
|
224
|
+
# 태스크나 스프린트 문서에 ADR 참조 추가
|
|
225
|
+
|
|
226
|
+
# 4. 커밋
|
|
227
|
+
git add .aiwf/adrs/0001-your-decision.md
|
|
228
|
+
git commit -m "docs: ADR-001 추가 for your decision"
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
#### AIWF 사용 (향후)
|
|
232
|
+
```bash
|
|
233
|
+
# 템플릿으로 생성
|
|
234
|
+
aiwf adr create "마이크로서비스 통신 패턴"
|
|
235
|
+
|
|
236
|
+
# 컨텍스트와 함께 생성
|
|
237
|
+
aiwf adr create "YOLO 안전 메커니즘" --context="yolo-mode"
|
|
238
|
+
|
|
239
|
+
# 페르소나 관점에서 생성
|
|
240
|
+
aiwf adr create "보안 정책" --persona="security"
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
## ADR 관리
|
|
244
|
+
|
|
245
|
+
### 생명주기 관리
|
|
246
|
+
|
|
247
|
+
#### 상태 전환
|
|
248
|
+
```
|
|
249
|
+
제안됨 → 승인됨 → [폐기됨 | 대체됨]
|
|
250
|
+
↓
|
|
251
|
+
거부됨
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
#### 상태 업데이트
|
|
255
|
+
```markdown
|
|
256
|
+
# ADR을 폐기하려면
|
|
257
|
+
## 상태 업데이트
|
|
258
|
+
**이전 상태**: 승인됨
|
|
259
|
+
**새 상태**: 폐기됨
|
|
260
|
+
**날짜**: 2025-01-27
|
|
261
|
+
**이유**: ADR-015에 의해 대체됨
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### 연결 및 참조
|
|
265
|
+
|
|
266
|
+
#### 태스크 통합
|
|
267
|
+
```markdown
|
|
268
|
+
# 태스크 파일에서
|
|
269
|
+
## 아키텍처 컨텍스트
|
|
270
|
+
- ADR-001: 모듈 아키텍처 패턴
|
|
271
|
+
- ADR-003: API 설계 원칙
|
|
272
|
+
|
|
273
|
+
## 준수 요구사항
|
|
274
|
+
- ADR-001 모듈 구조 따르기
|
|
275
|
+
- ADR-003 오류 처리 구현
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
#### 스프린트 계획
|
|
279
|
+
```markdown
|
|
280
|
+
# 스프린트 문서에서
|
|
281
|
+
## 고려할 아키텍처 결정
|
|
282
|
+
- [ ] 데이터베이스 접근 패턴을 위해 ADR-002 검토
|
|
283
|
+
- [ ] ADR-004 보안 가이드라인 적용
|
|
284
|
+
- [ ] ADR-001 모듈 구조에 대한 검증
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
## ADR 템플릿
|
|
288
|
+
|
|
289
|
+
### 기본 템플릿
|
|
290
|
+
|
|
291
|
+
```markdown
|
|
292
|
+
# ADR-{번호}: {제목}
|
|
293
|
+
|
|
294
|
+
**날짜**: {날짜}
|
|
295
|
+
**상태**: 제안됨
|
|
296
|
+
**컨텍스트**: AIWF 프로젝트
|
|
297
|
+
|
|
298
|
+
## 컨텍스트
|
|
299
|
+
|
|
300
|
+
우리가 직면한 문제는 무엇인가? 어떤 요소들이 관련이 있는가?
|
|
301
|
+
|
|
302
|
+
## 결정
|
|
303
|
+
|
|
304
|
+
우리가 만드는 변화는 무엇인가?
|
|
305
|
+
|
|
306
|
+
## 결과
|
|
307
|
+
|
|
308
|
+
그 결과로 무엇이 더 쉬워지거나 어려워지는가?
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### AIWF 특화 템플릿
|
|
312
|
+
|
|
313
|
+
```markdown
|
|
314
|
+
# ADR-{번호}: {제목}
|
|
315
|
+
|
|
316
|
+
**날짜**: {날짜}
|
|
317
|
+
**상태**: 제안됨
|
|
318
|
+
**컨텍스트**: AIWF v{버전}+ 프로젝트
|
|
319
|
+
**영향 범위**: [CLI | YOLO | Personas | Templates | Core]
|
|
320
|
+
**페르소나 관련성**: [architect | developer | security | tester]
|
|
321
|
+
|
|
322
|
+
## 컨텍스트
|
|
323
|
+
|
|
324
|
+
### 문제 설명
|
|
325
|
+
[아키텍처 챌린지에 대한 설명]
|
|
326
|
+
|
|
327
|
+
### AIWF 컨텍스트
|
|
328
|
+
[AIWF 워크플로 및 구성요소와의 관련성]
|
|
329
|
+
|
|
330
|
+
### 제약사항
|
|
331
|
+
[기술적, 비즈니스적, 또는 프로젝트 제약사항]
|
|
332
|
+
|
|
333
|
+
## 결정
|
|
334
|
+
|
|
335
|
+
### 선택된 접근법
|
|
336
|
+
[내려진 아키텍처 결정]
|
|
337
|
+
|
|
338
|
+
### 고려된 대안
|
|
339
|
+
[평가된 다른 옵션들]
|
|
340
|
+
|
|
341
|
+
### 근거
|
|
342
|
+
[이 결정이 내려진 이유]
|
|
343
|
+
|
|
344
|
+
## AIWF 통합
|
|
345
|
+
|
|
346
|
+
### CLI 영향
|
|
347
|
+
[명령줄 작업에 미치는 영향]
|
|
348
|
+
|
|
349
|
+
### YOLO 모드 고려사항
|
|
350
|
+
[자율 실행에 대한 의미]
|
|
351
|
+
|
|
352
|
+
### 페르소나 가이드라인
|
|
353
|
+
[다른 AI 페르소나를 위한 가이던스]
|
|
354
|
+
|
|
355
|
+
### 템플릿 변경
|
|
356
|
+
[프로젝트 템플릿에 필요한 업데이트]
|
|
357
|
+
|
|
358
|
+
## 결과
|
|
359
|
+
|
|
360
|
+
### 긍정적
|
|
361
|
+
- [이점과 개선사항]
|
|
362
|
+
|
|
363
|
+
### 부정적
|
|
364
|
+
- [트레이드오프와 제한사항]
|
|
365
|
+
|
|
366
|
+
### 중립적
|
|
367
|
+
- [기타 효과]
|
|
368
|
+
|
|
369
|
+
## 구현
|
|
370
|
+
|
|
371
|
+
### 액션 아이템
|
|
372
|
+
- [ ] [구체적인 구현 단계]
|
|
373
|
+
- [ ] [AIWF 설정 업데이트]
|
|
374
|
+
- [ ] [문서 업데이트]
|
|
375
|
+
|
|
376
|
+
### 검증
|
|
377
|
+
[올바른 구현을 확인하는 방법]
|
|
378
|
+
|
|
379
|
+
### 일정
|
|
380
|
+
[해당되는 경우 구현 일정]
|
|
381
|
+
|
|
382
|
+
## 준수
|
|
383
|
+
|
|
384
|
+
### Engineering Guard 규칙
|
|
385
|
+
```yaml
|
|
386
|
+
# .aiwf/yolo-config.yaml에 추가할 규칙
|
|
387
|
+
adr_compliance:
|
|
388
|
+
adr_{번호}:
|
|
389
|
+
enabled: true
|
|
390
|
+
severity: warning
|
|
391
|
+
pattern: "{validation_pattern}"
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
### 자동화된 검사
|
|
395
|
+
[단위 테스트, CI/CD 검증 등]
|
|
396
|
+
|
|
397
|
+
## 관련 문서
|
|
398
|
+
- [관련 문서에 대한 링크]
|
|
399
|
+
- [관련 ADR]
|
|
400
|
+
- [AIWF 모듈 참조]
|
|
401
|
+
|
|
402
|
+
## 검토 및 승인
|
|
403
|
+
|
|
404
|
+
### 검토자
|
|
405
|
+
- [ ] 아키텍트: {이름}
|
|
406
|
+
- [ ] 리드 개발자: {이름}
|
|
407
|
+
- [ ] 보안 리드: {이름} (보안 관련인 경우)
|
|
408
|
+
|
|
409
|
+
### 승인 날짜
|
|
410
|
+
[ADR이 승인된 날짜]
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
## 모범 사례
|
|
414
|
+
|
|
415
|
+
### 효과적인 ADR 작성
|
|
416
|
+
|
|
417
|
+
1. **간결하게**: ADR을 집중되고 읽기 쉽게 유지
|
|
418
|
+
2. **구체적으로**: 모호한 언어와 일반화 피하기
|
|
419
|
+
3. **컨텍스트 포함**: 결정에 이르게 된 상황 설명
|
|
420
|
+
4. **트레이드오프 문서화**: 결과에 대해 솔직하게 기술
|
|
421
|
+
5. **코드에 연결**: 구체적인 구현 참조
|
|
422
|
+
|
|
423
|
+
### AIWF 특화 모범 사례
|
|
424
|
+
|
|
425
|
+
1. **페르소나 정렬**: 다른 페르소나가 ADR을 어떻게 해석할지 고려
|
|
426
|
+
2. **YOLO 호환성**: 결정이 자율 실행과 호환되는지 확인
|
|
427
|
+
3. **템플릿 통합**: 결정을 반영하여 프로젝트 템플릿 업데이트
|
|
428
|
+
4. **Engineering Guard 규칙**: 해당되는 경우 검증 규칙 추가
|
|
429
|
+
5. **스프린트 계획**: 태스크와 스프린트 문서에서 ADR 참조
|
|
430
|
+
|
|
431
|
+
### 유지보수 관행
|
|
432
|
+
|
|
433
|
+
1. **정기 검토**: 주기적으로 ADR 상태 검토 및 업데이트
|
|
434
|
+
2. **링크 검증**: 참조가 정확한지 확인
|
|
435
|
+
3. **구현 추적**: 결정 준수 모니터링
|
|
436
|
+
4. **지식 전수**: 새 팀원 온보딩에 ADR 활용
|
|
437
|
+
|
|
438
|
+
## 자동화 및 도구
|
|
439
|
+
|
|
440
|
+
### Git 훅 통합
|
|
441
|
+
|
|
442
|
+
```bash
|
|
443
|
+
# .git/hooks/pre-commit
|
|
444
|
+
#!/bin/bash
|
|
445
|
+
# 커밋 메시지에서 ADR 참조 검증
|
|
446
|
+
if git log -1 --pretty=%B | grep -q "ADR-[0-9]"; then
|
|
447
|
+
echo "✅ 커밋 메시지에서 ADR 참조 발견"
|
|
448
|
+
else
|
|
449
|
+
echo "ℹ️ 커밋 메시지에 관련 ADR 참조 고려하기"
|
|
450
|
+
fi
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
### 향후 AIWF 통합
|
|
454
|
+
|
|
455
|
+
#### 계획된 기능
|
|
456
|
+
- **ADR 명령어**: `aiwf adr` 명령어 세트
|
|
457
|
+
- **컨텍스트 로딩**: Claude Code에서 자동 ADR 컨텍스트
|
|
458
|
+
- **검증**: Engineering Guard ADR 준수 검사
|
|
459
|
+
- **템플릿**: ADR 인식 프로젝트 템플릿
|
|
460
|
+
|
|
461
|
+
#### 제안된 워크플로
|
|
462
|
+
```bash
|
|
463
|
+
# 1. AIWF로 ADR 생성
|
|
464
|
+
aiwf adr create "API 속도 제한 전략"
|
|
465
|
+
|
|
466
|
+
# 2. 현재 작업에 연결
|
|
467
|
+
aiwf task link ADR-001 --to-current
|
|
468
|
+
|
|
469
|
+
# 3. 구현 검증
|
|
470
|
+
aiwf adr validate --against=ADR-001
|
|
471
|
+
|
|
472
|
+
# 4. 준수 리포트 생성
|
|
473
|
+
aiwf adr report --sprint=S01
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
## 예제
|
|
477
|
+
|
|
478
|
+
### 예제 1: 모듈 아키텍처 ADR
|
|
479
|
+
|
|
480
|
+
```markdown
|
|
481
|
+
# ADR-001: 모듈러 컴포넌트 아키텍처
|
|
482
|
+
|
|
483
|
+
**날짜**: 2025-01-27
|
|
484
|
+
**상태**: 승인됨
|
|
485
|
+
**컨텍스트**: AIWF v0.3.16+ 프로젝트
|
|
486
|
+
**영향 범위**: Core, CLI, Templates
|
|
487
|
+
**페르소나 관련성**: architect, developer
|
|
488
|
+
|
|
489
|
+
## 컨텍스트
|
|
490
|
+
|
|
491
|
+
AIWF가 유기적으로 성장하면서 컴포넌트들이 긴밀하게 결합되어 개별 기능을 테스트, 유지보수, 확장하기 어려워졌습니다.
|
|
492
|
+
|
|
493
|
+
## 결정
|
|
494
|
+
|
|
495
|
+
명확한 의존성 경계를 가진 모듈러 아키텍처 채택:
|
|
496
|
+
- 핵심 유틸리티 (paths, messages, language-utils)
|
|
497
|
+
- 기능 모듈 (persona, checkpoint, compression)
|
|
498
|
+
- 확장을 위한 플러그인 시스템
|
|
499
|
+
|
|
500
|
+
## AIWF 통합
|
|
501
|
+
|
|
502
|
+
### CLI 영향
|
|
503
|
+
명령어들이 필요한 기능에 따라 모듈을 동적으로 로드합니다.
|
|
504
|
+
|
|
505
|
+
### YOLO 모드 고려사항
|
|
506
|
+
모듈러 설계로 YOLO가 필요한 컴포넌트만 로드하여 성능을 향상시킵니다.
|
|
507
|
+
|
|
508
|
+
### Engineering Guard 규칙
|
|
509
|
+
```yaml
|
|
510
|
+
module_architecture:
|
|
511
|
+
enforce_boundaries: true
|
|
512
|
+
max_dependencies: 5
|
|
513
|
+
circular_dependency_check: true
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
## 결과
|
|
517
|
+
|
|
518
|
+
### 긍정적
|
|
519
|
+
- 향상된 테스트 가능성과 유지보수성
|
|
520
|
+
- 더 빠른 개발 사이클
|
|
521
|
+
- 더 나은 플러그인 지원
|
|
522
|
+
|
|
523
|
+
### 부정적
|
|
524
|
+
- 초기 복잡성 증가
|
|
525
|
+
- 의존성 관리 필요
|
|
526
|
+
|
|
527
|
+
## 구현
|
|
528
|
+
- 기존 모놀리식 컴포넌트 리팩토링
|
|
529
|
+
- 의존성 주입 구현
|
|
530
|
+
- 문서 및 템플릿 업데이트
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
### 예제 2: YOLO 안전 메커니즘 ADR
|
|
534
|
+
|
|
535
|
+
```markdown
|
|
536
|
+
# ADR-002: YOLO 안전 메커니즘 프레임워크
|
|
537
|
+
|
|
538
|
+
**날짜**: 2025-01-27
|
|
539
|
+
**상태**: 승인됨
|
|
540
|
+
**컨텍스트**: AIWF v0.3.16+ YOLO 모드
|
|
541
|
+
**영향 범위**: YOLO, Engineering Guard, Checkpoint
|
|
542
|
+
**페르소나 관련성**: architect, security
|
|
543
|
+
|
|
544
|
+
## 컨텍스트
|
|
545
|
+
|
|
546
|
+
자율 실행은 데이터 손실, 보안 문제, 코드 품질 저하를 방지하기 위한 강력한 안전 메커니즘이 필요합니다.
|
|
547
|
+
|
|
548
|
+
## 결정
|
|
549
|
+
|
|
550
|
+
다층 안전 프레임워크 구현:
|
|
551
|
+
1. 코드 품질을 위한 Engineering Guard
|
|
552
|
+
2. 복구를 위한 체크포인트 시스템
|
|
553
|
+
3. 중요 작업을 위한 중단점 시스템
|
|
554
|
+
4. 실시간 모니터링 및 개입
|
|
555
|
+
|
|
556
|
+
## YOLO 모드 고려사항
|
|
557
|
+
|
|
558
|
+
안전 프레임워크는 자율 실행을 위해 특별히 설계됨:
|
|
559
|
+
- 논블로킹 품질 검사
|
|
560
|
+
- 실패 시 자동 롤백
|
|
561
|
+
- 개입의 점진적 에스컬레이션
|
|
562
|
+
|
|
563
|
+
## Engineering Guard 규칙
|
|
564
|
+
```yaml
|
|
565
|
+
yolo_safety:
|
|
566
|
+
critical_file_protection: true
|
|
567
|
+
test_failure_threshold: 10
|
|
568
|
+
complexity_monitoring: true
|
|
569
|
+
automatic_checkpoints: 5
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
## 구현
|
|
573
|
+
- YOLO 템플릿과 함께 engineering-guard.js 배포
|
|
574
|
+
- 세션 추적과 checkpoint-manager.js 통합
|
|
575
|
+
- yolo-config.yaml에 안전 설정 추가
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
## 관련 명령어
|
|
579
|
+
|
|
580
|
+
### 현재 AIWF 명령어
|
|
581
|
+
- `/aiwf_prime` - 프로젝트 컨텍스트 로드 (ADR 컨텍스트 포함 가능)
|
|
582
|
+
- `/aiwf_create_milestone_plan` - 계획에서 ADR 참조
|
|
583
|
+
- `/aiwf_do_task` - 구현 중 ADR 제약사항 고려
|
|
584
|
+
|
|
585
|
+
### 계획된 명령어
|
|
586
|
+
- `aiwf adr create` - 새 ADR 생성
|
|
587
|
+
- `aiwf adr list` - 모든 ADR 목록
|
|
588
|
+
- `aiwf adr validate` - ADR에 대한 코드 검증
|
|
589
|
+
- `aiwf adr link` - ADR을 태스크에 연결
|
|
590
|
+
|
|
591
|
+
## 관련 문서
|
|
592
|
+
|
|
593
|
+
- [ARCHITECTURE.md](ARCHITECTURE.ko.md) - 전체 시스템 아키텍처
|
|
594
|
+
- [MODULE_MANAGEMENT_GUIDE.md](MODULE_MANAGEMENT_GUIDE.ko.md) - 모듈 의존성 관리
|
|
595
|
+
- [YOLO_SYSTEM_GUIDE.md](YOLO_SYSTEM_GUIDE.ko.md) - YOLO 모드 문서
|
|
596
|
+
- [DEVELOPMENT_GUIDE.md](DEVELOPMENT_GUIDE.ko.md) - 개발 관행
|
|
597
|
+
|
|
598
|
+
---
|
|
599
|
+
|
|
600
|
+
**마지막 업데이트**: 2025-01-27
|
|
601
|
+
**버전**: AIWF v0.3.16+ 호환
|
|
602
|
+
**상태**: 문서 프레임워크 (ADR 명령어는 구현 예정)
|