aiwf 0.3.3 → 0.3.4
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/config/language.json +1 -1
- package/.aiwf/sessions/session_1752877859489_1t7n2fhdb.json +7 -0
- package/.aiwf/sessions/session_1752877859515_cwdv211ry.json +7 -0
- package/.aiwf/sessions/session_1752877860664_huziadmbo.json +7 -0
- package/.aiwf/sessions/session_1752877860666_kyr5u1np6.json +7 -0
- package/.aiwf/sessions/session_1752877861848_9yinepw3t.json +7 -0
- package/.aiwf/sessions/session_1752877861874_y32sputuc.json +7 -0
- package/.aiwf/sessions/session_1752877862685_ivxbl5rhz.json +7 -0
- package/.aiwf/sessions/session_1752877862820_wnq4glvxi.json +7 -0
- package/.aiwf/sessions/session_1752877864632_3ebnpaelb.json +7 -0
- package/.aiwf/sessions/session_1752877864879_b9zgjcb7d.json +7 -0
- package/.aiwf/sessions/session_1752877865533_x14m1vodi.json +7 -0
- package/.aiwf/sessions/session_1752877865562_gkoh19n7d.json +7 -0
- package/.aiwf/sessions/session_1752877866333_wp8qpdcoh.json +7 -0
- package/.aiwf/sessions/session_1752877866509_dawntfpab.json +7 -0
- package/.aiwf/sessions/session_1752877866890_plc5vfucl.json +7 -0
- package/.aiwf/sessions/session_1752877866895_ga8hmq3oi.json +7 -0
- package/.aiwf/sessions/session_1752877867761_ayjp4v5f5.json +7 -0
- package/.aiwf/sessions/session_1752877867892_lfz6jy252.json +7 -0
- package/.aiwf/sessions/session_1752877868139_7bqd9ubli.json +7 -0
- package/.aiwf/sessions/session_1752877868162_zq3ofjbsh.json +7 -0
- package/.aiwf/sessions/session_1752877869054_7rlgm9jt6.json +7 -0
- package/.aiwf/sessions/session_1752877869477_ax3nhbxzr.json +7 -0
- package/.aiwf/sessions/session_1752877870095_6hgp4vl1e.json +7 -0
- package/.aiwf/sessions/session_1752877870381_qfcrdg4li.json +7 -0
- package/.aiwf/sessions/session_1752877871895_pgd5vllhz.json +7 -0
- package/.aiwf/sessions/session_1752877872199_jbhv2g2da.json +7 -0
- package/.aiwf/sessions/session_1752877872680_x04wpffu6.json +7 -0
- package/.aiwf/sessions/session_1752877872895_3y4vbeauo.json +7 -0
- package/.aiwf/sessions/session_1752877873178_3maolzc6b.json +7 -0
- package/.aiwf/sessions/session_1752877873180_ytm83j07f.json +7 -0
- package/.aiwf/sessions/session_1752877874217_dp56c9t42.json +7 -0
- package/.aiwf/sessions/session_1752877874415_epwp1g1og.json +7 -0
- package/.aiwf/sessions/session_1752877874454_heicyuryb.json +7 -0
- package/.aiwf/sessions/session_1752877874869_1c2illeu5.json +7 -0
- package/.aiwf/sessions/session_1752877874879_k1vo4vxyx.json +7 -0
- package/.aiwf/sessions/session_1752877874913_bwgyiz9bp.json +7 -0
- package/.aiwf/sessions/session_1752877876218_44807kztz.json +7 -0
- package/.aiwf/sessions/session_1752877876515_qkhjv5kpw.json +7 -0
- package/.aiwf/sessions/session_1752877876543_p605aud1m.json +7 -0
- package/.aiwf/sessions/session_1752877876819_l65w7ifck.json +7 -0
- package/.aiwf/sessions/session_1752877876867_xrhzss4we.json +7 -0
- package/.aiwf/sessions/session_1752877876872_u7aso54qb.json +7 -0
- package/.aiwf/sessions/session_1752877877705_telnfg4o6.json +7 -0
- package/.aiwf/sessions/session_1752877878285_6s45im2ib.json +7 -0
- package/.aiwf/sessions/session_1752877878506_v0dvguqhz.json +7 -0
- package/.aiwf/sessions/session_1752877878581_3ri3yc66a.json +7 -0
- package/.aiwf/sessions/session_1752877878756_a82x9s2pd.json +7 -0
- package/.aiwf/sessions/session_1752877878886_20pjsfour.json +7 -0
- package/.aiwf/sessions/session_1752877880266_fm1ydjw0g.json +7 -0
- package/.aiwf/sessions/session_1752877881149_xbat4z03d.json +7 -0
- package/.aiwf/sessions/session_1752877881551_qy5sic9qs.json +7 -0
- package/.aiwf/sessions/session_1752877881554_24ugd96wu.json +7 -0
- package/.aiwf/sessions/session_1752877881797_e9mm25uh0.json +7 -0
- package/.aiwf/sessions/session_1752877881822_bxvjj8c9g.json +7 -0
- package/.aiwf/sessions/session_1752877881890_jv7l6jve3.json +7 -0
- package/.aiwf/sessions/session_1752877881991_f0qugdtcq.json +7 -0
- package/.aiwf/sessions/session_1752877883387_0bvw9rvnx.json +7 -0
- package/.aiwf/sessions/session_1752877883820_q6g2md2up.json +7 -0
- package/.aiwf/sessions/session_1752877884393_sqr7trvjl.json +7 -0
- package/.aiwf/sessions/session_1752877884500_whtypmzlf.json +7 -0
- package/.aiwf/sessions/session_1752877884645_y9mvvxli1.json +7 -0
- package/.aiwf/sessions/session_1752877884733_hk46eenel.json +7 -0
- package/.aiwf/sessions/session_1752877884738_c62j6214r.json +7 -0
- package/.aiwf/sessions/session_1752877884771_temhxehoz.json +7 -0
- package/.aiwf/sessions/session_1752877885643_6v5fcktc7.json +7 -0
- package/.aiwf/sessions/session_1752877886426_ee8di2fqh.json +7 -0
- package/.aiwf/sessions/session_1752877886549_3xj6tdoew.json +7 -0
- package/.aiwf/sessions/session_1752877886604_aj80yyfco.json +7 -0
- package/.aiwf/sessions/session_1752877886702_2b8841vyg.json +7 -0
- package/.aiwf/sessions/session_1752877886712_ntqc8b8bz.json +7 -0
- package/.aiwf/sessions/session_1752877886968_946m8tbw6.json +7 -0
- package/.aiwf/sessions/session_1752877887008_wg6zfg8dn.json +7 -0
- package/.aiwf/sessions/session_1752877888479_ciiu2qiqs.json +7 -0
- package/.aiwf/sessions/session_1752877889330_ravg8l66k.json +7 -0
- package/.aiwf/sessions/session_1752877889542_7zepkhjkc.json +7 -0
- package/.aiwf/sessions/session_1752877889638_ev4htqiu0.json +7 -0
- package/.aiwf/sessions/session_1752877889956_szphy2qma.json +7 -0
- package/.aiwf/sessions/session_1752877890220_o6aaa57tt.json +7 -0
- package/.aiwf/sessions/session_1752877890527_v2loy5vu1.json +7 -0
- package/.aiwf/sessions/session_1752877890572_cwq8fiuma.json +7 -0
- package/.aiwf/sessions/session_1752877892200_sgcwq1alt.json +7 -0
- package/.aiwf/sessions/session_1752877892268_v8kexpbc5.json +7 -0
- package/.aiwf/sessions/session_1752877892384_1gbbgrp4y.json +7 -0
- package/.aiwf/sessions/session_1752877893568_9p2n5p31a.json +7 -0
- package/.aiwf/sessions/session_1752877893727_un34a5tvp.json +7 -0
- package/.aiwf/sessions/session_1752877893778_01j79sw9i.json +7 -0
- package/.aiwf/sessions/session_1752877894053_jrhba6wko.json +7 -0
- package/.aiwf/sessions/session_1752877894082_x3bghawox.json +7 -0
- package/.aiwf/sessions/session_1752877894500_iytiav2ku.json +7 -0
- package/.aiwf/sessions/session_1752877894667_ucn0gc2ge.json +7 -0
- package/.aiwf/test-results-s02.json +4 -4
- package/.claude/commands/aiwf/aiwf_changelog.md +82 -0
- package/.claude/commands/aiwf/aiwf_code_review.md +88 -0
- package/.claude/commands/aiwf/aiwf_commit.md +160 -0
- package/.claude/commands/aiwf/aiwf_compress_aggressive_persona.md +53 -0
- package/.claude/commands/aiwf/aiwf_compress_context.md +116 -0
- package/.claude/commands/aiwf/aiwf_compress_minimal_persona.md +48 -0
- package/.claude/commands/aiwf/aiwf_compress_stats.md +79 -0
- package/.claude/commands/aiwf/aiwf_compress_with_persona.md +51 -0
- package/.claude/commands/aiwf/aiwf_create_feature_ledger.md +54 -0
- package/.claude/commands/aiwf/aiwf_create_general_task.md +147 -0
- package/.claude/commands/aiwf/aiwf_create_milestone_plan.md +194 -0
- package/.claude/commands/aiwf/aiwf_create_prd.md +280 -0
- package/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +189 -0
- package/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +121 -0
- package/.claude/commands/aiwf/aiwf_default_mode.md +44 -0
- package/.claude/commands/aiwf/aiwf_discuss_review.md +29 -0
- package/.claude/commands/aiwf/aiwf_do_task.md +109 -0
- package/.claude/commands/aiwf/aiwf_docs.md +225 -0
- package/.claude/commands/aiwf/aiwf_evaluate.md +92 -0
- package/.claude/commands/aiwf/aiwf_get_feature_details.md +78 -0
- package/.claude/commands/aiwf/aiwf_infinite.md +202 -0
- package/.claude/commands/aiwf/aiwf_initialize.md +134 -0
- package/.claude/commands/aiwf/aiwf_issue_create.md +65 -0
- package/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +57 -0
- package/.claude/commands/aiwf/aiwf_list_features.md +54 -0
- package/.claude/commands/aiwf/aiwf_mermaid.md +272 -0
- package/.claude/commands/aiwf/aiwf_persona_architect.md +48 -0
- package/.claude/commands/aiwf/aiwf_persona_backend.md +37 -0
- package/.claude/commands/aiwf/aiwf_persona_data_analyst.md +37 -0
- package/.claude/commands/aiwf/aiwf_persona_frontend.md +37 -0
- package/.claude/commands/aiwf/aiwf_persona_security.md +48 -0
- package/.claude/commands/aiwf/aiwf_persona_status.md +50 -0
- package/.claude/commands/aiwf/aiwf_pr_create.md +76 -0
- package/.claude/commands/aiwf/aiwf_prime.md +9 -0
- package/.claude/commands/aiwf/aiwf_project_review.md +261 -0
- package/.claude/commands/aiwf/aiwf_switch_language.md +160 -0
- package/.claude/commands/aiwf/aiwf_test.md +124 -0
- package/.claude/commands/aiwf/aiwf_testing_review.md +198 -0
- package/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +210 -0
- package/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +460 -0
- package/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +165 -0
- package/.claude/commands/aiwf/aiwf_ultrathink_general.md +305 -0
- package/.claude/commands/aiwf/aiwf_update_docs_kr.md +25 -0
- package/.claude/commands/aiwf/aiwf_update_feature_status.md +53 -0
- package/.claude/commands/aiwf/aiwf_yolo.md +300 -0
- package/.eslintrc.json +26 -0
- package/.prettierrc +10 -0
- package/CLAUDE.md +154 -54
- package/README.ko.md +25 -0
- package/README.md +25 -0
- package/TEST_RECOVERY_PLAN.md +68 -0
- package/docs/CLEANUP_RECOMMENDATIONS.md +86 -0
- package/docs/CLI_USAGE_GUIDE.md +479 -0
- package/package.json +9 -9
- package/scripts/update-feature-status.js +70 -0
- package/{lib → src/cli}/cache-cli.js +4 -4
- package/src/cli/index.js +165 -0
- package/{language-cli.js → src/cli/language-cli.js} +11 -4
- package/src/commands/cache-templates.js +209 -0
- package/src/commands/create-offline.js +86 -0
- package/src/commands/create-project.js +151 -0
- package/src/lib/backup-manager.js +270 -0
- package/src/lib/file-downloader.js +208 -0
- package/src/lib/installer.js +676 -0
- package/src/lib/rollback-manager.js +418 -0
- package/src/lib/validator.js +561 -0
- package/src/utils/git-integration.js +173 -0
- package/{language-utils.js → src/utils/language-utils.js} +2 -1
- package/src/utils/messages.js +136 -0
- package/src/utils/paths.js +130 -0
- package/tests/application.test.js +2 -2
- package/tests/installer.test.js +2 -2
- package/tests/integration/ai-persona-system.test.js +4 -4
- package/tests/integration/test-persona-system/docs/README.md +1 -0
- package/tests/integration/test-persona-system/package.json +1 -0
- package/tests/integration/test-persona-system/src/auth.js +1 -0
- package/tests/integration/test-persona-system/src/index.js +1 -0
- package/tests/integration/test-persona-system/test/test.js +1 -0
- package/tests/language-utils.test.js +1 -1
- package/tests/temp_invalid_json/invalid.json +1 -0
- package/tests/unit/ai-persona-manager.test.js +7 -7
- package/.aiwf/05_DOCUMENTATION/performance-report.md +0 -33
- package/.aiwf/test-cache/86c7f9e80251abb8bedd58953ab0d1779e46b4f43ea33b63bffdb778106373b0.json +0 -6
- package/.aiwf/test-cache/9e252a90b80fce0585d7ed0646e7a9b4343e109f661f42a3ae678ba1ec5e22c7.json +0 -7
- package/.aiwf/token-data/alerts.json +0 -293
- package/.aiwf/token-data/monitor-config.json +0 -12
- package/CHANGELOG_M02.md +0 -52
- package/claude-code/aiwf/ko/templates/web-app/template/package-lock.json +0 -10022
- package/claude-code/aiwf/ko/token-data/alerts.json +0 -293
- package/claude-code/aiwf/ko/token-data/monitor-config.json +0 -12
- package/docs/m02-dod-checklist.md +0 -125
- package/docs/m02-gap-analysis.md +0 -214
- package/docs/m02-milestone-completion-report.md +0 -186
- package/docs/m02-milestone-executive-summary.md +0 -68
- package/index.js +0 -1951
- package/lib/cache-integration.js +0 -401
- package/lib/file-batch-processor.js +0 -401
- package/lib/performance-benchmark.js +0 -621
- package/lib/template-manager.js +0 -310
- package/scripts/validate-commands.cjs +0 -338
- /package/{lib → src/lib}/ai-persona-manager.js +0 -0
- /package/{lib → src/lib}/cache-system.js +0 -0
- /package/{lib → src/lib}/context-engine.js +0 -0
- /package/{lib → src/lib}/memory-profiler.js +0 -0
- /package/{lib → src/lib}/metrics-collector.js +0 -0
- /package/{lib → src/lib}/offline-detector.js +0 -0
- /package/{lib → src/lib}/task-analyzer.js +0 -0
- /package/{lib → src/lib}/template-cache-system.js +0 -0
- /package/{lib → src/lib}/template-downloader.js +0 -0
- /package/{lib → src/lib}/template-version-manager.js +0 -0
- /package/{lib → src/lib}/token-optimizer.js +0 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# 인수 기반 AIWF 태스크 처리
|
|
2
|
+
|
|
3
|
+
**중요:** 위에서 아래로 순서대로 진행하세요 - 단계를 건너뛰지 마세요!
|
|
4
|
+
|
|
5
|
+
**정확히 다음 8개 항목으로 할 일 목록을 생성하세요**
|
|
6
|
+
|
|
7
|
+
1. 인수에서 범위 분석
|
|
8
|
+
2. 태스크 파일 식별
|
|
9
|
+
3. 태스크 분석
|
|
10
|
+
4. 상태를 진행 중으로 설정
|
|
11
|
+
5. 태스크 작업 실행
|
|
12
|
+
6. 플레이스홀더
|
|
13
|
+
7. 코드 리뷰 실행
|
|
14
|
+
8. 태스크 상태 완료 처리
|
|
15
|
+
|
|
16
|
+
## 1 · 인수에서 범위 분석
|
|
17
|
+
|
|
18
|
+
<$ARGUMENTS> ⇒ 태스크 ID, 스프린트 ID, 또는 빈 값 (현재 스프린트에서 다음 열린 태스크 선택).
|
|
19
|
+
|
|
20
|
+
## 2 · 태스크 파일 식별
|
|
21
|
+
|
|
22
|
+
.aiwf/03_SPRINTS/와 .aiwf/04_GENERAL_TASKS/에서 검색합니다.
|
|
23
|
+
일치하는 열린 태스크가 없으면 일시정지하고 사용자에게 진행 방법을 문의합니다.
|
|
24
|
+
|
|
25
|
+
## 3 · 태스크 분석
|
|
26
|
+
|
|
27
|
+
태스크 설명을 읽습니다. 불분명한 점이 있으면 계속하기 전에 명확화 질문을 합니다.
|
|
28
|
+
|
|
29
|
+
**중요한 맥락 검증:** 태스크를 실행하기 전에 다음 작업들을 위한 병렬 서브에이전트를 실행합니다:
|
|
30
|
+
|
|
31
|
+
1. **스프린트 맥락:** 태스크가 현재 스프린트 범위에 속하는지 확인
|
|
32
|
+
2. **의존성:** 먼저 완료해야 할 의존 태스크가 있는지 확인
|
|
33
|
+
3. **요구사항:** `.aiwf/02_REQUIREMENTS/`에서 관련 요구사항 문서 읽기
|
|
34
|
+
4. **범위 검증:** 태스크가 현재 스프린트 목표와 일치하는지 확인
|
|
35
|
+
5. **GitHub 이슈 확인:** 태스크 파일에 `github_issue` 필드가 있는지 확인
|
|
36
|
+
|
|
37
|
+
**중요:** 태스크가 미래 스프린트의 기능을 참조하거나 충족되지 않은 의존성이 있으면 일시정지하고 명확화를 요청합니다.
|
|
38
|
+
|
|
39
|
+
**GitHub 이슈 생성 (선택사항):**
|
|
40
|
+
|
|
41
|
+
- 태스크에 GitHub 이슈가 없고 사용자가 이슈 추적을 원하는 경우
|
|
42
|
+
- `/project:aiwf:issue_create {task_id}` 명령어 사용을 제안합니다
|
|
43
|
+
|
|
44
|
+
## 4 · 상태를 진행 중으로 설정
|
|
45
|
+
|
|
46
|
+
- 현재 로컬 타임스탬프 확인 (YYYY-MM-DD HH:MM)
|
|
47
|
+
- 프론트매터의 **status: in_progress**로 업데이트하고 업데이트 시간 설정
|
|
48
|
+
- ./aiwf/00_PROJECT_MANIFEST.md에서 태스크 진행 중, 업데이트 시간, 현재 스프린트 상태로 업데이트
|
|
49
|
+
- **GitHub 이슈 업데이트 (존재하는 경우):**
|
|
50
|
+
```bash
|
|
51
|
+
gh issue comment {issue_number} --body "🚀 태스크 작업이 시작되었습니다."
|
|
52
|
+
gh issue edit {issue_number} --add-label "in-progress"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 5 · 태스크 작업 실행
|
|
56
|
+
|
|
57
|
+
- 설명, 목표, 승인 기준을 따릅니다
|
|
58
|
+
- .aiwf/01_PROJECT_DOCS/와 .aiwf/02_REQUIREMENTS/의 지원 문서를 참조합니다
|
|
59
|
+
- 하위 태스크를 반복 처리:
|
|
60
|
+
1. 다음 미완료 하위 태스크를 선택합니다
|
|
61
|
+
2. 필요에 따라 문서를 참조하여 필요한 변경사항을 구현합니다
|
|
62
|
+
3. 하위 태스크를 완료로 표시합니다
|
|
63
|
+
4. `[YYYY-MM-DD HH:MM]: <메시지>` 형식으로 **## 출력 로그**에 로그 항목을 추가합니다
|
|
64
|
+
5. 모든 하위 태스크가 완료될 때까지 반복합니다
|
|
65
|
+
|
|
66
|
+
## 6 · 플레이스홀더
|
|
67
|
+
|
|
68
|
+
플레이스홀더 - 다음 단계로 진행하세요
|
|
69
|
+
|
|
70
|
+
## 7 · 코드 리뷰 실행
|
|
71
|
+
|
|
72
|
+
코드 리뷰를 위해 다음 단계를 순서대로 수행합니다
|
|
73
|
+
|
|
74
|
+
- @.claude/commands/aiwf/aiwf_code_review.md를 포함하고 태스크 ID를 범위로 사용합니다
|
|
75
|
+
- 파일의 지침에 따라 **병렬 서브에이전트**에서 코드 리뷰를 실행합니다
|
|
76
|
+
- 완료되면 결과에 따라 적절히 조치합니다
|
|
77
|
+
- 결과를 이해하고 분석합니다
|
|
78
|
+
- **실패** 시:
|
|
79
|
+
- 문제를 철저히 이해합니다
|
|
80
|
+
- 리뷰에서 식별된 하위 태스크로 현재 태스크를 확장합니다
|
|
81
|
+
- "5 · 태스크 작업 실행"으로 돌아갑니다
|
|
82
|
+
- **통과** 시:
|
|
83
|
+
- 다음 단계로 진행합니다
|
|
84
|
+
|
|
85
|
+
## 8 · 태스크 상태 완료 처리
|
|
86
|
+
|
|
87
|
+
- 태스크 상태를 **completed**로 설정합니다
|
|
88
|
+
- 파일명에서 완료 인식이 가능하도록 태스크 파일명을 적절히 변경합니다 (TX[TASK_ID]...)
|
|
89
|
+
- .aiwf/00_PROJECT_MANIFEST.md를 업데이트하여 새 상태를 반영합니다
|
|
90
|
+
- **GitHub 이슈 업데이트 (존재하는 경우):**
|
|
91
|
+
```bash
|
|
92
|
+
gh issue comment {issue_number} --body "✅ 태스크가 완료되었습니다."
|
|
93
|
+
gh issue edit {issue_number} --remove-label "in-progress" --add-label "completed"
|
|
94
|
+
```
|
|
95
|
+
- 사용자에게 **결과 보고**
|
|
96
|
+
|
|
97
|
+
✅ **결과**: 성공에 대한 간단한 설명
|
|
98
|
+
|
|
99
|
+
🔎 **범위**: 식별된 태스크 또는 처리되지 않은 이유
|
|
100
|
+
|
|
101
|
+
💬 **요약**: 수행된 작업 또는 차단된 이유에 대한 한 문단 요약
|
|
102
|
+
|
|
103
|
+
⏭️ **다음 단계**: 권장 후속 조치
|
|
104
|
+
|
|
105
|
+
- 사용자를 위한 **제안**:
|
|
106
|
+
|
|
107
|
+
- 🛠️ /project:aiwf:commit `TASK_ID`를 사용하여 변경사항을 git에 커밋
|
|
108
|
+
- 🔀 /project:aiwf:pr_create `TASK_ID`를 사용하여 Pull Request 생성
|
|
109
|
+
- 🧹 /clear를 사용하여 다음 태스크 시작 전 컨텍스트 정리
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
# 문서 업데이트
|
|
2
|
+
|
|
3
|
+
현재 프로젝트 문서를 분석하고 구현 진행 상황과 최근 변경 사항을 반영하도록 업데이트합니다.
|
|
4
|
+
|
|
5
|
+
## 정확히 다음 10개 항목으로 TODO 생성
|
|
6
|
+
|
|
7
|
+
1. 문서 업데이트 범위 분석
|
|
8
|
+
2. 프로젝트 매니페스트 및 마일스톤 검토
|
|
9
|
+
3. 스프린트 문서 상태 평가
|
|
10
|
+
4. 필요시 ARCHITECTURE.md 업데이트
|
|
11
|
+
5. 마일스톤 요구사항 문서 업데이트
|
|
12
|
+
6. 스프린트 문서 업데이트
|
|
13
|
+
7. PROJECT_MANIFEST.md 검토 및 업데이트
|
|
14
|
+
8. README.md 및 프로젝트 문서 업데이트
|
|
15
|
+
9. 추가 문서 폴더 업데이트
|
|
16
|
+
10. 문서 업데이트 요약 생성
|
|
17
|
+
|
|
18
|
+
각 단계별로 다음 지침을 엄격히 따라 진행하세요.
|
|
19
|
+
|
|
20
|
+
## 각 TODO 항목의 상세 내용
|
|
21
|
+
|
|
22
|
+
### 1. 문서 업데이트 범위 분석
|
|
23
|
+
|
|
24
|
+
확인: <$ARGUMENTS>
|
|
25
|
+
|
|
26
|
+
비어있으면 전체 문서 검토를 수행합니다. 그렇지 않으면 <$ARGUMENTS>를 해석하여 특정 초점 영역(마일스톤, 스프린트, 아키텍처 구성 요소 등)을 식별합니다.
|
|
27
|
+
|
|
28
|
+
**중요:** 먼저 `.aiwf/00_PROJECT_MANIFEST.md`를 읽어 다음을 이해하세요:
|
|
29
|
+
- 현재 마일스톤 및 스프린트 상태
|
|
30
|
+
- 완료된 작업 vs 진행 중인 작업 vs 계획된 작업
|
|
31
|
+
- 문서화가 필요한 최근 변경 사항
|
|
32
|
+
|
|
33
|
+
### 2. 프로젝트 매니페스트 및 마일스톤 검토
|
|
34
|
+
|
|
35
|
+
**병렬 에이전트 사용:**
|
|
36
|
+
- `.aiwf/00_PROJECT_MANIFEST.md`를 읽어 현재 상태 확인
|
|
37
|
+
- `.aiwf/02_REQUIREMENTS/`의 모든 마일스톤 요구사항 읽기
|
|
38
|
+
- 마지막 문서 업데이트 이후 변경된 사항 식별
|
|
39
|
+
- 상태 업데이트가 필요한 완료된 마일스톤 확인
|
|
40
|
+
|
|
41
|
+
### 3. 스프린트 문서 상태 평가
|
|
42
|
+
|
|
43
|
+
**병렬 에이전트 사용:**
|
|
44
|
+
- `.aiwf/03_SPRINTS/`로 이동하여 현재 및 완료된 스프린트 찾기
|
|
45
|
+
- 스프린트 메타 파일을 읽어 산출물 이해
|
|
46
|
+
- 각 스프린트 내 작업 완료 상태 확인
|
|
47
|
+
- 상태 업데이트나 완료 표시가 필요한 스프린트 식별
|
|
48
|
+
|
|
49
|
+
### 4. 필요시 ARCHITECTURE.md 업데이트
|
|
50
|
+
|
|
51
|
+
- `.aiwf/01_PROJECT_DOCS/ARCHITECTURE.md` 읽기
|
|
52
|
+
- 구현을 검토하여 아키텍처가 발전했는지 확인
|
|
53
|
+
- 구조가 변경된 경우 다이어그램 업데이트
|
|
54
|
+
- 구현 중 발견된 새 컴포넌트나 모듈 추가
|
|
55
|
+
- 최근 스프린트 동안 내려진 아키텍처 결정 문서화
|
|
56
|
+
|
|
57
|
+
**중요:** 아키텍처가 실제로 변경된 경우에만 업데이트하세요. 사소한 세부사항으로 수정하지 마세요.
|
|
58
|
+
|
|
59
|
+
### 5. 마일스톤 요구사항 문서 업데이트
|
|
60
|
+
|
|
61
|
+
활성 또는 최근 완료된 각 마일스톤에 대해:
|
|
62
|
+
- `.aiwf/02_REQUIREMENTS/M{N}_*/`로 이동
|
|
63
|
+
- `requirements.md`를 다음과 함께 업데이트:
|
|
64
|
+
- ✅ 완료된 요구사항
|
|
65
|
+
- 🚧 진행 중인 항목 (완료율 포함)
|
|
66
|
+
- 📋 아직 시작하지 않은 계획된 항목
|
|
67
|
+
- ❌ 연기되거나 제거된 요구사항 (정당화 포함)
|
|
68
|
+
- 복잡한 기능에 대한 구현 노트 추가
|
|
69
|
+
- 요구사항 변경이나 명확화 문서화
|
|
70
|
+
|
|
71
|
+
### 6. 스프린트 문서 업데이트
|
|
72
|
+
|
|
73
|
+
현재 및 최근 완료된 스프린트에 대해:
|
|
74
|
+
- `.aiwf/03_SPRINTS/S{N}_*/`로 이동
|
|
75
|
+
- 스프린트 메타 파일을 다음과 함께 업데이트:
|
|
76
|
+
- 현재 상태 (PLANNED/IN_PROGRESS/COMPLETED)
|
|
77
|
+
- 완료 백분율
|
|
78
|
+
- 실제 vs 계획된 산출물
|
|
79
|
+
- 개별 작업 파일 업데이트:
|
|
80
|
+
- 완료된 작업을 ✅로 표시
|
|
81
|
+
- 구현 노트 추가
|
|
82
|
+
- 차단 사항이나 도전 과제 문서화
|
|
83
|
+
- 관련 코드 파일에 링크
|
|
84
|
+
|
|
85
|
+
### 7. PROJECT_MANIFEST.md 검토 및 업데이트
|
|
86
|
+
|
|
87
|
+
매니페스트를 다음과 함께 업데이트:
|
|
88
|
+
- **현재 상태**: 마일스톤 및 스프린트 진행 상황 업데이트
|
|
89
|
+
- **스프린트 추적**: 완료된 스프린트 표시, 현재 스프린트 업데이트
|
|
90
|
+
- **산출물**: 각 산출물의 완료 상태 업데이트
|
|
91
|
+
- **최근 성과**: 주목할 만한 완료 사항 추가
|
|
92
|
+
- **알려진 이슈**: 차단 사항이나 기술 부채 문서화
|
|
93
|
+
- **다음 단계**: 완료된 작업을 기반으로 업데이트
|
|
94
|
+
|
|
95
|
+
**형식 예시:**
|
|
96
|
+
```markdown
|
|
97
|
+
## 현재 상태
|
|
98
|
+
- **활성 마일스톤**: M01 - [이름] (75% 완료)
|
|
99
|
+
- **현재 스프린트**: S03 - [초점] (진행 중 - 40% 완료)
|
|
100
|
+
- **마지막 업데이트**: YYYY-MM-DD HH:MM
|
|
101
|
+
|
|
102
|
+
## 스프린트 진행 상황
|
|
103
|
+
|
|
104
|
+
### 현재 스프린트 (S03)
|
|
105
|
+
**상태**: 진행 중 (40% 완료)
|
|
106
|
+
**산출물**:
|
|
107
|
+
- ✅ [완료된 기능] - 완료
|
|
108
|
+
- 🚧 [진행 중인 기능] - 60% 완료
|
|
109
|
+
- 📋 [계획된 기능] - 시작 전
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### 8. README.md 및 프로젝트 문서 업데이트
|
|
113
|
+
|
|
114
|
+
**프로젝트의 메인 README.md 검토 및 업데이트:**
|
|
115
|
+
- 프로젝트 루트에 README.md 존재 여부 확인
|
|
116
|
+
- 범위가 발전한 경우 프로젝트 설명 업데이트
|
|
117
|
+
- 최근 변경 사항을 기반으로 설치/설정 지침 새로고침
|
|
118
|
+
- 새 기능으로 사용 예제 업데이트
|
|
119
|
+
- 배지 추가/업데이트 (빌드 상태, 테스트 커버리지, 버전)
|
|
120
|
+
- 새 의존성이나 요구사항 문서화
|
|
121
|
+
- 프로세스가 변경된 경우 기여 가이드라인 업데이트
|
|
122
|
+
- 엔드포인트가 변경된 경우 API 문서 새로고침
|
|
123
|
+
|
|
124
|
+
**검토할 주요 섹션:**
|
|
125
|
+
- 프로젝트 개요 및 목적
|
|
126
|
+
- 기능 목록 (완료/진행 중/계획됨 표시)
|
|
127
|
+
- 설치 및 설정 지침
|
|
128
|
+
- 사용 예제 및 코드 스니펫
|
|
129
|
+
- 구성 옵션
|
|
130
|
+
- API 참조 (해당하는 경우)
|
|
131
|
+
- 기여 가이드라인
|
|
132
|
+
- 라이선스 정보
|
|
133
|
+
|
|
134
|
+
### 9. 추가 문서 폴더 업데이트
|
|
135
|
+
|
|
136
|
+
**프로젝트 전체의 모든 문서 검색 및 업데이트:**
|
|
137
|
+
|
|
138
|
+
**확인할 일반적인 문서 위치:**
|
|
139
|
+
- `docs/` - 메인 문서 폴더
|
|
140
|
+
- `documentation/` - 대체 문서 폴더
|
|
141
|
+
- `doc/` - 간단한 형식의 문서 폴더
|
|
142
|
+
- `api-docs/` - API 전용 문서
|
|
143
|
+
- 프로젝트 루트의 `*.md` 파일 (CONTRIBUTING.md, CHANGELOG.md 등)
|
|
144
|
+
|
|
145
|
+
**발견된 각 문서 폴더에 대해:**
|
|
146
|
+
- 오래된 정보가 있는 모든 마크다운 파일 검토
|
|
147
|
+
- 구현 세부사항으로 기술 사양 업데이트
|
|
148
|
+
- 새 기능으로 사용자 가이드 새로고침
|
|
149
|
+
- 새 엔드포인트/변경사항으로 API 문서 업데이트
|
|
150
|
+
- 브레이킹 체인지가 도입된 경우 마이그레이션 가이드 추가
|
|
151
|
+
- 알려진 이슈/해결책으로 문제 해결 섹션 업데이트
|
|
152
|
+
|
|
153
|
+
**확인할 특정 파일:**
|
|
154
|
+
- `CHANGELOG.md` - 최근 변경 사항 및 버전 업데이트 추가
|
|
155
|
+
- `CONTRIBUTING.md` - 변경된 경우 개발 워크플로우 업데이트
|
|
156
|
+
- `docs/setup.md` - 설치/구성 단계 새로고침
|
|
157
|
+
- `docs/api.md` - API 엔드포인트 및 예제 업데이트
|
|
158
|
+
- `docs/deployment.md` - 배포 절차 업데이트
|
|
159
|
+
- `docs/testing.md` - 새 테스트 절차 문서화
|
|
160
|
+
|
|
161
|
+
**문서 일관성 검사:**
|
|
162
|
+
- 모든 문서에서 버전 번호가 일관되는지 확인
|
|
163
|
+
- 코드 예제가 현재 구현에서 여전히 작동하는지 확인
|
|
164
|
+
- UI/아키텍처가 변경된 경우 스크린샷/다이어그램 업데이트
|
|
165
|
+
- 모든 링크(내부 및 외부)가 유효한지 확인
|
|
166
|
+
- 전체적으로 용어가 일관되는지 확인
|
|
167
|
+
|
|
168
|
+
### 10. 문서 업데이트 요약 생성
|
|
169
|
+
|
|
170
|
+
모든 문서 업데이트의 요약 보고서 작성:
|
|
171
|
+
|
|
172
|
+
```markdown
|
|
173
|
+
# 문서 업데이트 요약 - [YYYY-MM-DD]
|
|
174
|
+
|
|
175
|
+
## 업데이트된 파일
|
|
176
|
+
|
|
177
|
+
### AIWF 문서
|
|
178
|
+
- `.aiwf/00_PROJECT_MANIFEST.md` - [변경 사항 간략 설명]
|
|
179
|
+
- `.aiwf/01_PROJECT_DOCS/ARCHITECTURE.md` - [업데이트된 경우]
|
|
180
|
+
- `.aiwf/02_REQUIREMENTS/M01_*/requirements.md` - [상태 업데이트]
|
|
181
|
+
- `.aiwf/03_SPRINTS/S0N_*/meta.md` - [스프린트 상태 변경]
|
|
182
|
+
|
|
183
|
+
### 프로젝트 문서
|
|
184
|
+
- `README.md` - [메인 프로젝트 문서 업데이트]
|
|
185
|
+
- `CHANGELOG.md` - [버전 및 변경 이력 업데이트]
|
|
186
|
+
- `CONTRIBUTING.md` - [기여 가이드라인 업데이트]
|
|
187
|
+
- `docs/*.md` - [특정 문서 파일 업데이트]
|
|
188
|
+
- 기타 문서 폴더 - [추가 업데이트 목록]
|
|
189
|
+
|
|
190
|
+
## 주요 변경 사항
|
|
191
|
+
1. [주요 문서 변경 또는 업데이트]
|
|
192
|
+
2. [추가된 새 섹션]
|
|
193
|
+
3. [적용된 상태 업데이트]
|
|
194
|
+
|
|
195
|
+
## 업데이트 후 프로젝트 상태
|
|
196
|
+
- **마일스톤 진행률**: M01 X% (이전 Y%)
|
|
197
|
+
- **스프린트 진행률**: S0N X% (이전 Y%)
|
|
198
|
+
- **문서 커버리지**: [문서 완성도 평가]
|
|
199
|
+
|
|
200
|
+
## 권장 사항
|
|
201
|
+
- [식별된 문서 격차]
|
|
202
|
+
- [제안된 문서 개선 사항]
|
|
203
|
+
- [명확화가 필요한 영역]
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## 가이드라인
|
|
207
|
+
|
|
208
|
+
- 원래 요구사항과 계획 보존 (취소선이나 상태 마커 사용)
|
|
209
|
+
- 일관된 상태 표시자 유지 (✅, 🚧, 📋, ❌)
|
|
210
|
+
- 실제 구현을 기반으로 백분율 업데이트
|
|
211
|
+
- 원래 계획에서 벗어난 사항을 정당화와 함께 문서화
|
|
212
|
+
- 문서를 간결하면서도 포괄적으로 유지
|
|
213
|
+
- 모든 날짜와 타임스탬프가 최신인지 확인
|
|
214
|
+
- 관련 문서 섹션 간 상호 참조
|
|
215
|
+
- 예상 위치뿐만 아니라 프로젝트 전체에서 모든 .md 파일 검색
|
|
216
|
+
- 독립 문서 파일에 대한 루트 디렉토리 확인
|
|
217
|
+
- 문서의 모든 코드 예제가 여전히 작동하는지 확인
|
|
218
|
+
- 새 팀 구성원이 문서에 접근할 수 있는지 확인
|
|
219
|
+
|
|
220
|
+
**중요:** 문서는 현실을 반영해야 합니다. 열망적인 목표가 아닌 실제 구현 상태를 기반으로 업데이트하세요.
|
|
221
|
+
|
|
222
|
+
**핵심:** 문서 위치를 가정하지 마세요. 항상 전체 프로젝트에서 다음을 검색하세요:
|
|
223
|
+
- 모든 디렉토리의 `*.md` 파일
|
|
224
|
+
- 일반적인 이름: README, CHANGELOG, CONTRIBUTING, LICENSE, INSTALL, USAGE
|
|
225
|
+
- 예상치 못한 위치의 문서 (예: src/, lib/ 또는 기타 코드 디렉토리 내부)
|
|
@@ -0,0 +1,92 @@
|
|
|
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
|
+
```
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Feature 상세 정보 조회
|
|
2
|
+
|
|
3
|
+
특정 Feature Ledger의 상세 정보를 확인합니다.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
cd .aiwf && node ../claude-code/aiwf/ko/commands/feature-ledger.js details "$@"
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## 설명
|
|
10
|
+
|
|
11
|
+
Feature ID를 통해 해당 Feature의 모든 정보를 상세하게 조회합니다.
|
|
12
|
+
|
|
13
|
+
### 🎯 출력 형식
|
|
14
|
+
- `--format=full` - 전체 정보 (기본값)
|
|
15
|
+
- `--format=summary` - 요약 정보
|
|
16
|
+
- `--format=technical` - 기술적 세부사항
|
|
17
|
+
- `--format=progress` - 진행 상황 중심
|
|
18
|
+
|
|
19
|
+
### 📝 사용법
|
|
20
|
+
```bash
|
|
21
|
+
# 전체 상세 정보
|
|
22
|
+
/project:aiwf:get_feature_details FL001
|
|
23
|
+
|
|
24
|
+
# 요약 정보만 보기
|
|
25
|
+
/project:aiwf:get_feature_details FL001 --format=summary
|
|
26
|
+
|
|
27
|
+
# 기술적 세부사항 확인
|
|
28
|
+
/project:aiwf:get_feature_details FL001 --format=technical
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 📋 표시 정보
|
|
32
|
+
- Feature 메타데이터
|
|
33
|
+
- 개발 진행 상황
|
|
34
|
+
- 관련 태스크 및 커밋
|
|
35
|
+
- 담당자 및 리뷰어
|
|
36
|
+
- 타임라인 및 마일스톤
|
|
37
|
+
- 기술적 세부사항
|
|
38
|
+
|
|
39
|
+
## 예시 출력 (전체 정보)
|
|
40
|
+
```
|
|
41
|
+
🎯 Feature 상세 정보
|
|
42
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
43
|
+
|
|
44
|
+
📌 기본 정보
|
|
45
|
+
Feature ID: FL001
|
|
46
|
+
제목: User Authentication System
|
|
47
|
+
상태: active
|
|
48
|
+
우선순위: high
|
|
49
|
+
카테고리: feature
|
|
50
|
+
|
|
51
|
+
📊 진행 상황
|
|
52
|
+
진행률: 75%
|
|
53
|
+
시작일: 2025-07-05
|
|
54
|
+
예상 완료일: 2025-07-12
|
|
55
|
+
소요 시간: 5일 경과
|
|
56
|
+
|
|
57
|
+
🎯 마일스톤 & 스프린트
|
|
58
|
+
마일스톤: M02 - Context Engineering Enhancement
|
|
59
|
+
스프린트: S01_M02 - context_foundation
|
|
60
|
+
|
|
61
|
+
👥 담당자
|
|
62
|
+
개발자: @developer1
|
|
63
|
+
리뷰어: @reviewer1, @reviewer2
|
|
64
|
+
|
|
65
|
+
📝 설명
|
|
66
|
+
JWT 기반 사용자 인증 시스템 구현. OAuth2.0 소셜 로그인 지원 포함.
|
|
67
|
+
|
|
68
|
+
🔧 기술 스택
|
|
69
|
+
- Backend: Node.js, Express, JWT
|
|
70
|
+
- Database: PostgreSQL
|
|
71
|
+
- Frontend: React, Redux
|
|
72
|
+
|
|
73
|
+
📈 진행 내역
|
|
74
|
+
[2025-07-05] Feature 생성
|
|
75
|
+
[2025-07-06] 데이터베이스 스키마 설계 완료
|
|
76
|
+
[2025-07-08] JWT 인증 기본 구현 완료
|
|
77
|
+
[2025-07-10] OAuth2.0 구현 진행 중
|
|
78
|
+
```
|