aiwf 0.3.3 → 0.3.5

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.
Files changed (208) hide show
  1. package/.aiwf/config/language.json +1 -1
  2. package/.aiwf/metrics/metrics.json +18 -0
  3. package/.aiwf/personas/current.json +5 -0
  4. package/.aiwf/sessions/session_1752877859489_1t7n2fhdb.json +7 -0
  5. package/.aiwf/sessions/session_1752877859515_cwdv211ry.json +7 -0
  6. package/.aiwf/sessions/session_1752877860664_huziadmbo.json +7 -0
  7. package/.aiwf/sessions/session_1752877860666_kyr5u1np6.json +7 -0
  8. package/.aiwf/sessions/session_1752877861848_9yinepw3t.json +7 -0
  9. package/.aiwf/sessions/session_1752877861874_y32sputuc.json +7 -0
  10. package/.aiwf/sessions/session_1752877862685_ivxbl5rhz.json +7 -0
  11. package/.aiwf/sessions/session_1752877862820_wnq4glvxi.json +7 -0
  12. package/.aiwf/sessions/session_1752877864632_3ebnpaelb.json +7 -0
  13. package/.aiwf/sessions/session_1752877864879_b9zgjcb7d.json +7 -0
  14. package/.aiwf/sessions/session_1752877865533_x14m1vodi.json +7 -0
  15. package/.aiwf/sessions/session_1752877865562_gkoh19n7d.json +7 -0
  16. package/.aiwf/sessions/session_1752877866333_wp8qpdcoh.json +7 -0
  17. package/.aiwf/sessions/session_1752877866509_dawntfpab.json +7 -0
  18. package/.aiwf/sessions/session_1752877866890_plc5vfucl.json +7 -0
  19. package/.aiwf/sessions/session_1752877866895_ga8hmq3oi.json +7 -0
  20. package/.aiwf/sessions/session_1752877867761_ayjp4v5f5.json +7 -0
  21. package/.aiwf/sessions/session_1752877867892_lfz6jy252.json +7 -0
  22. package/.aiwf/sessions/session_1752877868139_7bqd9ubli.json +7 -0
  23. package/.aiwf/sessions/session_1752877868162_zq3ofjbsh.json +7 -0
  24. package/.aiwf/sessions/session_1752877869054_7rlgm9jt6.json +7 -0
  25. package/.aiwf/sessions/session_1752877869477_ax3nhbxzr.json +7 -0
  26. package/.aiwf/sessions/session_1752877870095_6hgp4vl1e.json +7 -0
  27. package/.aiwf/sessions/session_1752877870381_qfcrdg4li.json +7 -0
  28. package/.aiwf/sessions/session_1752877871895_pgd5vllhz.json +7 -0
  29. package/.aiwf/sessions/session_1752877872199_jbhv2g2da.json +7 -0
  30. package/.aiwf/sessions/session_1752877872680_x04wpffu6.json +7 -0
  31. package/.aiwf/sessions/session_1752877872895_3y4vbeauo.json +7 -0
  32. package/.aiwf/sessions/session_1752877873178_3maolzc6b.json +7 -0
  33. package/.aiwf/sessions/session_1752877873180_ytm83j07f.json +7 -0
  34. package/.aiwf/sessions/session_1752877874217_dp56c9t42.json +7 -0
  35. package/.aiwf/sessions/session_1752877874415_epwp1g1og.json +7 -0
  36. package/.aiwf/sessions/session_1752877874454_heicyuryb.json +7 -0
  37. package/.aiwf/sessions/session_1752877874869_1c2illeu5.json +7 -0
  38. package/.aiwf/sessions/session_1752877874879_k1vo4vxyx.json +7 -0
  39. package/.aiwf/sessions/session_1752877874913_bwgyiz9bp.json +7 -0
  40. package/.aiwf/sessions/session_1752877876218_44807kztz.json +7 -0
  41. package/.aiwf/sessions/session_1752877876515_qkhjv5kpw.json +7 -0
  42. package/.aiwf/sessions/session_1752877876543_p605aud1m.json +7 -0
  43. package/.aiwf/sessions/session_1752877876819_l65w7ifck.json +7 -0
  44. package/.aiwf/sessions/session_1752877876867_xrhzss4we.json +7 -0
  45. package/.aiwf/sessions/session_1752877876872_u7aso54qb.json +7 -0
  46. package/.aiwf/sessions/session_1752877877705_telnfg4o6.json +7 -0
  47. package/.aiwf/sessions/session_1752877878285_6s45im2ib.json +7 -0
  48. package/.aiwf/sessions/session_1752877878506_v0dvguqhz.json +7 -0
  49. package/.aiwf/sessions/session_1752877878581_3ri3yc66a.json +7 -0
  50. package/.aiwf/sessions/session_1752877878756_a82x9s2pd.json +7 -0
  51. package/.aiwf/sessions/session_1752877878886_20pjsfour.json +7 -0
  52. package/.aiwf/sessions/session_1752877880266_fm1ydjw0g.json +7 -0
  53. package/.aiwf/sessions/session_1752877881149_xbat4z03d.json +7 -0
  54. package/.aiwf/sessions/session_1752877881551_qy5sic9qs.json +7 -0
  55. package/.aiwf/sessions/session_1752877881554_24ugd96wu.json +7 -0
  56. package/.aiwf/sessions/session_1752877881797_e9mm25uh0.json +7 -0
  57. package/.aiwf/sessions/session_1752877881822_bxvjj8c9g.json +7 -0
  58. package/.aiwf/sessions/session_1752877881890_jv7l6jve3.json +7 -0
  59. package/.aiwf/sessions/session_1752877881991_f0qugdtcq.json +7 -0
  60. package/.aiwf/sessions/session_1752877883387_0bvw9rvnx.json +7 -0
  61. package/.aiwf/sessions/session_1752877883820_q6g2md2up.json +7 -0
  62. package/.aiwf/sessions/session_1752877884393_sqr7trvjl.json +7 -0
  63. package/.aiwf/sessions/session_1752877884500_whtypmzlf.json +7 -0
  64. package/.aiwf/sessions/session_1752877884645_y9mvvxli1.json +7 -0
  65. package/.aiwf/sessions/session_1752877884733_hk46eenel.json +7 -0
  66. package/.aiwf/sessions/session_1752877884738_c62j6214r.json +7 -0
  67. package/.aiwf/sessions/session_1752877884771_temhxehoz.json +7 -0
  68. package/.aiwf/sessions/session_1752877885643_6v5fcktc7.json +7 -0
  69. package/.aiwf/sessions/session_1752877886426_ee8di2fqh.json +7 -0
  70. package/.aiwf/sessions/session_1752877886549_3xj6tdoew.json +7 -0
  71. package/.aiwf/sessions/session_1752877886604_aj80yyfco.json +7 -0
  72. package/.aiwf/sessions/session_1752877886702_2b8841vyg.json +7 -0
  73. package/.aiwf/sessions/session_1752877886712_ntqc8b8bz.json +7 -0
  74. package/.aiwf/sessions/session_1752877886968_946m8tbw6.json +7 -0
  75. package/.aiwf/sessions/session_1752877887008_wg6zfg8dn.json +7 -0
  76. package/.aiwf/sessions/session_1752877888479_ciiu2qiqs.json +7 -0
  77. package/.aiwf/sessions/session_1752877889330_ravg8l66k.json +7 -0
  78. package/.aiwf/sessions/session_1752877889542_7zepkhjkc.json +7 -0
  79. package/.aiwf/sessions/session_1752877889638_ev4htqiu0.json +7 -0
  80. package/.aiwf/sessions/session_1752877889956_szphy2qma.json +7 -0
  81. package/.aiwf/sessions/session_1752877890220_o6aaa57tt.json +7 -0
  82. package/.aiwf/sessions/session_1752877890527_v2loy5vu1.json +7 -0
  83. package/.aiwf/sessions/session_1752877890572_cwq8fiuma.json +7 -0
  84. package/.aiwf/sessions/session_1752877892200_sgcwq1alt.json +7 -0
  85. package/.aiwf/sessions/session_1752877892268_v8kexpbc5.json +7 -0
  86. package/.aiwf/sessions/session_1752877892384_1gbbgrp4y.json +7 -0
  87. package/.aiwf/sessions/session_1752877893568_9p2n5p31a.json +7 -0
  88. package/.aiwf/sessions/session_1752877893727_un34a5tvp.json +7 -0
  89. package/.aiwf/sessions/session_1752877893778_01j79sw9i.json +7 -0
  90. package/.aiwf/sessions/session_1752877894053_jrhba6wko.json +7 -0
  91. package/.aiwf/sessions/session_1752877894082_x3bghawox.json +7 -0
  92. package/.aiwf/sessions/session_1752877894500_iytiav2ku.json +7 -0
  93. package/.aiwf/sessions/session_1752877894667_ucn0gc2ge.json +7 -0
  94. package/.aiwf/test-results-s02.json +4 -4
  95. package/.claude/commands/aiwf/aiwf_changelog.md +82 -0
  96. package/.claude/commands/aiwf/aiwf_code_review.md +88 -0
  97. package/.claude/commands/aiwf/aiwf_commit.md +160 -0
  98. package/.claude/commands/aiwf/aiwf_compress_aggressive_persona.md +53 -0
  99. package/.claude/commands/aiwf/aiwf_compress_context.md +116 -0
  100. package/.claude/commands/aiwf/aiwf_compress_minimal_persona.md +48 -0
  101. package/.claude/commands/aiwf/aiwf_compress_stats.md +79 -0
  102. package/.claude/commands/aiwf/aiwf_compress_with_persona.md +51 -0
  103. package/.claude/commands/aiwf/aiwf_create_feature_ledger.md +54 -0
  104. package/.claude/commands/aiwf/aiwf_create_general_task.md +147 -0
  105. package/.claude/commands/aiwf/aiwf_create_milestone_plan.md +194 -0
  106. package/.claude/commands/aiwf/aiwf_create_prd.md +280 -0
  107. package/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +189 -0
  108. package/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +121 -0
  109. package/.claude/commands/aiwf/aiwf_default_mode.md +44 -0
  110. package/.claude/commands/aiwf/aiwf_discuss_review.md +29 -0
  111. package/.claude/commands/aiwf/aiwf_do_task.md +109 -0
  112. package/.claude/commands/aiwf/aiwf_docs.md +225 -0
  113. package/.claude/commands/aiwf/aiwf_evaluate.md +92 -0
  114. package/.claude/commands/aiwf/aiwf_get_feature_details.md +78 -0
  115. package/.claude/commands/aiwf/aiwf_infinite.md +202 -0
  116. package/.claude/commands/aiwf/aiwf_initialize.md +134 -0
  117. package/.claude/commands/aiwf/aiwf_issue_create.md +65 -0
  118. package/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +57 -0
  119. package/.claude/commands/aiwf/aiwf_list_features.md +54 -0
  120. package/.claude/commands/aiwf/aiwf_mermaid.md +272 -0
  121. package/.claude/commands/aiwf/aiwf_persona_architect.md +48 -0
  122. package/.claude/commands/aiwf/aiwf_persona_backend.md +37 -0
  123. package/.claude/commands/aiwf/aiwf_persona_data_analyst.md +37 -0
  124. package/.claude/commands/aiwf/aiwf_persona_frontend.md +37 -0
  125. package/.claude/commands/aiwf/aiwf_persona_security.md +48 -0
  126. package/.claude/commands/aiwf/aiwf_persona_status.md +50 -0
  127. package/.claude/commands/aiwf/aiwf_pr_create.md +76 -0
  128. package/.claude/commands/aiwf/aiwf_prime.md +9 -0
  129. package/.claude/commands/aiwf/aiwf_project_review.md +261 -0
  130. package/.claude/commands/aiwf/aiwf_switch_language.md +160 -0
  131. package/.claude/commands/aiwf/aiwf_test.md +124 -0
  132. package/.claude/commands/aiwf/aiwf_testing_review.md +198 -0
  133. package/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +210 -0
  134. package/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +460 -0
  135. package/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +165 -0
  136. package/.claude/commands/aiwf/aiwf_ultrathink_general.md +305 -0
  137. package/.claude/commands/aiwf/aiwf_update_docs_kr.md +25 -0
  138. package/.claude/commands/aiwf/aiwf_update_feature_status.md +53 -0
  139. package/.claude/commands/aiwf/aiwf_yolo.md +300 -0
  140. package/.eslintrc.json +26 -0
  141. package/.prettierrc +10 -0
  142. package/CHANGELOG.md +54 -5
  143. package/CLAUDE.md +154 -54
  144. package/README.ko.md +25 -0
  145. package/README.md +25 -0
  146. package/TEST_RECOVERY_PLAN.md +68 -0
  147. package/claude-code/aiwf/ko/commands/ai-persona.js +1 -1
  148. package/docs/CLEANUP_RECOMMENDATIONS.md +86 -0
  149. package/docs/CLI_USAGE_GUIDE.md +479 -0
  150. package/package.json +9 -9
  151. package/scripts/update-feature-status.js +70 -0
  152. package/{lib → src/cli}/cache-cli.js +4 -4
  153. package/src/cli/index.js +206 -0
  154. package/{language-cli.js → src/cli/language-cli.js} +11 -4
  155. package/src/commands/cache-templates.js +209 -0
  156. package/src/commands/create-offline.js +86 -0
  157. package/src/commands/create-project.js +151 -0
  158. package/src/commands/persona.js +288 -0
  159. package/src/lib/backup-manager.js +270 -0
  160. package/src/lib/file-downloader.js +208 -0
  161. package/src/lib/installer.js +676 -0
  162. package/src/lib/rollback-manager.js +418 -0
  163. package/src/lib/validator.js +561 -0
  164. package/src/utils/git-integration.js +173 -0
  165. package/{language-utils.js → src/utils/language-utils.js} +2 -1
  166. package/src/utils/messages.js +136 -0
  167. package/src/utils/paths.js +130 -0
  168. package/tests/application.test.js +2 -2
  169. package/tests/installer.test.js +2 -2
  170. package/tests/integration/ai-persona-system.test.js +4 -4
  171. package/tests/integration/test-persona-system/docs/README.md +1 -0
  172. package/tests/integration/test-persona-system/package.json +1 -0
  173. package/tests/integration/test-persona-system/src/auth.js +1 -0
  174. package/tests/integration/test-persona-system/src/index.js +1 -0
  175. package/tests/integration/test-persona-system/test/test.js +1 -0
  176. package/tests/language-utils.test.js +1 -1
  177. package/tests/temp_invalid_json/invalid.json +1 -0
  178. package/tests/unit/ai-persona-manager.test.js +7 -7
  179. package/.aiwf/05_DOCUMENTATION/performance-report.md +0 -33
  180. package/.aiwf/test-cache/86c7f9e80251abb8bedd58953ab0d1779e46b4f43ea33b63bffdb778106373b0.json +0 -6
  181. package/.aiwf/test-cache/9e252a90b80fce0585d7ed0646e7a9b4343e109f661f42a3ae678ba1ec5e22c7.json +0 -7
  182. package/.aiwf/token-data/alerts.json +0 -293
  183. package/.aiwf/token-data/monitor-config.json +0 -12
  184. package/CHANGELOG_M02.md +0 -52
  185. package/claude-code/aiwf/ko/templates/web-app/template/package-lock.json +0 -10022
  186. package/claude-code/aiwf/ko/token-data/alerts.json +0 -293
  187. package/claude-code/aiwf/ko/token-data/monitor-config.json +0 -12
  188. package/docs/m02-dod-checklist.md +0 -125
  189. package/docs/m02-gap-analysis.md +0 -214
  190. package/docs/m02-milestone-completion-report.md +0 -186
  191. package/docs/m02-milestone-executive-summary.md +0 -68
  192. package/index.js +0 -1951
  193. package/lib/cache-integration.js +0 -401
  194. package/lib/file-batch-processor.js +0 -401
  195. package/lib/performance-benchmark.js +0 -621
  196. package/lib/template-manager.js +0 -310
  197. package/scripts/validate-commands.cjs +0 -338
  198. /package/{lib → src/lib}/ai-persona-manager.js +0 -0
  199. /package/{lib → src/lib}/cache-system.js +0 -0
  200. /package/{lib → src/lib}/context-engine.js +0 -0
  201. /package/{lib → src/lib}/memory-profiler.js +0 -0
  202. /package/{lib → src/lib}/metrics-collector.js +0 -0
  203. /package/{lib → src/lib}/offline-detector.js +0 -0
  204. /package/{lib → src/lib}/task-analyzer.js +0 -0
  205. /package/{lib → src/lib}/template-cache-system.js +0 -0
  206. /package/{lib → src/lib}/template-downloader.js +0 -0
  207. /package/{lib → src/lib}/template-version-manager.js +0 -0
  208. /package/{lib → src/lib}/token-optimizer.js +0 -0
@@ -0,0 +1,261 @@
1
+ # 프로젝트 리뷰 - 탑 다운 실행
2
+
3
+ 아키텍처, 진행 상황, 기술 결정에 초점을 맞춘 포괄적인 프로젝트 수준 리뷰를 수행합니다.
4
+
5
+ **중요사항:**
6
+
7
+ - 이는 최근 변경 사항이 아닌 전체 프로젝트 상태에 대한 고수준 리뷰입니다.
8
+ - 프로젝트 문서에 명확히 언급되지 않은 한, 타임라인과 일정은 관련이 없습니다
9
+
10
+ ## 정확히 다음 9개 항목으로 TODO 생성
11
+
12
+ 1. 리뷰 범위 및 타이밍 분석
13
+ 2. 테스트 인프라 상태 실행 및 평가
14
+ 3. 프로젝트 문서 정렬 평가
15
+ 4. 마일스톤 및 스프린트 진행 상황 검토
16
+ 5. 코드베이스 아키텍처 및 구조 분석
17
+ 6. 파일 구성 및 워크플로우 준수 감사
18
+ 7. 기술적 결정 및 복잡성 평가
19
+ 8. 구현 품질 비평 (John Carmack 관점)
20
+ 9. 권장 사항과 함께 포괄적인 평가 제공
21
+
22
+ 단계별로 진행하며 각 단계에 대한 다음 지침을 엄격히 준수하세요.
23
+
24
+ ## 모든 TODO 항목에 대한 세부사항
25
+
26
+ ### 1. 리뷰 범위 및 타이밍 분석
27
+
28
+ 확인: <$ARGUMENTS>
29
+
30
+ 비어있다면 전체 프로젝트 리뷰를 수행합니다. 그렇지 않으면 <$ARGUMENTS>를 해석하여 특정 초점 영역(마일스톤, 스프린트, 아키텍처 구성 요소 등)을 식별합니다. Argument에 명시되지 않은 한 `.aiwf/10_STATE_OF_PROJECT`의 이전 프로젝트 리뷰와 비교하지 마세요.
31
+
32
+ **중요:** 이 리뷰는 최근 변경사항의 맥락에서 전체 프로젝트 상태를 살펴봅니다.
33
+
34
+ **핵심:** `.aiwf/00_PROJECT_MANIFEST.md`를 **먼저** 읽어서 다음을 이해하세요:
35
+
36
+ - 현재 마일스톤 및 스프린트 상태
37
+ - 완료된 작업 vs 진행 중인 작업 vs 계획된 작업
38
+ - 활성 스프린트 목표 및 결과물
39
+
40
+ **맥락 확인:** 기능 평가 전에:
41
+
42
+ - `.aiwf/03_SPRINTS/`로 이동하여 현재 스프린트 찾기
43
+ - 스프린트 메타 파일을 읽어 범위 내에 있는 것 이해하기
44
+ - 스프린트 내에서 완료된 태스크 vs 계획된 태스크 확인
45
+ - 향후 스프린트가 제공할 내용 이해하기
46
+
47
+ **리뷰 원칙:** 전체 마일스톤 범위가 아닌 현재 스프린트 결과물에 대해 평가합니다.
48
+
49
+ ### 2. 테스트 인프라 상태 실행 및 평가
50
+
51
+ **핵심:** 테스트 인프라 상태는 스프린트/마일스톤 진행의 차단 기준입니다.
52
+
53
+ - 전체 테스트 스위트 실행을 위해 test.md 명령 사용 (@.claude/commands/aiwf/aiwf_test.md)
54
+ - 테스트 결과 분석: 통과/실패/건너뛴 개수 및 실패 카테고리
55
+ - 테스트 상태 점수 계산 (0-10 스케일):
56
+ - 10: 100% 통과율, 인프라 문제 없음
57
+ - 8-9: >95% 통과율, 사소한 문제만 있음
58
+ - 6-7: 80-95% 통과율, 일부 비핵심 실패
59
+ - 4-5: 60-80% 통과율, 중대한 문제
60
+ - 0-3: <60% pass rate, critical infrastructure problems
61
+ - CATEGORIZE failures:
62
+ - Infrastructure: Import errors, missing modules
63
+ - Configuration: Environment variables, database connections
64
+ - Logic: Assertion failures, actual bugs
65
+ - Flaky: Intermittent failures
66
+ - DETERMINE blocking status:
67
+ - Score < 6: BLOCKS sprint progression
68
+ - Score < 8: BLOCKS milestone completion
69
+ - Score < 4: TRIGGERS emergency escalation
70
+ - IDENTIFY root causes of any infrastructure failures
71
+ - TRACK trend vs previous review (improvement/degradation)
72
+ - ASSESS test strategy validity for scope of the project. Tests should be pragmatic and help assuring functionality but not get in the way of development progress too much.
73
+
74
+ ### 3. Assess project documentation alignment
75
+
76
+ **USE PARALLEL AGENTS** to follow these steps:
77
+
78
+ - READ all core documents in `.aiwf/01_PROJECT_DOCS/` especially ARCHITECTURE.md
79
+ - READ current milestone requirements in `.aiwf/02_REQUIREMENTS/`
80
+ - READ architecture decisions in `.aiwf/05_ARCHITECTURE_DECISIONS` as they might extend/contradict other documents
81
+ - IDENTIFY any gaps between documentation and current implementation
82
+ - CHECK if the project is still following the documented architecture vision
83
+ - VERIFY that current code structure matches documented patterns
84
+
85
+ **IMPORTANT:** Documentation is our source of truth. Any deviation needs justification.
86
+
87
+ ### 4. Review milestone and sprint progress
88
+
89
+ **USE PARALLEL AGENTS** to follow these steps:
90
+
91
+ - READ `.aiwf/00_PROJECT_MANIFEST.md` for current status
92
+ - ANALYZE completed sprints in `.aiwf/03_SPRINTS/`
93
+ - COMPARE actual progress against CURRENT SPRINT deliverables (not full milestone)
94
+ - DISTINGUISH between sprint-level tasks vs milestone-level features
95
+ - ASSESS if current sprint focus aligns with milestone goals
96
+
97
+ ### 5. Analyze codebase architecture and structure
98
+
99
+ #
100
+
101
+ **USE PARALLEL AGENTS** to follow these steps:
102
+
103
+ - EXAMINE overall project structure and organization
104
+ - ANALYZE import patterns and dependency relationships
105
+ - REVIEW database models and API structure for consistency
106
+ - CHECK for architectural patterns: are we following DDD, clean architecture, etc.?
107
+ - IDENTIFY any architectural debt or inconsistencies
108
+
109
+ **Focus areas:**
110
+
111
+ - **Directory structure** — logical organization, separation of concerns
112
+ - **Dependencies** — are we over-engineering? unnecessary libraries?
113
+ - **Models/Schemas** — consistency, proper relationships, normalization
114
+ - **APIs** — RESTful design, proper HTTP methods, consistent patterns
115
+ - **Configuration** — environment management, secrets handling
116
+
117
+ ### 6. Audit file organization and workflow compliance
118
+
119
+ **IMPORTANT:** Check for workflow discipline and architectural boundary violations.
120
+
121
+ - **Root directory audit** — identify files that don't belong in project root
122
+ - **Development scripts** — verify all dev scripts follow `run_dev.py` pattern
123
+ - **Test file organization** — check tests are in `tests/` directory, not scattered
124
+ - **Documentation placement** — verify docs are in proper locations
125
+ - **Temporary/experimental files** — flag any `.py` files that look ad-hoc or experimental
126
+
127
+ **File Organization Rules to Enforce:**
128
+
129
+ - **Development scripts** — MUST go through `run_dev.py`, not standalone files
130
+ - **Test files** — MUST be in `tests/` directory with proper naming (`test_*.py`)
131
+ - **Documentation** — MUST be in `docs/` or `.aiwf/01_PROJECT_DOCS/`
132
+ - **Configuration** — MUST follow established patterns (`.env.example`, `pyproject.toml`)
133
+ - **Temporary files** — SHOULD NOT exist in committed code
134
+
135
+ **Red Flags to Identify:**
136
+
137
+ - Multiple scripts doing similar things (duplicate functionality)
138
+ - Random `.py` files in root directory
139
+ - Test files outside `tests/` directory
140
+ - Development scripts bypassing `run_dev.py`
141
+ - Unclear file purposes or experimental code
142
+
143
+ **CRITICAL:** File proliferation indicates workflow breakdown. Flag for immediate cleanup task creation.
144
+
145
+ ### 7. Evaluate technical decisions and complexity
146
+
147
+ - ASSESS complexity vs. business value ratio
148
+ - REVIEW choice of frameworks, libraries, and tools
149
+ - ANALYZE if current patterns will scale with project growth
150
+ - IDENTIFY areas where we might be over-complicating simple problems
151
+ - CHECK for premature optimization or under-optimization
152
+
153
+ **IMPORTANT:** Think like an experienced developer. Are we solving the right problems the right way?
154
+
155
+ ### 8. Critique implementation quality (John Carmack perspective)
156
+
157
+ Think as John Carmack would: focus on simplicity, performance, and maintainability, but keep the projects goal in mind. Especially long term vision as well. Don't over simplify.
158
+
159
+ - **Simplicity:** Are we solving problems in the most straightforward way?
160
+ - **Performance:** Are there obvious performance issues or bottlenecks?
161
+ - **Maintainability:** Will a new developer understand this code in 6 months?
162
+ - **Robustness:** How does the system handle edge cases and failures?
163
+ - **Technical debt:** What shortcuts are we taking that will hurt us later?
164
+
165
+ Be **brutally honest**. Carmack-level critique means no sugar-coating but still staying true to the project's reality.
166
+ Be thorough and **go above and beyond** in your analysis - leave no stone unturned.
167
+
168
+ ### 9. Provide comprehensive assessment with recommendations
169
+
170
+ **IMPORTANT:** Get current timestamp and create output file
171
+
172
+ - Get current timestamp using system date command
173
+ - Create filename: `YYYY-MM-DD-HH-MM-<judgment-slug>.md` in `.aiwf/10_STATE_OF_PROJECT/`
174
+ - Judgment slug should be 2-3 words describing overall project health (e.g., "solid-progress", "needs-focus", "critical-issues", "doing-great", "on-track")
175
+
176
+ **IMPORTANT:** Write full report to the timestamped file with this format:
177
+
178
+ ```markdown
179
+ # Project Review - [YYYY-MM-DD HH:MM]
180
+
181
+ ## 🎭 Review Sentiment
182
+
183
+ [3 emojis only - no explanations]
184
+
185
+ ## Executive Summary
186
+
187
+ - **Result:** EXCELLENT | GOOD | NEEDS_WORK | CRITICAL_ISSUES
188
+ - **Scope:** What areas were reviewed
189
+ - **Overall Judgment:** [2-3 word assessment used in filename]
190
+
191
+ ## Test Infrastructure Assessment
192
+
193
+ - **Test Suite Status**: [PASSING/FAILING/BLOCKED] (X/Y tests)
194
+ - **Test Pass Rate**: X% (Y passed, Z failed)
195
+ - **Test Health Score**: X/10
196
+ - **Infrastructure Health**: [HEALTHY/DEGRADED/BROKEN]
197
+ - Import errors: [count]
198
+ - Configuration errors: [count]
199
+ - Fixture issues: [count]
200
+ - **Test Categories**:
201
+ - Unit Tests: X/Y passing
202
+ - Integration Tests: X/Y passing
203
+ - API Tests: X/Y passing
204
+ - **Critical Issues**:
205
+ - [List of blocking test infrastructure problems]
206
+ - [Module import mismatches]
207
+ - [Environment configuration failures]
208
+ - **Sprint Coverage**: [% of sprint deliverables with passing tests]
209
+ - **Blocking Status**: [CLEAR/BLOCKED - reason]
210
+ - **Recommendations**:
211
+ - [Immediate fixes required]
212
+ - [Test infrastructure improvements needed]
213
+
214
+ ## Development Context
215
+
216
+ - **Current Milestone:** [ID and status from manifest]
217
+ - **Current Sprint:** [ID and focus]
218
+ - **Expected Completeness:** [what SHOULD be done at this stage]
219
+
220
+ ## Progress Assessment
221
+
222
+ - **Milestone Progress:** [percentage complete]
223
+ - **Sprint Status:** [current sprint assessment]
224
+ - **Deliverable Tracking:** [what's done vs planned]
225
+
226
+ ## Architecture & Technical Assessment
227
+
228
+ - **Architecture Score:** 1-10 rating with explanation
229
+ - **Technical Debt Level:** LOW | MEDIUM | HIGH with specific examples
230
+ - **Code Quality:** [overall assessment with examples]
231
+
232
+ ## File Organization Audit
233
+
234
+ - **Workflow Compliance:** GOOD | NEEDS_ATTENTION | CRITICAL_VIOLATIONS
235
+ - **File Organization Issues:** [list any misplaced files, duplicate scripts, etc.]
236
+ - **Cleanup Tasks Needed:** [specific file moves/deletions/consolidations required]
237
+
238
+ ## Critical Findings
239
+
240
+ ### Critical Issues (Severity 8-10)
241
+
242
+ [Lists of must-fix problems headed with #### heading, one empty line and then list of details]
243
+
244
+ ### Improvement Opportunities (Severity 4-7)
245
+
246
+ [List of recommended enhancements headed with #### heading, one empty line and then list of details]
247
+
248
+ ## John Carmack Critique 🔥
249
+
250
+ [Top 3 brutally honest observations about technical decisions]
251
+
252
+ ## Recommendations
253
+
254
+ Based on your findings recommend Action items - chose whatever fits your findings
255
+
256
+ - **Important fixes:** What needs to be fixed immediately?
257
+ - **Optional fixes/changes:** What would still be recommended though optional?
258
+ - **Next Sprint Focus:** Can the user move to the next sprint?
259
+ ```
260
+
261
+ **IMPORTANT:** Be specific with file paths and line numbers. This review should be actionable and permanently archived.
@@ -0,0 +1,160 @@
1
+ # AIWF 언어 전환
2
+
3
+ 사용자가 AIWF 프레임워크의 언어 설정을 변경할 수 있도록 하는 명령어입니다.
4
+
5
+ ## 사용법
6
+
7
+ 이 명령어는 다음과 같은 경우에 사용됩니다:
8
+ - 현재 언어 설정을 다른 언어로 변경하고 싶은 경우
9
+ - 언어 설정 상태를 확인하고 싶은 경우
10
+ - 언어 감지 문제를 해결하고 싶은 경우
11
+
12
+ ## 파라미터
13
+
14
+ - `<언어코드>` (선택사항): 변경할 언어 (`ko` 또는 `en`)
15
+ - 파라미터 없이 실행하면 현재 언어 상태를 표시
16
+
17
+ ## 실행 단계
18
+
19
+ ### 1. 현재 언어 상태 확인
20
+
21
+ 먼저 현재 언어 설정 상태를 확인합니다:
22
+
23
+ ```bash
24
+ node -e "
25
+ import('./language-utils.js').then(async ({ getLanguageStatus }) => {
26
+ const status = await getLanguageStatus();
27
+ console.log('=== AIWF 언어 설정 상태 ===');
28
+ console.log('감지된 언어:', status.detectedLanguage);
29
+ console.log('설정된 언어:', status.configuredLanguage || '없음');
30
+ console.log('현재 사용 언어:', status.effectiveLanguage);
31
+ console.log('자동 감지:', status.autoDetect ? '활성화' : '비활성화');
32
+ console.log('폴백 언어:', status.fallbackLanguage);
33
+ console.log('설정 파일 경로:', status.configPath);
34
+ if (status.error) console.log('오류:', status.error);
35
+ });
36
+ "
37
+ ```
38
+
39
+ ### 2. 인수 분석
40
+
41
+ `<$ARGUMENTS>` 값을 확인하여 다음 중 하나를 수행합니다:
42
+
43
+ - **인수 없음**: 현재 상태만 표시하고 종료
44
+ - **유효한 언어코드 (`ko` 또는 `en`)**: 해당 언어로 전환
45
+ - **무효한 인수**: 오류 메시지 표시 후 사용법 안내
46
+
47
+ ### 3. 언어 전환 실행
48
+
49
+ 유효한 언어코드가 제공된 경우 언어를 전환합니다:
50
+
51
+ ```bash
52
+ node -e "
53
+ import('./language-utils.js').then(async ({ switchLanguage }) => {
54
+ const targetLanguage = process.argv[1];
55
+ const result = await switchLanguage(targetLanguage);
56
+
57
+ if (result.success) {
58
+ console.log('✅ 언어 전환 성공!');
59
+ console.log('이전 언어:', result.previousLanguage);
60
+ console.log('새 언어:', result.newLanguage);
61
+ console.log('메시지:', result.message);
62
+ } else {
63
+ console.error('❌ 언어 전환 실패:', result.error);
64
+ console.log('메시지:', result.message);
65
+ }
66
+ });
67
+ " -- $ARGUMENTS
68
+ ```
69
+
70
+ ### 4. 전환 후 검증
71
+
72
+ 언어 전환 후 설정이 제대로 적용되었는지 확인합니다:
73
+
74
+ ```bash
75
+ node -e "
76
+ import('./language-utils.js').then(async ({ getLanguageStatus }) => {
77
+ const status = await getLanguageStatus();
78
+ console.log('\n=== 전환 후 언어 설정 상태 ===');
79
+ console.log('현재 사용 언어:', status.effectiveLanguage);
80
+ console.log('설정 파일:', status.configuredLanguage ? '저장됨' : '없음');
81
+ });
82
+ "
83
+ ```
84
+
85
+ ### 5. 명령어 경로 테스트
86
+
87
+ 새 언어로 명령어 경로가 제대로 해결되는지 테스트합니다:
88
+
89
+ ```bash
90
+ node -e "
91
+ import('./language-utils.js').then(async ({ resolveCommandPath, detectLanguage }) => {
92
+ const currentLang = await detectLanguage();
93
+ const testCommands = ['aiwf_do_task', 'aiwf_commit', 'aiwf_initialize'];
94
+
95
+ console.log('\n=== 명령어 경로 테스트 ===');
96
+ console.log('현재 언어:', currentLang);
97
+
98
+ for (const cmd of testCommands) {
99
+ const result = await resolveCommandPath(cmd);
100
+ if (result.path) {
101
+ console.log('✅', cmd, '->', result.path, result.fallback ? '(폴백)' : '(직접)');
102
+ } else {
103
+ console.log('❌', cmd, '-> 찾을 수 없음:', result.error);
104
+ }
105
+ }
106
+ });
107
+ "
108
+ ```
109
+
110
+ ## 출력 형식
111
+
112
+ ### 성공적인 언어 전환
113
+ ```
114
+ ✅ 언어 전환 성공!
115
+ 이전 언어: en
116
+ 새 언어: ko
117
+ 메시지: 언어가 성공적으로 변경되었습니다
118
+
119
+ === 전환 후 언어 설정 상태 ===
120
+ 현재 사용 언어: ko
121
+ 설정 파일: 저장됨
122
+
123
+ === 명령어 경로 테스트 ===
124
+ 현재 언어: ko
125
+ ✅ aiwf_do_task -> claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_do_task.md (직접)
126
+ ✅ aiwf_commit -> claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_commit.md (직접)
127
+ ✅ aiwf_initialize -> claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_initialize.md (직접)
128
+ ```
129
+
130
+ ### 현재 상태 확인만 수행
131
+ ```
132
+ === AIWF 언어 설정 상태 ===
133
+ 감지된 언어: ko
134
+ 설정된 언어: ko
135
+ 현재 사용 언어: ko
136
+ 자동 감지: 활성화
137
+ 폴백 언어: en
138
+ 설정 파일 경로: .aiwf/config/language.json
139
+ ```
140
+
141
+ ### 오류 발생 시
142
+ ```
143
+ ❌ 언어 전환 실패: 지원되지 않는 언어입니다
144
+ 메시지: 언어 변경에 실패했습니다
145
+
146
+ 사용법: /project:aiwf:switch_language [ko|en]
147
+ 지원 언어: ko (한국어), en (English)
148
+ ```
149
+
150
+ ## 주의사항
151
+
152
+ 1. **설정 파일 권한**: `.aiwf/config/` 디렉토리에 쓰기 권한이 필요합니다
153
+ 2. **명령어 파일 존재**: 전환하려는 언어의 명령어 파일들이 존재해야 합니다
154
+ 3. **프로젝트 루트**: AIWF가 초기화된 프로젝트에서만 사용 가능합니다
155
+
156
+ ## 관련 명령어
157
+
158
+ - `/project:aiwf:initialize` - AIWF 프로젝트 초기화
159
+ - `/project:aiwf:update_docs` - 문서 업데이트 (언어별)
160
+ - `/project:aiwf:help` - 도움말 (현재 언어로 표시)
@@ -0,0 +1,124 @@
1
+ # 테스트 실행 및 일반적인 문제 수정
2
+
3
+ 다음 지시사항을 위에서 아래로 순서대로 따르세요.
4
+
5
+ ## 정확히 다음 4개 항목으로 TODO 생성
6
+
7
+ 1. 테스트 스위트 실행
8
+ 2. 결과 분석 및 문제 식별
9
+ 3. 발견된 일반적인 문제 수정
10
+ 4. 테스트 요약 제공
11
+
12
+ ---
13
+
14
+ ## 1 · 테스트 스위트 실행
15
+
16
+ ### 먼저 프로젝트의 테스트 러너 감지:
17
+
18
+ 1. **Python 프로젝트:**
19
+
20
+ - `[tool.poetry]`가 있는 `pyproject.toml`이 존재하면: `poetry run pytest` 시도
21
+ - `setup.py` 또는 `requirements.txt`가 있으면: `pytest` 또는 `python -m pytest` 시도
22
+ - 커스텀 테스트 스크립트 존재시 (예: `run_tests.py`, `run_dev.py`): 해당 스크립트 사용
23
+ - 일반적인 플래그 추가: pytest용 `--tb=short`
24
+
25
+ 2. **JavaScript/TypeScript 프로젝트:**
26
+
27
+ - `package.json`이 존재하면: "scripts" 섹션에서 "test" 명령어 확인
28
+ - 일반적인 명령어: `npm test`, `npm run test`, `yarn test`, `pnpm test`
29
+ - 프레임워크별: `jest`, `vitest`, `mocha`
30
+
31
+ 3. **기타 언어:**
32
+ - Rust: `cargo test`
33
+ - Go: `go test ./...`
34
+ - Java: `mvn test` 또는 `gradle test`
35
+ - Ruby: `bundle exec rspec` 또는 `rake test`
36
+ - PHP: `composer test` 또는 `phpunit`
37
+
38
+ ### 감지된 테스트 명령어 실행:
39
+
40
+ - 적절한 테스트 명령어 실행
41
+ - 오류를 포함한 전체 출력 캡처
42
+ - 실행 시간 및 테스트 개수 기록
43
+
44
+ **테스트 러너를 찾을 수 없는 경우:** 사용자에게 보고하고 올바른 테스트 명령어 요청
45
+
46
+ ## 2 · 결과 분석 및 문제 식별
47
+
48
+ 다음 순서로 일반적인 문제 확인:
49
+
50
+ ### 언어별 문제:
51
+
52
+ **Python:**
53
+
54
+ - **__init__.py** 파일 누락 (import 오류, 테스트 미발견)
55
+ - Import 경로 문제
56
+ - Fixture 문제 (pytest)
57
+ - 가상 환경 문제
58
+
59
+ **JavaScript/TypeScript:**
60
+
61
+ - 모듈 해결 오류
62
+ - node_modules의 의존성 누락
63
+ - Jest/Vitest 구성 문제
64
+ - TypeScript 컴파일 오류
65
+
66
+ **모든 언어 공통:**
67
+
68
+ - 환경 변수 문제 (구성 누락)
69
+ - 데이터베이스/외부 서비스 연결 오류
70
+ - 파일 경로 문제 (절대 경로 vs 상대 경로)
71
+ - 권한 문제
72
+
73
+ ## 3 · 발견된 일반적인 문제 수정
74
+
75
+ **오직** 다음 특정 문제들만 자동으로 수정:**
76
+
77
+ ### Python 전용 수정:
78
+
79
+ - 필요한 곳에 빈 `__init__.py` 파일 생성
80
+ - 간단한 import 경로 문제 수정
81
+ - 필요한 경우 Python 경로에 누락된 테스트 디렉토리 추가
82
+
83
+ ### JavaScript/TypeScript 수정:
84
+
85
+ - node_modules가 누락된 경우 `npm install` 실행
86
+ - jest.config.js의 간단한 모듈 해결 문제 수정
87
+ - 누락된 테스트 설정 파일 생성
88
+
89
+ ### 일반 수정:
90
+
91
+ - 누락된 테스트 디렉토리 생성
92
+ - 가능한 경우 파일 권한 수정
93
+ - 누락된 환경 변수 식별 및 사용자에게 알림
94
+
95
+ **수정하지 않을 것:**
96
+
97
+ - 실제 테스트 로직 실패
98
+ - 비즈니스 로직 버그
99
+ - 복잡한 구성 문제
100
+ - 데이터베이스 스키마 문제
101
+ - 외부 서비스 의존성
102
+
103
+ ## 4 · 테스트 요약 제공
104
+
105
+ 간단한 요약 생성:
106
+
107
+ ```
108
+ 테스트 결과:
109
+ - 총 개수: X개 테스트
110
+ - 통과: Y개 (Z%)
111
+ - 실패: A개
112
+ - 건너뜀: B개
113
+ - 시간: C초
114
+
115
+ 수정된 문제:
116
+ - [적용된 수정사항 목록]
117
+
118
+ 발견된 문제 (수동 수정 필요):
119
+ - [주의가 필요한 문제 목록]
120
+
121
+ 상태: PASSING | FAILING | BLOCKED
122
+ ```
123
+
124
+ **중요:** 간결하게 유지하세요. 이 명령어는 빠르고 테스트 실행에 집중해야 하며, 상세한 분석에 집중하지 않아야 합니다.