aiwf 0.3.4 → 0.3.6
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/00_PROJECT_MANIFEST.md +29 -16
- package/.aiwf/02_REQUIREMENTS/M03_Simone_Integration_Enhancement/M03_milestone_meta.md +55 -0
- package/.aiwf/02_REQUIREMENTS/M03_Simone_Integration_Enhancement/SPECS_AIWF_Simplified_Plan.md +221 -0
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/S03_M02_sprint_meta.md +0 -1
- package/.aiwf/metrics/metrics.json +18 -0
- package/.aiwf/personas/current.json +5 -0
- package/.aiwf/test-results-s02.json +5 -5
- package/.claude/commands/aiwf/aiwf_add_task_to_sprint.md +283 -0
- package/.claude/commands/aiwf/aiwf_install_git_hooks.md +63 -0
- package/.claude/commands/aiwf/aiwf_link_feature_branch.md +43 -0
- package/.claude/commands/aiwf/aiwf_link_feature_commit.md +46 -0
- package/.claude/commands/aiwf/aiwf_persona_architect.md +1 -1
- package/.claude/commands/aiwf/aiwf_persona_backend.md +1 -1
- package/.claude/commands/aiwf/aiwf_persona_data_analyst.md +1 -1
- package/.claude/commands/aiwf/aiwf_persona_frontend.md +1 -1
- package/.claude/commands/aiwf/aiwf_persona_security.md +1 -1
- package/.claude/commands/aiwf/aiwf_persona_status.md +1 -1
- package/CHANGELOG.md +54 -5
- package/claude-code/aiwf/ko/commands/ai-persona.js +1 -1
- package/package.json +1 -1
- package/src/cli/index.js +58 -2
- package/src/commands/create-project.js +10 -7
- package/src/commands/persona.js +288 -0
- package/src/commands/sprint-task.js +262 -0
- package/src/lib/file-downloader.js +5 -0
- package/src/lib/installer.js +14 -4
- package/tests/integration/test-persona-system/.aiwf/metrics/metrics.json +833 -0
- package/tests/unit/sprint-task.test.js +172 -0
- package/.aiwf/sessions/session_1752877859489_1t7n2fhdb.json +0 -7
- package/.aiwf/sessions/session_1752877859515_cwdv211ry.json +0 -7
- package/.aiwf/sessions/session_1752877860664_huziadmbo.json +0 -7
- package/.aiwf/sessions/session_1752877860666_kyr5u1np6.json +0 -7
- package/.aiwf/sessions/session_1752877861848_9yinepw3t.json +0 -7
- package/.aiwf/sessions/session_1752877861874_y32sputuc.json +0 -7
- package/.aiwf/sessions/session_1752877862685_ivxbl5rhz.json +0 -7
- package/.aiwf/sessions/session_1752877862820_wnq4glvxi.json +0 -7
- package/.aiwf/sessions/session_1752877864632_3ebnpaelb.json +0 -7
- package/.aiwf/sessions/session_1752877864879_b9zgjcb7d.json +0 -7
- package/.aiwf/sessions/session_1752877865533_x14m1vodi.json +0 -7
- package/.aiwf/sessions/session_1752877865562_gkoh19n7d.json +0 -7
- package/.aiwf/sessions/session_1752877866333_wp8qpdcoh.json +0 -7
- package/.aiwf/sessions/session_1752877866509_dawntfpab.json +0 -7
- package/.aiwf/sessions/session_1752877866890_plc5vfucl.json +0 -7
- package/.aiwf/sessions/session_1752877866895_ga8hmq3oi.json +0 -7
- package/.aiwf/sessions/session_1752877867761_ayjp4v5f5.json +0 -7
- package/.aiwf/sessions/session_1752877867892_lfz6jy252.json +0 -7
- package/.aiwf/sessions/session_1752877868139_7bqd9ubli.json +0 -7
- package/.aiwf/sessions/session_1752877868162_zq3ofjbsh.json +0 -7
- package/.aiwf/sessions/session_1752877869054_7rlgm9jt6.json +0 -7
- package/.aiwf/sessions/session_1752877869477_ax3nhbxzr.json +0 -7
- package/.aiwf/sessions/session_1752877870095_6hgp4vl1e.json +0 -7
- package/.aiwf/sessions/session_1752877870381_qfcrdg4li.json +0 -7
- package/.aiwf/sessions/session_1752877871895_pgd5vllhz.json +0 -7
- package/.aiwf/sessions/session_1752877872199_jbhv2g2da.json +0 -7
- package/.aiwf/sessions/session_1752877872680_x04wpffu6.json +0 -7
- package/.aiwf/sessions/session_1752877872895_3y4vbeauo.json +0 -7
- package/.aiwf/sessions/session_1752877873178_3maolzc6b.json +0 -7
- package/.aiwf/sessions/session_1752877873180_ytm83j07f.json +0 -7
- package/.aiwf/sessions/session_1752877874217_dp56c9t42.json +0 -7
- package/.aiwf/sessions/session_1752877874415_epwp1g1og.json +0 -7
- package/.aiwf/sessions/session_1752877874454_heicyuryb.json +0 -7
- package/.aiwf/sessions/session_1752877874869_1c2illeu5.json +0 -7
- package/.aiwf/sessions/session_1752877874879_k1vo4vxyx.json +0 -7
- package/.aiwf/sessions/session_1752877874913_bwgyiz9bp.json +0 -7
- package/.aiwf/sessions/session_1752877876218_44807kztz.json +0 -7
- package/.aiwf/sessions/session_1752877876515_qkhjv5kpw.json +0 -7
- package/.aiwf/sessions/session_1752877876543_p605aud1m.json +0 -7
- package/.aiwf/sessions/session_1752877876819_l65w7ifck.json +0 -7
- package/.aiwf/sessions/session_1752877876867_xrhzss4we.json +0 -7
- package/.aiwf/sessions/session_1752877876872_u7aso54qb.json +0 -7
- package/.aiwf/sessions/session_1752877877705_telnfg4o6.json +0 -7
- package/.aiwf/sessions/session_1752877878285_6s45im2ib.json +0 -7
- package/.aiwf/sessions/session_1752877878506_v0dvguqhz.json +0 -7
- package/.aiwf/sessions/session_1752877878581_3ri3yc66a.json +0 -7
- package/.aiwf/sessions/session_1752877878756_a82x9s2pd.json +0 -7
- package/.aiwf/sessions/session_1752877878886_20pjsfour.json +0 -7
- package/.aiwf/sessions/session_1752877880266_fm1ydjw0g.json +0 -7
- package/.aiwf/sessions/session_1752877881149_xbat4z03d.json +0 -7
- package/.aiwf/sessions/session_1752877881551_qy5sic9qs.json +0 -7
- package/.aiwf/sessions/session_1752877881554_24ugd96wu.json +0 -7
- package/.aiwf/sessions/session_1752877881797_e9mm25uh0.json +0 -7
- package/.aiwf/sessions/session_1752877881822_bxvjj8c9g.json +0 -7
- package/.aiwf/sessions/session_1752877881890_jv7l6jve3.json +0 -7
- package/.aiwf/sessions/session_1752877881991_f0qugdtcq.json +0 -7
- package/.aiwf/sessions/session_1752877883387_0bvw9rvnx.json +0 -7
- package/.aiwf/sessions/session_1752877883820_q6g2md2up.json +0 -7
- package/.aiwf/sessions/session_1752877884393_sqr7trvjl.json +0 -7
- package/.aiwf/sessions/session_1752877884500_whtypmzlf.json +0 -7
- package/.aiwf/sessions/session_1752877884645_y9mvvxli1.json +0 -7
- package/.aiwf/sessions/session_1752877884733_hk46eenel.json +0 -7
- package/.aiwf/sessions/session_1752877884738_c62j6214r.json +0 -7
- package/.aiwf/sessions/session_1752877884771_temhxehoz.json +0 -7
- package/.aiwf/sessions/session_1752877885643_6v5fcktc7.json +0 -7
- package/.aiwf/sessions/session_1752877886426_ee8di2fqh.json +0 -7
- package/.aiwf/sessions/session_1752877886549_3xj6tdoew.json +0 -7
- package/.aiwf/sessions/session_1752877886604_aj80yyfco.json +0 -7
- package/.aiwf/sessions/session_1752877886702_2b8841vyg.json +0 -7
- package/.aiwf/sessions/session_1752877886712_ntqc8b8bz.json +0 -7
- package/.aiwf/sessions/session_1752877886968_946m8tbw6.json +0 -7
- package/.aiwf/sessions/session_1752877887008_wg6zfg8dn.json +0 -7
- package/.aiwf/sessions/session_1752877888479_ciiu2qiqs.json +0 -7
- package/.aiwf/sessions/session_1752877889330_ravg8l66k.json +0 -7
- package/.aiwf/sessions/session_1752877889542_7zepkhjkc.json +0 -7
- package/.aiwf/sessions/session_1752877889638_ev4htqiu0.json +0 -7
- package/.aiwf/sessions/session_1752877889956_szphy2qma.json +0 -7
- package/.aiwf/sessions/session_1752877890220_o6aaa57tt.json +0 -7
- package/.aiwf/sessions/session_1752877890527_v2loy5vu1.json +0 -7
- package/.aiwf/sessions/session_1752877890572_cwq8fiuma.json +0 -7
- package/.aiwf/sessions/session_1752877892200_sgcwq1alt.json +0 -7
- package/.aiwf/sessions/session_1752877892268_v8kexpbc5.json +0 -7
- package/.aiwf/sessions/session_1752877892384_1gbbgrp4y.json +0 -7
- package/.aiwf/sessions/session_1752877893568_9p2n5p31a.json +0 -7
- package/.aiwf/sessions/session_1752877893727_un34a5tvp.json +0 -7
- package/.aiwf/sessions/session_1752877893778_01j79sw9i.json +0 -7
- package/.aiwf/sessions/session_1752877894053_jrhba6wko.json +0 -7
- package/.aiwf/sessions/session_1752877894082_x3bghawox.json +0 -7
- package/.aiwf/sessions/session_1752877894500_iytiav2ku.json +0 -7
- package/.aiwf/sessions/session_1752877894667_ucn0gc2ge.json +0 -7
- package/test-token-system.js +0 -88
- package/tests/temp_invalid_json/invalid.json +0 -1
- /package/{.aiwf/templates → templates}/README.md +0 -0
- /package/{.aiwf/templates → templates}/api-server/config.json +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/.aiwf/config.json +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/.aiwf/feature-ledger.json +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/.aiwf/personas/backend-engineer.json +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/.aiwf/scripts/cli.js +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/.env.example +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/.eslintrc.json +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/README.md +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/jest.config.js +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/nodemon.json +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/package.json +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/src/app.ts +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/src/config/swagger.ts +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/src/controllers/aiwfController.ts +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/src/controllers/authController.ts +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/src/controllers/statusController.ts +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/src/index.ts +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/src/middleware/aiwfMiddleware.ts +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/src/middleware/authMiddleware.ts +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/src/middleware/errorHandler.ts +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/src/middleware/notFoundHandler.ts +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/src/middleware/requestLogger.ts +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/src/routes/aiwf.ts +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/src/routes/index.ts +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/src/routes/v1/index.ts +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/src/utils/logger.ts +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/tests/app.test.ts +0 -0
- /package/{.aiwf/templates → templates}/api-server/template/tsconfig.json +0 -0
- /package/{.aiwf/templates → templates}/npm-library/config.json +0 -0
- /package/{.aiwf/templates → templates}/npm-library/template/LICENSE +0 -0
- /package/{.aiwf/templates → templates}/npm-library/template/README.md +0 -0
- /package/{.aiwf/templates → templates}/npm-library/template/package.json +0 -0
- /package/{.aiwf/templates → templates}/web-app/config.json +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/.aiwf/config.json +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/.aiwf/feature-ledger.json +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/.aiwf/personas/fullstack-developer.json +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/.aiwf/scripts/cli.js +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/.eslintrc.cjs +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/README.md +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/index.html +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/package.json +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/postcss.config.js +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/public/vite.svg +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/src/App.tsx +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/src/components/Layout.tsx +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/src/components/aiwf/ContextStatus.tsx +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/src/components/aiwf/FeatureLedger.tsx +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/src/components/aiwf/TokenUsage.tsx +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/src/index.css +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/src/main.tsx +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/src/pages/AiwfDashboard.tsx +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/src/pages/HomePage.tsx +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/src/pages/NotFound.tsx +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/src/stores/aiwfStore.ts +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/src/types/global.d.ts +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/src/vite-env.d.ts +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/tailwind.config.js +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/tsconfig.json +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/tsconfig.node.json +0 -0
- /package/{.aiwf/templates → templates}/web-app/template/vite.config.ts +0 -0
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
**프로젝트명**: AIWF (AI Workflow Framework)
|
|
4
4
|
**생성일**: 2025-07-02
|
|
5
|
-
**마지막 업데이트**: 2025-07-
|
|
5
|
+
**마지막 업데이트**: 2025-07-16
|
|
6
6
|
**프로젝트 유형**: Node.js NPM 패키지
|
|
7
|
-
**현재 버전**: 0.3.
|
|
8
|
-
**최고 마일스톤**:
|
|
7
|
+
**현재 버전**: 0.3.1
|
|
8
|
+
**최고 마일스톤**: M03
|
|
9
9
|
**최고 스프린트**: S03
|
|
10
10
|
|
|
11
11
|
## 프로젝트 개요
|
|
@@ -31,7 +31,6 @@ AIWF는 Claude Code와의 통합을 위해 설계된 마크다운 기반 프로
|
|
|
31
31
|
### 진행 중
|
|
32
32
|
|
|
33
33
|
- **T14_S03**: 기본 프로젝트 템플릿 구축 (in_progress → 2025-07-10 06:20 시작)
|
|
34
|
-
|
|
35
34
|
### 계획됨
|
|
36
35
|
|
|
37
36
|
- 계획된 태스크 없음
|
|
@@ -66,9 +65,11 @@ AIWF는 Claude Code와의 통합을 위해 설계된 마크다운 기반 프로
|
|
|
66
65
|
| ID | 이름 | 상태 | 진행률 | 시작일 | 완료일 |
|
|
67
66
|
| --- | ------------------------------- | ------- | ------ | ---------- | ------ |
|
|
68
67
|
| M02 | Context_Engineering_Enhancement | 완료 | 100% | 2025-07-08 | 2025-07-08 |
|
|
68
|
+
| M03 | AIWF_Simplification_Reliability | 계획 중 | 0% | TBD | TBD |
|
|
69
69
|
|
|
70
70
|
### 마일스톤 상세
|
|
71
71
|
- [x] [M02: Context Engineering Enhancement](02_REQUIREMENTS/M02_Context_Engineering_Enhancement/M02_milestone_meta.md) - 상태: 완료
|
|
72
|
+
- [ ] [M03: AIWF 단순화 및 신뢰성 강화](02_REQUIREMENTS/M03_Simone_Integration_Enhancement/M03_milestone_meta.md) - 상태: 계획 중
|
|
72
73
|
|
|
73
74
|
## 스프린트 목록
|
|
74
75
|
|
|
@@ -161,23 +162,35 @@ AIWF는 Claude Code와의 통합을 위해 설계된 마크다운 기반 프로
|
|
|
161
162
|
|
|
162
163
|
## 향후 계획
|
|
163
164
|
|
|
165
|
+
### M03: AIWF 단순화 및 신뢰성 강화 (계획 중)
|
|
166
|
+
|
|
167
|
+
**목표**: 태스크 상태 불일치 해결 및 CLI 인터페이스 단순화
|
|
168
|
+
|
|
169
|
+
1. **Week 1: 프로젝트 정리 및 기초 구축**:
|
|
170
|
+
- 프로젝트 구조 정리 (중복 파일 제거, 모듈화)
|
|
171
|
+
- JSON 기반 태스크 인덱스 시스템 설계
|
|
172
|
+
- CLI 실행 파일 기본 구현
|
|
173
|
+
|
|
174
|
+
2. **Week 2: 핵심 기능 구현**:
|
|
175
|
+
- 태스크 무결성 검사 시스템
|
|
176
|
+
- 안전한 상태 변경 명령어
|
|
177
|
+
- 기본 AI 도우미 (research, plan)
|
|
178
|
+
|
|
179
|
+
3. **Week 3: 통합 및 완성**:
|
|
180
|
+
- 향상된 사용자 경험 (컬러 출력, 에러 메시지)
|
|
181
|
+
- 테스트 및 문서화
|
|
182
|
+
- v0.4.0 릴리즈 준비
|
|
183
|
+
|
|
184
|
+
**제거된 오버엔지니어링**: SQLite DB, MCP 서버 통합, 웹 대시보드, 병렬 처리
|
|
185
|
+
|
|
186
|
+
### 레거시 목표
|
|
187
|
+
|
|
164
188
|
1. **즉시 조치 필요 사항**:
|
|
165
189
|
- Feature Ledger CLI 명령어 구현 (aiwf_create_feature_ledger, aiwf_update_feature_status 등)
|
|
166
190
|
- AI 도구 템플릿 4개 추가 (GitHub Copilot, Cursor, Windsurf, Augment)
|
|
167
191
|
- 프로젝트 템플릿 시스템 구현
|
|
168
192
|
- `.aiwf/ai-tools/` 및 `.aiwf/07_AI_PERSONAS/` 디렉토리 생성
|
|
169
193
|
|
|
170
|
-
2.
|
|
171
|
-
- M02 DoD 항목 완전 충족
|
|
172
|
-
- 테스크 파일과 구현 상태 동기화
|
|
173
|
-
- 누락된 기능 구현 완료
|
|
174
|
-
|
|
175
|
-
3. **중기 목표 (1개월)**:
|
|
176
|
-
- 다음 마일스톤 계획 수립
|
|
177
|
-
- 사용자 피드백 반영
|
|
178
|
-
- 프로덕션 준비
|
|
179
|
-
|
|
180
|
-
4. **장기 목표 (분기)**:
|
|
194
|
+
2. **장기 목표**:
|
|
181
195
|
- 새로운 언어 지원 추가
|
|
182
|
-
- AI 도구 통합 확대
|
|
183
196
|
- 커뮤니티 생태계 구축
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# M03: AIWF 단순화 및 신뢰성 강화
|
|
2
|
+
|
|
3
|
+
**생성일**: 2025-07-16 11:45:29
|
|
4
|
+
**수정일**: 2025-07-16 17:20:00
|
|
5
|
+
**상태**: 계획 중
|
|
6
|
+
**우선순위**: 높음
|
|
7
|
+
**예상 완료**: 2025-08-06 (3주)
|
|
8
|
+
|
|
9
|
+
## 마일스톤 개요
|
|
10
|
+
|
|
11
|
+
AIWF 프레임워크의 핵심 문제인 태스크 상태 불일치를 해결하고, 복잡한 CLI 인터페이스를 단순화하여 신뢰할 수 있는 프로젝트 관리 도구로 발전시키는 마일스톤입니다.
|
|
12
|
+
|
|
13
|
+
## 핵심 목표
|
|
14
|
+
|
|
15
|
+
### 태스크 무결성 보장
|
|
16
|
+
- [ ] JSON 기반 태스크 인덱스 구현
|
|
17
|
+
- [ ] 파일-인덱스 간 무결성 검사 도구
|
|
18
|
+
- [ ] 안전한 상태 변경 시스템
|
|
19
|
+
|
|
20
|
+
### 사용성 개선
|
|
21
|
+
- [ ] 간단한 CLI 실행 파일 (`aiwf` 명령어)
|
|
22
|
+
- [ ] 직관적인 상태 표시 및 에러 메시지
|
|
23
|
+
- [ ] 자동완성 및 도움말 시스템
|
|
24
|
+
|
|
25
|
+
### 기본 AI 도우미
|
|
26
|
+
- [ ] 프로젝트 내 검색 (`aiwf research`)
|
|
27
|
+
- [ ] 간단한 계획 도움 (`aiwf plan`)
|
|
28
|
+
- [ ] 페르소나 기반 응답
|
|
29
|
+
|
|
30
|
+
## 제거된 오버엔지니어링 항목
|
|
31
|
+
|
|
32
|
+
- ~~SQLite 데이터베이스~~ → JSON 인덱스
|
|
33
|
+
- ~~MCP 서버 통합~~ → 제거
|
|
34
|
+
- ~~고급 웹 대시보드~~ → 터미널 출력
|
|
35
|
+
- ~~병렬 처리 시스템~~ → 제거
|
|
36
|
+
- ~~지능형 자동화~~ → 제거
|
|
37
|
+
|
|
38
|
+
## 예상 결과물
|
|
39
|
+
|
|
40
|
+
1. **AIWF v0.4.0**: 신뢰할 수 있는 단순한 태스크 관리 시스템
|
|
41
|
+
2. **통합 CLI**: 직관적인 명령어 인터페이스
|
|
42
|
+
3. **무결성 보장**: 태스크 상태 불일치 0% 달성
|
|
43
|
+
4. **모듈화**: 큰 파일 분리로 유지보수성 향상
|
|
44
|
+
|
|
45
|
+
## 성공 지표
|
|
46
|
+
|
|
47
|
+
- 태스크 상태 불일치: 0% 달성
|
|
48
|
+
- CLI 명령어 타이핑: 50% 감소
|
|
49
|
+
- 무결성 검사 시간: < 1초
|
|
50
|
+
- 새 사용자 학습 시간: 10분 이내
|
|
51
|
+
|
|
52
|
+
## 관련 문서
|
|
53
|
+
|
|
54
|
+
- [단순화 구현 계획](SPECS_AIWF_Simplified_Plan.md)
|
|
55
|
+
- [M02 Context Engineering 완료 상태](../M02_Context_Engineering_Enhancement/M02_milestone_meta.md)
|
package/.aiwf/02_REQUIREMENTS/M03_Simone_Integration_Enhancement/SPECS_AIWF_Simplified_Plan.md
ADDED
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
# AIWF 단순화 계획: 신뢰할 수 있는 단순함
|
|
2
|
+
|
|
3
|
+
**생성일**: 2025-07-16 17:20:00
|
|
4
|
+
**버전**: v0.3.1 → v0.4.0
|
|
5
|
+
**기간**: 3주 계획
|
|
6
|
+
**기반**: steig/claude-simone 분석 + 오버엔지니어링 제거
|
|
7
|
+
|
|
8
|
+
## 📋 프로젝트 개요
|
|
9
|
+
|
|
10
|
+
### 현재 상태
|
|
11
|
+
- **AIWF v0.3.1**: 마크다운 기반 프로젝트 관리 프레임워크
|
|
12
|
+
- **완료된 기능**: Feature Ledger, AI 페르소나, Context 압축, AI 도구 통합
|
|
13
|
+
- **핵심 문제**: LLM 실수로 인한 태스크 상태 불일치, 복잡한 CLI 인터페이스
|
|
14
|
+
|
|
15
|
+
### 목표 상태
|
|
16
|
+
- **AIWF v0.4.0**: 신뢰할 수 있는 단순한 태스크 관리 시스템
|
|
17
|
+
- **핵심 가치**: 단순함, 신뢰성, 사용 편의성
|
|
18
|
+
- **경쟁력**: 파일 기반 + 무결성 보장
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 🎯 핵심 문제 해결
|
|
23
|
+
|
|
24
|
+
### 1. 태스크 상태 불일치 문제
|
|
25
|
+
**현재 문제**:
|
|
26
|
+
```
|
|
27
|
+
- 진행중/완료/대기 태스크 수 불일치
|
|
28
|
+
- LLM이 파일 업데이트 시 실수
|
|
29
|
+
- 수동으로 매번 확인 필요
|
|
30
|
+
- 일관성 없는 상태 관리
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**해결 방안**:
|
|
34
|
+
- JSON 기반 태스크 인덱스 (`task-index.json`)
|
|
35
|
+
- 무결성 검사 도구 (`aiwf check`)
|
|
36
|
+
- 안전한 상태 변경 (`aiwf task done TX001`)
|
|
37
|
+
|
|
38
|
+
### 2. 복잡한 CLI 인터페이스
|
|
39
|
+
**현재 문제**:
|
|
40
|
+
```bash
|
|
41
|
+
# 너무 복잡한 경로
|
|
42
|
+
node claude-code/aiwf/ko/commands/ai-persona.js activate backend
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**해결 방안**:
|
|
46
|
+
```bash
|
|
47
|
+
# 간단한 명령어
|
|
48
|
+
aiwf persona activate backend
|
|
49
|
+
aiwf status
|
|
50
|
+
aiwf task done TX001
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 🚀 3주 개발 계획
|
|
56
|
+
|
|
57
|
+
### Week 1: 프로젝트 정리 및 기초 구축
|
|
58
|
+
#### Day 1-2: 프로젝트 구조 정리
|
|
59
|
+
- [x] 백업 파일 및 중복 파일 제거
|
|
60
|
+
- [x] 언어별 중복 구조 분석
|
|
61
|
+
- [ ] 큰 파일 모듈화 (index.js 1,950줄 → 모듈별 분리)
|
|
62
|
+
|
|
63
|
+
#### Day 3-4: 태스크 인덱스 시스템 설계
|
|
64
|
+
- [ ] JSON 기반 태스크 인덱스 구조 설계
|
|
65
|
+
- [ ] 파일 스캔 및 상태 추출 로직 구현
|
|
66
|
+
- [ ] 무결성 검사 알고리즘 구현
|
|
67
|
+
|
|
68
|
+
#### Day 5-7: CLI 실행 파일 기본 구현
|
|
69
|
+
- [ ] `bin/aiwf` 실행 파일 생성
|
|
70
|
+
- [ ] 기본 명령어 매핑 (`status`, `help`, `version`)
|
|
71
|
+
- [ ] 프로젝트 루트 자동 탐지
|
|
72
|
+
|
|
73
|
+
### Week 2: 핵심 기능 구현
|
|
74
|
+
#### Day 8-10: 태스크 무결성 시스템
|
|
75
|
+
- [ ] 태스크 상태 추출 및 인덱싱
|
|
76
|
+
- [ ] 불일치 감지 및 리포팅
|
|
77
|
+
- [ ] 자동 수정 제안 시스템
|
|
78
|
+
|
|
79
|
+
#### Day 11-12: 안전한 상태 변경
|
|
80
|
+
- [ ] `aiwf task done/start/block` 명령어
|
|
81
|
+
- [ ] 원자적 파일 업데이트
|
|
82
|
+
- [ ] 롤백 메커니즘
|
|
83
|
+
|
|
84
|
+
#### Day 13-14: 기본 AI 도우미
|
|
85
|
+
- [ ] `aiwf research` - 프로젝트 내 검색
|
|
86
|
+
- [ ] `aiwf plan` - 간단한 계획 도움
|
|
87
|
+
- [ ] 페르소나 기반 응답
|
|
88
|
+
|
|
89
|
+
### Week 3: 통합 및 완성
|
|
90
|
+
#### Day 15-17: 향상된 사용자 경험
|
|
91
|
+
- [ ] 컬러풀한 출력 및 진행 표시
|
|
92
|
+
- [ ] 에러 메시지 개선
|
|
93
|
+
- [ ] 자동완성 지원
|
|
94
|
+
|
|
95
|
+
#### Day 18-19: 테스트 및 문서화
|
|
96
|
+
- [ ] 통합 테스트 작성
|
|
97
|
+
- [ ] 사용자 가이드 업데이트
|
|
98
|
+
- [ ] 성능 벤치마크
|
|
99
|
+
|
|
100
|
+
#### Day 20-21: 릴리즈 준비
|
|
101
|
+
- [ ] 버전 0.4.0 패키징
|
|
102
|
+
- [ ] 호환성 테스트
|
|
103
|
+
- [ ] 릴리즈 노트 작성
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 📊 기술 명세
|
|
108
|
+
|
|
109
|
+
### 태스크 인덱스 구조
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"lastUpdated": "2025-07-16T17:20:00Z",
|
|
113
|
+
"summary": {
|
|
114
|
+
"total": 45,
|
|
115
|
+
"pending": 12,
|
|
116
|
+
"in_progress": 3,
|
|
117
|
+
"completed": 30
|
|
118
|
+
},
|
|
119
|
+
"tasks": {
|
|
120
|
+
"TX001": {
|
|
121
|
+
"file": "04_GENERAL_TASKS/TX001_api_optimization.md",
|
|
122
|
+
"title": "API 최적화",
|
|
123
|
+
"status": "completed",
|
|
124
|
+
"priority": "high",
|
|
125
|
+
"updated": "2025-07-15T10:30:00Z"
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### CLI 명령어 구조
|
|
132
|
+
```bash
|
|
133
|
+
# 핵심 명령어
|
|
134
|
+
aiwf status # 프로젝트 상태 표시
|
|
135
|
+
aiwf check # 무결성 검사
|
|
136
|
+
aiwf fix # 자동 수정
|
|
137
|
+
aiwf task done TX001 # 태스크 완료
|
|
138
|
+
aiwf task start TX002 # 태스크 시작
|
|
139
|
+
aiwf research "API 최적화" # 프로젝트 내 검색
|
|
140
|
+
aiwf plan "인증 시스템" # 계획 도움
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### 파일 구조 (모듈화)
|
|
144
|
+
```
|
|
145
|
+
lib/
|
|
146
|
+
├── installer.js # 설치 관련 로직
|
|
147
|
+
├── language-detector.js # 언어 감지
|
|
148
|
+
├── template-manager.js # 템플릿 관리
|
|
149
|
+
├── task-index.js # 태스크 인덱싱
|
|
150
|
+
├── integrity-checker.js # 무결성 검사
|
|
151
|
+
└── ai-helper.js # AI 도우미
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## ❌ 제거된 오버엔지니어링 항목들
|
|
157
|
+
|
|
158
|
+
### 제거된 복잡한 기능들
|
|
159
|
+
- ~~SQLite 데이터베이스~~ → JSON 인덱스
|
|
160
|
+
- ~~MCP 서버 통합~~ → 제거
|
|
161
|
+
- ~~고급 웹 대시보드~~ → 터미널 출력
|
|
162
|
+
- ~~병렬 처리 시스템~~ → 제거
|
|
163
|
+
- ~~지능형 자동화~~ → 제거
|
|
164
|
+
- ~~다층 캐싱 시스템~~ → 간단한 메모리 캐시
|
|
165
|
+
|
|
166
|
+
### 제거 이유
|
|
167
|
+
1. **복잡성 증가**: 유지보수 비용 증가
|
|
168
|
+
2. **사용 빈도 낮음**: 실제 사용하지 않을 기능들
|
|
169
|
+
3. **핵심 문제 해결과 거리멀음**: 태스크 상태 불일치 해결이 우선
|
|
170
|
+
4. **단순함 추구**: 신뢰할 수 있는 단순함이 목표
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## 🎯 성공 지표
|
|
175
|
+
|
|
176
|
+
### 기능성 지표
|
|
177
|
+
- [ ] 태스크 상태 불일치 0% 달성
|
|
178
|
+
- [ ] CLI 명령어 타이핑 50% 감소
|
|
179
|
+
- [ ] 무결성 검사 시간 < 1초
|
|
180
|
+
|
|
181
|
+
### 사용성 지표
|
|
182
|
+
- [ ] 새 사용자 10분 내 기본 사용 가능
|
|
183
|
+
- [ ] 에러 메시지 이해도 90% 이상
|
|
184
|
+
- [ ] 문서 없이도 직관적 사용 가능
|
|
185
|
+
|
|
186
|
+
### 신뢰성 지표
|
|
187
|
+
- [ ] 파일 손상 없는 상태 변경
|
|
188
|
+
- [ ] 롤백 성공률 100%
|
|
189
|
+
- [ ] 동시 수정 충돌 방지
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## 🔧 다음 액션 아이템
|
|
194
|
+
|
|
195
|
+
### 이번 주 (Week 1)
|
|
196
|
+
1. **index.js 모듈화**
|
|
197
|
+
```bash
|
|
198
|
+
mkdir -p lib
|
|
199
|
+
# 1,950줄 파일을 기능별로 분리
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
2. **태스크 인덱스 프로토타입**
|
|
203
|
+
```bash
|
|
204
|
+
# .aiwf/state/task-index.json 생성
|
|
205
|
+
# 기본 스캔 로직 구현
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
3. **CLI 실행 파일 기본 구조**
|
|
209
|
+
```bash
|
|
210
|
+
mkdir -p bin
|
|
211
|
+
touch bin/aiwf
|
|
212
|
+
chmod +x bin/aiwf
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### 핵심 원칙
|
|
216
|
+
- **파일이 진실의 원천**: 인덱스는 캐시일 뿐
|
|
217
|
+
- **언제든 재생성 가능**: 데이터 손실 방지
|
|
218
|
+
- **수동 편집 항상 가능**: 복잡한 GUI 없이
|
|
219
|
+
- **Git으로 모든 변경 추적**: 투명성 보장
|
|
220
|
+
|
|
221
|
+
이 계획은 **신뢰할 수 있는 단순함**을 추구하며, 실제 사용자가 겪는 핵심 문제를 해결하는 데 집중합니다.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"sessions": [],
|
|
3
|
+
"personaPerformance": {},
|
|
4
|
+
"taskOutcomes": [],
|
|
5
|
+
"aggregated": {
|
|
6
|
+
"eventCounts": {
|
|
7
|
+
"persona_switch": 1
|
|
8
|
+
},
|
|
9
|
+
"personaSwitches": [
|
|
10
|
+
{
|
|
11
|
+
"from": "developer",
|
|
12
|
+
"to": "architect",
|
|
13
|
+
"trigger": "auto",
|
|
14
|
+
"timestamp": 1752885541651
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -4,27 +4,27 @@
|
|
|
4
4
|
{
|
|
5
5
|
"name": "Persona Switching Time",
|
|
6
6
|
"status": "passed",
|
|
7
|
-
"executionTime": 0.
|
|
7
|
+
"executionTime": 0.303858287,
|
|
8
8
|
"criteria": "< 2 seconds"
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
11
|
"name": "Pre-commit Hook Installation",
|
|
12
12
|
"status": "passed",
|
|
13
|
-
"executionTime": 0.
|
|
13
|
+
"executionTime": 0.007028295000000071,
|
|
14
14
|
"criteria": "Hook installed or installable"
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
17
|
"name": "Multi-language Support",
|
|
18
18
|
"status": "passed",
|
|
19
|
-
"executionTime": 0.
|
|
19
|
+
"executionTime": 0.0037783789999994042,
|
|
20
20
|
"criteria": "Korean/English commands"
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
"name": "Performance Baseline",
|
|
24
24
|
"status": "passed",
|
|
25
|
-
"executionTime": 0.
|
|
25
|
+
"executionTime": 0.0728547009999993,
|
|
26
26
|
"criteria": "< 5 seconds total",
|
|
27
|
-
"actualValue": "0.
|
|
27
|
+
"actualValue": "0.07s"
|
|
28
28
|
}
|
|
29
29
|
],
|
|
30
30
|
"summary": {
|