aiwf 0.3.2 → 0.3.3
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/.aiwf/installed.flag +1 -0
- package/claude-code/aiwf/ko/templates/web-app/template/package-lock.json +10022 -0
- package/index.js +7 -3
- package/package.json +1 -1
- package/.aiwf/.claude/commands/aiwf/aiwf_compress_aggressive_persona.md +0 -53
- package/.aiwf/.claude/commands/aiwf/aiwf_compress_minimal_persona.md +0 -48
- package/.aiwf/.claude/commands/aiwf/aiwf_compress_stats.md +0 -79
- package/.aiwf/.claude/commands/aiwf/aiwf_compress_with_persona.md +0 -51
- package/.aiwf/.claude/commands/aiwf/aiwf_evaluate.md +0 -92
- package/claude-code/aiwf/ko/bin/aiwf-create.js +0 -56
- package/claude-code/aiwf/ko/bin/aiwf.js +0 -21
- package/claude-code/aiwf/ko/docs/00_PROJECT_MANIFEST.md +0 -183
- package/claude-code/aiwf/ko/docs/ARCHITECTURE.md +0 -121
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_ADVANCED_USE_CASES.md +0 -412
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_API_REFERENCE.md +0 -361
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_COMMANDS_GUIDE.md +0 -254
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_FAQ.md +0 -365
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_SYSTEM_OVERVIEW.md +0 -305
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_USER_GUIDE.md +0 -416
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_/354/213/234/354/236/221_/352/260/200/354/235/264/353/223/234.md +0 -247
package/index.js
CHANGED
|
@@ -82,9 +82,9 @@ async function getDirectoryStructure(path = '') {
|
|
|
82
82
|
const COMMANDS_DIR = '.claude/commands/aiwf';
|
|
83
83
|
|
|
84
84
|
async function checkExistingInstallation() {
|
|
85
|
-
const
|
|
86
|
-
const
|
|
87
|
-
return
|
|
85
|
+
const flagFile = path.join('.aiwf', 'installed.flag');
|
|
86
|
+
const flagExists = await fs.access(flagFile).then(() => true).catch(() => false);
|
|
87
|
+
return flagExists;
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
// 백업 폴더명 생성 함수
|
|
@@ -1781,6 +1781,10 @@ async function installAIWF(options = {}) {
|
|
|
1781
1781
|
console.error(chalk.red(error.message));
|
|
1782
1782
|
process.exit(1);
|
|
1783
1783
|
}
|
|
1784
|
+
|
|
1785
|
+
// 설치 완료 플래그 파일 생성
|
|
1786
|
+
const flagFile = path.join('.aiwf', 'installed.flag');
|
|
1787
|
+
await fs.writeFile(flagFile, 'installed', 'utf8');
|
|
1784
1788
|
}
|
|
1785
1789
|
|
|
1786
1790
|
async function restoreFromBackup(spinner, msg) {
|
package/package.json
CHANGED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# aiwf compress-aggressive-persona
|
|
2
|
-
|
|
3
|
-
활성화된 페르소나를 고려하여 공격적 모드로 컨텍스트를 압축합니다.
|
|
4
|
-
|
|
5
|
-
## 실행
|
|
6
|
-
|
|
7
|
-
```javascript
|
|
8
|
-
const { spawn } = require('child_process');
|
|
9
|
-
const path = require('path');
|
|
10
|
-
|
|
11
|
-
// .aiwf 디렉토리로 이동하여 명령 실행
|
|
12
|
-
const cwd = path.join(process.cwd(), '.aiwf');
|
|
13
|
-
const proc = spawn('node', [
|
|
14
|
-
'../claude-code/aiwf/ko/commands/compress-context.js',
|
|
15
|
-
'aggressive',
|
|
16
|
-
'--persona'
|
|
17
|
-
], { cwd, stdio: 'inherit' });
|
|
18
|
-
|
|
19
|
-
proc.on('error', (err) => {
|
|
20
|
-
console.error('명령 실행 실패:', err.message);
|
|
21
|
-
});
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## 설명
|
|
25
|
-
|
|
26
|
-
페르소나 특성을 고려하면서도 50-70%의 높은 압축률을 목표로 합니다. 페르소나 관련 핵심 정보는 보존하되, 나머지는 적극적으로 요약합니다.
|
|
27
|
-
|
|
28
|
-
### 특징
|
|
29
|
-
|
|
30
|
-
- 페르소나 중심 요약 생성
|
|
31
|
-
- 핵심 패턴만 보존
|
|
32
|
-
- 중요도가 낮은 섹션은 요약으로 대체
|
|
33
|
-
- 페르소나별 summarization focus 적용
|
|
34
|
-
|
|
35
|
-
## 압축 결과
|
|
36
|
-
|
|
37
|
-
압축 후 페르소나별 요약이 문서 하단에 추가됩니다:
|
|
38
|
-
|
|
39
|
-
```markdown
|
|
40
|
-
---
|
|
41
|
-
### [페르소나명] 관점 요약
|
|
42
|
-
|
|
43
|
-
주요 내용 ([페르소나의 focus]):
|
|
44
|
-
- 핵심 포인트 1
|
|
45
|
-
- 핵심 포인트 2
|
|
46
|
-
- ...
|
|
47
|
-
---
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## 주의사항
|
|
51
|
-
|
|
52
|
-
- 매우 높은 압축률로 인해 일부 세부 정보가 손실될 수 있습니다
|
|
53
|
-
- 중요한 문서는 백업 후 사용을 권장합니다
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# aiwf compress-minimal-persona
|
|
2
|
-
|
|
3
|
-
활성화된 페르소나를 고려하여 최소 모드로 컨텍스트를 압축합니다.
|
|
4
|
-
|
|
5
|
-
## 실행
|
|
6
|
-
|
|
7
|
-
```javascript
|
|
8
|
-
const { spawn } = require('child_process');
|
|
9
|
-
const path = require('path');
|
|
10
|
-
|
|
11
|
-
// .aiwf 디렉토리로 이동하여 명령 실행
|
|
12
|
-
const cwd = path.join(process.cwd(), '.aiwf');
|
|
13
|
-
const proc = spawn('node', [
|
|
14
|
-
'../claude-code/aiwf/ko/commands/compress-context.js',
|
|
15
|
-
'minimal',
|
|
16
|
-
'--persona'
|
|
17
|
-
], { cwd, stdio: 'inherit' });
|
|
18
|
-
|
|
19
|
-
proc.on('error', (err) => {
|
|
20
|
-
console.error('명령 실행 실패:', err.message);
|
|
21
|
-
});
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## 설명
|
|
25
|
-
|
|
26
|
-
페르소나 특성을 고려하면서도 최소한의 압축만 수행합니다. 10-30%의 낮은 압축률로 원본 내용을 최대한 보존합니다.
|
|
27
|
-
|
|
28
|
-
### 압축 전략
|
|
29
|
-
|
|
30
|
-
- 페르소나 관련 패턴은 100% 보존
|
|
31
|
-
- 중복 내용만 제거
|
|
32
|
-
- 불필요한 공백과 포맷팅 정리
|
|
33
|
-
- 페르소나별 중요도 점수가 평균 이상인 섹션은 그대로 유지
|
|
34
|
-
|
|
35
|
-
## 적합한 사용 사례
|
|
36
|
-
|
|
37
|
-
- 중요한 기술 문서
|
|
38
|
-
- 상세한 API 문서
|
|
39
|
-
- 보안 관련 문서
|
|
40
|
-
- 데이터 분석 리포트
|
|
41
|
-
|
|
42
|
-
## 결과
|
|
43
|
-
|
|
44
|
-
압축 후에도 다음이 보장됩니다:
|
|
45
|
-
- 모든 페르소나 관련 키워드 보존
|
|
46
|
-
- 문서 구조 완전 유지
|
|
47
|
-
- 코드 블록과 예제 보존
|
|
48
|
-
- 테이블과 다이어그램 유지
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
# aiwf compress-stats
|
|
2
|
-
|
|
3
|
-
페르소나별 압축 통계를 확인합니다.
|
|
4
|
-
|
|
5
|
-
## 실행
|
|
6
|
-
|
|
7
|
-
```javascript
|
|
8
|
-
const fs = require('fs');
|
|
9
|
-
const path = require('path');
|
|
10
|
-
const chalk = require('chalk');
|
|
11
|
-
|
|
12
|
-
// PersonaAwareCompressor import
|
|
13
|
-
const { PersonaAwareCompressor } = require(path.join(
|
|
14
|
-
process.cwd(),
|
|
15
|
-
'claude-code/aiwf/ko/utils/persona-aware-compressor.js'
|
|
16
|
-
));
|
|
17
|
-
|
|
18
|
-
try {
|
|
19
|
-
const compressor = new PersonaAwareCompressor();
|
|
20
|
-
const stats = compressor.getPersonaCompressionStats();
|
|
21
|
-
|
|
22
|
-
console.log(chalk.cyan('📊 페르소나별 압축 통계'));
|
|
23
|
-
console.log(chalk.gray('━'.repeat(50)));
|
|
24
|
-
|
|
25
|
-
if (stats.currentPersona) {
|
|
26
|
-
console.log(`현재 페르소나: ${chalk.yellow(stats.currentPersona)}`);
|
|
27
|
-
|
|
28
|
-
if (stats.strategy) {
|
|
29
|
-
console.log('\n📋 현재 페르소나 압축 전략:');
|
|
30
|
-
console.log(`- 포커스 영역: ${stats.strategy.focusAreas.join(', ')}`);
|
|
31
|
-
console.log(`- 요약 초점: ${stats.strategy.summarizationFocus}`);
|
|
32
|
-
console.log(`- 보존 패턴: ${stats.strategy.preservePatterns.slice(0, 5).join(', ')}...`);
|
|
33
|
-
}
|
|
34
|
-
} else {
|
|
35
|
-
console.log(chalk.yellow('⚠️ 활성화된 페르소나가 없습니다.'));
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
const avgRatios = stats.averageRatioByPersona;
|
|
39
|
-
if (Object.keys(avgRatios).length > 0) {
|
|
40
|
-
console.log('\n📈 페르소나별 평균 압축률:');
|
|
41
|
-
Object.entries(avgRatios).forEach(([persona, ratio]) => {
|
|
42
|
-
const personaNames = {
|
|
43
|
-
architect: 'Architect',
|
|
44
|
-
security: 'Security Expert',
|
|
45
|
-
frontend: 'Frontend Developer',
|
|
46
|
-
backend: 'Backend Developer',
|
|
47
|
-
data_analyst: 'Data Analyst'
|
|
48
|
-
};
|
|
49
|
-
console.log(`- ${personaNames[persona] || persona}: ${chalk.green(ratio + '%')}`);
|
|
50
|
-
});
|
|
51
|
-
} else {
|
|
52
|
-
console.log('\n압축 히스토리가 없습니다.');
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
} catch (error) {
|
|
56
|
-
console.error(chalk.red('오류:'), error.message);
|
|
57
|
-
}
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## 설명
|
|
61
|
-
|
|
62
|
-
페르소나별 압축 통계와 현재 활성화된 페르소나의 압축 전략을 확인합니다.
|
|
63
|
-
|
|
64
|
-
### 제공 정보
|
|
65
|
-
|
|
66
|
-
1. **현재 페르소나 정보**
|
|
67
|
-
- 활성 페르소나 이름
|
|
68
|
-
- 압축 전략 상세
|
|
69
|
-
- 보존 패턴 목록
|
|
70
|
-
|
|
71
|
-
2. **압축 히스토리 통계**
|
|
72
|
-
- 페르소나별 평균 압축률
|
|
73
|
-
- 압축 성능 비교
|
|
74
|
-
|
|
75
|
-
## 활용 방법
|
|
76
|
-
|
|
77
|
-
- 페르소나별 압축 효율성 비교
|
|
78
|
-
- 최적의 압축 모드 선택
|
|
79
|
-
- 압축 전략 개선점 파악
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
# aiwf compress-with-persona
|
|
2
|
-
|
|
3
|
-
활성화된 페르소나를 고려하여 컨텍스트를 압축합니다.
|
|
4
|
-
|
|
5
|
-
## 실행
|
|
6
|
-
|
|
7
|
-
```javascript
|
|
8
|
-
const { spawn } = require('child_process');
|
|
9
|
-
const path = require('path');
|
|
10
|
-
|
|
11
|
-
// .aiwf 디렉토리로 이동하여 명령 실행
|
|
12
|
-
const cwd = path.join(process.cwd(), '.aiwf');
|
|
13
|
-
const proc = spawn('node', [
|
|
14
|
-
'../claude-code/aiwf/ko/commands/compress-context.js',
|
|
15
|
-
'balanced',
|
|
16
|
-
'--persona'
|
|
17
|
-
], { cwd, stdio: 'inherit' });
|
|
18
|
-
|
|
19
|
-
proc.on('error', (err) => {
|
|
20
|
-
console.error('명령 실행 실패:', err.message);
|
|
21
|
-
});
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## 설명
|
|
25
|
-
|
|
26
|
-
현재 활성화된 페르소나의 특성을 고려하여 컨텍스트를 압축합니다. 페르소나별로 중요한 패턴과 키워드를 보존하며, 관련성이 낮은 내용은 더 적극적으로 압축합니다.
|
|
27
|
-
|
|
28
|
-
### 페르소나별 압축 전략
|
|
29
|
-
|
|
30
|
-
- **Architect**: 시스템 설계, 아키텍처 패턴 중심 보존
|
|
31
|
-
- **Security**: 보안 경고, 취약점 정보 완전 보존
|
|
32
|
-
- **Frontend**: UI/UX 설명, 시각적 요소 중심 보존
|
|
33
|
-
- **Backend**: API 명세, 데이터베이스 스키마 보존
|
|
34
|
-
- **Data Analyst**: 데이터 설명, 인사이트 완전 보존
|
|
35
|
-
|
|
36
|
-
## 사용 예시
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
# 기본 모드 (balanced)로 페르소나 인식 압축
|
|
40
|
-
aiwf compress-with-persona
|
|
41
|
-
|
|
42
|
-
# 다른 압축 모드와 함께 사용
|
|
43
|
-
aiwf compress-aggressive-persona # aggressive 모드
|
|
44
|
-
aiwf compress-minimal-persona # minimal 모드
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## 참고
|
|
48
|
-
|
|
49
|
-
- 페르소나가 활성화되지 않은 경우 일반 압축이 수행됩니다
|
|
50
|
-
- 압축된 파일은 `.aiwf_compressed/` 디렉토리에 저장됩니다
|
|
51
|
-
- 페르소나별 중요 패턴 보존율이 리포트에 포함됩니다
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
# aiwf evaluate
|
|
2
|
-
|
|
3
|
-
AI 응답 품질을 간단하게 평가합니다.
|
|
4
|
-
|
|
5
|
-
## 실행
|
|
6
|
-
|
|
7
|
-
```javascript
|
|
8
|
-
const { spawn } = require('child_process');
|
|
9
|
-
const path = require('path');
|
|
10
|
-
|
|
11
|
-
// .aiwf 디렉토리로 이동하여 명령 실행
|
|
12
|
-
const cwd = path.join(process.cwd(), '.aiwf');
|
|
13
|
-
const args = process.argv.slice(2); // 추가 인자 전달
|
|
14
|
-
|
|
15
|
-
const proc = spawn('node', [
|
|
16
|
-
'../claude-code/aiwf/ko/commands/evaluate.js',
|
|
17
|
-
...args
|
|
18
|
-
], { cwd, stdio: 'inherit' });
|
|
19
|
-
|
|
20
|
-
proc.on('error', (err) => {
|
|
21
|
-
console.error('명령 실행 실패:', err.message);
|
|
22
|
-
});
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## 설명
|
|
26
|
-
|
|
27
|
-
경량화된 평가 시스템으로 AI 응답 품질을 모니터링합니다. 기본적으로 백그라운드에서 자동 실행되며, 필요할 때만 상세 정보를 확인할 수 있습니다.
|
|
28
|
-
|
|
29
|
-
## 사용 옵션
|
|
30
|
-
|
|
31
|
-
### 기본 사용 (빠른 평가)
|
|
32
|
-
```bash
|
|
33
|
-
aiwf evaluate
|
|
34
|
-
```
|
|
35
|
-
현재 페르소나의 최근 평가 통계를 간단히 표시합니다.
|
|
36
|
-
|
|
37
|
-
### 상세 분석
|
|
38
|
-
```bash
|
|
39
|
-
aiwf evaluate --detailed
|
|
40
|
-
# 또는
|
|
41
|
-
aiwf evaluate -d
|
|
42
|
-
```
|
|
43
|
-
모든 페르소나의 상세 통계와 개선 제안을 표시합니다.
|
|
44
|
-
|
|
45
|
-
### 평가 히스토리
|
|
46
|
-
```bash
|
|
47
|
-
aiwf evaluate --history
|
|
48
|
-
# 또는
|
|
49
|
-
aiwf evaluate -h
|
|
50
|
-
```
|
|
51
|
-
최근 10개의 평가 기록을 시간순으로 표시합니다.
|
|
52
|
-
|
|
53
|
-
### 주간 통계
|
|
54
|
-
```bash
|
|
55
|
-
aiwf evaluate --stats
|
|
56
|
-
# 또는
|
|
57
|
-
aiwf evaluate -s
|
|
58
|
-
```
|
|
59
|
-
일주일간의 평가 통계와 페르소나별 활용도를 표시합니다.
|
|
60
|
-
|
|
61
|
-
## 자동 평가 시스템
|
|
62
|
-
|
|
63
|
-
이 명령어는 수동으로 실행할 수 있지만, 실제로는 다음 상황에서 자동으로 백그라운드 평가가 수행됩니다:
|
|
64
|
-
|
|
65
|
-
- 페르소나 전환 시
|
|
66
|
-
- 컨텍스트 압축 시
|
|
67
|
-
- AI 응답 생성 후 (향후 구현)
|
|
68
|
-
|
|
69
|
-
평가 점수가 60% 미만일 때만 자동으로 피드백이 표시되므로, 작업 흐름을 방해하지 않습니다.
|
|
70
|
-
|
|
71
|
-
## 평가 기준
|
|
72
|
-
|
|
73
|
-
### 3가지 핵심 지표
|
|
74
|
-
1. **역할 일치도 (50%)**: 페르소나 특성 반영 정도
|
|
75
|
-
2. **작업 관련성 (30%)**: 요청된 작업과의 관련성
|
|
76
|
-
3. **기본 품질 (20%)**: 응답의 구조와 내용
|
|
77
|
-
|
|
78
|
-
### 점수 해석
|
|
79
|
-
- 80% 이상: 훌륭함 🎉
|
|
80
|
-
- 60-79%: 양호함 ✅
|
|
81
|
-
- 60% 미만: 개선 필요 💡
|
|
82
|
-
|
|
83
|
-
## 예시 출력
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
🔍 최근 응답 평가
|
|
87
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
88
|
-
현재 페르소나: architect
|
|
89
|
-
평균 점수: 0.75
|
|
90
|
-
평가 횟수: 23
|
|
91
|
-
추세: 📈 개선 중
|
|
92
|
-
```
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import { createProject } from '../scripts/create-project.js';
|
|
4
|
-
import { createProjectOffline, isOnline } from '../scripts/create-offline.js';
|
|
5
|
-
import chalk from 'chalk';
|
|
6
|
-
|
|
7
|
-
export async function main(args = process.argv.slice(2)) {
|
|
8
|
-
|
|
9
|
-
// 오프라인 모드 체크
|
|
10
|
-
if (args.includes('--offline')) {
|
|
11
|
-
console.log(chalk.yellow('⚠️ 오프라인 모드로 실행합니다.'));
|
|
12
|
-
// 오프라인 생성 로직
|
|
13
|
-
const template = args[0];
|
|
14
|
-
const projectName = args[1];
|
|
15
|
-
|
|
16
|
-
if (!template || !projectName) {
|
|
17
|
-
console.log(chalk.red('사용법: aiwf create --offline <template> <project-name>'));
|
|
18
|
-
process.exit(1);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
try {
|
|
22
|
-
await createProjectOffline(template, projectName, projectName);
|
|
23
|
-
} catch (error) {
|
|
24
|
-
console.error(chalk.red('오류:', error.message));
|
|
25
|
-
process.exit(1);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// 네트워크 연결 확인
|
|
32
|
-
const online = await isOnline();
|
|
33
|
-
|
|
34
|
-
if (!online) {
|
|
35
|
-
console.log(chalk.yellow('\n⚠️ 인터넷 연결을 확인할 수 없습니다.'));
|
|
36
|
-
console.log(chalk.yellow('오프라인 모드로 전환합니다.\n'));
|
|
37
|
-
console.log(chalk.gray('온라인 모드를 강제하려면 --online 플래그를 사용하세요.'));
|
|
38
|
-
|
|
39
|
-
// 오프라인 모드로 자동 전환
|
|
40
|
-
if (!args.includes('--online')) {
|
|
41
|
-
// 오프라인 프로젝트 생성 로직
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// 온라인 모드 (대화형)
|
|
47
|
-
createProject();
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// CLI로 직접 실행된 경우에만 main 함수 호출
|
|
51
|
-
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
52
|
-
main().catch(error => {
|
|
53
|
-
console.error(chalk.red('오류:', error.message));
|
|
54
|
-
process.exit(1);
|
|
55
|
-
});
|
|
56
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
// AIWF (AI Workflow Framework) Binary
|
|
4
|
-
// This is a wrapper that forwards to the main index.js file
|
|
5
|
-
|
|
6
|
-
import { execSync } from 'child_process';
|
|
7
|
-
import path from 'path';
|
|
8
|
-
import { fileURLToPath } from 'url';
|
|
9
|
-
|
|
10
|
-
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
11
|
-
const mainScript = path.join(__dirname, '../../index.js');
|
|
12
|
-
|
|
13
|
-
// Forward all arguments to the main script
|
|
14
|
-
const args = process.argv.slice(2);
|
|
15
|
-
const command = `node "${mainScript}" ${args.join(' ')}`;
|
|
16
|
-
|
|
17
|
-
try {
|
|
18
|
-
execSync(command, { stdio: 'inherit', cwd: process.cwd() });
|
|
19
|
-
} catch (error) {
|
|
20
|
-
process.exit(error.status || 1);
|
|
21
|
-
}
|
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
# AIWF 프로젝트 매니페스트
|
|
2
|
-
|
|
3
|
-
**프로젝트명**: AIWF (AI Workflow Framework)
|
|
4
|
-
**생성일**: 2025-07-02
|
|
5
|
-
**마지막 업데이트**: 2025-07-10
|
|
6
|
-
**프로젝트 유형**: Node.js NPM 패키지
|
|
7
|
-
**현재 버전**: 0.3.0
|
|
8
|
-
**최고 마일스톤**: M02
|
|
9
|
-
**최고 스프린트**: S03
|
|
10
|
-
|
|
11
|
-
## 프로젝트 개요
|
|
12
|
-
|
|
13
|
-
AIWF는 Claude Code와의 통합을 위해 설계된 마크다운 기반 프로젝트 관리 프레임워크입니다. AI 지원 개발을 위한 체계적인 워크플로우를 제공하며, 다국어 지원(한국어/영어)을 통해 글로벌 개발자들이 사용할 수 있도록 설계되었습니다.
|
|
14
|
-
|
|
15
|
-
## 현재 마일스톤
|
|
16
|
-
|
|
17
|
-
- **활성 마일스톤**: M02_Context_Engineering_Enhancement
|
|
18
|
-
- **마일스톤 상태**: 완료
|
|
19
|
-
- **진행률**: 100%
|
|
20
|
-
- **완료일**: 2025-07-08
|
|
21
|
-
|
|
22
|
-
## 현재 스프린트
|
|
23
|
-
|
|
24
|
-
- **활성 스프린트**: S03_M02_ecosystem_integration
|
|
25
|
-
- **스프린트 상태**: complete
|
|
26
|
-
- **시작일**: 2025-07-08
|
|
27
|
-
- **완료일**: 2025-07-08
|
|
28
|
-
|
|
29
|
-
## 활성 태스크
|
|
30
|
-
|
|
31
|
-
### 진행 중
|
|
32
|
-
|
|
33
|
-
- **T14_S03**: 기본 프로젝트 템플릿 구축 (in_progress → 2025-07-10 06:20 시작)
|
|
34
|
-
|
|
35
|
-
### 계획됨
|
|
36
|
-
|
|
37
|
-
- 계획된 태스크 없음
|
|
38
|
-
|
|
39
|
-
### 최근 완료
|
|
40
|
-
|
|
41
|
-
- **T13_S03**: AI 도구 통합 템플릿 개발 (completed → 2025-07-10 04:37 완료)
|
|
42
|
-
|
|
43
|
-
- **TX001**: Complete English Translation for 100% i18n Support (completed → 2025-07-09 08:13 완료)
|
|
44
|
-
- **TX05_S02**: S02 통합 테스트 및 문서화 (completed → 2025-07-08 00:09 완료)
|
|
45
|
-
- **TX03_S02**: Context 압축 알고리즘 구현 (completed → 2025-07-09 03:48 완료)
|
|
46
|
-
- **TX11_S01**: 통합 테스트 Suite 구축 (completed → 2025-07-09 03:06 완료)
|
|
47
|
-
- **TX10_S01**: update_docs 명령어 복구 (completed → 2025-07-09 02:49 완료)
|
|
48
|
-
- **TX09_S01**: 압축 알고리즘 프로토타입 (completed → 2025-07-09 02:35 완료)
|
|
49
|
-
- **TX08_S01**: 토큰 추적 시스템 프로토타입 (completed → 2025-07-09 02:12 완료)
|
|
50
|
-
- **TX07_S01**: Context 압축 아키텍처 설계 (completed → 2025-07-09 01:54 완료)
|
|
51
|
-
- **TX05_S01**: AI 페르소나 데이터 구조 설계 (completed → 2025-07-09 01:25 완료)
|
|
52
|
-
- **TX04_S01**: Feature Ledger 문서화 (completed → 2025-07-09 01:02 완료)
|
|
53
|
-
- **TX03_S01**: Git 연동 Feature 추적 (completed → 2025-07-09 00:45 완료)
|
|
54
|
-
- **TX02_S01**: Feature Ledger CLI 명령어 개발 (completed → 2025-07-09 00:18 완료)
|
|
55
|
-
- **TX01_S01**: Feature Ledger 데이터 구조 설계 (completed → 2025-07-09 00:01 완료)
|
|
56
|
-
- **T04_S03**: update_docs 명령어 누락 이슈 해결 (completed → 2025-07-03 06:35 완료)
|
|
57
|
-
- **T03_S03**: 한국어 명령어 전체 시스템 표준화 (completed → 2025-07-03 06:28 완료)
|
|
58
|
-
|
|
59
|
-
### 완료됨
|
|
60
|
-
|
|
61
|
-
- 프로젝트 초기화 완료
|
|
62
|
-
- M01 마일스톤 완료 (한국어 명령어 표준화)
|
|
63
|
-
|
|
64
|
-
## 마일스톤 목록
|
|
65
|
-
|
|
66
|
-
| ID | 이름 | 상태 | 진행률 | 시작일 | 완료일 |
|
|
67
|
-
| --- | ------------------------------- | ------- | ------ | ---------- | ------ |
|
|
68
|
-
| M02 | Context_Engineering_Enhancement | 완료 | 100% | 2025-07-08 | 2025-07-08 |
|
|
69
|
-
|
|
70
|
-
### 마일스톤 상세
|
|
71
|
-
- [x] [M02: Context Engineering Enhancement](02_REQUIREMENTS/M02_Context_Engineering_Enhancement/M02_milestone_meta.md) - 상태: 완료
|
|
72
|
-
|
|
73
|
-
## 스프린트 목록
|
|
74
|
-
|
|
75
|
-
| ID | 이름 | 마일스톤 | 상태 | 진행률 | 시작일 | 완료일 |
|
|
76
|
-
| --- | ----------------------------- | -------- | --------- | ------ | ---------- | ------ |
|
|
77
|
-
| S01 | context_foundation | M02 | complete | 100% | 2025-07-08 | 2025-07-08 |
|
|
78
|
-
| S02 | ai_enhancement | M02 | complete | 100% | 2025-07-08 | 2025-07-08 |
|
|
79
|
-
| S03 | ecosystem_integration | M02 | complete | 100% | 2025-07-08 | 2025-07-08 |
|
|
80
|
-
|
|
81
|
-
## 일반 태스크
|
|
82
|
-
|
|
83
|
-
- [x] [TX001: Complete English Translation for 100% i18n Support](04_GENERAL_TASKS/TX001_complete_english_translation.md) - 상태: 완료
|
|
84
|
-
|
|
85
|
-
## 태스크 통계
|
|
86
|
-
|
|
87
|
-
- **총 태스크**: 19
|
|
88
|
-
- **완료**: 19
|
|
89
|
-
- **진행 중**: 0
|
|
90
|
-
- **대기 중**: 0
|
|
91
|
-
- **차단됨**: 0
|
|
92
|
-
|
|
93
|
-
## 프로젝트 메트릭
|
|
94
|
-
|
|
95
|
-
- **코드 커버리지**: N/A (NPM 패키지)
|
|
96
|
-
- **활성 이슈**: 0
|
|
97
|
-
- **해결된 이슈**: 0
|
|
98
|
-
- **오픈 PR**: 0
|
|
99
|
-
|
|
100
|
-
## 기술 스택
|
|
101
|
-
|
|
102
|
-
- **언어**: JavaScript (ES6+)
|
|
103
|
-
- **런타임**: Node.js 14.0.0+
|
|
104
|
-
- **패키지 매니저**: NPM
|
|
105
|
-
- **테스트**: Jest
|
|
106
|
-
- **CLI 도구**: Commander.js, Chalk, Ora, Prompts
|
|
107
|
-
|
|
108
|
-
## 주요 디렉토리
|
|
109
|
-
|
|
110
|
-
- `index.js`: 메인 CLI 설치 도구
|
|
111
|
-
- `claude-code/aiwf/ko/`: 한국어 AIWF 프레임워크
|
|
112
|
-
- `claude-code/aiwf/en/`: 영어 AIWF 프레임워크
|
|
113
|
-
- `rules/`: IDE별 개발 규칙
|
|
114
|
-
- `docs/`: 프로젝트 문서
|
|
115
|
-
- `tests/`: 테스트 파일
|
|
116
|
-
|
|
117
|
-
## 연락처 및 리소스
|
|
118
|
-
|
|
119
|
-
- **저자**: moonklabs
|
|
120
|
-
- **라이선스**: MIT
|
|
121
|
-
- **저장소**: https://github.com/aiwf/aiwf
|
|
122
|
-
- **NPM**: https://www.npmjs.com/package/aiwf
|
|
123
|
-
- **이슈 트래커**: https://github.com/aiwf/aiwf/issues
|
|
124
|
-
|
|
125
|
-
## 주요 변경사항 로그
|
|
126
|
-
|
|
127
|
-
### 2025-07-10
|
|
128
|
-
|
|
129
|
-
- 스프린트 태스크 상태 업데이트:
|
|
130
|
-
- S01_M02: 실제로 11/12 태스크 구현 완료 (테스크 파일에는 4/12로 표시됨)
|
|
131
|
-
- AI 페르소나, Context 압축, 토큰 추적 시스템 모두 구현됨
|
|
132
|
-
- Feature Ledger CLI 명령어만 미구현
|
|
133
|
-
- S02_M02: 태스크 파일과 구현의 불일치 확인
|
|
134
|
-
- 6개 페르소나 구현 (계획 5개와 다른 이름)
|
|
135
|
-
- Feature-Git 연동 부분 구현
|
|
136
|
-
- S03_M02: AI 도구 템플릿 및 프로젝트 템플릿 미구현
|
|
137
|
-
- Claude Code 템플릿만 존재
|
|
138
|
-
- 오프라인 캐시 시스템은 구현됨
|
|
139
|
-
|
|
140
|
-
### 2025-07-08
|
|
141
|
-
|
|
142
|
-
- S02 스프린트 완료: AI 강화 기능 구현
|
|
143
|
-
- 5개 AI 페르소나 명령어 구현 완료
|
|
144
|
-
- Context 압축 알고리즘 구현 (토큰 50% 절약 달성)
|
|
145
|
-
- Feature-Git 연동 시스템 구축
|
|
146
|
-
- 모든 DoD 항목 충족
|
|
147
|
-
- M01 마일스톤 삭제 (완료됨)
|
|
148
|
-
- M02 Context Engineering Enhancement 마일스톤을 위한 스프린트 재구성:
|
|
149
|
-
- S01_M02_context_foundation: Feature Ledger, AI 페르소나, Context 압축 기반 구축
|
|
150
|
-
- S02_M02_ai_enhancement: 5개 AI 페르소나, Context 압축 모드, Git 연동 구현
|
|
151
|
-
- S03_M02_ecosystem_integration: 5개 AI 도구 템플릿, 통합 및 문서화 완성
|
|
152
|
-
- M02 DoD 요구사항에 맞춘 스프린트 재정의
|
|
153
|
-
- 1주일 단위 실행 가능한 범위로 조정
|
|
154
|
-
|
|
155
|
-
### 2025-07-02
|
|
156
|
-
|
|
157
|
-
- AIWF 프로젝트 초기화 완료
|
|
158
|
-
- 아키텍처 문서 생성
|
|
159
|
-
- M01 한국어 명령어 표준화 마일스톤 시작
|
|
160
|
-
- T03_S03 태스크 생성
|
|
161
|
-
|
|
162
|
-
## 향후 계획
|
|
163
|
-
|
|
164
|
-
1. **즉시 조치 필요 사항**:
|
|
165
|
-
- Feature Ledger CLI 명령어 구현 (aiwf_create_feature_ledger, aiwf_update_feature_status 등)
|
|
166
|
-
- AI 도구 템플릿 4개 추가 (GitHub Copilot, Cursor, Windsurf, Augment)
|
|
167
|
-
- 프로젝트 템플릿 시스템 구현
|
|
168
|
-
- `.aiwf/ai-tools/` 및 `.aiwf/07_AI_PERSONAS/` 디렉토리 생성
|
|
169
|
-
|
|
170
|
-
2. **단기 목표 (1-2주)**:
|
|
171
|
-
- M02 DoD 항목 완전 충족
|
|
172
|
-
- 테스크 파일과 구현 상태 동기화
|
|
173
|
-
- 누락된 기능 구현 완료
|
|
174
|
-
|
|
175
|
-
3. **중기 목표 (1개월)**:
|
|
176
|
-
- 다음 마일스톤 계획 수립
|
|
177
|
-
- 사용자 피드백 반영
|
|
178
|
-
- 프로덕션 준비
|
|
179
|
-
|
|
180
|
-
4. **장기 목표 (분기)**:
|
|
181
|
-
- 새로운 언어 지원 추가
|
|
182
|
-
- AI 도구 통합 확대
|
|
183
|
-
- 커뮤니티 생태계 구축
|