aiwf 0.3.15 → 0.3.16
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 +3 -4
- package/README.md +38 -3
- package/docs/API_REFERENCE_FULL.ko.md +979 -0
- package/docs/API_REFERENCE_FULL.md +979 -0
- package/docs/ARCHITECTURE.ko.md +314 -0
- package/docs/ARCHITECTURE.md +314 -0
- package/docs/GETTING_STARTED.ko.md +219 -0
- package/docs/GETTING_STARTED.md +0 -1
- package/docs/PERFORMANCE_GUIDELINES.ko.md +388 -0
- package/docs/TROUBLESHOOTING.ko.md +366 -0
- package/package.json +50 -2
- package/src/DEPENDENCY_MAP.md +90 -0
- package/src/lib/installer.js +1 -0
- package/src/lib/resources/templates/api-server/template/src/controllers/aiwfController.ts +0 -14
- package/src/lib/resources/templates/api-server/template/src/routes/aiwf.ts +0 -11
- package/src/lib/resources/templates/web-app/template/src/pages/AiwfDashboard.tsx +2 -5
- package/src/lib/resources/utils/token-reporter.js +2 -3
- package/src/utils/checkpoint-manager.js +11 -1
- package/src/utils/engineering-guard.js +11 -1
- package/templates/api-server/template/src/controllers/aiwfController.ts +0 -14
- package/templates/api-server/template/src/routes/aiwf.ts +0 -11
- package/templates/web-app/template/src/pages/AiwfDashboard.tsx +2 -5
- package/docs/guides/feature-git-integration-guide-ko.md +0 -481
- package/docs/guides/feature-git-integration-guide.md +0 -481
- package/src/commands/cache-templates.js +0 -209
- package/src/commands/create-offline.js +0 -86
- package/src/commands/state-refactored.js +0 -419
- package/src/lib/resources/commands/feature-ledger.js +0 -565
- package/src/lib/resources/commands/feature_commit_report.js +0 -370
- package/src/lib/resources/commands/scan_git_history.js +0 -234
- package/src/lib/resources/commands/sync_feature_commits.js +0 -154
- package/src/lib/resources/templates/web-app/template/src/components/aiwf/FeatureLedger.tsx +0 -93
- package/src/lib/resources/utils/feature-updater.js +0 -271
- package/src/utils/git-integration.js +0 -173
- package/templates/web-app/template/src/components/aiwf/FeatureLedger.tsx +0 -93
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
# AIWF 문제 해결 가이드
|
|
2
|
+
|
|
3
|
+
[한국어](TROUBLESHOOTING.ko.md) | [English](TROUBLESHOOTING.md)
|
|
4
|
+
|
|
5
|
+
> AIWF 사용 중 발생할 수 있는 일반적인 문제와 해결 방법
|
|
6
|
+
|
|
7
|
+
## 📋 목차
|
|
8
|
+
|
|
9
|
+
1. [설치 문제](#설치-문제)
|
|
10
|
+
2. [명령어 실행 오류](#명령어-실행-오류)
|
|
11
|
+
3. [상태 관리 문제](#상태-관리-문제)
|
|
12
|
+
4. [Git 통합 문제](#git-통합-문제)
|
|
13
|
+
5. [YOLO 모드 문제](#yolo-모드-문제)
|
|
14
|
+
6. [성능 문제](#성능-문제)
|
|
15
|
+
7. [호환성 문제](#호환성-문제)
|
|
16
|
+
8. [FAQ](#faq)
|
|
17
|
+
|
|
18
|
+
## 설치 문제
|
|
19
|
+
|
|
20
|
+
### 전역 설치 실패
|
|
21
|
+
|
|
22
|
+
**문제**: `npm install -g aiwf` 실행 시 권한 오류
|
|
23
|
+
|
|
24
|
+
**해결책**:
|
|
25
|
+
```bash
|
|
26
|
+
# macOS/Linux
|
|
27
|
+
sudo npm install -g aiwf
|
|
28
|
+
|
|
29
|
+
# Windows (관리자 권한으로 실행)
|
|
30
|
+
npm install -g aiwf
|
|
31
|
+
|
|
32
|
+
# 또는 npm 권한 설정 변경
|
|
33
|
+
npm config set prefix ~/.npm-global
|
|
34
|
+
export PATH=~/.npm-global/bin:$PATH
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 프로젝트 설치 실패
|
|
38
|
+
|
|
39
|
+
**문제**: `aiwf install` 실행 시 오류
|
|
40
|
+
|
|
41
|
+
**원인 및 해결책**:
|
|
42
|
+
1. **Node.js 버전**: Node.js 16.0.0 이상 필요
|
|
43
|
+
```bash
|
|
44
|
+
node --version # 버전 확인
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
2. **기존 설치 충돌**:
|
|
48
|
+
```bash
|
|
49
|
+
# 기존 설치 제거
|
|
50
|
+
rm -rf .aiwf
|
|
51
|
+
# 재설치
|
|
52
|
+
aiwf install --force
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
3. **권한 문제**:
|
|
56
|
+
```bash
|
|
57
|
+
# 현재 디렉토리 권한 확인
|
|
58
|
+
ls -la
|
|
59
|
+
# 필요시 권한 변경
|
|
60
|
+
chmod -R 755 .
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## 명령어 실행 오류
|
|
64
|
+
|
|
65
|
+
### "Command not found" 오류
|
|
66
|
+
|
|
67
|
+
**문제**: `aiwf: command not found`
|
|
68
|
+
|
|
69
|
+
**해결책**:
|
|
70
|
+
```bash
|
|
71
|
+
# PATH 확인
|
|
72
|
+
echo $PATH
|
|
73
|
+
|
|
74
|
+
# npm 전역 경로 확인
|
|
75
|
+
npm config get prefix
|
|
76
|
+
|
|
77
|
+
# PATH에 추가 (bash)
|
|
78
|
+
echo 'export PATH="$(npm config get prefix)/bin:$PATH"' >> ~/.bashrc
|
|
79
|
+
source ~/.bashrc
|
|
80
|
+
|
|
81
|
+
# PATH에 추가 (zsh)
|
|
82
|
+
echo 'export PATH="$(npm config get prefix)/bin:$PATH"' >> ~/.zshrc
|
|
83
|
+
source ~/.zshrc
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### ES 모듈 오류
|
|
87
|
+
|
|
88
|
+
**문제**: `Cannot use import statement outside a module`
|
|
89
|
+
|
|
90
|
+
**해결책**:
|
|
91
|
+
```bash
|
|
92
|
+
# Node.js 버전 확인 (16+ 필요)
|
|
93
|
+
node --version
|
|
94
|
+
|
|
95
|
+
# package.json에 type 추가
|
|
96
|
+
{
|
|
97
|
+
"type": "module"
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 리소스를 찾을 수 없음
|
|
102
|
+
|
|
103
|
+
**문제**: `Resource not found: commands/...`
|
|
104
|
+
|
|
105
|
+
**해결책**:
|
|
106
|
+
```bash
|
|
107
|
+
# AIWF 재설치
|
|
108
|
+
aiwf install --force
|
|
109
|
+
|
|
110
|
+
# 캐시 정리
|
|
111
|
+
npm cache clean --force
|
|
112
|
+
npm install -g aiwf@latest
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## 상태 관리 문제
|
|
116
|
+
|
|
117
|
+
### 상태 동기화 실패
|
|
118
|
+
|
|
119
|
+
**문제**: `aiwf state update` 실행 시 오류
|
|
120
|
+
|
|
121
|
+
**해결책**:
|
|
122
|
+
1. **상태 파일 확인**:
|
|
123
|
+
```bash
|
|
124
|
+
ls -la .aiwf/state/
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
2. **상태 초기화**:
|
|
128
|
+
```bash
|
|
129
|
+
aiwf state init --force
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
3. **권한 문제 해결**:
|
|
133
|
+
```bash
|
|
134
|
+
chmod -R 644 .aiwf/state/*
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### 순환 의존성 감지
|
|
138
|
+
|
|
139
|
+
**문제**: "Circular dependency detected"
|
|
140
|
+
|
|
141
|
+
**해결책**:
|
|
142
|
+
1. 의존성 확인:
|
|
143
|
+
```bash
|
|
144
|
+
aiwf state validate
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
2. 의존성 제거:
|
|
148
|
+
- 태스크 파일에서 순환 참조 수정
|
|
149
|
+
- 의존성 재구성
|
|
150
|
+
|
|
151
|
+
### 상태 파일 손상
|
|
152
|
+
|
|
153
|
+
**문제**: "Invalid state file format"
|
|
154
|
+
|
|
155
|
+
**해결책**:
|
|
156
|
+
```bash
|
|
157
|
+
# 백업에서 복원
|
|
158
|
+
cp .aiwf/state/task-state-index.json.backup .aiwf/state/task-state-index.json
|
|
159
|
+
|
|
160
|
+
# 또는 상태 재구성
|
|
161
|
+
aiwf state rebuild
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Git 통합 문제
|
|
165
|
+
|
|
166
|
+
### Git Hook 오류
|
|
167
|
+
|
|
168
|
+
**문제**: 커밋 시 hook 오류 발생
|
|
169
|
+
|
|
170
|
+
**해결책**:
|
|
171
|
+
1. **Hook 확인**:
|
|
172
|
+
```bash
|
|
173
|
+
ls -la .git/hooks/
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
2. **Hook 재설치**:
|
|
177
|
+
```bash
|
|
178
|
+
./hooks/install-hooks.sh
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
3. **Hook 비활성화** (임시):
|
|
182
|
+
```bash
|
|
183
|
+
git commit --no-verify
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Feature ID 추출 실패
|
|
187
|
+
|
|
188
|
+
**문제**: 커밋 메시지에서 Feature ID가 인식되지 않음
|
|
189
|
+
|
|
190
|
+
**해결책**:
|
|
191
|
+
- 올바른 형식 사용: `FL001`, `FL002` 등
|
|
192
|
+
- 커밋 메시지 예:
|
|
193
|
+
```
|
|
194
|
+
feat(FL001): 사용자 인증 구현
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## YOLO 모드 문제
|
|
198
|
+
|
|
199
|
+
### YOLO 실행 중단
|
|
200
|
+
|
|
201
|
+
**문제**: YOLO 모드가 예기치 않게 중단됨
|
|
202
|
+
|
|
203
|
+
**해결책**:
|
|
204
|
+
1. **체크포인트에서 재개**:
|
|
205
|
+
```bash
|
|
206
|
+
# 마지막 체크포인트 확인
|
|
207
|
+
aiwf checkpoint list
|
|
208
|
+
|
|
209
|
+
# 재개
|
|
210
|
+
aiwf yolo --resume
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
2. **안전 모드 사용**:
|
|
214
|
+
```bash
|
|
215
|
+
aiwf yolo --safe
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### 메모리 부족
|
|
219
|
+
|
|
220
|
+
**문제**: "JavaScript heap out of memory"
|
|
221
|
+
|
|
222
|
+
**해결책**:
|
|
223
|
+
```bash
|
|
224
|
+
# Node.js 메모리 증가
|
|
225
|
+
export NODE_OPTIONS="--max-old-space-size=4096"
|
|
226
|
+
|
|
227
|
+
# 또는 명령어 실행 시
|
|
228
|
+
NODE_OPTIONS="--max-old-space-size=4096" aiwf yolo
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### 무한 루프 감지
|
|
232
|
+
|
|
233
|
+
**문제**: YOLO가 같은 태스크를 반복 실행
|
|
234
|
+
|
|
235
|
+
**해결책**:
|
|
236
|
+
1. 태스크 상태 확인
|
|
237
|
+
2. 의존성 검증
|
|
238
|
+
3. 필요시 수동으로 태스크 완료:
|
|
239
|
+
```bash
|
|
240
|
+
aiwf state complete TASK_ID
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
## 성능 문제
|
|
244
|
+
|
|
245
|
+
### 느린 명령어 실행
|
|
246
|
+
|
|
247
|
+
**원인 및 해결책**:
|
|
248
|
+
1. **큰 프로젝트**:
|
|
249
|
+
```bash
|
|
250
|
+
# 인덱싱 최적화
|
|
251
|
+
aiwf optimize index
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
2. **많은 파일**:
|
|
255
|
+
```bash
|
|
256
|
+
# .aiwfignore 파일 생성
|
|
257
|
+
echo "node_modules/" > .aiwfignore
|
|
258
|
+
echo "dist/" >> .aiwfignore
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
3. **캐시 문제**:
|
|
262
|
+
```bash
|
|
263
|
+
# 캐시 정리
|
|
264
|
+
rm -rf .aiwf/cache/*
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### 높은 토큰 사용량
|
|
268
|
+
|
|
269
|
+
**해결책**:
|
|
270
|
+
1. **컨텍스트 압축 사용**:
|
|
271
|
+
```bash
|
|
272
|
+
aiwf compress aggressive
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
2. **불필요한 파일 제외**:
|
|
276
|
+
```bash
|
|
277
|
+
# .aiwfignore에 추가
|
|
278
|
+
*.log
|
|
279
|
+
*.tmp
|
|
280
|
+
coverage/
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
## 호환성 문제
|
|
284
|
+
|
|
285
|
+
### Windows 경로 문제
|
|
286
|
+
|
|
287
|
+
**문제**: Windows에서 경로 오류
|
|
288
|
+
|
|
289
|
+
**해결책**:
|
|
290
|
+
```bash
|
|
291
|
+
# Git Bash 또는 WSL 사용 권장
|
|
292
|
+
# 또는 경로에 슬래시 사용
|
|
293
|
+
aiwf create-task "태스크" --path ./tasks/
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
### 인코딩 문제
|
|
297
|
+
|
|
298
|
+
**문제**: 한글 깨짐 현상
|
|
299
|
+
|
|
300
|
+
**해결책**:
|
|
301
|
+
1. **터미널 인코딩 설정**:
|
|
302
|
+
```bash
|
|
303
|
+
export LANG=ko_KR.UTF-8
|
|
304
|
+
export LC_ALL=ko_KR.UTF-8
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
2. **파일 인코딩 확인**:
|
|
308
|
+
- 모든 파일을 UTF-8로 저장
|
|
309
|
+
|
|
310
|
+
## FAQ
|
|
311
|
+
|
|
312
|
+
### Q: AIWF 버전을 확인하려면?
|
|
313
|
+
```bash
|
|
314
|
+
aiwf --version
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
### Q: 업데이트하려면?
|
|
318
|
+
```bash
|
|
319
|
+
npm update -g aiwf
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
### Q: 설정을 초기화하려면?
|
|
323
|
+
```bash
|
|
324
|
+
aiwf reset --all
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### Q: 로그를 확인하려면?
|
|
328
|
+
```bash
|
|
329
|
+
# 상세 로그 활성화
|
|
330
|
+
export AIWF_DEBUG=true
|
|
331
|
+
aiwf [명령어]
|
|
332
|
+
|
|
333
|
+
# 로그 파일 확인
|
|
334
|
+
cat .aiwf/logs/aiwf.log
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
### Q: 백업을 생성하려면?
|
|
338
|
+
```bash
|
|
339
|
+
# 전체 백업
|
|
340
|
+
tar -czf aiwf-backup.tar.gz .aiwf/
|
|
341
|
+
|
|
342
|
+
# 상태만 백업
|
|
343
|
+
cp -r .aiwf/state/ .aiwf/state.backup/
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
## 추가 도움말
|
|
347
|
+
|
|
348
|
+
### 디버그 모드
|
|
349
|
+
```bash
|
|
350
|
+
# 디버그 모드 활성화
|
|
351
|
+
AIWF_DEBUG=true aiwf [명령어]
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
### 지원 받기
|
|
355
|
+
1. [공식 문서](https://github.com/moonklabs/aiwf/docs) 확인
|
|
356
|
+
2. [GitHub 이슈](https://github.com/moonklabs/aiwf/issues) 검색
|
|
357
|
+
3. 새 이슈 생성 시 포함할 정보:
|
|
358
|
+
- AIWF 버전 (`aiwf --version`)
|
|
359
|
+
- Node.js 버전 (`node --version`)
|
|
360
|
+
- 운영체제
|
|
361
|
+
- 오류 메시지 전문
|
|
362
|
+
- 재현 단계
|
|
363
|
+
|
|
364
|
+
---
|
|
365
|
+
|
|
366
|
+
💡 **팁**: 대부분의 문제는 `aiwf install --force`로 해결됩니다!
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aiwf",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.16",
|
|
4
4
|
"description": "AI Workflow Framework for Claude Code with multi-language support (Korean/English)",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -59,7 +59,6 @@
|
|
|
59
59
|
"hooks/",
|
|
60
60
|
"scripts/",
|
|
61
61
|
"ai-tools/",
|
|
62
|
-
"feature-ledger/",
|
|
63
62
|
"index.js",
|
|
64
63
|
"README.md",
|
|
65
64
|
"README.ko.md",
|
|
@@ -83,5 +82,54 @@
|
|
|
83
82
|
},
|
|
84
83
|
"devDependencies": {
|
|
85
84
|
"jest": "^30.0.3"
|
|
85
|
+
},
|
|
86
|
+
"aiwf": {
|
|
87
|
+
"moduleCategories": {
|
|
88
|
+
"core": [
|
|
89
|
+
"utils/paths.js",
|
|
90
|
+
"utils/messages.js",
|
|
91
|
+
"utils/language-utils.js"
|
|
92
|
+
],
|
|
93
|
+
"yolo": [
|
|
94
|
+
"utils/engineering-guard.js",
|
|
95
|
+
"utils/checkpoint-manager.js"
|
|
96
|
+
],
|
|
97
|
+
"persona": [
|
|
98
|
+
"lib/ai-persona-manager.js",
|
|
99
|
+
"lib/context-engine.js",
|
|
100
|
+
"lib/metrics-collector.js",
|
|
101
|
+
"lib/task-analyzer.js",
|
|
102
|
+
"lib/token-optimizer.js"
|
|
103
|
+
],
|
|
104
|
+
"installer": [
|
|
105
|
+
"lib/installer.js",
|
|
106
|
+
"lib/backup-manager.js",
|
|
107
|
+
"lib/file-downloader.js",
|
|
108
|
+
"lib/rollback-manager.js",
|
|
109
|
+
"lib/validator.js"
|
|
110
|
+
],
|
|
111
|
+
"cache": [
|
|
112
|
+
"lib/template-cache-system.js",
|
|
113
|
+
"lib/offline-detector.js",
|
|
114
|
+
"lib/template-downloader.js",
|
|
115
|
+
"lib/template-version-manager.js"
|
|
116
|
+
],
|
|
117
|
+
"github": [
|
|
118
|
+
"lib/github-integration.js",
|
|
119
|
+
"lib/state/state-index.js",
|
|
120
|
+
"lib/state/priority-calculator.js",
|
|
121
|
+
"lib/state/task-scanner.js"
|
|
122
|
+
],
|
|
123
|
+
"common": [
|
|
124
|
+
"lib/resource-loader.js"
|
|
125
|
+
]
|
|
126
|
+
},
|
|
127
|
+
"criticalModules": [
|
|
128
|
+
"utils/engineering-guard.js",
|
|
129
|
+
"utils/checkpoint-manager.js"
|
|
130
|
+
],
|
|
131
|
+
"dynamicImports": [
|
|
132
|
+
"utils/engineering-guard.js"
|
|
133
|
+
]
|
|
86
134
|
}
|
|
87
135
|
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# AIWF 모듈 의존성 매트릭스
|
|
2
|
+
|
|
3
|
+
## 📊 CLI 명령어별 의존성
|
|
4
|
+
|
|
5
|
+
| 명령어 | 직접 의존성 | 간접 의존성 | 특수 사용 |
|
|
6
|
+
|--------|-------------|-------------|-----------|
|
|
7
|
+
| `aiwf install` | installer.js | backup-manager.js, file-downloader.js, rollback-manager.js, validator.js | - |
|
|
8
|
+
| `aiwf persona` | persona.js, ai-persona-manager.js | context-engine.js, metrics-collector.js, task-analyzer.js, token-optimizer.js | - |
|
|
9
|
+
| `aiwf compress` | compress.js, resource-loader.js | - | - |
|
|
10
|
+
| `aiwf token` | token.js, resource-loader.js | - | - |
|
|
11
|
+
| `aiwf evaluate` | evaluate.js, resource-loader.js | - | - |
|
|
12
|
+
| `aiwf state` | state.js | - | - |
|
|
13
|
+
| `aiwf create-project` | create-project.js, resource-loader.js | - | - |
|
|
14
|
+
| `aiwf ai-tool` | ai-tool.js | - | - |
|
|
15
|
+
| `aiwf sprint-task` | sprint-task.js | - | - |
|
|
16
|
+
| `aiwf sprint` | sprint-independent.js | - | - |
|
|
17
|
+
| `aiwf yolo-config` | yolo-config.js | - | - |
|
|
18
|
+
| `aiwf checkpoint` | checkpoint-manager.js | - | ⚠️ YOLO 전용 |
|
|
19
|
+
| `aiwf-checkpoint` | checkpoint-manager.js | - | ⚠️ YOLO 전용 |
|
|
20
|
+
| `aiwf cache` | cache-cli.js | template-cache-system.js, offline-detector.js, template-downloader.js, template-version-manager.js | - |
|
|
21
|
+
| `aiwf github` | github-integration.js | state/state-index.js | - |
|
|
22
|
+
| `YOLO 모드` | engineering-guard.js | - | ⚠️ 동적 import |
|
|
23
|
+
|
|
24
|
+
## 🏗️ 모듈 분류
|
|
25
|
+
|
|
26
|
+
### 🔧 핵심 유틸리티 (삭제 금지)
|
|
27
|
+
- **paths.js** - 경로 관리 (8곳에서 사용)
|
|
28
|
+
- **messages.js** - 다국어 메시지 시스템 (5곳에서 사용)
|
|
29
|
+
- **language-utils.js** - 언어 설정 관리 (3곳에서 사용)
|
|
30
|
+
|
|
31
|
+
### 🚀 YOLO 시스템 (삭제 금지)
|
|
32
|
+
- **engineering-guard.js** - 오버엔지니어링 방지 ⚠️ 동적 로드
|
|
33
|
+
- **checkpoint-manager.js** - 체크포인트 관리
|
|
34
|
+
|
|
35
|
+
### 🎯 명령어별 전용 모듈
|
|
36
|
+
|
|
37
|
+
#### AI Persona 시스템
|
|
38
|
+
- **ai-persona-manager.js** → persona 명령어
|
|
39
|
+
- **context-engine.js** → ai-persona-manager가 사용
|
|
40
|
+
- **metrics-collector.js** → ai-persona-manager가 사용
|
|
41
|
+
- **task-analyzer.js** → ai-persona-manager가 사용
|
|
42
|
+
- **token-optimizer.js** → context-engine이 사용
|
|
43
|
+
|
|
44
|
+
#### 설치/백업 시스템
|
|
45
|
+
- **installer.js** → install 명령어
|
|
46
|
+
- **backup-manager.js** → installer가 사용
|
|
47
|
+
- **file-downloader.js** → installer가 사용
|
|
48
|
+
- **rollback-manager.js** → installer가 사용
|
|
49
|
+
- **validator.js** → installer가 사용
|
|
50
|
+
|
|
51
|
+
#### 캐시 시스템
|
|
52
|
+
- **template-cache-system.js** → cache 명령어
|
|
53
|
+
- **offline-detector.js** → cache 명령어
|
|
54
|
+
- **template-downloader.js** → cache 명령어
|
|
55
|
+
- **template-version-manager.js** → cache 명령어
|
|
56
|
+
|
|
57
|
+
#### GitHub 통합
|
|
58
|
+
- **github-integration.js** → github 명령어
|
|
59
|
+
- **state/state-index.js** → github-integration이 사용
|
|
60
|
+
|
|
61
|
+
#### 공통 리소스
|
|
62
|
+
- **resource-loader.js** → 5개 명령어에서 사용
|
|
63
|
+
|
|
64
|
+
## ⚠️ 삭제 위험 모듈
|
|
65
|
+
|
|
66
|
+
### 동적 로드 모듈 (CLI에서 직접 참조되지 않음)
|
|
67
|
+
- **engineering-guard.js** - YOLO 템플릿에서 `import()`로 로드
|
|
68
|
+
- **state/priority-calculator.js** - github-integration에서 사용
|
|
69
|
+
- **state/task-scanner.js** - github-integration에서 사용
|
|
70
|
+
|
|
71
|
+
### 간접 의존성 모듈
|
|
72
|
+
- AI Persona 시스템의 하위 모듈들
|
|
73
|
+
- 설치 시스템의 백업/복구 모듈들
|
|
74
|
+
|
|
75
|
+
## 🚨 삭제하기 전 확인사항
|
|
76
|
+
|
|
77
|
+
1. **이 파일에서 모듈 위치 확인**
|
|
78
|
+
2. **`@warning 삭제 금지` 주석 확인**
|
|
79
|
+
3. **YOLO 전용 모듈인지 확인**
|
|
80
|
+
4. **동적 import 사용 여부 확인**
|
|
81
|
+
5. **간접 의존성 체인 확인**
|
|
82
|
+
|
|
83
|
+
## 📁 미사용 모듈 (삭제 가능)
|
|
84
|
+
|
|
85
|
+
현재 완전히 미사용되는 모듈은 없습니다. 모든 모듈이 직간접적으로 CLI 시스템에서 사용됩니다.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
**마지막 업데이트**: 2024-01-27
|
|
90
|
+
**검증 방법**: `grep -r "모듈명" src/` 으로 사용처 확인
|
package/src/lib/installer.js
CHANGED
|
@@ -3,20 +3,6 @@ import fs from 'fs/promises';
|
|
|
3
3
|
import path from 'path';
|
|
4
4
|
|
|
5
5
|
export const aiwfController = {
|
|
6
|
-
getFeatures: async (req: Request, res: Response, next: NextFunction) => {
|
|
7
|
-
try {
|
|
8
|
-
const ledgerPath = path.join(process.cwd(), '.aiwf', 'feature-ledger.json');
|
|
9
|
-
const ledgerData = await fs.readFile(ledgerPath, 'utf-8');
|
|
10
|
-
const ledger = JSON.parse(ledgerData);
|
|
11
|
-
|
|
12
|
-
res.json({
|
|
13
|
-
success: true,
|
|
14
|
-
data: ledger,
|
|
15
|
-
});
|
|
16
|
-
} catch (error) {
|
|
17
|
-
next(error);
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
6
|
|
|
21
7
|
getTokenUsage: async (req: Request, res: Response, next: NextFunction) => {
|
|
22
8
|
try {
|
|
@@ -3,17 +3,6 @@ import { aiwfController } from '@controllers/aiwfController';
|
|
|
3
3
|
|
|
4
4
|
const router = Router();
|
|
5
5
|
|
|
6
|
-
/**
|
|
7
|
-
* @swagger
|
|
8
|
-
* /api/aiwf/features:
|
|
9
|
-
* get:
|
|
10
|
-
* summary: Feature Ledger 조회
|
|
11
|
-
* tags: [AIWF]
|
|
12
|
-
* responses:
|
|
13
|
-
* 200:
|
|
14
|
-
* description: Feature 목록
|
|
15
|
-
*/
|
|
16
|
-
router.get('/features', aiwfController.getFeatures);
|
|
17
6
|
|
|
18
7
|
/**
|
|
19
8
|
* @swagger
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import { useState, useEffect } from 'react'
|
|
2
2
|
import { useAiwfStore } from '@/stores/aiwfStore'
|
|
3
|
-
import FeatureLedger from '@/components/aiwf/FeatureLedger'
|
|
4
3
|
import TokenUsage from '@/components/aiwf/TokenUsage'
|
|
5
4
|
import ContextStatus from '@/components/aiwf/ContextStatus'
|
|
6
5
|
|
|
7
6
|
export default function AiwfDashboard() {
|
|
8
|
-
const {
|
|
9
|
-
const [activeTab, setActiveTab] = useState('
|
|
7
|
+
const { tokenUsage, contextStatus, loadDashboardData } = useAiwfStore()
|
|
8
|
+
const [activeTab, setActiveTab] = useState('tokens')
|
|
10
9
|
|
|
11
10
|
useEffect(() => {
|
|
12
11
|
loadDashboardData()
|
|
13
12
|
}, [loadDashboardData])
|
|
14
13
|
|
|
15
14
|
const tabs = [
|
|
16
|
-
{ id: 'features', name: 'Feature Ledger', icon: '📋' },
|
|
17
15
|
{ id: 'tokens', name: '토큰 사용량', icon: '🪙' },
|
|
18
16
|
{ id: 'context', name: 'Context 상태', icon: '📊' },
|
|
19
17
|
]
|
|
@@ -51,7 +49,6 @@ export default function AiwfDashboard() {
|
|
|
51
49
|
</div>
|
|
52
50
|
|
|
53
51
|
<div className="mt-8">
|
|
54
|
-
{activeTab === 'features' && <FeatureLedger features={features} />}
|
|
55
52
|
{activeTab === 'tokens' && <TokenUsage usage={tokenUsage} />}
|
|
56
53
|
{activeTab === 'context' && <ContextStatus status={contextStatus} />}
|
|
57
54
|
</div>
|
|
@@ -37,9 +37,8 @@ export class TokenReporter {
|
|
|
37
37
|
'.aiwf/02_REQUIREMENTS',
|
|
38
38
|
'.aiwf/03_SPRINTS',
|
|
39
39
|
'.aiwf/04_GENERAL_TASKS',
|
|
40
|
-
'.aiwf/
|
|
41
|
-
'.aiwf/
|
|
42
|
-
'.aiwf/07_AI_PERSONAS'
|
|
40
|
+
'.aiwf/05_ARCHITECTURAL_DECISIONS',
|
|
41
|
+
'.aiwf/10_STATE_OF_PROJECT'
|
|
43
42
|
];
|
|
44
43
|
|
|
45
44
|
// 각 디렉토리별 토큰 수 분석
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* YOLO 모드 체크포인트 매니저
|
|
2
|
+
* Checkpoint Manager - YOLO 모드 체크포인트 매니저
|
|
3
|
+
*
|
|
4
|
+
* @usage YOLO 모드 및 CLI 명령어에서 사용
|
|
5
|
+
* @used_by src/cli/index.js, src/cli/checkpoint-cli.js
|
|
6
|
+
* @commands aiwf checkpoint, aiwf-checkpoint
|
|
7
|
+
* @warning 삭제 금지 - YOLO 시스템 핵심 구성 요소
|
|
8
|
+
*
|
|
3
9
|
* 진행 상황을 저장하고 복구할 수 있는 시스템
|
|
10
|
+
* - 세션 상태 관리
|
|
11
|
+
* - 체크포인트 생성/복구
|
|
12
|
+
* - 진행률 추적
|
|
13
|
+
* - 복구 가능한 상태 유지
|
|
4
14
|
*/
|
|
5
15
|
|
|
6
16
|
import fs from 'fs/promises';
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* 오버엔지니어링 방지 가드
|
|
2
|
+
* Engineering Guard - 오버엔지니어링 방지 가드
|
|
3
|
+
*
|
|
4
|
+
* @usage YOLO 모드 전용 - 동적 import로 사용됨
|
|
5
|
+
* @used_by /claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_yolo.md
|
|
6
|
+
* @phase 프로젝트 복잡도 모니터링 (5단계)
|
|
7
|
+
* @warning 삭제 금지 - YOLO 시스템 핵심 구성 요소
|
|
8
|
+
*
|
|
3
9
|
* YOLO 모드에서 과도한 복잡성을 방지하는 유틸리티
|
|
10
|
+
* - 초기 복잡도 측정
|
|
11
|
+
* - 사전 체크 및 실시간 모니터링
|
|
12
|
+
* - 태스크 완료 후 검증
|
|
13
|
+
* - 최종 보고서 생성
|
|
4
14
|
*/
|
|
5
15
|
|
|
6
16
|
import fs from 'fs/promises';
|
|
@@ -3,20 +3,6 @@ import fs from 'fs/promises';
|
|
|
3
3
|
import path from 'path';
|
|
4
4
|
|
|
5
5
|
export const aiwfController = {
|
|
6
|
-
getFeatures: async (req: Request, res: Response, next: NextFunction) => {
|
|
7
|
-
try {
|
|
8
|
-
const ledgerPath = path.join(process.cwd(), '.aiwf', 'feature-ledger.json');
|
|
9
|
-
const ledgerData = await fs.readFile(ledgerPath, 'utf-8');
|
|
10
|
-
const ledger = JSON.parse(ledgerData);
|
|
11
|
-
|
|
12
|
-
res.json({
|
|
13
|
-
success: true,
|
|
14
|
-
data: ledger,
|
|
15
|
-
});
|
|
16
|
-
} catch (error) {
|
|
17
|
-
next(error);
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
6
|
|
|
21
7
|
getTokenUsage: async (req: Request, res: Response, next: NextFunction) => {
|
|
22
8
|
try {
|
|
@@ -3,17 +3,6 @@ import { aiwfController } from '@controllers/aiwfController';
|
|
|
3
3
|
|
|
4
4
|
const router = Router();
|
|
5
5
|
|
|
6
|
-
/**
|
|
7
|
-
* @swagger
|
|
8
|
-
* /api/aiwf/features:
|
|
9
|
-
* get:
|
|
10
|
-
* summary: Feature Ledger 조회
|
|
11
|
-
* tags: [AIWF]
|
|
12
|
-
* responses:
|
|
13
|
-
* 200:
|
|
14
|
-
* description: Feature 목록
|
|
15
|
-
*/
|
|
16
|
-
router.get('/features', aiwfController.getFeatures);
|
|
17
6
|
|
|
18
7
|
/**
|
|
19
8
|
* @swagger
|