aiwf 0.3.8 β†’ 0.3.13

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 (712) hide show
  1. package/CHANGELOG.md +97 -0
  2. package/README.ko.md +114 -28
  3. package/README.md +152 -40
  4. package/docs/AI-WORKFLOW.md +121 -19
  5. package/docs/API_DOCUMENTATION.md +1 -1
  6. package/docs/API_REFERENCE.md +1 -1
  7. package/docs/CLI_USAGE_GUIDE.ko.md +634 -0
  8. package/docs/CLI_USAGE_GUIDE.md +339 -178
  9. package/docs/COMMANDS_GUIDE.ko.md +308 -4
  10. package/docs/COMMANDS_GUIDE.md +117 -0
  11. package/docs/CONTRIBUTING.ko.md +6 -6
  12. package/docs/CONTRIBUTING.md +6 -6
  13. package/docs/DEVELOPMENT_GUIDE.ko.md +440 -0
  14. package/docs/DEVELOPMENT_GUIDE.md +1 -1
  15. package/docs/EXAMPLES.md +8 -6
  16. package/docs/GETTING_STARTED.md +6 -3
  17. package/docs/STATE_MANAGEMENT_GUIDE.ko.md +278 -0
  18. package/docs/STATE_MANAGEMENT_GUIDE.md +278 -0
  19. package/docs/TROUBLESHOOTING.md +14 -13
  20. package/docs/guides/checkpoint-system-guide-ko.md +356 -0
  21. package/docs/guides/checkpoint-system-guide.md +356 -0
  22. package/docs/guides/independent-sprint-guide-ko.md +321 -0
  23. package/docs/guides/independent-sprint-guide.md +321 -0
  24. package/package.json +37 -4
  25. package/scripts/check-dependencies.js +101 -0
  26. package/scripts/update-file-lists.js +267 -0
  27. package/src/cli/checkpoint-cli.js +417 -0
  28. package/src/cli/index.js +337 -50
  29. package/src/cli/sprint-cli.js +287 -0
  30. package/src/commands/sprint-independent.js +393 -0
  31. package/src/commands/state-refactored.js +419 -0
  32. package/src/commands/state.js +1164 -0
  33. package/src/commands/yolo-config.js +502 -0
  34. package/src/config/file-lists.js +147 -0
  35. package/src/config/yolo-config-template.yaml +168 -0
  36. package/src/lib/file-downloader.js +7 -72
  37. package/src/lib/github-integration.js +402 -0
  38. package/src/lib/resource-loader-enhanced.js +399 -0
  39. package/src/lib/state/priority-calculator.js +217 -0
  40. package/src/lib/state/state-index.js +155 -0
  41. package/src/lib/state/task-scanner.js +328 -0
  42. package/src/utils/checkpoint-manager.js +425 -0
  43. package/src/utils/engineering-guard.js +389 -0
  44. package/.aiwf/00_PROJECT_MANIFEST.md +0 -420
  45. package/.aiwf/01_PROJECT_DOCS/ARCHITECTURE.md +0 -121
  46. package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_ADVANCED_USE_CASES.md +0 -412
  47. package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_API_REFERENCE.md +0 -361
  48. package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_COMMANDS_GUIDE.md +0 -254
  49. package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_FAQ.md +0 -365
  50. package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_SYSTEM_OVERVIEW.md +0 -305
  51. package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_USER_GUIDE.md +0 -416
  52. package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_/354/213/234/354/236/221_/352/260/200/354/235/264/353/223/234.md +0 -247
  53. package/.aiwf/02_REQUIREMENTS/CLAUDE.md +0 -78
  54. package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/M02_milestone_meta.md +0 -34
  55. package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/PRD_Context_Engineering_Enhancement.md +0 -108
  56. package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/SPECS_AI_Persona_System.md +0 -299
  57. package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/SPECS_Feature_Ledger_System.md +0 -330
  58. package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/SPECS_Token_Optimization.md +0 -833
  59. package/.aiwf/02_REQUIREMENTS/M03_Simone_Integration_Enhancement/M03_milestone_meta.md +0 -55
  60. package/.aiwf/02_REQUIREMENTS/M03_Simone_Integration_Enhancement/SPECS_AIWF_Simplified_Plan.md +0 -221
  61. package/.aiwf/03_SPRINTS/CLAUDE.md +0 -83
  62. package/.aiwf/03_SPRINTS/S01_M02_context_foundation/S01_M02_sprint_meta.md +0 -95
  63. package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX01_S01_Feature_Ledger_/353/215/260/354/235/264/355/204/260_/352/265/254/354/241/260_/354/204/244/352/263/204.md +0 -111
  64. package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX02_S01_Feature_Ledger_CLI_/353/252/205/353/240/271/354/226/264_/352/260/234/353/260/234.md +0 -115
  65. package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX03_S01_Git_/354/227/260/353/217/231_Feature_/354/266/224/354/240/201.md +0 -141
  66. package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX04_S01_Feature_Ledger_/353/254/270/354/204/234/355/231/224.md +0 -114
  67. package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX05_S01_AI_/355/216/230/353/245/264/354/206/214/353/202/230_/353/215/260/354/235/264/355/204/260_/352/265/254/354/241/260_/354/204/244/352/263/204.md +0 -123
  68. package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX06_S01_/355/216/230/353/245/264/354/206/214/353/202/230_/352/264/200/353/246/254_/353/252/205/353/240/271/354/226/264_/352/265/254/355/230/204.md +0 -114
  69. package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX07_S01_Context_/354/225/225/354/266/225_/354/225/204/355/202/244/355/205/215/354/262/230_/354/204/244/352/263/204.md +0 -114
  70. package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX08_S01_/355/206/240/355/201/260_/354/266/224/354/240/201_/354/213/234/354/212/244/355/205/234_/355/224/204/353/241/234/355/206/240/355/203/200/354/236/205.md +0 -112
  71. package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX09_S01_/354/225/225/354/266/225_/354/225/214/352/263/240/353/246/254/354/246/230_/355/224/204/353/241/234/355/206/240/355/203/200/354/236/205.md +0 -118
  72. package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX10_S01_update_docs_/353/252/205/353/240/271/354/226/264_/353/263/265/352/265/254.md +0 -118
  73. package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX11_S01_/355/206/265/355/225/251_/355/205/214/354/212/244/355/212/270_Suite_/352/265/254/354/266/225.md +0 -128
  74. package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX12_S01_/354/204/261/353/212/245_/354/265/234/354/240/201/355/231/224_/353/260/217_/353/254/270/354/204/234/355/231/224.md +0 -122
  75. package/.aiwf/03_SPRINTS/S02_M02_ai_enhancement/S02_M02_sprint_meta.md +0 -107
  76. package/.aiwf/03_SPRINTS/S02_M02_ai_enhancement/TX01_S02_AI_/355/216/230/353/245/264/354/206/214/353/202/230_/353/252/205/353/240/271/354/226/264_/352/265/254/355/230/204.md +0 -129
  77. package/.aiwf/03_SPRINTS/S02_M02_ai_enhancement/TX02_S02_/355/216/230/353/245/264/354/206/214/353/202/230_/354/273/250/355/205/215/354/212/244/355/212/270_/354/240/201/354/232/251_/354/213/234/354/212/244/355/205/234.md +0 -152
  78. package/.aiwf/03_SPRINTS/S02_M02_ai_enhancement/TX03_S02_Context_/354/225/225/354/266/225_/354/225/214/352/263/240/353/246/254/354/246/230_/352/265/254/355/230/204.md +0 -186
  79. package/.aiwf/03_SPRINTS/S02_M02_ai_enhancement/TX05_S02_S02_/355/206/265/355/225/251_/355/205/214/354/212/244/355/212/270_/353/260/217_/353/254/270/354/204/234/355/231/224.md +0 -192
  80. package/.aiwf/03_SPRINTS/S02_M02_ai_enhancement/TX4_S02_Feature_Git_/354/227/260/353/217/231_/353/260/217_/354/236/220/353/217/231/355/231/224.md +0 -162
  81. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/S03_FINAL_SPRINT_SUMMARY.md +0 -137
  82. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/S03_M02_sprint_meta.md +0 -217
  83. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T01_S03_new_test_task.md +0 -39
  84. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T02_S03_first_task.md +0 -39
  85. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T03_S03_test_task.md +0 -39
  86. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T04_S03_task_with_special_characters.md +0 -39
  87. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T05_S03_test.md +0 -39
  88. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T06_S03_test_task.md +0 -39
  89. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T07_S03_next_task.md +0 -39
  90. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T08_S03_next_task.md +0 -39
  91. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T09_S03_new_test_task.md +0 -39
  92. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T100_S03_task_with_special_characters.md +0 -39
  93. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T101_S03_test.md +0 -39
  94. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T102_S03_test_task.md +0 -39
  95. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T103_S03_next_task.md +0 -39
  96. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T104_S03_next_task.md +0 -39
  97. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T105_S03_new_test_task.md +0 -39
  98. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T106_S03_first_task.md +0 -39
  99. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T107_S03_test_task.md +0 -39
  100. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T108_S03_task_with_special_characters.md +0 -39
  101. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T109_S03_test.md +0 -39
  102. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T10_S03_first_task.md +0 -39
  103. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T110_S03_test_task.md +0 -39
  104. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T111_S03_next_task.md +0 -39
  105. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T112_S03_next_task.md +0 -39
  106. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T11_S03_test_task.md +0 -39
  107. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T12_S03_task_with_special_characters.md +0 -39
  108. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T13_S03_test.md +0 -39
  109. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T14_S03_test_task.md +0 -39
  110. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T15_S03_next_task.md +0 -39
  111. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T16_S03_next_task.md +0 -39
  112. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T17_S03_new_test_task.md +0 -39
  113. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T18_S03_first_task.md +0 -39
  114. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T19_S03_test_task.md +0 -39
  115. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T20_S03_task_with_special_characters.md +0 -39
  116. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T21_S03_test.md +0 -39
  117. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T22_S03_test_task.md +0 -39
  118. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T23_S03_next_task.md +0 -39
  119. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T24_S03_next_task.md +0 -39
  120. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T25_S03_new_test_task.md +0 -39
  121. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T26_S03_first_task.md +0 -39
  122. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T27_S03_test_task.md +0 -39
  123. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T28_S03_task_with_special_characters.md +0 -39
  124. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T29_S03_test.md +0 -39
  125. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T30_S03_test_task.md +0 -39
  126. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T31_S03_next_task.md +0 -39
  127. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T32_S03_next_task.md +0 -39
  128. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T33_S03_new_test_task.md +0 -39
  129. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T34_S03_first_task.md +0 -39
  130. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T35_S03_test_task.md +0 -39
  131. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T36_S03_task_with_special_characters.md +0 -39
  132. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T37_S03_test.md +0 -39
  133. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T38_S03_test_task.md +0 -39
  134. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T39_S03_next_task.md +0 -39
  135. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T40_S03_next_task.md +0 -39
  136. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T41_S03_new_test_task.md +0 -39
  137. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T42_S03_first_task.md +0 -39
  138. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T43_S03_test_task.md +0 -39
  139. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T44_S03_task_with_special_characters.md +0 -39
  140. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T45_S03_test.md +0 -39
  141. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T46_S03_test_task.md +0 -39
  142. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T47_S03_next_task.md +0 -39
  143. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T48_S03_next_task.md +0 -39
  144. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T49_S03_new_test_task.md +0 -39
  145. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T50_S03_first_task.md +0 -39
  146. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T51_S03_test_task.md +0 -39
  147. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T52_S03_task_with_special_characters.md +0 -39
  148. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T53_S03_test.md +0 -39
  149. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T54_S03_test_task.md +0 -39
  150. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T55_S03_next_task.md +0 -39
  151. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T56_S03_next_task.md +0 -39
  152. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T57_S03_new_test_task.md +0 -39
  153. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T58_S03_first_task.md +0 -39
  154. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T59_S03_test_task.md +0 -39
  155. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T60_S03_task_with_special_characters.md +0 -39
  156. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T61_S03_test.md +0 -39
  157. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T62_S03_test_task.md +0 -39
  158. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T63_S03_next_task.md +0 -39
  159. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T64_S03_next_task.md +0 -39
  160. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T65_S03_new_test_task.md +0 -39
  161. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T66_S03_first_task.md +0 -39
  162. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T67_S03_test_task.md +0 -39
  163. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T68_S03_task_with_special_characters.md +0 -39
  164. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T69_S03_test.md +0 -39
  165. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T70_S03_test_task.md +0 -39
  166. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T71_S03_next_task.md +0 -39
  167. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T72_S03_next_task.md +0 -39
  168. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T73_S03_new_test_task.md +0 -39
  169. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T74_S03_first_task.md +0 -39
  170. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T75_S03_test_task.md +0 -39
  171. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T76_S03_task_with_special_characters.md +0 -39
  172. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T77_S03_test.md +0 -39
  173. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T78_S03_test_task.md +0 -39
  174. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T79_S03_next_task.md +0 -39
  175. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T80_S03_next_task.md +0 -39
  176. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T81_S03_new_test_task.md +0 -39
  177. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T82_S03_first_task.md +0 -39
  178. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T83_S03_test_task.md +0 -39
  179. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T84_S03_task_with_special_characters.md +0 -39
  180. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T85_S03_test.md +0 -39
  181. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T86_S03_test_task.md +0 -39
  182. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T87_S03_next_task.md +0 -39
  183. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T88_S03_next_task.md +0 -39
  184. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T89_S03_new_test_task.md +0 -39
  185. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T90_S03_first_task.md +0 -39
  186. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T91_S03_test_task.md +0 -39
  187. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T92_S03_task_with_special_characters.md +0 -39
  188. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T93_S03_test.md +0 -39
  189. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T94_S03_test_task.md +0 -39
  190. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T95_S03_next_task.md +0 -39
  191. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T96_S03_next_task.md +0 -39
  192. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T97_S03_new_test_task.md +0 -39
  193. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T98_S03_first_task.md +0 -39
  194. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T99_S03_test_task.md +0 -39
  195. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/TX14_S03_M02_/353/247/210/354/235/274/354/212/244/355/206/244_/354/265/234/354/242/205_/352/262/200/354/246/235_/353/260/217_/353/254/270/354/204/234/355/231/224.md +0 -214
  196. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/TX15_S03_/352/270/260/353/263/270_/355/224/204/353/241/234/354/240/235/355/212/270_/355/205/234/355/224/214/353/246/277_/352/260/234/353/260/234.md +0 -177
  197. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/TX16_S03_/354/230/244/355/224/204/353/235/274/354/235/270_/355/205/234/355/224/214/353/246/277_/354/272/220/354/213/234_/354/213/234/354/212/244/355/205/234.md +0 -206
  198. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/TX_T13_S03_AI_/353/217/204/352/265/254_/355/206/265/355/225/251_/355/205/234/355/224/214/353/246/277_/352/260/234/353/260/234.md +0 -151
  199. package/.aiwf/04_GENERAL_TASKS/CLAUDE.md +0 -96
  200. package/.aiwf/04_GENERAL_TASKS/TX001_complete_english_translation.md +0 -127
  201. package/.aiwf/06_FEATURE_LEDGERS/FEATURE_GIT_INTEGRATION.md +0 -314
  202. package/.aiwf/06_FEATURE_LEDGERS/FEATURE_INTEGRATION_GUIDE.md +0 -227
  203. package/.aiwf/06_FEATURE_LEDGERS/FEATURE_LEDGER_INDEX.md +0 -23
  204. package/.aiwf/06_FEATURE_LEDGERS/FEATURE_SCHEMA.md +0 -205
  205. package/.aiwf/06_FEATURE_LEDGERS/FEATURE_STATE_DIAGRAM.md +0 -190
  206. package/.aiwf/06_FEATURE_LEDGERS/active/FL001_user_authentication_system.md +0 -47
  207. package/.aiwf/06_FEATURE_LEDGERS/active/FL002_user_authentication_system.md +0 -47
  208. package/.aiwf/07_AI_PERSONAS/PERSONA_INDEX.md +0 -57
  209. package/.aiwf/07_AI_PERSONAS/architect/best_practices.md +0 -104
  210. package/.aiwf/07_AI_PERSONAS/architect/context_rules.md +0 -46
  211. package/.aiwf/07_AI_PERSONAS/architect/knowledge_base.md +0 -235
  212. package/.aiwf/07_AI_PERSONAS/backend/best_practices.md +0 -363
  213. package/.aiwf/07_AI_PERSONAS/backend/context_rules.md +0 -61
  214. package/.aiwf/07_AI_PERSONAS/backend/knowledge_base.md +0 -623
  215. package/.aiwf/07_AI_PERSONAS/data_analyst/best_practices.md +0 -32
  216. package/.aiwf/07_AI_PERSONAS/data_analyst/context_rules.md +0 -43
  217. package/.aiwf/07_AI_PERSONAS/data_analyst/knowledge_base.md +0 -36
  218. package/.aiwf/07_AI_PERSONAS/frontend/best_practices.md +0 -31
  219. package/.aiwf/07_AI_PERSONAS/frontend/context_rules.md +0 -43
  220. package/.aiwf/07_AI_PERSONAS/frontend/knowledge_base.md +0 -32
  221. package/.aiwf/07_AI_PERSONAS/security/best_practices.md +0 -63
  222. package/.aiwf/07_AI_PERSONAS/security/context_rules.md +0 -53
  223. package/.aiwf/07_AI_PERSONAS/security/knowledge_base.md +0 -93
  224. package/.aiwf/10_PERSONAS/active.json +0 -1
  225. package/.aiwf/10_PERSONAS/developer.md +0 -37
  226. package/.aiwf/10_STATE_OF_PROJECT/2025-07-09-07-20-solid-progress.md +0 -144
  227. package/.aiwf/98_PROMPTS/SAAS_DEVELOPMENT_GUIDE.md +0 -302
  228. package/.aiwf/98_PROMPTS/github_integration.md +0 -130
  229. package/.aiwf/98_PROMPTS/useful-prompts.md +0 -31
  230. package/.aiwf/98_PROMPTS/vibe-front-prompts.md +0 -89
  231. package/.aiwf/99_TEMPLATES/adr_template.md +0 -49
  232. package/.aiwf/99_TEMPLATES/feature_template.md +0 -263
  233. package/.aiwf/99_TEMPLATES/milestone_meta_template.md +0 -25
  234. package/.aiwf/99_TEMPLATES/project_manifest_template.md +0 -39
  235. package/.aiwf/99_TEMPLATES/sprint_meta_template.md +0 -23
  236. package/.aiwf/99_TEMPLATES/task_template.md +0 -36
  237. package/.aiwf/CLAUDE.md +0 -76
  238. package/.aiwf/ai-tools/README.md +0 -105
  239. package/.aiwf/ai-tools/augment/README.md +0 -371
  240. package/.aiwf/ai-tools/augment/config.json +0 -30
  241. package/.aiwf/ai-tools/augment/template/.augment/aiwf-integration.md +0 -387
  242. package/.aiwf/ai-tools/augment/template/.augment/augment.yaml +0 -347
  243. package/.aiwf/ai-tools/augment/template/augment.config.json +0 -64
  244. package/.aiwf/ai-tools/claude-code/README.md +0 -151
  245. package/.aiwf/ai-tools/claude-code/config.json +0 -28
  246. package/.aiwf/ai-tools/claude-code/template/CLAUDE.md +0 -91
  247. package/.aiwf/ai-tools/cursor/README.md +0 -314
  248. package/.aiwf/ai-tools/cursor/config.json +0 -29
  249. package/.aiwf/ai-tools/cursor/template/.cursorrules +0 -362
  250. package/.aiwf/ai-tools/github-copilot/README.md +0 -195
  251. package/.aiwf/ai-tools/github-copilot/config.json +0 -24
  252. package/.aiwf/ai-tools/github-copilot/template/.github/copilot-instructions.md +0 -202
  253. package/.aiwf/ai-tools/windsurf/README.md +0 -355
  254. package/.aiwf/ai-tools/windsurf/config.json +0 -29
  255. package/.aiwf/ai-tools/windsurf/template/.windsurf/aiwf-rules.md +0 -260
  256. package/.aiwf/ai-tools/windsurf/template/.windsurf/windsurf.config.js +0 -312
  257. package/.aiwf/ai-tools/windsurf/template/windsurf.config.json +0 -63
  258. package/.aiwf/config/language.json +0 -6
  259. package/.aiwf/feature-ledger/FL-001-authentication.json +0 -52
  260. package/.aiwf/feature-ledger/feature-index.json +0 -20
  261. package/.aiwf/installed.flag +0 -1
  262. package/.aiwf/metrics/metrics.json +0 -18
  263. package/.aiwf/personas/analyst.json +0 -44
  264. package/.aiwf/personas/architect/best_practices.md +0 -136
  265. package/.aiwf/personas/architect/knowledge_base.md +0 -377
  266. package/.aiwf/personas/architect.json +0 -44
  267. package/.aiwf/personas/backend/best_practices.md +0 -766
  268. package/.aiwf/personas/backend/knowledge_base.md +0 -1070
  269. package/.aiwf/personas/current.json +0 -5
  270. package/.aiwf/personas/data_analyst/best_practices.md +0 -594
  271. package/.aiwf/personas/data_analyst/knowledge_base.md +0 -1057
  272. package/.aiwf/personas/developer.json +0 -44
  273. package/.aiwf/personas/evaluation_criteria.json +0 -137
  274. package/.aiwf/personas/frontend/best_practices.md +0 -445
  275. package/.aiwf/personas/frontend/knowledge_base.md +0 -729
  276. package/.aiwf/personas/persona-index.json +0 -31
  277. package/.aiwf/personas/reviewer.json +0 -44
  278. package/.aiwf/personas/security/best_practices.md +0 -307
  279. package/.aiwf/personas/security/knowledge_base.md +0 -498
  280. package/.aiwf/personas/tester.json +0 -44
  281. package/.aiwf/scripts/cache-templates.js +0 -209
  282. package/.aiwf/scripts/create-offline.js +0 -86
  283. package/.aiwf/scripts/create-project.js +0 -151
  284. package/.aiwf/scripts/feature-progress-calculator.cjs +0 -236
  285. package/.aiwf/scripts/git-integration.cjs +0 -391
  286. package/.aiwf/scripts/install-git-hooks.cjs +0 -226
  287. package/.aiwf/scripts/test-commit-parsing.cjs +0 -125
  288. package/.aiwf/scripts/update-feature-status.cjs +0 -198
  289. package/.aiwf/test-results-s02.json +0 -36
  290. package/.claude/commands/aiwf/aiwf_add_task_to_sprint.md +0 -283
  291. package/.claude/commands/aiwf/aiwf_changelog.md +0 -82
  292. package/.claude/commands/aiwf/aiwf_code_review.md +0 -88
  293. package/.claude/commands/aiwf/aiwf_commit.md +0 -160
  294. package/.claude/commands/aiwf/aiwf_compress_aggressive_persona.md +0 -41
  295. package/.claude/commands/aiwf/aiwf_compress_context.md +0 -116
  296. package/.claude/commands/aiwf/aiwf_compress_minimal_persona.md +0 -35
  297. package/.claude/commands/aiwf/aiwf_compress_stats.md +0 -30
  298. package/.claude/commands/aiwf/aiwf_compress_with_persona.md +0 -38
  299. package/.claude/commands/aiwf/aiwf_create_feature_ledger.md +0 -54
  300. package/.claude/commands/aiwf/aiwf_create_general_task.md +0 -147
  301. package/.claude/commands/aiwf/aiwf_create_milestone_plan.md +0 -194
  302. package/.claude/commands/aiwf/aiwf_create_prd.md +0 -280
  303. package/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +0 -189
  304. package/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +0 -121
  305. package/.claude/commands/aiwf/aiwf_default_mode.md +0 -44
  306. package/.claude/commands/aiwf/aiwf_discuss_review.md +0 -29
  307. package/.claude/commands/aiwf/aiwf_do_task.md +0 -109
  308. package/.claude/commands/aiwf/aiwf_docs.md +0 -225
  309. package/.claude/commands/aiwf/aiwf_evaluate.md +0 -79
  310. package/.claude/commands/aiwf/aiwf_get_feature_details.md +0 -78
  311. package/.claude/commands/aiwf/aiwf_infinite.md +0 -202
  312. package/.claude/commands/aiwf/aiwf_initialize.md +0 -134
  313. package/.claude/commands/aiwf/aiwf_install_git_hooks.md +0 -63
  314. package/.claude/commands/aiwf/aiwf_issue_create.md +0 -65
  315. package/.claude/commands/aiwf/aiwf_link_feature_branch.md +0 -43
  316. package/.claude/commands/aiwf/aiwf_link_feature_commit.md +0 -46
  317. package/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +0 -57
  318. package/.claude/commands/aiwf/aiwf_list_features.md +0 -54
  319. package/.claude/commands/aiwf/aiwf_mermaid.md +0 -272
  320. package/.claude/commands/aiwf/aiwf_persona_architect.md +0 -48
  321. package/.claude/commands/aiwf/aiwf_persona_backend.md +0 -37
  322. package/.claude/commands/aiwf/aiwf_persona_data_analyst.md +0 -37
  323. package/.claude/commands/aiwf/aiwf_persona_frontend.md +0 -37
  324. package/.claude/commands/aiwf/aiwf_persona_security.md +0 -48
  325. package/.claude/commands/aiwf/aiwf_persona_status.md +0 -50
  326. package/.claude/commands/aiwf/aiwf_pr_create.md +0 -76
  327. package/.claude/commands/aiwf/aiwf_prime.md +0 -9
  328. package/.claude/commands/aiwf/aiwf_project_review.md +0 -261
  329. package/.claude/commands/aiwf/aiwf_switch_language.md +0 -88
  330. package/.claude/commands/aiwf/aiwf_test.md +0 -124
  331. package/.claude/commands/aiwf/aiwf_testing_review.md +0 -198
  332. package/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +0 -210
  333. package/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +0 -460
  334. package/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +0 -165
  335. package/.claude/commands/aiwf/aiwf_ultrathink_general.md +0 -305
  336. package/.claude/commands/aiwf/aiwf_update_docs_kr.md +0 -25
  337. package/.claude/commands/aiwf/aiwf_update_feature_status.md +0 -53
  338. package/.claude/commands/aiwf/aiwf_yolo.md +0 -300
  339. package/.eslintrc.json +0 -26
  340. package/.prettierrc +0 -10
  341. package/CLAUDE.md +0 -254
  342. package/RELEASE_NOTES_M02.md +0 -177
  343. package/TEST_RECOVERY_PLAN.md +0 -68
  344. package/claude-code/aiwf/en/.aiwf/00_PROJECT_MANIFEST.md +0 -49
  345. package/claude-code/aiwf/en/.aiwf/01_PROJECT_DOCS/ARCHITECTURE.md +0 -55
  346. package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/CLAUDE.md +0 -78
  347. package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/M01_milestone_meta.md +0 -42
  348. package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_AMEND_01_Auth_Flow_Update.md +0 -73
  349. package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_Backend_Setup.md +0 -98
  350. package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/SPECS_API_V1.md +0 -232
  351. package/claude-code/aiwf/en/.aiwf/03_SPRINTS/CLAUDE.md +0 -83
  352. package/claude-code/aiwf/en/.aiwf/03_SPRINTS/S01_M01_Initial_API/S01_sprint_meta.md +0 -49
  353. package/claude-code/aiwf/en/.aiwf/03_SPRINTS/S01_M01_Initial_API/T01_S01_Setup_Project_Structure.md +0 -60
  354. package/claude-code/aiwf/en/.aiwf/04_GENERAL_TASKS/CLAUDE.md +0 -96
  355. package/claude-code/aiwf/en/.aiwf/04_GENERAL_TASKS/T002_API_Rate_Limiting.md +0 -54
  356. package/claude-code/aiwf/en/.aiwf/04_GENERAL_TASKS/TX001_Refactor_Logging_Module.md +0 -58
  357. package/claude-code/aiwf/en/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR001_Chosen_Database_System.md +0 -119
  358. package/claude-code/aiwf/en/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR002_API_Authentication_Method.md +0 -124
  359. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-needs-focus.md +0 -139
  360. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-test-alignment.md +0 -155
  361. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-13-00-50-solid-progress.md +0 -122
  362. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-14-08-30-infrastructure-challenges.md +0 -141
  363. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-16-21-48-critical-foundation-issues.md +0 -177
  364. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-17-15-08-solid-progress.md +0 -149
  365. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/index.json +0 -5
  366. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/sync-index.js +0 -78
  367. package/claude-code/aiwf/en/.aiwf/98_PROMPTS/github_integration.md +0 -130
  368. package/claude-code/aiwf/en/.aiwf/98_PROMPTS/useful-prompts.md +0 -31
  369. package/claude-code/aiwf/en/.aiwf/98_PROMPTS/vibe-front-prompts.md +0 -89
  370. package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/adr_template.md +0 -49
  371. package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/milestone_meta_template.md +0 -25
  372. package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/project_manifest_template.md +0 -39
  373. package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/sprint_meta_template.md +0 -23
  374. package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/task_template.md +0 -36
  375. package/claude-code/aiwf/en/.aiwf/CLAUDE.md +0 -74
  376. package/claude-code/aiwf/en/.aiwf/README.md +0 -97
  377. package/claude-code/aiwf/en/.claude/CLAUDE_BE.md +0 -276
  378. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_changelog.md +0 -82
  379. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_code_review.md +0 -88
  380. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_commit.md +0 -160
  381. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_feature_ledger.md +0 -54
  382. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_general_task.md +0 -147
  383. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_milestone_plan.md +0 -194
  384. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_prd.md +0 -272
  385. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +0 -189
  386. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +0 -121
  387. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_testcase.md +0 -561
  388. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_default_mode.md +0 -66
  389. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_discuss_review.md +0 -29
  390. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_do_task.md +0 -109
  391. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_docs.md +0 -225
  392. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_get_feature_details.md +0 -78
  393. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_infinite.md +0 -202
  394. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_initialize.md +0 -134
  395. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_issue_create.md +0 -65
  396. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +0 -57
  397. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_list_features.md +0 -54
  398. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_mermaid.md +0 -272
  399. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_architect.md +0 -60
  400. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_backend.md +0 -60
  401. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_data_analyst.md +0 -60
  402. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_frontend.md +0 -60
  403. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_security.md +0 -60
  404. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_status.md +0 -72
  405. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_pr_create.md +0 -76
  406. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_prime.md +0 -9
  407. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_project_review.md +0 -261
  408. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_switch_language.md +0 -160
  409. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_test.md +0 -125
  410. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_testing_review.md +0 -198
  411. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +0 -206
  412. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +0 -460
  413. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +0 -165
  414. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_ultrathink_general.md +0 -362
  415. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_update_feature_status.md +0 -53
  416. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_yolo.md +0 -300
  417. package/claude-code/aiwf/en/.claude/mcp.json +0 -31
  418. package/claude-code/aiwf/en/.claude/settings.json +0 -102
  419. package/claude-code/aiwf/en/commands/ai-persona.js +0 -667
  420. package/claude-code/aiwf/en/commands/compress-context.js +0 -355
  421. package/claude-code/aiwf/en/commands/feature-ledger.js +0 -565
  422. package/claude-code/aiwf/en/commands/feature_commit_report.js +0 -370
  423. package/claude-code/aiwf/en/commands/scan_git_history.js +0 -234
  424. package/claude-code/aiwf/en/commands/sync_feature_commits.js +0 -154
  425. package/claude-code/aiwf/en/commands/token-tracking.js +0 -443
  426. package/claude-code/aiwf/en/config/commit-patterns.js +0 -103
  427. package/claude-code/aiwf/en/hooks/install-hooks.sh +0 -100
  428. package/claude-code/aiwf/en/hooks/post-commit +0 -84
  429. package/claude-code/aiwf/en/tests/compression-test-suite.js +0 -1252
  430. package/claude-code/aiwf/en/tests/test-git-integration.js +0 -164
  431. package/claude-code/aiwf/en/tests/token-tracking.test.js +0 -537
  432. package/claude-code/aiwf/en/utils/compression-metrics.js +0 -1031
  433. package/claude-code/aiwf/en/utils/compression-strategies.js +0 -557
  434. package/claude-code/aiwf/en/utils/content-normalizer.js +0 -455
  435. package/claude-code/aiwf/en/utils/context-compressor.js +0 -583
  436. package/claude-code/aiwf/en/utils/feature-updater.js +0 -271
  437. package/claude-code/aiwf/en/utils/git-utils.js +0 -220
  438. package/claude-code/aiwf/en/utils/importance-classifier.js +0 -645
  439. package/claude-code/aiwf/en/utils/information-filter.js +0 -710
  440. package/claude-code/aiwf/en/utils/text-summarizer.js +0 -487
  441. package/claude-code/aiwf/en/utils/token-counter.js +0 -177
  442. package/claude-code/aiwf/en/utils/token-monitor.js +0 -484
  443. package/claude-code/aiwf/en/utils/token-reporter.js +0 -453
  444. package/claude-code/aiwf/en/utils/token-storage.js +0 -433
  445. package/claude-code/aiwf/en/utils/token-tracker.js +0 -283
  446. package/claude-code/aiwf/ko/.aiwf/00_PROJECT_MANIFEST.md +0 -49
  447. package/claude-code/aiwf/ko/.aiwf/01_PROJECT_DOCS/ARCHITECTURE.md +0 -55
  448. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/CLAUDE.md +0 -78
  449. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/M01_milestone_meta.md +0 -42
  450. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_AMEND_01_Auth_Flow_Update.md +0 -73
  451. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_Backend_Setup.md +0 -98
  452. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/SPECS_API_V1.md +0 -232
  453. package/claude-code/aiwf/ko/.aiwf/03_SPRINTS/CLAUDE.md +0 -83
  454. package/claude-code/aiwf/ko/.aiwf/03_SPRINTS/S01_M01_Initial_API/S01_sprint_meta.md +0 -49
  455. package/claude-code/aiwf/ko/.aiwf/03_SPRINTS/S01_M01_Initial_API/T01_S01_Setup_Project_Structure.md +0 -60
  456. package/claude-code/aiwf/ko/.aiwf/04_GENERAL_TASKS/CLAUDE.md +0 -96
  457. package/claude-code/aiwf/ko/.aiwf/04_GENERAL_TASKS/T002_API_Rate_Limiting.md +0 -54
  458. package/claude-code/aiwf/ko/.aiwf/04_GENERAL_TASKS/TX001_Refactor_Logging_Module.md +0 -58
  459. package/claude-code/aiwf/ko/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR001_Chosen_Database_System.md +0 -119
  460. package/claude-code/aiwf/ko/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR002_API_Authentication_Method.md +0 -124
  461. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_ID_GENERATOR.md +0 -138
  462. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_INDEX.md +0 -186
  463. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_METADATA.md +0 -240
  464. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_WORKFLOW.md +0 -183
  465. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/README.md +0 -94
  466. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/active/FL001_/354/202/254/354/232/251/354/236/220_/354/235/270/354/246/235_/354/213/234/354/212/244/355/205/234.md +0 -154
  467. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/active/FL002_ai_/355/216/230/353/245/264/354/206/214/353/202/230_/354/213/234/354/212/244/355/205/234.md +0 -272
  468. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/completed/FL003_/353/213/244/352/265/255/354/226/264_/353/252/205/353/240/271/354/226/264_/355/221/234/354/244/200/355/231/224.md +0 -266
  469. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/schemas/feature_schema.json +0 -122
  470. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/schemas/feature_validator.cjs +0 -406
  471. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-needs-focus.md +0 -139
  472. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-test-alignment.md +0 -155
  473. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-13-00-50-solid-progress.md +0 -122
  474. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-14-08-30-infrastructure-challenges.md +0 -141
  475. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-16-21-48-critical-foundation-issues.md +0 -177
  476. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-17-15-08-solid-progress.md +0 -149
  477. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/index.json +0 -5
  478. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/sync-index.js +0 -78
  479. package/claude-code/aiwf/ko/.aiwf/98_PROMPTS/github_integration.md +0 -130
  480. package/claude-code/aiwf/ko/.aiwf/98_PROMPTS/useful-prompts.md +0 -31
  481. package/claude-code/aiwf/ko/.aiwf/98_PROMPTS/vibe-front-prompts.md +0 -89
  482. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/adr_template.md +0 -49
  483. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/milestone_meta_template.md +0 -25
  484. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/project_manifest_template.md +0 -39
  485. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/sprint_meta_template.md +0 -23
  486. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/task_template.md +0 -36
  487. package/claude-code/aiwf/ko/.aiwf/CLAUDE.md +0 -76
  488. package/claude-code/aiwf/ko/.aiwf/README.md +0 -97
  489. package/claude-code/aiwf/ko/.claude/CLAUDE_BE.md +0 -276
  490. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_changelog.md +0 -82
  491. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_code_review.md +0 -88
  492. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_commit.md +0 -160
  493. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_aggressive_persona.md +0 -53
  494. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_context.md +0 -116
  495. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_minimal_persona.md +0 -48
  496. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_stats.md +0 -42
  497. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_with_persona.md +0 -51
  498. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_feature_ledger.md +0 -54
  499. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_general_task.md +0 -147
  500. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_milestone_plan.md +0 -194
  501. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_prd.md +0 -280
  502. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +0 -189
  503. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +0 -121
  504. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_testcase.md +0 -561
  505. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_default_mode.md +0 -44
  506. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_discuss_review.md +0 -29
  507. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_do_task.md +0 -109
  508. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_docs.md +0 -225
  509. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_evaluate.md +0 -92
  510. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_get_feature_details.md +0 -78
  511. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_infinite.md +0 -202
  512. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_initialize.md +0 -134
  513. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_issue_create.md +0 -65
  514. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +0 -57
  515. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_list_features.md +0 -54
  516. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_mermaid.md +0 -272
  517. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_architect.md +0 -48
  518. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_backend.md +0 -37
  519. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_data_analyst.md +0 -37
  520. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_frontend.md +0 -37
  521. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_security.md +0 -48
  522. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_status.md +0 -50
  523. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_pr_create.md +0 -76
  524. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_prime.md +0 -9
  525. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_project_review.md +0 -261
  526. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_test.md +0 -124
  527. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_testing_review.md +0 -198
  528. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +0 -210
  529. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +0 -460
  530. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +0 -165
  531. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_ultrathink_general.md +0 -305
  532. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_update_docs.md +0 -25
  533. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_update_feature_status.md +0 -53
  534. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_yolo.md +0 -300
  535. package/claude-code/aiwf/ko/.claude/mcp.json +0 -31
  536. package/claude-code/aiwf/ko/.claude/settings.json +0 -102
  537. package/claude-code/aiwf/ko/CLAUDE.md +0 -76
  538. package/claude-code/aiwf/ko/ai-tools/README.md +0 -105
  539. package/claude-code/aiwf/ko/ai-tools/augment/README.md +0 -371
  540. package/claude-code/aiwf/ko/ai-tools/augment/config.json +0 -30
  541. package/claude-code/aiwf/ko/ai-tools/augment/template/.augment/aiwf-integration.md +0 -387
  542. package/claude-code/aiwf/ko/ai-tools/augment/template/.augment/augment.yaml +0 -347
  543. package/claude-code/aiwf/ko/ai-tools/augment/template/augment.config.json +0 -64
  544. package/claude-code/aiwf/ko/ai-tools/claude-code/README.md +0 -151
  545. package/claude-code/aiwf/ko/ai-tools/claude-code/config.json +0 -28
  546. package/claude-code/aiwf/ko/ai-tools/claude-code/template/CLAUDE.md +0 -91
  547. package/claude-code/aiwf/ko/ai-tools/cursor/README.md +0 -314
  548. package/claude-code/aiwf/ko/ai-tools/cursor/config.json +0 -29
  549. package/claude-code/aiwf/ko/ai-tools/cursor/template/.cursorrules +0 -362
  550. package/claude-code/aiwf/ko/ai-tools/github-copilot/README.md +0 -195
  551. package/claude-code/aiwf/ko/ai-tools/github-copilot/config.json +0 -24
  552. package/claude-code/aiwf/ko/ai-tools/github-copilot/template/.github/copilot-instructions.md +0 -202
  553. package/claude-code/aiwf/ko/ai-tools/windsurf/README.md +0 -355
  554. package/claude-code/aiwf/ko/ai-tools/windsurf/config.json +0 -29
  555. package/claude-code/aiwf/ko/ai-tools/windsurf/template/.windsurf/aiwf-rules.md +0 -260
  556. package/claude-code/aiwf/ko/ai-tools/windsurf/template/.windsurf/windsurf.config.js +0 -312
  557. package/claude-code/aiwf/ko/ai-tools/windsurf/template/windsurf.config.json +0 -63
  558. package/claude-code/aiwf/ko/commands/ai-persona.js +0 -602
  559. package/claude-code/aiwf/ko/commands/compress-context.js +0 -389
  560. package/claude-code/aiwf/ko/commands/evaluate.js +0 -246
  561. package/claude-code/aiwf/ko/commands/feature-ledger.js +0 -565
  562. package/claude-code/aiwf/ko/commands/feature_commit_report.js +0 -370
  563. package/claude-code/aiwf/ko/commands/persona-context-apply.js +0 -562
  564. package/claude-code/aiwf/ko/commands/scan_git_history.js +0 -234
  565. package/claude-code/aiwf/ko/commands/sync_feature_commits.js +0 -154
  566. package/claude-code/aiwf/ko/commands/token-tracking.js +0 -443
  567. package/claude-code/aiwf/ko/config/commit-patterns.js +0 -103
  568. package/claude-code/aiwf/ko/config/language.json +0 -6
  569. package/claude-code/aiwf/ko/feature-ledger/FL-001-authentication.json +0 -52
  570. package/claude-code/aiwf/ko/feature-ledger/feature-index.json +0 -20
  571. package/claude-code/aiwf/ko/hooks/install-hooks.sh +0 -100
  572. package/claude-code/aiwf/ko/hooks/post-commit +0 -84
  573. package/claude-code/aiwf/ko/personas/PERSONA_INDEX.md +0 -57
  574. package/claude-code/aiwf/ko/personas/analyst.json +0 -44
  575. package/claude-code/aiwf/ko/personas/architect/best_practices.md +0 -136
  576. package/claude-code/aiwf/ko/personas/architect/knowledge_base.md +0 -377
  577. package/claude-code/aiwf/ko/personas/architect.json +0 -44
  578. package/claude-code/aiwf/ko/personas/backend/best_practices.md +0 -766
  579. package/claude-code/aiwf/ko/personas/backend/knowledge_base.md +0 -1070
  580. package/claude-code/aiwf/ko/personas/data_analyst/best_practices.md +0 -594
  581. package/claude-code/aiwf/ko/personas/data_analyst/knowledge_base.md +0 -1057
  582. package/claude-code/aiwf/ko/personas/developer.json +0 -44
  583. package/claude-code/aiwf/ko/personas/developer.md +0 -37
  584. package/claude-code/aiwf/ko/personas/evaluation_criteria.json +0 -137
  585. package/claude-code/aiwf/ko/personas/frontend/best_practices.md +0 -445
  586. package/claude-code/aiwf/ko/personas/frontend/knowledge_base.md +0 -729
  587. package/claude-code/aiwf/ko/personas/persona-index.json +0 -31
  588. package/claude-code/aiwf/ko/personas/reviewer.json +0 -44
  589. package/claude-code/aiwf/ko/personas/security/best_practices.md +0 -307
  590. package/claude-code/aiwf/ko/personas/security/knowledge_base.md +0 -498
  591. package/claude-code/aiwf/ko/personas/tester.json +0 -44
  592. package/claude-code/aiwf/ko/scripts/cache-templates.js +0 -209
  593. package/claude-code/aiwf/ko/scripts/create-offline.js +0 -86
  594. package/claude-code/aiwf/ko/scripts/create-project.js +0 -151
  595. package/claude-code/aiwf/ko/scripts/feature-progress-calculator.cjs +0 -236
  596. package/claude-code/aiwf/ko/scripts/git-integration.cjs +0 -391
  597. package/claude-code/aiwf/ko/scripts/install-git-hooks.cjs +0 -226
  598. package/claude-code/aiwf/ko/scripts/test-commit-parsing.cjs +0 -125
  599. package/claude-code/aiwf/ko/scripts/update-feature-status.cjs +0 -198
  600. package/claude-code/aiwf/ko/templates/README.md +0 -78
  601. package/claude-code/aiwf/ko/templates/api-server/config.json +0 -64
  602. package/claude-code/aiwf/ko/templates/api-server/template/.aiwf/config.json +0 -56
  603. package/claude-code/aiwf/ko/templates/api-server/template/.aiwf/feature-ledger.json +0 -42
  604. package/claude-code/aiwf/ko/templates/api-server/template/.aiwf/personas/backend-engineer.json +0 -40
  605. package/claude-code/aiwf/ko/templates/api-server/template/.aiwf/scripts/cli.js +0 -111
  606. package/claude-code/aiwf/ko/templates/api-server/template/.env.example +0 -29
  607. package/claude-code/aiwf/ko/templates/api-server/template/.eslintrc.json +0 -23
  608. package/claude-code/aiwf/ko/templates/api-server/template/README.md +0 -171
  609. package/claude-code/aiwf/ko/templates/api-server/template/jest.config.js +0 -26
  610. package/claude-code/aiwf/ko/templates/api-server/template/nodemon.json +0 -9
  611. package/claude-code/aiwf/ko/templates/api-server/template/package.json +0 -61
  612. package/claude-code/aiwf/ko/templates/api-server/template/src/app.ts +0 -60
  613. package/claude-code/aiwf/ko/templates/api-server/template/src/config/swagger.ts +0 -38
  614. package/claude-code/aiwf/ko/templates/api-server/template/src/controllers/aiwfController.ts +0 -68
  615. package/claude-code/aiwf/ko/templates/api-server/template/src/controllers/authController.ts +0 -128
  616. package/claude-code/aiwf/ko/templates/api-server/template/src/controllers/statusController.ts +0 -28
  617. package/claude-code/aiwf/ko/templates/api-server/template/src/index.ts +0 -28
  618. package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/aiwfMiddleware.ts +0 -50
  619. package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/authMiddleware.ts +0 -41
  620. package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/errorHandler.ts +0 -42
  621. package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/notFoundHandler.ts +0 -14
  622. package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/requestLogger.ts +0 -20
  623. package/claude-code/aiwf/ko/templates/api-server/template/src/routes/aiwf.ts +0 -42
  624. package/claude-code/aiwf/ko/templates/api-server/template/src/routes/index.ts +0 -13
  625. package/claude-code/aiwf/ko/templates/api-server/template/src/routes/v1/index.ts +0 -67
  626. package/claude-code/aiwf/ko/templates/api-server/template/src/utils/logger.ts +0 -37
  627. package/claude-code/aiwf/ko/templates/api-server/template/tests/app.test.ts +0 -40
  628. package/claude-code/aiwf/ko/templates/api-server/template/tsconfig.json +0 -43
  629. package/claude-code/aiwf/ko/templates/npm-library/config.json +0 -61
  630. package/claude-code/aiwf/ko/templates/npm-library/template/LICENSE +0 -21
  631. package/claude-code/aiwf/ko/templates/npm-library/template/README.md +0 -201
  632. package/claude-code/aiwf/ko/templates/npm-library/template/package.json +0 -78
  633. package/claude-code/aiwf/ko/templates/web-app/config.json +0 -53
  634. package/claude-code/aiwf/ko/templates/web-app/template/.aiwf/config.json +0 -54
  635. package/claude-code/aiwf/ko/templates/web-app/template/.aiwf/feature-ledger.json +0 -37
  636. package/claude-code/aiwf/ko/templates/web-app/template/.aiwf/personas/fullstack-developer.json +0 -40
  637. package/claude-code/aiwf/ko/templates/web-app/template/.aiwf/scripts/cli.js +0 -110
  638. package/claude-code/aiwf/ko/templates/web-app/template/.eslintrc.cjs +0 -20
  639. package/claude-code/aiwf/ko/templates/web-app/template/README.md +0 -151
  640. package/claude-code/aiwf/ko/templates/web-app/template/index.html +0 -14
  641. package/claude-code/aiwf/ko/templates/web-app/template/package.json +0 -44
  642. package/claude-code/aiwf/ko/templates/web-app/template/postcss.config.js +0 -6
  643. package/claude-code/aiwf/ko/templates/web-app/template/public/vite.svg +0 -1
  644. package/claude-code/aiwf/ko/templates/web-app/template/src/App.tsx +0 -21
  645. package/claude-code/aiwf/ko/templates/web-app/template/src/components/Layout.tsx +0 -57
  646. package/claude-code/aiwf/ko/templates/web-app/template/src/components/aiwf/ContextStatus.tsx +0 -107
  647. package/claude-code/aiwf/ko/templates/web-app/template/src/components/aiwf/FeatureLedger.tsx +0 -93
  648. package/claude-code/aiwf/ko/templates/web-app/template/src/components/aiwf/TokenUsage.tsx +0 -71
  649. package/claude-code/aiwf/ko/templates/web-app/template/src/index.css +0 -60
  650. package/claude-code/aiwf/ko/templates/web-app/template/src/main.tsx +0 -10
  651. package/claude-code/aiwf/ko/templates/web-app/template/src/pages/AiwfDashboard.tsx +0 -60
  652. package/claude-code/aiwf/ko/templates/web-app/template/src/pages/HomePage.tsx +0 -89
  653. package/claude-code/aiwf/ko/templates/web-app/template/src/pages/NotFound.tsx +0 -25
  654. package/claude-code/aiwf/ko/templates/web-app/template/src/stores/aiwfStore.ts +0 -126
  655. package/claude-code/aiwf/ko/templates/web-app/template/src/types/global.d.ts +0 -9
  656. package/claude-code/aiwf/ko/templates/web-app/template/src/vite-env.d.ts +0 -1
  657. package/claude-code/aiwf/ko/templates/web-app/template/tailwind.config.js +0 -30
  658. package/claude-code/aiwf/ko/templates/web-app/template/tsconfig.json +0 -37
  659. package/claude-code/aiwf/ko/templates/web-app/template/tsconfig.node.json +0 -10
  660. package/claude-code/aiwf/ko/templates/web-app/template/vite.config.ts +0 -23
  661. package/claude-code/aiwf/ko/tests/compression-test-suite.js +0 -1252
  662. package/claude-code/aiwf/ko/tests/test-git-integration.js +0 -164
  663. package/claude-code/aiwf/ko/tests/token-tracking.test.js +0 -537
  664. package/claude-code/aiwf/ko/utils/background-monitor.js +0 -223
  665. package/claude-code/aiwf/ko/utils/compression-metrics.js +0 -1031
  666. package/claude-code/aiwf/ko/utils/compression-strategies.js +0 -557
  667. package/claude-code/aiwf/ko/utils/content-normalizer.js +0 -455
  668. package/claude-code/aiwf/ko/utils/context-compressor.js +0 -583
  669. package/claude-code/aiwf/ko/utils/context-rule-parser.js +0 -180
  670. package/claude-code/aiwf/ko/utils/context-token-monitor.js +0 -463
  671. package/claude-code/aiwf/ko/utils/context-update-manager.js +0 -502
  672. package/claude-code/aiwf/ko/utils/feature-updater.js +0 -271
  673. package/claude-code/aiwf/ko/utils/git-utils.js +0 -220
  674. package/claude-code/aiwf/ko/utils/importance-classifier.js +0 -645
  675. package/claude-code/aiwf/ko/utils/information-filter.js +0 -710
  676. package/claude-code/aiwf/ko/utils/persona-aware-compressor.js +0 -598
  677. package/claude-code/aiwf/ko/utils/prompt-injector.js +0 -242
  678. package/claude-code/aiwf/ko/utils/simplified-evaluator.js +0 -119
  679. package/claude-code/aiwf/ko/utils/text-summarizer.js +0 -492
  680. package/claude-code/aiwf/ko/utils/token-counter.js +0 -177
  681. package/claude-code/aiwf/ko/utils/token-monitor.js +0 -484
  682. package/claude-code/aiwf/ko/utils/token-reporter.js +0 -453
  683. package/claude-code/aiwf/ko/utils/token-storage.js +0 -433
  684. package/claude-code/aiwf/ko/utils/token-tracker.js +0 -283
  685. package/claude-code/docker/Dockerfile +0 -117
  686. package/jest.config.js +0 -23
  687. package/scripts/update-feature-status.js +0 -70
  688. package/src/commands/feature.js +0 -365
  689. package/tests/application.test.js +0 -260
  690. package/tests/basic.test.js +0 -62
  691. package/tests/commands.test.js +0 -127
  692. package/tests/installer.test.js +0 -129
  693. package/tests/integration/ai-persona-system.test.js +0 -396
  694. package/tests/integration/ai-persona.test.js +0 -390
  695. package/tests/integration/command-integration.test.js +0 -600
  696. package/tests/integration/context-compression.test.js +0 -361
  697. package/tests/integration/feature-ledger.test.js +0 -226
  698. package/tests/integration/git-integration.test.js +0 -307
  699. package/tests/integration/m02-milestone.test.js +0 -420
  700. package/tests/integration/persona-context-application.test.js +0 -508
  701. package/tests/integration/setup.js +0 -174
  702. package/tests/integration/test-persona-aware-compression.js +0 -93
  703. package/tests/integration/test-persona-system/.aiwf/metrics/metrics.json +0 -833
  704. package/tests/integration/test-persona-system/docs/README.md +0 -1
  705. package/tests/integration/test-persona-system/package.json +0 -1
  706. package/tests/integration/test-persona-system/src/auth.js +0 -1
  707. package/tests/integration/test-persona-system/src/index.js +0 -1
  708. package/tests/integration/test-persona-system/test/test.js +0 -1
  709. package/tests/language-utils.test.js +0 -287
  710. package/tests/s02-integration.test.js +0 -422
  711. package/tests/unit/ai-persona-manager.test.js +0 -514
  712. package/tests/unit/sprint-task.test.js +0 -172
@@ -0,0 +1,417 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * AIWF 체크포인트 CLI
5
+ * YOLO λͺ¨λ“œ 체크포인트 관리λ₯Ό μœ„ν•œ λͺ…λ Ήμ–΄ μΈν„°νŽ˜μ΄μŠ€
6
+ */
7
+
8
+ import { Command } from 'commander';
9
+ import chalk from 'chalk';
10
+ import { CheckpointManager } from '../utils/checkpoint-manager.js';
11
+ import fs from 'fs/promises';
12
+ import path from 'path';
13
+
14
+ const program = new Command();
15
+
16
+ program
17
+ .name('aiwf-checkpoint')
18
+ .description('AIWF 체크포인트 관리 도ꡬ')
19
+ .version('0.3.12');
20
+
21
+ // ν”„λ‘œμ νŠΈ 루트 μ°ΎκΈ° 헬퍼
22
+ async function findProjectRoot(startDir = process.cwd()) {
23
+ let currentDir = startDir;
24
+
25
+ while (currentDir !== path.parse(currentDir).root) {
26
+ try {
27
+ await fs.access(path.join(currentDir, '.aiwf'));
28
+ return currentDir;
29
+ } catch {
30
+ currentDir = path.dirname(currentDir);
31
+ }
32
+ }
33
+
34
+ throw new Error('.aiwf 디렉토리λ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€. AIWF ν”„λ‘œμ νŠΈ λ‚΄μ—μ„œ μ‹€ν–‰ν•΄μ£Όμ„Έμš”.');
35
+ }
36
+
37
+ // 체크포인트 λͺ©λ‘ 보기
38
+ program
39
+ .command('list')
40
+ .alias('ls')
41
+ .description('μ‚¬μš© κ°€λŠ₯ν•œ 체크포인트 λͺ©λ‘')
42
+ .option('--limit <n>', 'ν‘œμ‹œν•  체크포인트 수 μ œν•œ', '10')
43
+ .action(async (options) => {
44
+ try {
45
+ const projectRoot = await findProjectRoot();
46
+ const manager = new CheckpointManager(projectRoot);
47
+
48
+ console.log(chalk.bold('πŸ“Š 체크포인트 λͺ©λ‘:'));
49
+ console.log('');
50
+
51
+ const checkpoints = await manager.listCheckpoints();
52
+
53
+ if (checkpoints.length === 0) {
54
+ console.log(chalk.yellow('πŸ“­ μ²΄ν¬ν¬μΈνŠΈκ°€ μ—†μŠ΅λ‹ˆλ‹€.'));
55
+ console.log('');
56
+ console.log(chalk.gray('YOLO λͺ¨λ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄ μžλ™μœΌλ‘œ μ²΄ν¬ν¬μΈνŠΈκ°€ μƒμ„±λ©λ‹ˆλ‹€.'));
57
+ return;
58
+ }
59
+
60
+ const limit = parseInt(options.limit);
61
+ const limitedCheckpoints = checkpoints.slice(0, limit);
62
+
63
+ for (const cp of limitedCheckpoints) {
64
+ const typeIcon = cp.type === 'session_start' ? 'πŸš€' :
65
+ cp.type === 'task_complete' ? 'βœ…' :
66
+ cp.type === 'sprint_complete' ? '🎯' :
67
+ cp.type === 'session_end' ? '🏁' :
68
+ cp.type === 'manual' ? 'πŸ“' : 'πŸ”„';
69
+
70
+ const timeAgo = getTimeAgo(new Date(cp.created));
71
+
72
+ console.log(`${typeIcon} ${chalk.cyan(cp.id)} - ${chalk.yellow(cp.type)}`);
73
+ console.log(` 생성: ${chalk.gray(timeAgo)}`);
74
+ console.log(` νƒœμŠ€ν¬: ${chalk.blue(cp.tasks_completed)}개 μ™„λ£Œ`);
75
+
76
+ if (cp.metadata && Object.keys(cp.metadata).length > 0) {
77
+ console.log(` 메타: ${chalk.gray(JSON.stringify(cp.metadata))}`);
78
+ }
79
+ console.log('');
80
+ }
81
+
82
+ if (checkpoints.length > limit) {
83
+ console.log(chalk.gray(`... 더 λ§Žμ€ μ²΄ν¬ν¬μΈνŠΈκ°€ μžˆμŠ΅λ‹ˆλ‹€ (총 ${checkpoints.length}개)`));
84
+ console.log(chalk.blue(`λͺ¨λ“  체크포인트λ₯Ό 보렀면: aiwf-checkpoint list --limit ${checkpoints.length}`));
85
+ }
86
+
87
+ } catch (error) {
88
+ console.error(chalk.red('❌ 체크포인트 λͺ©λ‘ 쑰회 μ‹€νŒ¨:'), error.message);
89
+ process.exit(1);
90
+ }
91
+ });
92
+
93
+ // μ²΄ν¬ν¬μΈνŠΈμ—μ„œ 볡ꡬ
94
+ program
95
+ .command('restore <checkpointId>')
96
+ .description('μ²΄ν¬ν¬μΈνŠΈμ—μ„œ 볡ꡬ')
97
+ .option('--dry-run', 'μ‹€μ œ 볡ꡬ 없이 미리보기만')
98
+ .action(async (checkpointId, options) => {
99
+ try {
100
+ const projectRoot = await findProjectRoot();
101
+ const manager = new CheckpointManager(projectRoot);
102
+ await manager.initialize();
103
+
104
+ console.log(chalk.blue(`πŸ”„ 체크포인트 ${checkpointId}μ—μ„œ 볡ꡬ 쀑...`));
105
+ console.log('');
106
+
107
+ if (options.dryRun) {
108
+ console.log(chalk.yellow('πŸ” λ“œλΌμ΄λŸ° λͺ¨λ“œ: μ‹€μ œ λ³΅κ΅¬λŠ” μˆ˜ν–‰ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.'));
109
+ console.log('');
110
+ }
111
+
112
+ const result = await manager.restoreFromCheckpoint(checkpointId);
113
+
114
+ if (result.success) {
115
+ console.log(chalk.green('βœ… 체크포인트 볡ꡬ 성곡!'));
116
+ console.log('');
117
+ console.log(chalk.bold('πŸ“Š 볡ꡬ된 μ„Έμ…˜ 정보:'));
118
+ console.log(` μ„Έμ…˜ ID: ${chalk.cyan(result.checkpoint.state_snapshot.session_id)}`);
119
+ console.log(` μŠ€ν”„λ¦°νŠΈ: ${chalk.blue(result.checkpoint.state_snapshot.sprint_id || 'N/A')}`);
120
+ console.log(` λͺ¨λ“œ: ${chalk.yellow(result.checkpoint.state_snapshot.mode || 'N/A')}`);
121
+ console.log('');
122
+
123
+ console.log(chalk.bold('πŸ”„ 재개 κ°€λŠ₯ν•œ μž‘μ—…:'));
124
+ if (result.tasks_to_resume.current) {
125
+ console.log(` ν˜„μž¬ νƒœμŠ€ν¬: ${chalk.cyan(result.tasks_to_resume.current)}`);
126
+ }
127
+ console.log(` μ™„λ£Œλœ νƒœμŠ€ν¬: ${chalk.blue(result.tasks_to_resume.completed.length)}개`);
128
+ console.log(` λ‹€μŒ μž‘μ—…: ${chalk.gray(result.tasks_to_resume.next_task_hint)}`);
129
+ console.log('');
130
+
131
+ if (result.checkpoint.git_info) {
132
+ console.log(chalk.bold('πŸ“‹ Git 정보:'));
133
+ console.log(` 브랜치: ${chalk.cyan(result.checkpoint.git_info.branch)}`);
134
+ console.log(` 컀밋: ${chalk.gray(result.checkpoint.git_info.commit.substring(0, 8))}`);
135
+ console.log('');
136
+ }
137
+
138
+ console.log(chalk.green('πŸš€ 볡ꡬ μ™„λ£Œ! YOLO λͺ¨λ“œλ₯Ό λ‹€μ‹œ μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.'));
139
+
140
+ } else {
141
+ console.error(chalk.red('❌ 체크포인트 볡ꡬ μ‹€νŒ¨'));
142
+ }
143
+
144
+ } catch (error) {
145
+ console.error(chalk.red('❌ 체크포인트 볡ꡬ μ‹€νŒ¨:'), error.message);
146
+ process.exit(1);
147
+ }
148
+ });
149
+
150
+ // 체크포인트 생성
151
+ program
152
+ .command('create [message]')
153
+ .description('μˆ˜λ™ 체크포인트 생성')
154
+ .action(async (message) => {
155
+ try {
156
+ const projectRoot = await findProjectRoot();
157
+ const manager = new CheckpointManager(projectRoot);
158
+ await manager.initialize();
159
+
160
+ const checkpointMessage = message || 'μˆ˜λ™ 체크포인트';
161
+
162
+ console.log(chalk.blue('πŸ“ μˆ˜λ™ 체크포인트 생성 쀑...'));
163
+
164
+ const checkpointId = await manager.createCheckpoint('manual', {
165
+ message: checkpointMessage,
166
+ created_by: 'user'
167
+ });
168
+
169
+ console.log(chalk.green('βœ… 체크포인트 생성 μ™„λ£Œ!'));
170
+ console.log('');
171
+ console.log(`체크포인트 ID: ${chalk.cyan(checkpointId)}`);
172
+ console.log(`λ©”μ‹œμ§€: ${chalk.yellow(checkpointMessage)}`);
173
+ console.log('');
174
+ console.log(chalk.gray('이 μ²΄ν¬ν¬μΈνŠΈμ—μ„œ λ³΅κ΅¬ν•˜λ €λ©΄:'));
175
+ console.log(chalk.blue(`aiwf-checkpoint restore ${checkpointId}`));
176
+
177
+ } catch (error) {
178
+ console.error(chalk.red('❌ 체크포인트 생성 μ‹€νŒ¨:'), error.message);
179
+ process.exit(1);
180
+ }
181
+ });
182
+
183
+ // ν˜„μž¬ μƒνƒœ 보기
184
+ program
185
+ .command('status')
186
+ .description('ν˜„μž¬ YOLO μ„Έμ…˜ μƒνƒœ')
187
+ .action(async () => {
188
+ try {
189
+ const projectRoot = await findProjectRoot();
190
+ const manager = new CheckpointManager(projectRoot);
191
+ await manager.loadState();
192
+
193
+ console.log(chalk.bold('πŸ“Š YOLO μ„Έμ…˜ μƒνƒœ:'));
194
+ console.log('');
195
+
196
+ if (!manager.currentState.session_id) {
197
+ console.log(chalk.yellow('πŸ“­ ν™œμ„± YOLO μ„Έμ…˜μ΄ μ—†μŠ΅λ‹ˆλ‹€.'));
198
+ console.log('');
199
+ console.log(chalk.gray('YOLO λͺ¨λ“œλ₯Ό μ‹œμž‘ν•˜λ €λ©΄:'));
200
+ console.log(chalk.blue('/project:aiwf:yolo'));
201
+ return;
202
+ }
203
+
204
+ console.log(`μ„Έμ…˜ ID: ${chalk.cyan(manager.currentState.session_id)}`);
205
+ console.log(`μ‹œμž‘ μ‹œκ°„: ${chalk.gray(new Date(manager.currentState.started_at).toLocaleString())}`);
206
+ console.log(`μŠ€ν”„λ¦°νŠΈ: ${chalk.blue(manager.currentState.sprint_id || 'N/A')}`);
207
+ console.log(`λͺ¨λ“œ: ${chalk.yellow(manager.currentState.mode || 'N/A')}`);
208
+ console.log('');
209
+
210
+ console.log(chalk.bold('πŸ“ˆ μ§„ν–‰ 상황:'));
211
+ console.log(` μ™„λ£Œλœ νƒœμŠ€ν¬: ${chalk.green(manager.currentState.completed_tasks.length)}개`);
212
+ console.log(` μ‹€νŒ¨ν•œ νƒœμŠ€ν¬: ${chalk.red(manager.currentState.metrics.failed_tasks)}개`);
213
+ console.log(` κ±΄λ„ˆλ›΄ νƒœμŠ€ν¬: ${chalk.yellow(manager.currentState.metrics.skipped_tasks)}개`);
214
+
215
+ if (manager.currentState.current_task) {
216
+ console.log(` ν˜„μž¬ νƒœμŠ€ν¬: ${chalk.cyan(manager.currentState.current_task.id)}`);
217
+ console.log(` μ‹œλ„ 횟수: ${chalk.blue(manager.currentState.current_task.attempts)}회`);
218
+ }
219
+ console.log('');
220
+
221
+ if (manager.currentState.metrics.total_time > 0) {
222
+ console.log(chalk.bold('⏱️ μ„±λŠ₯ μ§€ν‘œ:'));
223
+ console.log(` 총 μ‹€ν–‰ μ‹œκ°„: ${chalk.blue(manager.formatDuration(manager.currentState.metrics.total_time))}`);
224
+ console.log(` 평균 νƒœμŠ€ν¬ μ‹œκ°„: ${chalk.blue(manager.formatDuration(manager.currentState.metrics.avg_task_time))}`);
225
+ console.log('');
226
+ }
227
+
228
+ console.log(chalk.bold('πŸ“Š 체크포인트:'));
229
+ console.log(` μƒμ„±λœ 체크포인트: ${chalk.blue(manager.currentState.checkpoints.length)}개`);
230
+
231
+ if (manager.currentState.checkpoints.length > 0) {
232
+ const latest = manager.currentState.checkpoints[manager.currentState.checkpoints.length - 1];
233
+ console.log(` 졜근 체크포인트: ${chalk.cyan(latest.id)} (${chalk.gray(latest.type)})`);
234
+ }
235
+
236
+ } catch (error) {
237
+ console.error(chalk.red('❌ μƒνƒœ 확인 μ‹€νŒ¨:'), error.message);
238
+ process.exit(1);
239
+ }
240
+ });
241
+
242
+ // 체크포인트 정리
243
+ program
244
+ .command('clean')
245
+ .description('였래된 체크포인트 정리')
246
+ .option('--keep <n>', 'μœ μ§€ν•  체크포인트 수', '10')
247
+ .option('--dry-run', 'μ‹€μ œ μ‚­μ œ 없이 미리보기만')
248
+ .action(async (options) => {
249
+ try {
250
+ const projectRoot = await findProjectRoot();
251
+ const manager = new CheckpointManager(projectRoot);
252
+
253
+ const keepLast = parseInt(options.keep);
254
+
255
+ console.log(chalk.blue(`🧹 체크포인트 정리 쀑... (졜근 ${keepLast}개 μœ μ§€)`));
256
+ console.log('');
257
+
258
+ if (options.dryRun) {
259
+ console.log(chalk.yellow('πŸ” λ“œλΌμ΄λŸ° λͺ¨λ“œ: μ‹€μ œ μ‚­μ œλŠ” μˆ˜ν–‰ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.'));
260
+ console.log('');
261
+
262
+ const checkpoints = await manager.listCheckpoints();
263
+ if (checkpoints.length <= keepLast) {
264
+ console.log(chalk.green('βœ… 정리할 μ²΄ν¬ν¬μΈνŠΈκ°€ μ—†μŠ΅λ‹ˆλ‹€.'));
265
+ } else {
266
+ const toDelete = checkpoints.slice(keepLast);
267
+ console.log(chalk.yellow(`μ‚­μ œ μ˜ˆμ • 체크포인트 (${toDelete.length}개):`));
268
+ for (const cp of toDelete) {
269
+ console.log(` ${chalk.red('πŸ—‘οΈ')} ${chalk.cyan(cp.id)} - ${chalk.gray(cp.type)}`);
270
+ }
271
+ }
272
+ } else {
273
+ await manager.cleanup(keepLast);
274
+ console.log(chalk.green('βœ… 체크포인트 정리 μ™„λ£Œ!'));
275
+ }
276
+
277
+ } catch (error) {
278
+ console.error(chalk.red('❌ 체크포인트 정리 μ‹€νŒ¨:'), error.message);
279
+ process.exit(1);
280
+ }
281
+ });
282
+
283
+ // 체크포인트 리포트 생성
284
+ program
285
+ .command('report')
286
+ .description('ν˜„μž¬ μ„Έμ…˜μ˜ μ§„ν–‰ 상황 리포트 생성')
287
+ .action(async () => {
288
+ try {
289
+ const projectRoot = await findProjectRoot();
290
+ const manager = new CheckpointManager(projectRoot);
291
+ await manager.loadState();
292
+
293
+ console.log(chalk.blue('πŸ“Š μ§„ν–‰ 상황 리포트 생성 쀑...'));
294
+ console.log('');
295
+
296
+ const report = await manager.generateProgressReport();
297
+
298
+ console.log(chalk.bold('🎯 YOLO μ„Έμ…˜ 리포트'));
299
+ console.log(''.padEnd(50, '='));
300
+ console.log('');
301
+
302
+ // μ„Έμ…˜ 정보
303
+ console.log(chalk.bold('πŸ“‹ μ„Έμ…˜ 정보:'));
304
+ console.log(` ID: ${chalk.cyan(report.session.id)}`);
305
+ console.log(` μ‹œμž‘: ${chalk.gray(new Date(report.session.started).toLocaleString())}`);
306
+ console.log(` μŠ€ν”„λ¦°νŠΈ: ${chalk.blue(report.session.sprint || 'N/A')}`);
307
+ console.log(` λͺ¨λ“œ: ${chalk.yellow(report.session.mode || 'N/A')}`);
308
+ console.log('');
309
+
310
+ // μ§„ν–‰ 상황
311
+ console.log(chalk.bold('πŸ“ˆ μ§„ν–‰ 상황:'));
312
+ console.log(` μ™„λ£Œ: ${chalk.green(report.progress.completed)}개`);
313
+ console.log(` μ‹€νŒ¨: ${chalk.red(report.progress.failed)}개`);
314
+ console.log(` κ±΄λ„ˆλœ€: ${chalk.yellow(report.progress.skipped)}개`);
315
+ console.log(` ν˜„μž¬: ${chalk.cyan(report.progress.current)}`);
316
+ console.log('');
317
+
318
+ // μ„±λŠ₯ μ§€ν‘œ
319
+ console.log(chalk.bold('⏱️ μ„±λŠ₯ μ§€ν‘œ:'));
320
+ console.log(` 총 μ‹œκ°„: ${chalk.blue(report.performance.total_time)}`);
321
+ console.log(` 평균 νƒœμŠ€ν¬ μ‹œκ°„: ${chalk.blue(report.performance.avg_task_time)}`);
322
+ console.log(` 성곡λ₯ : ${chalk.green(report.performance.success_rate)}`);
323
+ console.log('');
324
+
325
+ // 체크포인트
326
+ if (report.checkpoints.length > 0) {
327
+ console.log(chalk.bold('πŸ“Š 체크포인트:'));
328
+ for (const cp of report.checkpoints.slice(-5)) { // 졜근 5개만
329
+ const typeIcon = cp.type === 'session_start' ? 'πŸš€' :
330
+ cp.type === 'task_complete' ? 'βœ…' :
331
+ cp.type === 'auto' ? 'πŸ”„' : 'πŸ“';
332
+ console.log(` ${typeIcon} ${chalk.cyan(cp.id)} - ${chalk.gray(cp.type)}`);
333
+ }
334
+ console.log('');
335
+ }
336
+
337
+ // ꢌμž₯사항
338
+ if (report.recommendations.length > 0) {
339
+ console.log(chalk.bold('πŸ’‘ ꢌμž₯사항:'));
340
+ for (const rec of report.recommendations) {
341
+ console.log(` β€’ ${chalk.yellow(rec)}`);
342
+ }
343
+ console.log('');
344
+ }
345
+
346
+ } catch (error) {
347
+ console.error(chalk.red('❌ 리포트 생성 μ‹€νŒ¨:'), error.message);
348
+ process.exit(1);
349
+ }
350
+ });
351
+
352
+ // 도움말 λͺ…λ Ήμ–΄
353
+ program
354
+ .command('help')
355
+ .description('AIWF 체크포인트 λͺ…λ Ήμ–΄ 도움말')
356
+ .action(() => {
357
+ console.log(chalk.bold('πŸ“Š AIWF 체크포인트 CLI 도움말'));
358
+ console.log('');
359
+ console.log(chalk.yellow('πŸ“‹ μ£Όμš” λͺ…λ Ήμ–΄:'));
360
+ console.log('');
361
+ console.log(` ${chalk.cyan('aiwf-checkpoint list')} - 체크포인트 λͺ©λ‘ 보기`);
362
+ console.log(` ${chalk.cyan('aiwf-checkpoint status')} - ν˜„μž¬ μ„Έμ…˜ μƒνƒœ`);
363
+ console.log(` ${chalk.cyan('aiwf-checkpoint restore <id>')} - μ²΄ν¬ν¬μΈνŠΈμ—μ„œ 볡ꡬ`);
364
+ console.log(` ${chalk.cyan('aiwf-checkpoint create [message]')} - μˆ˜λ™ 체크포인트 생성`);
365
+ console.log(` ${chalk.cyan('aiwf-checkpoint clean')} - 였래된 체크포인트 정리`);
366
+ console.log(` ${chalk.cyan('aiwf-checkpoint report')} - μ§„ν–‰ 상황 리포트`);
367
+ console.log('');
368
+ console.log(chalk.yellow('πŸ”§ μœ μš©ν•œ μ˜΅μ…˜:'));
369
+ console.log('');
370
+ console.log(` ${chalk.blue('--dry-run')} - μ‹€μ œ μ‹€ν–‰ 없이 미리보기`);
371
+ console.log(` ${chalk.blue('--limit <n>')} - λͺ©λ‘ ν‘œμ‹œ μ œν•œ`);
372
+ console.log(` ${chalk.blue('--keep <n>')} - 정리 μ‹œ μœ μ§€ν•  개수`);
373
+ console.log('');
374
+ console.log(chalk.yellow('πŸ’‘ μ‚¬μš© μ˜ˆμ‹œ:'));
375
+ console.log('');
376
+ console.log(` ${chalk.gray('# 졜근 μ²΄ν¬ν¬μΈνŠΈμ—μ„œ 볡ꡬ')}`);
377
+ console.log(` ${chalk.blue('aiwf-checkpoint list')}`);
378
+ console.log(` ${chalk.blue('aiwf-checkpoint restore cp_1234567890')}`);
379
+ console.log('');
380
+ console.log(` ${chalk.gray('# μ€‘μš”ν•œ μž‘μ—… μ „ μˆ˜λ™ 체크포인트 생성')}`);
381
+ console.log(` ${chalk.blue('aiwf-checkpoint create "μ£Όμš” λ¦¬νŒ©ν† λ§ μ „"')}`);
382
+ console.log('');
383
+ console.log(` ${chalk.gray('# 였래된 체크포인트 정리')}`);
384
+ console.log(` ${chalk.blue('aiwf-checkpoint clean --keep 5')}`);
385
+ console.log('');
386
+ console.log(chalk.green('πŸ›‘οΈ μ²΄ν¬ν¬μΈνŠΈλŠ” YOLO λͺ¨λ“œ μ‹€ν–‰ 쀑 μžλ™μœΌλ‘œ μƒμ„±λ©λ‹ˆλ‹€!'));
387
+ });
388
+
389
+ // μ‹œκ°„ κ²½κ³Ό 계산 헬퍼
390
+ function getTimeAgo(date) {
391
+ const now = new Date();
392
+ const diffMs = now - date;
393
+ const diffMins = Math.floor(diffMs / 60000);
394
+ const diffHours = Math.floor(diffMins / 60);
395
+ const diffDays = Math.floor(diffHours / 24);
396
+
397
+ if (diffDays > 0) return `${diffDays}일 μ „`;
398
+ if (diffHours > 0) return `${diffHours}μ‹œκ°„ μ „`;
399
+ if (diffMins > 0) return `${diffMins}λΆ„ μ „`;
400
+ return '방금 μ „';
401
+ }
402
+
403
+ // μ—λŸ¬ 핸듀링
404
+ program.on('command:*', () => {
405
+ console.error(chalk.red('❌ μ•Œ 수 μ—†λŠ” λͺ…λ Ήμ–΄μž…λ‹ˆλ‹€.'));
406
+ console.log('');
407
+ console.log(chalk.blue('도움말을 보렀면: aiwf-checkpoint help'));
408
+ process.exit(1);
409
+ });
410
+
411
+ // CLI μ‹€ν–‰
412
+ program.parse(process.argv);
413
+
414
+ // μΈμˆ˜κ°€ μ—†μœΌλ©΄ 도움말 ν‘œμ‹œ
415
+ if (!process.argv.slice(2).length) {
416
+ program.outputHelp();
417
+ }