aiwf 0.3.6 → 0.3.8

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 (271) hide show
  1. package/.aiwf/00_PROJECT_MANIFEST.md +226 -2
  2. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/S03_M02_sprint_meta.md +112 -0
  3. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T01_S03_new_test_task.md +39 -0
  4. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T02_S03_first_task.md +39 -0
  5. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T03_S03_test_task.md +39 -0
  6. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T04_S03_task_with_special_characters.md +39 -0
  7. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T05_S03_test.md +39 -0
  8. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T06_S03_test_task.md +39 -0
  9. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T07_S03_next_task.md +39 -0
  10. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T08_S03_next_task.md +39 -0
  11. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T09_S03_new_test_task.md +39 -0
  12. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T100_S03_task_with_special_characters.md +39 -0
  13. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T101_S03_test.md +39 -0
  14. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T102_S03_test_task.md +39 -0
  15. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T103_S03_next_task.md +39 -0
  16. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T104_S03_next_task.md +39 -0
  17. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T105_S03_new_test_task.md +39 -0
  18. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T106_S03_first_task.md +39 -0
  19. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T107_S03_test_task.md +39 -0
  20. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T108_S03_task_with_special_characters.md +39 -0
  21. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T109_S03_test.md +39 -0
  22. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T10_S03_first_task.md +39 -0
  23. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T110_S03_test_task.md +39 -0
  24. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T111_S03_next_task.md +39 -0
  25. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T112_S03_next_task.md +39 -0
  26. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T11_S03_test_task.md +39 -0
  27. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T12_S03_task_with_special_characters.md +39 -0
  28. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T13_S03_test.md +39 -0
  29. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T14_S03_test_task.md +39 -0
  30. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T15_S03_next_task.md +39 -0
  31. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T16_S03_next_task.md +39 -0
  32. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T17_S03_new_test_task.md +39 -0
  33. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T18_S03_first_task.md +39 -0
  34. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T19_S03_test_task.md +39 -0
  35. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T20_S03_task_with_special_characters.md +39 -0
  36. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T21_S03_test.md +39 -0
  37. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T22_S03_test_task.md +39 -0
  38. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T23_S03_next_task.md +39 -0
  39. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T24_S03_next_task.md +39 -0
  40. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T25_S03_new_test_task.md +39 -0
  41. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T26_S03_first_task.md +39 -0
  42. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T27_S03_test_task.md +39 -0
  43. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T28_S03_task_with_special_characters.md +39 -0
  44. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T29_S03_test.md +39 -0
  45. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T30_S03_test_task.md +39 -0
  46. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T31_S03_next_task.md +39 -0
  47. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T32_S03_next_task.md +39 -0
  48. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T33_S03_new_test_task.md +39 -0
  49. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T34_S03_first_task.md +39 -0
  50. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T35_S03_test_task.md +39 -0
  51. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T36_S03_task_with_special_characters.md +39 -0
  52. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T37_S03_test.md +39 -0
  53. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T38_S03_test_task.md +39 -0
  54. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T39_S03_next_task.md +39 -0
  55. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T40_S03_next_task.md +39 -0
  56. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T41_S03_new_test_task.md +39 -0
  57. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T42_S03_first_task.md +39 -0
  58. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T43_S03_test_task.md +39 -0
  59. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T44_S03_task_with_special_characters.md +39 -0
  60. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T45_S03_test.md +39 -0
  61. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T46_S03_test_task.md +39 -0
  62. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T47_S03_next_task.md +39 -0
  63. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T48_S03_next_task.md +39 -0
  64. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T49_S03_new_test_task.md +39 -0
  65. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T50_S03_first_task.md +39 -0
  66. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T51_S03_test_task.md +39 -0
  67. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T52_S03_task_with_special_characters.md +39 -0
  68. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T53_S03_test.md +39 -0
  69. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T54_S03_test_task.md +39 -0
  70. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T55_S03_next_task.md +39 -0
  71. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T56_S03_next_task.md +39 -0
  72. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T57_S03_new_test_task.md +39 -0
  73. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T58_S03_first_task.md +39 -0
  74. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T59_S03_test_task.md +39 -0
  75. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T60_S03_task_with_special_characters.md +39 -0
  76. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T61_S03_test.md +39 -0
  77. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T62_S03_test_task.md +39 -0
  78. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T63_S03_next_task.md +39 -0
  79. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T64_S03_next_task.md +39 -0
  80. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T65_S03_new_test_task.md +39 -0
  81. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T66_S03_first_task.md +39 -0
  82. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T67_S03_test_task.md +39 -0
  83. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T68_S03_task_with_special_characters.md +39 -0
  84. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T69_S03_test.md +39 -0
  85. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T70_S03_test_task.md +39 -0
  86. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T71_S03_next_task.md +39 -0
  87. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T72_S03_next_task.md +39 -0
  88. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T73_S03_new_test_task.md +39 -0
  89. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T74_S03_first_task.md +39 -0
  90. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T75_S03_test_task.md +39 -0
  91. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T76_S03_task_with_special_characters.md +39 -0
  92. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T77_S03_test.md +39 -0
  93. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T78_S03_test_task.md +39 -0
  94. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T79_S03_next_task.md +39 -0
  95. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T80_S03_next_task.md +39 -0
  96. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T81_S03_new_test_task.md +39 -0
  97. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T82_S03_first_task.md +39 -0
  98. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T83_S03_test_task.md +39 -0
  99. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T84_S03_task_with_special_characters.md +39 -0
  100. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T85_S03_test.md +39 -0
  101. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T86_S03_test_task.md +39 -0
  102. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T87_S03_next_task.md +39 -0
  103. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T88_S03_next_task.md +39 -0
  104. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T89_S03_new_test_task.md +39 -0
  105. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T90_S03_first_task.md +39 -0
  106. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T91_S03_test_task.md +39 -0
  107. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T92_S03_task_with_special_characters.md +39 -0
  108. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T93_S03_test.md +39 -0
  109. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T94_S03_test_task.md +39 -0
  110. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T95_S03_next_task.md +39 -0
  111. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T96_S03_next_task.md +39 -0
  112. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T97_S03_new_test_task.md +39 -0
  113. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T98_S03_first_task.md +39 -0
  114. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T99_S03_test_task.md +39 -0
  115. package/.aiwf/test-results-s02.json +5 -5
  116. package/.claude/commands/aiwf/aiwf_compress_aggressive_persona.md +3 -15
  117. package/.claude/commands/aiwf/aiwf_compress_minimal_persona.md +2 -15
  118. package/.claude/commands/aiwf/aiwf_compress_stats.md +2 -51
  119. package/.claude/commands/aiwf/aiwf_compress_with_persona.md +5 -18
  120. package/.claude/commands/aiwf/aiwf_create_feature_ledger.md +1 -1
  121. package/.claude/commands/aiwf/aiwf_default_mode.md +1 -1
  122. package/.claude/commands/aiwf/aiwf_evaluate.md +3 -16
  123. package/.claude/commands/aiwf/aiwf_get_feature_details.md +1 -1
  124. package/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +1 -1
  125. package/.claude/commands/aiwf/aiwf_list_features.md +1 -1
  126. package/.claude/commands/aiwf/aiwf_switch_language.md +48 -120
  127. package/.claude/commands/aiwf/aiwf_update_feature_status.md +1 -1
  128. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_testcase.md +561 -0
  129. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_aggressive_persona.md +2 -2
  130. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_minimal_persona.md +2 -2
  131. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_stats.md +10 -47
  132. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_with_persona.md +2 -2
  133. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_feature_ledger.md +1 -1
  134. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_testcase.md +561 -0
  135. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_default_mode.md +1 -1
  136. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_evaluate.md +2 -2
  137. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_get_feature_details.md +1 -1
  138. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +1 -1
  139. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_list_features.md +1 -1
  140. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_architect.md +1 -1
  141. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_backend.md +1 -1
  142. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_data_analyst.md +1 -1
  143. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_frontend.md +1 -1
  144. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_security.md +1 -1
  145. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_status.md +1 -1
  146. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_update_feature_status.md +1 -1
  147. package/package.json +1 -1
  148. package/src/cli/index.js +174 -0
  149. package/src/commands/compress.js +60 -0
  150. package/src/commands/create-project.js +23 -17
  151. package/src/commands/evaluate.js +459 -0
  152. package/src/commands/feature.js +365 -0
  153. package/src/commands/persona.js +37 -16
  154. package/src/commands/token.js +312 -0
  155. package/src/lib/file-downloader.js +189 -33
  156. package/src/lib/installer.js +38 -11
  157. package/src/lib/resource-loader.js +250 -0
  158. package/src/lib/resources/commands/ai-persona.js +602 -0
  159. package/src/lib/resources/commands/compress-context.js +389 -0
  160. package/src/lib/resources/commands/evaluate.js +246 -0
  161. package/src/lib/resources/commands/feature-ledger.js +565 -0
  162. package/src/lib/resources/commands/feature_commit_report.js +370 -0
  163. package/src/lib/resources/commands/persona-context-apply.js +562 -0
  164. package/src/lib/resources/commands/scan_git_history.js +234 -0
  165. package/src/lib/resources/commands/sync_feature_commits.js +154 -0
  166. package/src/lib/resources/commands/token-tracking.js +443 -0
  167. package/src/lib/resources/config/commit-patterns.js +103 -0
  168. package/src/lib/resources/config/language.json +6 -0
  169. package/src/lib/resources/personas/PERSONA_INDEX.md +57 -0
  170. package/src/lib/resources/personas/analyst.json +44 -0
  171. package/src/lib/resources/personas/architect/best_practices.md +136 -0
  172. package/src/lib/resources/personas/architect/knowledge_base.md +377 -0
  173. package/src/lib/resources/personas/architect.json +44 -0
  174. package/src/lib/resources/personas/backend/best_practices.md +766 -0
  175. package/src/lib/resources/personas/backend/knowledge_base.md +1070 -0
  176. package/src/lib/resources/personas/data_analyst/best_practices.md +594 -0
  177. package/src/lib/resources/personas/data_analyst/knowledge_base.md +1057 -0
  178. package/src/lib/resources/personas/developer.json +44 -0
  179. package/src/lib/resources/personas/developer.md +37 -0
  180. package/src/lib/resources/personas/evaluation_criteria.json +137 -0
  181. package/src/lib/resources/personas/frontend/best_practices.md +445 -0
  182. package/src/lib/resources/personas/frontend/knowledge_base.md +729 -0
  183. package/src/lib/resources/personas/persona-index.json +31 -0
  184. package/src/lib/resources/personas/reviewer.json +44 -0
  185. package/src/lib/resources/personas/security/best_practices.md +307 -0
  186. package/src/lib/resources/personas/security/knowledge_base.md +498 -0
  187. package/src/lib/resources/personas/tester.json +44 -0
  188. package/src/lib/resources/templates/README.md +78 -0
  189. package/src/lib/resources/templates/api-server/config.json +64 -0
  190. package/src/lib/resources/templates/api-server/template/.aiwf/config.json +56 -0
  191. package/src/lib/resources/templates/api-server/template/.aiwf/feature-ledger.json +42 -0
  192. package/src/lib/resources/templates/api-server/template/.aiwf/personas/backend-engineer.json +40 -0
  193. package/src/lib/resources/templates/api-server/template/.aiwf/scripts/cli.js +111 -0
  194. package/src/lib/resources/templates/api-server/template/.env.example +29 -0
  195. package/src/lib/resources/templates/api-server/template/.eslintrc.json +23 -0
  196. package/src/lib/resources/templates/api-server/template/README.md +171 -0
  197. package/src/lib/resources/templates/api-server/template/jest.config.js +26 -0
  198. package/src/lib/resources/templates/api-server/template/nodemon.json +9 -0
  199. package/src/lib/resources/templates/api-server/template/package.json +61 -0
  200. package/src/lib/resources/templates/api-server/template/src/app.ts +60 -0
  201. package/src/lib/resources/templates/api-server/template/src/config/swagger.ts +38 -0
  202. package/src/lib/resources/templates/api-server/template/src/controllers/aiwfController.ts +68 -0
  203. package/src/lib/resources/templates/api-server/template/src/controllers/authController.ts +128 -0
  204. package/src/lib/resources/templates/api-server/template/src/controllers/statusController.ts +28 -0
  205. package/src/lib/resources/templates/api-server/template/src/index.ts +28 -0
  206. package/src/lib/resources/templates/api-server/template/src/middleware/aiwfMiddleware.ts +50 -0
  207. package/src/lib/resources/templates/api-server/template/src/middleware/authMiddleware.ts +41 -0
  208. package/src/lib/resources/templates/api-server/template/src/middleware/errorHandler.ts +42 -0
  209. package/src/lib/resources/templates/api-server/template/src/middleware/notFoundHandler.ts +14 -0
  210. package/src/lib/resources/templates/api-server/template/src/middleware/requestLogger.ts +20 -0
  211. package/src/lib/resources/templates/api-server/template/src/routes/aiwf.ts +42 -0
  212. package/src/lib/resources/templates/api-server/template/src/routes/index.ts +13 -0
  213. package/src/lib/resources/templates/api-server/template/src/routes/v1/index.ts +67 -0
  214. package/src/lib/resources/templates/api-server/template/src/utils/logger.ts +37 -0
  215. package/src/lib/resources/templates/api-server/template/tests/app.test.ts +40 -0
  216. package/src/lib/resources/templates/api-server/template/tsconfig.json +43 -0
  217. package/src/lib/resources/templates/npm-library/config.json +61 -0
  218. package/src/lib/resources/templates/npm-library/template/LICENSE +21 -0
  219. package/src/lib/resources/templates/npm-library/template/README.md +201 -0
  220. package/src/lib/resources/templates/npm-library/template/package.json +78 -0
  221. package/src/lib/resources/templates/web-app/config.json +53 -0
  222. package/src/lib/resources/templates/web-app/template/.aiwf/config.json +54 -0
  223. package/src/lib/resources/templates/web-app/template/.aiwf/feature-ledger.json +37 -0
  224. package/src/lib/resources/templates/web-app/template/.aiwf/personas/fullstack-developer.json +40 -0
  225. package/src/lib/resources/templates/web-app/template/.aiwf/scripts/cli.js +110 -0
  226. package/src/lib/resources/templates/web-app/template/.eslintrc.cjs +20 -0
  227. package/src/lib/resources/templates/web-app/template/README.md +151 -0
  228. package/src/lib/resources/templates/web-app/template/index.html +14 -0
  229. package/src/lib/resources/templates/web-app/template/package.json +44 -0
  230. package/src/lib/resources/templates/web-app/template/postcss.config.js +6 -0
  231. package/src/lib/resources/templates/web-app/template/public/vite.svg +1 -0
  232. package/src/lib/resources/templates/web-app/template/src/App.tsx +21 -0
  233. package/src/lib/resources/templates/web-app/template/src/components/Layout.tsx +57 -0
  234. package/src/lib/resources/templates/web-app/template/src/components/aiwf/ContextStatus.tsx +107 -0
  235. package/src/lib/resources/templates/web-app/template/src/components/aiwf/FeatureLedger.tsx +93 -0
  236. package/src/lib/resources/templates/web-app/template/src/components/aiwf/TokenUsage.tsx +71 -0
  237. package/src/lib/resources/templates/web-app/template/src/index.css +60 -0
  238. package/src/lib/resources/templates/web-app/template/src/main.tsx +10 -0
  239. package/src/lib/resources/templates/web-app/template/src/pages/AiwfDashboard.tsx +60 -0
  240. package/src/lib/resources/templates/web-app/template/src/pages/HomePage.tsx +89 -0
  241. package/src/lib/resources/templates/web-app/template/src/pages/NotFound.tsx +25 -0
  242. package/src/lib/resources/templates/web-app/template/src/stores/aiwfStore.ts +126 -0
  243. package/src/lib/resources/templates/web-app/template/src/types/global.d.ts +9 -0
  244. package/src/lib/resources/templates/web-app/template/src/vite-env.d.ts +1 -0
  245. package/src/lib/resources/templates/web-app/template/tailwind.config.js +30 -0
  246. package/src/lib/resources/templates/web-app/template/tsconfig.json +37 -0
  247. package/src/lib/resources/templates/web-app/template/tsconfig.node.json +10 -0
  248. package/src/lib/resources/templates/web-app/template/vite.config.ts +23 -0
  249. package/src/lib/resources/utils/background-monitor.js +223 -0
  250. package/src/lib/resources/utils/compression-metrics.js +1031 -0
  251. package/src/lib/resources/utils/compression-strategies.js +557 -0
  252. package/src/lib/resources/utils/content-normalizer.js +455 -0
  253. package/src/lib/resources/utils/context-compressor.js +583 -0
  254. package/src/lib/resources/utils/context-rule-parser.js +180 -0
  255. package/src/lib/resources/utils/context-token-monitor.js +463 -0
  256. package/src/lib/resources/utils/context-update-manager.js +502 -0
  257. package/src/lib/resources/utils/feature-updater.js +271 -0
  258. package/src/lib/resources/utils/git-utils.js +220 -0
  259. package/src/lib/resources/utils/importance-classifier.js +645 -0
  260. package/src/lib/resources/utils/information-filter.js +710 -0
  261. package/src/lib/resources/utils/persona-aware-compressor.js +598 -0
  262. package/src/lib/resources/utils/prompt-injector.js +242 -0
  263. package/src/lib/resources/utils/simplified-evaluator.js +119 -0
  264. package/src/lib/resources/utils/text-summarizer.js +492 -0
  265. package/src/lib/resources/utils/token-counter.js +177 -0
  266. package/src/lib/resources/utils/token-monitor.js +484 -0
  267. package/src/lib/resources/utils/token-reporter.js +453 -0
  268. package/src/lib/resources/utils/token-storage.js +433 -0
  269. package/src/lib/resources/utils/token-tracker.js +283 -0
  270. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_switch_language.md +0 -160
  271. /package/claude-code/aiwf/ko/.claude/commands/aiwf/{aiwf_update_docs_kr.md → aiwf_update_docs.md} +0 -0
@@ -0,0 +1,39 @@
1
+ # T98: First Task
2
+
3
+ **스프린트**: S03
4
+ **생성일**: 2025-07-20 15:24
5
+ **상태**: pending
6
+ **우선순위**: medium
7
+ **예상 시간**: TBD
8
+
9
+ ## 개요
10
+
11
+ [태스크에 대한 간단한 설명을 작성하세요]
12
+
13
+ ## 요구사항
14
+
15
+ - [ ] [구체적인 요구사항 1]
16
+ - [ ] [구체적인 요구사항 2]
17
+ - [ ] [구체적인 요구사항 3]
18
+
19
+ ## 승인 기준
20
+
21
+ - [ ] [완료 조건 1]
22
+ - [ ] [완료 조건 2]
23
+ - [ ] [완료 조건 3]
24
+
25
+ ## 기술 가이드라인
26
+
27
+ - [관련 아키텍처 결정 참조]
28
+ - [기존 코드베이스 패턴 참조]
29
+ - [사용할 기술 스택]
30
+
31
+ ## 구현 노트
32
+
33
+ - [구현 시 고려사항]
34
+ - [잠재적 리스크]
35
+ - [테스트 전략]
36
+
37
+ ## 참조
38
+
39
+ - [관련 문서나 코드 링크]
@@ -0,0 +1,39 @@
1
+ # T99: Test Task
2
+
3
+ **스프린트**: S03
4
+ **생성일**: 2025-07-20 15:24
5
+ **상태**: pending
6
+ **우선순위**: medium
7
+ **예상 시간**: TBD
8
+
9
+ ## 개요
10
+
11
+ [태스크에 대한 간단한 설명을 작성하세요]
12
+
13
+ ## 요구사항
14
+
15
+ - [ ] [구체적인 요구사항 1]
16
+ - [ ] [구체적인 요구사항 2]
17
+ - [ ] [구체적인 요구사항 3]
18
+
19
+ ## 승인 기준
20
+
21
+ - [ ] [완료 조건 1]
22
+ - [ ] [완료 조건 2]
23
+ - [ ] [완료 조건 3]
24
+
25
+ ## 기술 가이드라인
26
+
27
+ - [관련 아키텍처 결정 참조]
28
+ - [기존 코드베이스 패턴 참조]
29
+ - [사용할 기술 스택]
30
+
31
+ ## 구현 노트
32
+
33
+ - [구현 시 고려사항]
34
+ - [잠재적 리스크]
35
+ - [테스트 전략]
36
+
37
+ ## 참조
38
+
39
+ - [관련 문서나 코드 링크]
@@ -4,27 +4,27 @@
4
4
  {
5
5
  "name": "Persona Switching Time",
6
6
  "status": "passed",
7
- "executionTime": 0.303858287,
7
+ "executionTime": 0.3037124869999998,
8
8
  "criteria": "< 2 seconds"
9
9
  },
10
10
  {
11
11
  "name": "Pre-commit Hook Installation",
12
12
  "status": "passed",
13
- "executionTime": 0.007028295000000071,
13
+ "executionTime": 0.02001247400000011,
14
14
  "criteria": "Hook installed or installable"
15
15
  },
16
16
  {
17
17
  "name": "Multi-language Support",
18
18
  "status": "passed",
19
- "executionTime": 0.0037783789999994042,
19
+ "executionTime": 0.000359030999999959,
20
20
  "criteria": "Korean/English commands"
21
21
  },
22
22
  {
23
23
  "name": "Performance Baseline",
24
24
  "status": "passed",
25
- "executionTime": 0.0728547009999993,
25
+ "executionTime": 0.05356764800000019,
26
26
  "criteria": "< 5 seconds total",
27
- "actualValue": "0.07s"
27
+ "actualValue": "0.05s"
28
28
  }
29
29
  ],
30
30
  "summary": {
@@ -4,21 +4,9 @@
4
4
 
5
5
  ## 실행
6
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
- });
7
+ ```bash
8
+ # AIWF CLI를 사용하여 페르소나 인식 공격적 압축 실행
9
+ aiwf compress aggressive --persona
22
10
  ```
23
11
 
24
12
  ## 설명
@@ -4,21 +4,8 @@
4
4
 
5
5
  ## 실행
6
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
- });
7
+ ```bash
8
+ aiwf compress minimal --persona
22
9
  ```
23
10
 
24
11
  ## 설명
@@ -4,57 +4,8 @@
4
4
 
5
5
  ## 실행
6
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
- }
7
+ ```bash
8
+ aiwf compress stats
58
9
  ```
59
10
 
60
11
  ## 설명
@@ -4,21 +4,8 @@
4
4
 
5
5
  ## 실행
6
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
- });
7
+ ```bash
8
+ aiwf compress balanced --persona
22
9
  ```
23
10
 
24
11
  ## 설명
@@ -37,11 +24,11 @@ proc.on('error', (err) => {
37
24
 
38
25
  ```bash
39
26
  # 기본 모드 (balanced)로 페르소나 인식 압축
40
- aiwf compress-with-persona
27
+ aiwf compress balanced --persona
41
28
 
42
29
  # 다른 압축 모드와 함께 사용
43
- aiwf compress-aggressive-persona # aggressive 모드
44
- aiwf compress-minimal-persona # minimal 모드
30
+ aiwf compress aggressive --persona # aggressive 모드
31
+ aiwf compress minimal --persona # minimal 모드
45
32
  ```
46
33
 
47
34
  ## 참고
@@ -3,7 +3,7 @@
3
3
  새로운 Feature Ledger를 생성하여 기능 개발을 추적합니다.
4
4
 
5
5
  ```bash
6
- cd .aiwf && node ../claude-code/aiwf/ko/commands/feature-ledger.js create "$@"
6
+ aiwf feature create "$@"
7
7
  ```
8
8
 
9
9
  ## 설명
@@ -3,7 +3,7 @@
3
3
  AI를 기본 모드로 복원합니다.
4
4
 
5
5
  ```bash
6
- cd .aiwf && node ../claude-code/aiwf/ko/commands/ai-persona.js default
6
+ aiwf persona default
7
7
  ```
8
8
 
9
9
  ## 설명
@@ -4,22 +4,9 @@ AI 응답 품질을 간단하게 평가합니다.
4
4
 
5
5
  ## 실행
6
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
- });
7
+ ```bash
8
+ # AIWF CLI를 사용하여 평가 실행
9
+ aiwf evaluate [options]
23
10
  ```
24
11
 
25
12
  ## 설명
@@ -3,7 +3,7 @@
3
3
  특정 Feature Ledger의 상세 정보를 확인합니다.
4
4
 
5
5
  ```bash
6
- cd .aiwf && node ../claude-code/aiwf/ko/commands/feature-ledger.js details "$@"
6
+ aiwf feature details "$@"
7
7
  ```
8
8
 
9
9
  ## 설명
@@ -3,7 +3,7 @@
3
3
  Feature Ledger를 마일스톤 및 스프린트와 연결합니다.
4
4
 
5
5
  ```bash
6
- cd .aiwf && node ../claude-code/aiwf/ko/commands/feature-ledger.js link-milestone "$@"
6
+ aiwf feature link-milestone "$@"
7
7
  ```
8
8
 
9
9
  ## 설명
@@ -3,7 +3,7 @@
3
3
  Feature Ledger 목록을 다양한 필터와 형식으로 조회합니다.
4
4
 
5
5
  ```bash
6
- cd .aiwf && node ../claude-code/aiwf/ko/commands/feature-ledger.js list "$@"
6
+ aiwf feature list "$@"
7
7
  ```
8
8
 
9
9
  ## 설명
@@ -1,160 +1,88 @@
1
1
  # AIWF 언어 전환
2
2
 
3
- 사용자가 AIWF 프레임워크의 언어 설정을 변경할 수 있도록 하는 명령어입니다.
3
+ AIWF 프레임워크의 언어 설정을 변경합니다.
4
4
 
5
5
  ## 사용법
6
6
 
7
- 이 명령어는 다음과 같은 경우에 사용됩니다:
8
- - 현재 언어 설정을 다른 언어로 변경하고 싶은 경우
9
- - 언어 설정 상태를 확인하고 싶은 경우
10
- - 언어 감지 문제를 해결하고 싶은 경우
11
-
12
- ## 파라미터
13
-
14
- - `<언어코드>` (선택사항): 변경할 언어 (`ko` 또는 `en`)
15
- - 파라미터 없이 실행하면 현재 언어 상태를 표시
16
-
17
- ## 실행 단계
18
-
19
- ### 1. 현재 언어 상태 확인
20
-
21
- 먼저 현재 언어 설정 상태를 확인합니다:
22
-
23
7
  ```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
- - **무효한 인수**: 오류 메시지 표시 후 사용법 안내
8
+ # 현재 언어 상태 확인
9
+ aiwf-lang status
46
10
 
47
- ### 3. 언어 전환 실행
11
+ # 한국어로 전환
12
+ aiwf-lang set ko
48
13
 
49
- 유효한 언어코드가 제공된 경우 언어를 전환합니다:
14
+ # 영어로 전환
15
+ aiwf-lang set en
50
16
 
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
17
+ # 언어 설정 초기화 (자동 감지로 되돌림)
18
+ aiwf-lang reset
68
19
  ```
69
20
 
70
- ### 4. 전환 후 검증
21
+ ## 설명
71
22
 
72
- 언어 전환 후 설정이 제대로 적용되었는지 확인합니다:
23
+ 이 명령어는 다음과 같은 경우에 사용됩니다:
24
+ - 현재 언어 설정을 다른 언어로 변경하고 싶은 경우
25
+ - 언어 설정 상태를 확인하고 싶은 경우
26
+ - 언어 감지 문제를 해결하고 싶은 경우
73
27
 
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
- ```
28
+ ## 지원 언어
84
29
 
85
- ### 5. 명령어 경로 테스트
30
+ - `ko` - 한국어
31
+ - `en` - 영어
86
32
 
87
- 새 언어로 명령어 경로가 제대로 해결되는지 테스트합니다:
33
+ ## 사용 예시
88
34
 
35
+ ### 현재 상태 확인
89
36
  ```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
- "
37
+ aiwf-lang status
108
38
  ```
109
39
 
110
- ## 출력 형식
40
+ ### 언어 변경
41
+ ```bash
42
+ # 한국어로 변경
43
+ aiwf-lang set ko
111
44
 
112
- ### 성공적인 언어 전환
45
+ # 영어로 변경
46
+ aiwf-lang set en
113
47
  ```
114
- ✅ 언어 전환 성공!
115
- 이전 언어: en
116
- 새 언어: ko
117
- 메시지: 언어가 성공적으로 변경되었습니다
118
-
119
- === 전환 후 언어 설정 상태 ===
120
- 현재 사용 언어: ko
121
- 설정 파일: 저장됨
122
48
 
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
- ```
49
+ ## 출력 예시
129
50
 
130
- ### 현재 상태 확인만 수행
131
- ```
51
+ ### 상태 확인
52
+ ```bash
53
+ $ aiwf-lang status
132
54
  === AIWF 언어 설정 상태 ===
133
55
  감지된 언어: ko
134
- 설정된 언어: ko
56
+ 설정된 언어: ko
135
57
  현재 사용 언어: ko
136
58
  자동 감지: 활성화
137
59
  폴백 언어: en
138
- 설정 파일 경로: .aiwf/config/language.json
139
60
  ```
140
61
 
141
- ### 오류 발생 시
62
+ ### 성공적인 언어 전환
63
+ ```bash
64
+ $ aiwf-lang set en
65
+ ✅ 언어 전환 성공!
66
+ 이전 언어: ko
67
+ 새 언어: en
68
+ 언어가 성공적으로 변경되었습니다.
142
69
  ```
143
- ❌ 언어 전환 실패: 지원되지 않는 언어입니다
144
- 메시지: 언어 변경에 실패했습니다
145
70
 
146
- 사용법: /project:aiwf:switch_language [ko|en]
71
+ ### 오류 발생 시
72
+ ```bash
73
+ $ aiwf-lang set invalid
74
+ ❌ 오류: 지원되지 않는 언어입니다
147
75
  지원 언어: ko (한국어), en (English)
148
76
  ```
149
77
 
150
78
  ## 주의사항
151
79
 
152
- 1. **설정 파일 권한**: `.aiwf/config/` 디렉토리에 쓰기 권한이 필요합니다
153
- 2. **명령어 파일 존재**: 전환하려는 언어의 명령어 파일들이 존재해야 합니다
154
- 3. **프로젝트 루트**: AIWF가 초기화된 프로젝트에서만 사용 가능합니다
80
+ 1. **설정 파일 권한**: 설정 파일에 쓰기 권한이 필요합니다
81
+ 2. **프로젝트 루트**: AIWF가 설치된 환경에서 사용 가능합니다
82
+ 3. **언어 파일**: 전환하려는 언어의 리소스 파일들이 존재해야 합니다
155
83
 
156
84
  ## 관련 명령어
157
85
 
158
- - `/project:aiwf:initialize` - AIWF 프로젝트 초기화
159
- - `/project:aiwf:update_docs` - 문서 업데이트 (언어별)
160
- - `/project:aiwf:help` - 도움말 (현재 언어로 표시)
86
+ - `aiwf --help` - AIWF 도움말 (현재 언어로 표시)
87
+ - `aiwf feature` - Feature 관리 명령어
88
+ - `aiwf compress` - 컨텍스트 압축 명령어
@@ -3,7 +3,7 @@
3
3
  Feature Ledger의 상태를 변경합니다.
4
4
 
5
5
  ```bash
6
- cd .aiwf && node ../claude-code/aiwf/ko/commands/feature-ledger.js update-status "$@"
6
+ aiwf feature update-status "$@"
7
7
  ```
8
8
 
9
9
  ## 설명