aiwf 0.3.8 β†’ 0.3.12

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 (711) 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 +30 -3
  25. package/scripts/update-file-lists.js +267 -0
  26. package/src/cli/checkpoint-cli.js +417 -0
  27. package/src/cli/index.js +337 -50
  28. package/src/cli/sprint-cli.js +287 -0
  29. package/src/commands/sprint-independent.js +393 -0
  30. package/src/commands/state-refactored.js +419 -0
  31. package/src/commands/state.js +1164 -0
  32. package/src/commands/yolo-config.js +502 -0
  33. package/src/config/file-lists.js +147 -0
  34. package/src/config/yolo-config-template.yaml +168 -0
  35. package/src/lib/file-downloader.js +7 -72
  36. package/src/lib/github-integration.js +402 -0
  37. package/src/lib/resource-loader-enhanced.js +399 -0
  38. package/src/lib/state/priority-calculator.js +217 -0
  39. package/src/lib/state/state-index.js +155 -0
  40. package/src/lib/state/task-scanner.js +328 -0
  41. package/src/utils/checkpoint-manager.js +425 -0
  42. package/src/utils/engineering-guard.js +389 -0
  43. package/.aiwf/00_PROJECT_MANIFEST.md +0 -420
  44. package/.aiwf/01_PROJECT_DOCS/ARCHITECTURE.md +0 -121
  45. package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_ADVANCED_USE_CASES.md +0 -412
  46. package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_API_REFERENCE.md +0 -361
  47. package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_COMMANDS_GUIDE.md +0 -254
  48. package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_FAQ.md +0 -365
  49. package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_SYSTEM_OVERVIEW.md +0 -305
  50. package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_USER_GUIDE.md +0 -416
  51. 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
  52. package/.aiwf/02_REQUIREMENTS/CLAUDE.md +0 -78
  53. package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/M02_milestone_meta.md +0 -34
  54. package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/PRD_Context_Engineering_Enhancement.md +0 -108
  55. package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/SPECS_AI_Persona_System.md +0 -299
  56. package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/SPECS_Feature_Ledger_System.md +0 -330
  57. package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/SPECS_Token_Optimization.md +0 -833
  58. package/.aiwf/02_REQUIREMENTS/M03_Simone_Integration_Enhancement/M03_milestone_meta.md +0 -55
  59. package/.aiwf/02_REQUIREMENTS/M03_Simone_Integration_Enhancement/SPECS_AIWF_Simplified_Plan.md +0 -221
  60. package/.aiwf/03_SPRINTS/CLAUDE.md +0 -83
  61. package/.aiwf/03_SPRINTS/S01_M02_context_foundation/S01_M02_sprint_meta.md +0 -95
  62. 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
  63. 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
  64. 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
  65. package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX04_S01_Feature_Ledger_/353/254/270/354/204/234/355/231/224.md +0 -114
  66. 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
  67. 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
  68. 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
  69. 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
  70. 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
  71. 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
  72. 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
  73. 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
  74. package/.aiwf/03_SPRINTS/S02_M02_ai_enhancement/S02_M02_sprint_meta.md +0 -107
  75. 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
  76. 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
  77. 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
  78. 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
  79. 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
  80. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/S03_FINAL_SPRINT_SUMMARY.md +0 -137
  81. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/S03_M02_sprint_meta.md +0 -217
  82. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T01_S03_new_test_task.md +0 -39
  83. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T02_S03_first_task.md +0 -39
  84. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T03_S03_test_task.md +0 -39
  85. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T04_S03_task_with_special_characters.md +0 -39
  86. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T05_S03_test.md +0 -39
  87. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T06_S03_test_task.md +0 -39
  88. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T07_S03_next_task.md +0 -39
  89. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T08_S03_next_task.md +0 -39
  90. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T09_S03_new_test_task.md +0 -39
  91. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T100_S03_task_with_special_characters.md +0 -39
  92. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T101_S03_test.md +0 -39
  93. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T102_S03_test_task.md +0 -39
  94. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T103_S03_next_task.md +0 -39
  95. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T104_S03_next_task.md +0 -39
  96. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T105_S03_new_test_task.md +0 -39
  97. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T106_S03_first_task.md +0 -39
  98. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T107_S03_test_task.md +0 -39
  99. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T108_S03_task_with_special_characters.md +0 -39
  100. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T109_S03_test.md +0 -39
  101. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T10_S03_first_task.md +0 -39
  102. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T110_S03_test_task.md +0 -39
  103. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T111_S03_next_task.md +0 -39
  104. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T112_S03_next_task.md +0 -39
  105. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T11_S03_test_task.md +0 -39
  106. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T12_S03_task_with_special_characters.md +0 -39
  107. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T13_S03_test.md +0 -39
  108. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T14_S03_test_task.md +0 -39
  109. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T15_S03_next_task.md +0 -39
  110. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T16_S03_next_task.md +0 -39
  111. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T17_S03_new_test_task.md +0 -39
  112. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T18_S03_first_task.md +0 -39
  113. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T19_S03_test_task.md +0 -39
  114. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T20_S03_task_with_special_characters.md +0 -39
  115. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T21_S03_test.md +0 -39
  116. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T22_S03_test_task.md +0 -39
  117. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T23_S03_next_task.md +0 -39
  118. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T24_S03_next_task.md +0 -39
  119. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T25_S03_new_test_task.md +0 -39
  120. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T26_S03_first_task.md +0 -39
  121. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T27_S03_test_task.md +0 -39
  122. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T28_S03_task_with_special_characters.md +0 -39
  123. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T29_S03_test.md +0 -39
  124. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T30_S03_test_task.md +0 -39
  125. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T31_S03_next_task.md +0 -39
  126. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T32_S03_next_task.md +0 -39
  127. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T33_S03_new_test_task.md +0 -39
  128. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T34_S03_first_task.md +0 -39
  129. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T35_S03_test_task.md +0 -39
  130. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T36_S03_task_with_special_characters.md +0 -39
  131. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T37_S03_test.md +0 -39
  132. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T38_S03_test_task.md +0 -39
  133. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T39_S03_next_task.md +0 -39
  134. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T40_S03_next_task.md +0 -39
  135. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T41_S03_new_test_task.md +0 -39
  136. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T42_S03_first_task.md +0 -39
  137. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T43_S03_test_task.md +0 -39
  138. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T44_S03_task_with_special_characters.md +0 -39
  139. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T45_S03_test.md +0 -39
  140. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T46_S03_test_task.md +0 -39
  141. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T47_S03_next_task.md +0 -39
  142. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T48_S03_next_task.md +0 -39
  143. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T49_S03_new_test_task.md +0 -39
  144. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T50_S03_first_task.md +0 -39
  145. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T51_S03_test_task.md +0 -39
  146. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T52_S03_task_with_special_characters.md +0 -39
  147. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T53_S03_test.md +0 -39
  148. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T54_S03_test_task.md +0 -39
  149. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T55_S03_next_task.md +0 -39
  150. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T56_S03_next_task.md +0 -39
  151. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T57_S03_new_test_task.md +0 -39
  152. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T58_S03_first_task.md +0 -39
  153. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T59_S03_test_task.md +0 -39
  154. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T60_S03_task_with_special_characters.md +0 -39
  155. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T61_S03_test.md +0 -39
  156. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T62_S03_test_task.md +0 -39
  157. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T63_S03_next_task.md +0 -39
  158. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T64_S03_next_task.md +0 -39
  159. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T65_S03_new_test_task.md +0 -39
  160. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T66_S03_first_task.md +0 -39
  161. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T67_S03_test_task.md +0 -39
  162. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T68_S03_task_with_special_characters.md +0 -39
  163. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T69_S03_test.md +0 -39
  164. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T70_S03_test_task.md +0 -39
  165. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T71_S03_next_task.md +0 -39
  166. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T72_S03_next_task.md +0 -39
  167. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T73_S03_new_test_task.md +0 -39
  168. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T74_S03_first_task.md +0 -39
  169. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T75_S03_test_task.md +0 -39
  170. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T76_S03_task_with_special_characters.md +0 -39
  171. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T77_S03_test.md +0 -39
  172. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T78_S03_test_task.md +0 -39
  173. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T79_S03_next_task.md +0 -39
  174. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T80_S03_next_task.md +0 -39
  175. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T81_S03_new_test_task.md +0 -39
  176. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T82_S03_first_task.md +0 -39
  177. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T83_S03_test_task.md +0 -39
  178. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T84_S03_task_with_special_characters.md +0 -39
  179. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T85_S03_test.md +0 -39
  180. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T86_S03_test_task.md +0 -39
  181. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T87_S03_next_task.md +0 -39
  182. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T88_S03_next_task.md +0 -39
  183. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T89_S03_new_test_task.md +0 -39
  184. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T90_S03_first_task.md +0 -39
  185. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T91_S03_test_task.md +0 -39
  186. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T92_S03_task_with_special_characters.md +0 -39
  187. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T93_S03_test.md +0 -39
  188. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T94_S03_test_task.md +0 -39
  189. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T95_S03_next_task.md +0 -39
  190. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T96_S03_next_task.md +0 -39
  191. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T97_S03_new_test_task.md +0 -39
  192. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T98_S03_first_task.md +0 -39
  193. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T99_S03_test_task.md +0 -39
  194. 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
  195. 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
  196. 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
  197. 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
  198. package/.aiwf/04_GENERAL_TASKS/CLAUDE.md +0 -96
  199. package/.aiwf/04_GENERAL_TASKS/TX001_complete_english_translation.md +0 -127
  200. package/.aiwf/06_FEATURE_LEDGERS/FEATURE_GIT_INTEGRATION.md +0 -314
  201. package/.aiwf/06_FEATURE_LEDGERS/FEATURE_INTEGRATION_GUIDE.md +0 -227
  202. package/.aiwf/06_FEATURE_LEDGERS/FEATURE_LEDGER_INDEX.md +0 -23
  203. package/.aiwf/06_FEATURE_LEDGERS/FEATURE_SCHEMA.md +0 -205
  204. package/.aiwf/06_FEATURE_LEDGERS/FEATURE_STATE_DIAGRAM.md +0 -190
  205. package/.aiwf/06_FEATURE_LEDGERS/active/FL001_user_authentication_system.md +0 -47
  206. package/.aiwf/06_FEATURE_LEDGERS/active/FL002_user_authentication_system.md +0 -47
  207. package/.aiwf/07_AI_PERSONAS/PERSONA_INDEX.md +0 -57
  208. package/.aiwf/07_AI_PERSONAS/architect/best_practices.md +0 -104
  209. package/.aiwf/07_AI_PERSONAS/architect/context_rules.md +0 -46
  210. package/.aiwf/07_AI_PERSONAS/architect/knowledge_base.md +0 -235
  211. package/.aiwf/07_AI_PERSONAS/backend/best_practices.md +0 -363
  212. package/.aiwf/07_AI_PERSONAS/backend/context_rules.md +0 -61
  213. package/.aiwf/07_AI_PERSONAS/backend/knowledge_base.md +0 -623
  214. package/.aiwf/07_AI_PERSONAS/data_analyst/best_practices.md +0 -32
  215. package/.aiwf/07_AI_PERSONAS/data_analyst/context_rules.md +0 -43
  216. package/.aiwf/07_AI_PERSONAS/data_analyst/knowledge_base.md +0 -36
  217. package/.aiwf/07_AI_PERSONAS/frontend/best_practices.md +0 -31
  218. package/.aiwf/07_AI_PERSONAS/frontend/context_rules.md +0 -43
  219. package/.aiwf/07_AI_PERSONAS/frontend/knowledge_base.md +0 -32
  220. package/.aiwf/07_AI_PERSONAS/security/best_practices.md +0 -63
  221. package/.aiwf/07_AI_PERSONAS/security/context_rules.md +0 -53
  222. package/.aiwf/07_AI_PERSONAS/security/knowledge_base.md +0 -93
  223. package/.aiwf/10_PERSONAS/active.json +0 -1
  224. package/.aiwf/10_PERSONAS/developer.md +0 -37
  225. package/.aiwf/10_STATE_OF_PROJECT/2025-07-09-07-20-solid-progress.md +0 -144
  226. package/.aiwf/98_PROMPTS/SAAS_DEVELOPMENT_GUIDE.md +0 -302
  227. package/.aiwf/98_PROMPTS/github_integration.md +0 -130
  228. package/.aiwf/98_PROMPTS/useful-prompts.md +0 -31
  229. package/.aiwf/98_PROMPTS/vibe-front-prompts.md +0 -89
  230. package/.aiwf/99_TEMPLATES/adr_template.md +0 -49
  231. package/.aiwf/99_TEMPLATES/feature_template.md +0 -263
  232. package/.aiwf/99_TEMPLATES/milestone_meta_template.md +0 -25
  233. package/.aiwf/99_TEMPLATES/project_manifest_template.md +0 -39
  234. package/.aiwf/99_TEMPLATES/sprint_meta_template.md +0 -23
  235. package/.aiwf/99_TEMPLATES/task_template.md +0 -36
  236. package/.aiwf/CLAUDE.md +0 -76
  237. package/.aiwf/ai-tools/README.md +0 -105
  238. package/.aiwf/ai-tools/augment/README.md +0 -371
  239. package/.aiwf/ai-tools/augment/config.json +0 -30
  240. package/.aiwf/ai-tools/augment/template/.augment/aiwf-integration.md +0 -387
  241. package/.aiwf/ai-tools/augment/template/.augment/augment.yaml +0 -347
  242. package/.aiwf/ai-tools/augment/template/augment.config.json +0 -64
  243. package/.aiwf/ai-tools/claude-code/README.md +0 -151
  244. package/.aiwf/ai-tools/claude-code/config.json +0 -28
  245. package/.aiwf/ai-tools/claude-code/template/CLAUDE.md +0 -91
  246. package/.aiwf/ai-tools/cursor/README.md +0 -314
  247. package/.aiwf/ai-tools/cursor/config.json +0 -29
  248. package/.aiwf/ai-tools/cursor/template/.cursorrules +0 -362
  249. package/.aiwf/ai-tools/github-copilot/README.md +0 -195
  250. package/.aiwf/ai-tools/github-copilot/config.json +0 -24
  251. package/.aiwf/ai-tools/github-copilot/template/.github/copilot-instructions.md +0 -202
  252. package/.aiwf/ai-tools/windsurf/README.md +0 -355
  253. package/.aiwf/ai-tools/windsurf/config.json +0 -29
  254. package/.aiwf/ai-tools/windsurf/template/.windsurf/aiwf-rules.md +0 -260
  255. package/.aiwf/ai-tools/windsurf/template/.windsurf/windsurf.config.js +0 -312
  256. package/.aiwf/ai-tools/windsurf/template/windsurf.config.json +0 -63
  257. package/.aiwf/config/language.json +0 -6
  258. package/.aiwf/feature-ledger/FL-001-authentication.json +0 -52
  259. package/.aiwf/feature-ledger/feature-index.json +0 -20
  260. package/.aiwf/installed.flag +0 -1
  261. package/.aiwf/metrics/metrics.json +0 -18
  262. package/.aiwf/personas/analyst.json +0 -44
  263. package/.aiwf/personas/architect/best_practices.md +0 -136
  264. package/.aiwf/personas/architect/knowledge_base.md +0 -377
  265. package/.aiwf/personas/architect.json +0 -44
  266. package/.aiwf/personas/backend/best_practices.md +0 -766
  267. package/.aiwf/personas/backend/knowledge_base.md +0 -1070
  268. package/.aiwf/personas/current.json +0 -5
  269. package/.aiwf/personas/data_analyst/best_practices.md +0 -594
  270. package/.aiwf/personas/data_analyst/knowledge_base.md +0 -1057
  271. package/.aiwf/personas/developer.json +0 -44
  272. package/.aiwf/personas/evaluation_criteria.json +0 -137
  273. package/.aiwf/personas/frontend/best_practices.md +0 -445
  274. package/.aiwf/personas/frontend/knowledge_base.md +0 -729
  275. package/.aiwf/personas/persona-index.json +0 -31
  276. package/.aiwf/personas/reviewer.json +0 -44
  277. package/.aiwf/personas/security/best_practices.md +0 -307
  278. package/.aiwf/personas/security/knowledge_base.md +0 -498
  279. package/.aiwf/personas/tester.json +0 -44
  280. package/.aiwf/scripts/cache-templates.js +0 -209
  281. package/.aiwf/scripts/create-offline.js +0 -86
  282. package/.aiwf/scripts/create-project.js +0 -151
  283. package/.aiwf/scripts/feature-progress-calculator.cjs +0 -236
  284. package/.aiwf/scripts/git-integration.cjs +0 -391
  285. package/.aiwf/scripts/install-git-hooks.cjs +0 -226
  286. package/.aiwf/scripts/test-commit-parsing.cjs +0 -125
  287. package/.aiwf/scripts/update-feature-status.cjs +0 -198
  288. package/.aiwf/test-results-s02.json +0 -36
  289. package/.claude/commands/aiwf/aiwf_add_task_to_sprint.md +0 -283
  290. package/.claude/commands/aiwf/aiwf_changelog.md +0 -82
  291. package/.claude/commands/aiwf/aiwf_code_review.md +0 -88
  292. package/.claude/commands/aiwf/aiwf_commit.md +0 -160
  293. package/.claude/commands/aiwf/aiwf_compress_aggressive_persona.md +0 -41
  294. package/.claude/commands/aiwf/aiwf_compress_context.md +0 -116
  295. package/.claude/commands/aiwf/aiwf_compress_minimal_persona.md +0 -35
  296. package/.claude/commands/aiwf/aiwf_compress_stats.md +0 -30
  297. package/.claude/commands/aiwf/aiwf_compress_with_persona.md +0 -38
  298. package/.claude/commands/aiwf/aiwf_create_feature_ledger.md +0 -54
  299. package/.claude/commands/aiwf/aiwf_create_general_task.md +0 -147
  300. package/.claude/commands/aiwf/aiwf_create_milestone_plan.md +0 -194
  301. package/.claude/commands/aiwf/aiwf_create_prd.md +0 -280
  302. package/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +0 -189
  303. package/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +0 -121
  304. package/.claude/commands/aiwf/aiwf_default_mode.md +0 -44
  305. package/.claude/commands/aiwf/aiwf_discuss_review.md +0 -29
  306. package/.claude/commands/aiwf/aiwf_do_task.md +0 -109
  307. package/.claude/commands/aiwf/aiwf_docs.md +0 -225
  308. package/.claude/commands/aiwf/aiwf_evaluate.md +0 -79
  309. package/.claude/commands/aiwf/aiwf_get_feature_details.md +0 -78
  310. package/.claude/commands/aiwf/aiwf_infinite.md +0 -202
  311. package/.claude/commands/aiwf/aiwf_initialize.md +0 -134
  312. package/.claude/commands/aiwf/aiwf_install_git_hooks.md +0 -63
  313. package/.claude/commands/aiwf/aiwf_issue_create.md +0 -65
  314. package/.claude/commands/aiwf/aiwf_link_feature_branch.md +0 -43
  315. package/.claude/commands/aiwf/aiwf_link_feature_commit.md +0 -46
  316. package/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +0 -57
  317. package/.claude/commands/aiwf/aiwf_list_features.md +0 -54
  318. package/.claude/commands/aiwf/aiwf_mermaid.md +0 -272
  319. package/.claude/commands/aiwf/aiwf_persona_architect.md +0 -48
  320. package/.claude/commands/aiwf/aiwf_persona_backend.md +0 -37
  321. package/.claude/commands/aiwf/aiwf_persona_data_analyst.md +0 -37
  322. package/.claude/commands/aiwf/aiwf_persona_frontend.md +0 -37
  323. package/.claude/commands/aiwf/aiwf_persona_security.md +0 -48
  324. package/.claude/commands/aiwf/aiwf_persona_status.md +0 -50
  325. package/.claude/commands/aiwf/aiwf_pr_create.md +0 -76
  326. package/.claude/commands/aiwf/aiwf_prime.md +0 -9
  327. package/.claude/commands/aiwf/aiwf_project_review.md +0 -261
  328. package/.claude/commands/aiwf/aiwf_switch_language.md +0 -88
  329. package/.claude/commands/aiwf/aiwf_test.md +0 -124
  330. package/.claude/commands/aiwf/aiwf_testing_review.md +0 -198
  331. package/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +0 -210
  332. package/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +0 -460
  333. package/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +0 -165
  334. package/.claude/commands/aiwf/aiwf_ultrathink_general.md +0 -305
  335. package/.claude/commands/aiwf/aiwf_update_docs_kr.md +0 -25
  336. package/.claude/commands/aiwf/aiwf_update_feature_status.md +0 -53
  337. package/.claude/commands/aiwf/aiwf_yolo.md +0 -300
  338. package/.eslintrc.json +0 -26
  339. package/.prettierrc +0 -10
  340. package/CLAUDE.md +0 -254
  341. package/RELEASE_NOTES_M02.md +0 -177
  342. package/TEST_RECOVERY_PLAN.md +0 -68
  343. package/claude-code/aiwf/en/.aiwf/00_PROJECT_MANIFEST.md +0 -49
  344. package/claude-code/aiwf/en/.aiwf/01_PROJECT_DOCS/ARCHITECTURE.md +0 -55
  345. package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/CLAUDE.md +0 -78
  346. package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/M01_milestone_meta.md +0 -42
  347. package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_AMEND_01_Auth_Flow_Update.md +0 -73
  348. package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_Backend_Setup.md +0 -98
  349. package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/SPECS_API_V1.md +0 -232
  350. package/claude-code/aiwf/en/.aiwf/03_SPRINTS/CLAUDE.md +0 -83
  351. package/claude-code/aiwf/en/.aiwf/03_SPRINTS/S01_M01_Initial_API/S01_sprint_meta.md +0 -49
  352. package/claude-code/aiwf/en/.aiwf/03_SPRINTS/S01_M01_Initial_API/T01_S01_Setup_Project_Structure.md +0 -60
  353. package/claude-code/aiwf/en/.aiwf/04_GENERAL_TASKS/CLAUDE.md +0 -96
  354. package/claude-code/aiwf/en/.aiwf/04_GENERAL_TASKS/T002_API_Rate_Limiting.md +0 -54
  355. package/claude-code/aiwf/en/.aiwf/04_GENERAL_TASKS/TX001_Refactor_Logging_Module.md +0 -58
  356. package/claude-code/aiwf/en/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR001_Chosen_Database_System.md +0 -119
  357. package/claude-code/aiwf/en/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR002_API_Authentication_Method.md +0 -124
  358. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-needs-focus.md +0 -139
  359. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-test-alignment.md +0 -155
  360. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-13-00-50-solid-progress.md +0 -122
  361. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-14-08-30-infrastructure-challenges.md +0 -141
  362. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-16-21-48-critical-foundation-issues.md +0 -177
  363. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-17-15-08-solid-progress.md +0 -149
  364. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/index.json +0 -5
  365. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/sync-index.js +0 -78
  366. package/claude-code/aiwf/en/.aiwf/98_PROMPTS/github_integration.md +0 -130
  367. package/claude-code/aiwf/en/.aiwf/98_PROMPTS/useful-prompts.md +0 -31
  368. package/claude-code/aiwf/en/.aiwf/98_PROMPTS/vibe-front-prompts.md +0 -89
  369. package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/adr_template.md +0 -49
  370. package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/milestone_meta_template.md +0 -25
  371. package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/project_manifest_template.md +0 -39
  372. package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/sprint_meta_template.md +0 -23
  373. package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/task_template.md +0 -36
  374. package/claude-code/aiwf/en/.aiwf/CLAUDE.md +0 -74
  375. package/claude-code/aiwf/en/.aiwf/README.md +0 -97
  376. package/claude-code/aiwf/en/.claude/CLAUDE_BE.md +0 -276
  377. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_changelog.md +0 -82
  378. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_code_review.md +0 -88
  379. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_commit.md +0 -160
  380. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_feature_ledger.md +0 -54
  381. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_general_task.md +0 -147
  382. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_milestone_plan.md +0 -194
  383. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_prd.md +0 -272
  384. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +0 -189
  385. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +0 -121
  386. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_testcase.md +0 -561
  387. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_default_mode.md +0 -66
  388. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_discuss_review.md +0 -29
  389. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_do_task.md +0 -109
  390. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_docs.md +0 -225
  391. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_get_feature_details.md +0 -78
  392. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_infinite.md +0 -202
  393. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_initialize.md +0 -134
  394. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_issue_create.md +0 -65
  395. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +0 -57
  396. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_list_features.md +0 -54
  397. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_mermaid.md +0 -272
  398. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_architect.md +0 -60
  399. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_backend.md +0 -60
  400. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_data_analyst.md +0 -60
  401. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_frontend.md +0 -60
  402. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_security.md +0 -60
  403. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_status.md +0 -72
  404. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_pr_create.md +0 -76
  405. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_prime.md +0 -9
  406. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_project_review.md +0 -261
  407. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_switch_language.md +0 -160
  408. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_test.md +0 -125
  409. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_testing_review.md +0 -198
  410. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +0 -206
  411. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +0 -460
  412. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +0 -165
  413. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_ultrathink_general.md +0 -362
  414. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_update_feature_status.md +0 -53
  415. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_yolo.md +0 -300
  416. package/claude-code/aiwf/en/.claude/mcp.json +0 -31
  417. package/claude-code/aiwf/en/.claude/settings.json +0 -102
  418. package/claude-code/aiwf/en/commands/ai-persona.js +0 -667
  419. package/claude-code/aiwf/en/commands/compress-context.js +0 -355
  420. package/claude-code/aiwf/en/commands/feature-ledger.js +0 -565
  421. package/claude-code/aiwf/en/commands/feature_commit_report.js +0 -370
  422. package/claude-code/aiwf/en/commands/scan_git_history.js +0 -234
  423. package/claude-code/aiwf/en/commands/sync_feature_commits.js +0 -154
  424. package/claude-code/aiwf/en/commands/token-tracking.js +0 -443
  425. package/claude-code/aiwf/en/config/commit-patterns.js +0 -103
  426. package/claude-code/aiwf/en/hooks/install-hooks.sh +0 -100
  427. package/claude-code/aiwf/en/hooks/post-commit +0 -84
  428. package/claude-code/aiwf/en/tests/compression-test-suite.js +0 -1252
  429. package/claude-code/aiwf/en/tests/test-git-integration.js +0 -164
  430. package/claude-code/aiwf/en/tests/token-tracking.test.js +0 -537
  431. package/claude-code/aiwf/en/utils/compression-metrics.js +0 -1031
  432. package/claude-code/aiwf/en/utils/compression-strategies.js +0 -557
  433. package/claude-code/aiwf/en/utils/content-normalizer.js +0 -455
  434. package/claude-code/aiwf/en/utils/context-compressor.js +0 -583
  435. package/claude-code/aiwf/en/utils/feature-updater.js +0 -271
  436. package/claude-code/aiwf/en/utils/git-utils.js +0 -220
  437. package/claude-code/aiwf/en/utils/importance-classifier.js +0 -645
  438. package/claude-code/aiwf/en/utils/information-filter.js +0 -710
  439. package/claude-code/aiwf/en/utils/text-summarizer.js +0 -487
  440. package/claude-code/aiwf/en/utils/token-counter.js +0 -177
  441. package/claude-code/aiwf/en/utils/token-monitor.js +0 -484
  442. package/claude-code/aiwf/en/utils/token-reporter.js +0 -453
  443. package/claude-code/aiwf/en/utils/token-storage.js +0 -433
  444. package/claude-code/aiwf/en/utils/token-tracker.js +0 -283
  445. package/claude-code/aiwf/ko/.aiwf/00_PROJECT_MANIFEST.md +0 -49
  446. package/claude-code/aiwf/ko/.aiwf/01_PROJECT_DOCS/ARCHITECTURE.md +0 -55
  447. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/CLAUDE.md +0 -78
  448. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/M01_milestone_meta.md +0 -42
  449. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_AMEND_01_Auth_Flow_Update.md +0 -73
  450. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_Backend_Setup.md +0 -98
  451. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/SPECS_API_V1.md +0 -232
  452. package/claude-code/aiwf/ko/.aiwf/03_SPRINTS/CLAUDE.md +0 -83
  453. package/claude-code/aiwf/ko/.aiwf/03_SPRINTS/S01_M01_Initial_API/S01_sprint_meta.md +0 -49
  454. package/claude-code/aiwf/ko/.aiwf/03_SPRINTS/S01_M01_Initial_API/T01_S01_Setup_Project_Structure.md +0 -60
  455. package/claude-code/aiwf/ko/.aiwf/04_GENERAL_TASKS/CLAUDE.md +0 -96
  456. package/claude-code/aiwf/ko/.aiwf/04_GENERAL_TASKS/T002_API_Rate_Limiting.md +0 -54
  457. package/claude-code/aiwf/ko/.aiwf/04_GENERAL_TASKS/TX001_Refactor_Logging_Module.md +0 -58
  458. package/claude-code/aiwf/ko/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR001_Chosen_Database_System.md +0 -119
  459. package/claude-code/aiwf/ko/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR002_API_Authentication_Method.md +0 -124
  460. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_ID_GENERATOR.md +0 -138
  461. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_INDEX.md +0 -186
  462. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_METADATA.md +0 -240
  463. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_WORKFLOW.md +0 -183
  464. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/README.md +0 -94
  465. 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
  466. 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
  467. 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
  468. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/schemas/feature_schema.json +0 -122
  469. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/schemas/feature_validator.cjs +0 -406
  470. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-needs-focus.md +0 -139
  471. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-test-alignment.md +0 -155
  472. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-13-00-50-solid-progress.md +0 -122
  473. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-14-08-30-infrastructure-challenges.md +0 -141
  474. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-16-21-48-critical-foundation-issues.md +0 -177
  475. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-17-15-08-solid-progress.md +0 -149
  476. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/index.json +0 -5
  477. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/sync-index.js +0 -78
  478. package/claude-code/aiwf/ko/.aiwf/98_PROMPTS/github_integration.md +0 -130
  479. package/claude-code/aiwf/ko/.aiwf/98_PROMPTS/useful-prompts.md +0 -31
  480. package/claude-code/aiwf/ko/.aiwf/98_PROMPTS/vibe-front-prompts.md +0 -89
  481. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/adr_template.md +0 -49
  482. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/milestone_meta_template.md +0 -25
  483. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/project_manifest_template.md +0 -39
  484. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/sprint_meta_template.md +0 -23
  485. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/task_template.md +0 -36
  486. package/claude-code/aiwf/ko/.aiwf/CLAUDE.md +0 -76
  487. package/claude-code/aiwf/ko/.aiwf/README.md +0 -97
  488. package/claude-code/aiwf/ko/.claude/CLAUDE_BE.md +0 -276
  489. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_changelog.md +0 -82
  490. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_code_review.md +0 -88
  491. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_commit.md +0 -160
  492. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_aggressive_persona.md +0 -53
  493. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_context.md +0 -116
  494. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_minimal_persona.md +0 -48
  495. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_stats.md +0 -42
  496. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_with_persona.md +0 -51
  497. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_feature_ledger.md +0 -54
  498. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_general_task.md +0 -147
  499. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_milestone_plan.md +0 -194
  500. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_prd.md +0 -280
  501. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +0 -189
  502. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +0 -121
  503. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_testcase.md +0 -561
  504. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_default_mode.md +0 -44
  505. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_discuss_review.md +0 -29
  506. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_do_task.md +0 -109
  507. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_docs.md +0 -225
  508. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_evaluate.md +0 -92
  509. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_get_feature_details.md +0 -78
  510. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_infinite.md +0 -202
  511. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_initialize.md +0 -134
  512. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_issue_create.md +0 -65
  513. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +0 -57
  514. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_list_features.md +0 -54
  515. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_mermaid.md +0 -272
  516. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_architect.md +0 -48
  517. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_backend.md +0 -37
  518. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_data_analyst.md +0 -37
  519. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_frontend.md +0 -37
  520. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_security.md +0 -48
  521. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_status.md +0 -50
  522. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_pr_create.md +0 -76
  523. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_prime.md +0 -9
  524. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_project_review.md +0 -261
  525. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_test.md +0 -124
  526. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_testing_review.md +0 -198
  527. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +0 -210
  528. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +0 -460
  529. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +0 -165
  530. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_ultrathink_general.md +0 -305
  531. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_update_docs.md +0 -25
  532. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_update_feature_status.md +0 -53
  533. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_yolo.md +0 -300
  534. package/claude-code/aiwf/ko/.claude/mcp.json +0 -31
  535. package/claude-code/aiwf/ko/.claude/settings.json +0 -102
  536. package/claude-code/aiwf/ko/CLAUDE.md +0 -76
  537. package/claude-code/aiwf/ko/ai-tools/README.md +0 -105
  538. package/claude-code/aiwf/ko/ai-tools/augment/README.md +0 -371
  539. package/claude-code/aiwf/ko/ai-tools/augment/config.json +0 -30
  540. package/claude-code/aiwf/ko/ai-tools/augment/template/.augment/aiwf-integration.md +0 -387
  541. package/claude-code/aiwf/ko/ai-tools/augment/template/.augment/augment.yaml +0 -347
  542. package/claude-code/aiwf/ko/ai-tools/augment/template/augment.config.json +0 -64
  543. package/claude-code/aiwf/ko/ai-tools/claude-code/README.md +0 -151
  544. package/claude-code/aiwf/ko/ai-tools/claude-code/config.json +0 -28
  545. package/claude-code/aiwf/ko/ai-tools/claude-code/template/CLAUDE.md +0 -91
  546. package/claude-code/aiwf/ko/ai-tools/cursor/README.md +0 -314
  547. package/claude-code/aiwf/ko/ai-tools/cursor/config.json +0 -29
  548. package/claude-code/aiwf/ko/ai-tools/cursor/template/.cursorrules +0 -362
  549. package/claude-code/aiwf/ko/ai-tools/github-copilot/README.md +0 -195
  550. package/claude-code/aiwf/ko/ai-tools/github-copilot/config.json +0 -24
  551. package/claude-code/aiwf/ko/ai-tools/github-copilot/template/.github/copilot-instructions.md +0 -202
  552. package/claude-code/aiwf/ko/ai-tools/windsurf/README.md +0 -355
  553. package/claude-code/aiwf/ko/ai-tools/windsurf/config.json +0 -29
  554. package/claude-code/aiwf/ko/ai-tools/windsurf/template/.windsurf/aiwf-rules.md +0 -260
  555. package/claude-code/aiwf/ko/ai-tools/windsurf/template/.windsurf/windsurf.config.js +0 -312
  556. package/claude-code/aiwf/ko/ai-tools/windsurf/template/windsurf.config.json +0 -63
  557. package/claude-code/aiwf/ko/commands/ai-persona.js +0 -602
  558. package/claude-code/aiwf/ko/commands/compress-context.js +0 -389
  559. package/claude-code/aiwf/ko/commands/evaluate.js +0 -246
  560. package/claude-code/aiwf/ko/commands/feature-ledger.js +0 -565
  561. package/claude-code/aiwf/ko/commands/feature_commit_report.js +0 -370
  562. package/claude-code/aiwf/ko/commands/persona-context-apply.js +0 -562
  563. package/claude-code/aiwf/ko/commands/scan_git_history.js +0 -234
  564. package/claude-code/aiwf/ko/commands/sync_feature_commits.js +0 -154
  565. package/claude-code/aiwf/ko/commands/token-tracking.js +0 -443
  566. package/claude-code/aiwf/ko/config/commit-patterns.js +0 -103
  567. package/claude-code/aiwf/ko/config/language.json +0 -6
  568. package/claude-code/aiwf/ko/feature-ledger/FL-001-authentication.json +0 -52
  569. package/claude-code/aiwf/ko/feature-ledger/feature-index.json +0 -20
  570. package/claude-code/aiwf/ko/hooks/install-hooks.sh +0 -100
  571. package/claude-code/aiwf/ko/hooks/post-commit +0 -84
  572. package/claude-code/aiwf/ko/personas/PERSONA_INDEX.md +0 -57
  573. package/claude-code/aiwf/ko/personas/analyst.json +0 -44
  574. package/claude-code/aiwf/ko/personas/architect/best_practices.md +0 -136
  575. package/claude-code/aiwf/ko/personas/architect/knowledge_base.md +0 -377
  576. package/claude-code/aiwf/ko/personas/architect.json +0 -44
  577. package/claude-code/aiwf/ko/personas/backend/best_practices.md +0 -766
  578. package/claude-code/aiwf/ko/personas/backend/knowledge_base.md +0 -1070
  579. package/claude-code/aiwf/ko/personas/data_analyst/best_practices.md +0 -594
  580. package/claude-code/aiwf/ko/personas/data_analyst/knowledge_base.md +0 -1057
  581. package/claude-code/aiwf/ko/personas/developer.json +0 -44
  582. package/claude-code/aiwf/ko/personas/developer.md +0 -37
  583. package/claude-code/aiwf/ko/personas/evaluation_criteria.json +0 -137
  584. package/claude-code/aiwf/ko/personas/frontend/best_practices.md +0 -445
  585. package/claude-code/aiwf/ko/personas/frontend/knowledge_base.md +0 -729
  586. package/claude-code/aiwf/ko/personas/persona-index.json +0 -31
  587. package/claude-code/aiwf/ko/personas/reviewer.json +0 -44
  588. package/claude-code/aiwf/ko/personas/security/best_practices.md +0 -307
  589. package/claude-code/aiwf/ko/personas/security/knowledge_base.md +0 -498
  590. package/claude-code/aiwf/ko/personas/tester.json +0 -44
  591. package/claude-code/aiwf/ko/scripts/cache-templates.js +0 -209
  592. package/claude-code/aiwf/ko/scripts/create-offline.js +0 -86
  593. package/claude-code/aiwf/ko/scripts/create-project.js +0 -151
  594. package/claude-code/aiwf/ko/scripts/feature-progress-calculator.cjs +0 -236
  595. package/claude-code/aiwf/ko/scripts/git-integration.cjs +0 -391
  596. package/claude-code/aiwf/ko/scripts/install-git-hooks.cjs +0 -226
  597. package/claude-code/aiwf/ko/scripts/test-commit-parsing.cjs +0 -125
  598. package/claude-code/aiwf/ko/scripts/update-feature-status.cjs +0 -198
  599. package/claude-code/aiwf/ko/templates/README.md +0 -78
  600. package/claude-code/aiwf/ko/templates/api-server/config.json +0 -64
  601. package/claude-code/aiwf/ko/templates/api-server/template/.aiwf/config.json +0 -56
  602. package/claude-code/aiwf/ko/templates/api-server/template/.aiwf/feature-ledger.json +0 -42
  603. package/claude-code/aiwf/ko/templates/api-server/template/.aiwf/personas/backend-engineer.json +0 -40
  604. package/claude-code/aiwf/ko/templates/api-server/template/.aiwf/scripts/cli.js +0 -111
  605. package/claude-code/aiwf/ko/templates/api-server/template/.env.example +0 -29
  606. package/claude-code/aiwf/ko/templates/api-server/template/.eslintrc.json +0 -23
  607. package/claude-code/aiwf/ko/templates/api-server/template/README.md +0 -171
  608. package/claude-code/aiwf/ko/templates/api-server/template/jest.config.js +0 -26
  609. package/claude-code/aiwf/ko/templates/api-server/template/nodemon.json +0 -9
  610. package/claude-code/aiwf/ko/templates/api-server/template/package.json +0 -61
  611. package/claude-code/aiwf/ko/templates/api-server/template/src/app.ts +0 -60
  612. package/claude-code/aiwf/ko/templates/api-server/template/src/config/swagger.ts +0 -38
  613. package/claude-code/aiwf/ko/templates/api-server/template/src/controllers/aiwfController.ts +0 -68
  614. package/claude-code/aiwf/ko/templates/api-server/template/src/controllers/authController.ts +0 -128
  615. package/claude-code/aiwf/ko/templates/api-server/template/src/controllers/statusController.ts +0 -28
  616. package/claude-code/aiwf/ko/templates/api-server/template/src/index.ts +0 -28
  617. package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/aiwfMiddleware.ts +0 -50
  618. package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/authMiddleware.ts +0 -41
  619. package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/errorHandler.ts +0 -42
  620. package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/notFoundHandler.ts +0 -14
  621. package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/requestLogger.ts +0 -20
  622. package/claude-code/aiwf/ko/templates/api-server/template/src/routes/aiwf.ts +0 -42
  623. package/claude-code/aiwf/ko/templates/api-server/template/src/routes/index.ts +0 -13
  624. package/claude-code/aiwf/ko/templates/api-server/template/src/routes/v1/index.ts +0 -67
  625. package/claude-code/aiwf/ko/templates/api-server/template/src/utils/logger.ts +0 -37
  626. package/claude-code/aiwf/ko/templates/api-server/template/tests/app.test.ts +0 -40
  627. package/claude-code/aiwf/ko/templates/api-server/template/tsconfig.json +0 -43
  628. package/claude-code/aiwf/ko/templates/npm-library/config.json +0 -61
  629. package/claude-code/aiwf/ko/templates/npm-library/template/LICENSE +0 -21
  630. package/claude-code/aiwf/ko/templates/npm-library/template/README.md +0 -201
  631. package/claude-code/aiwf/ko/templates/npm-library/template/package.json +0 -78
  632. package/claude-code/aiwf/ko/templates/web-app/config.json +0 -53
  633. package/claude-code/aiwf/ko/templates/web-app/template/.aiwf/config.json +0 -54
  634. package/claude-code/aiwf/ko/templates/web-app/template/.aiwf/feature-ledger.json +0 -37
  635. package/claude-code/aiwf/ko/templates/web-app/template/.aiwf/personas/fullstack-developer.json +0 -40
  636. package/claude-code/aiwf/ko/templates/web-app/template/.aiwf/scripts/cli.js +0 -110
  637. package/claude-code/aiwf/ko/templates/web-app/template/.eslintrc.cjs +0 -20
  638. package/claude-code/aiwf/ko/templates/web-app/template/README.md +0 -151
  639. package/claude-code/aiwf/ko/templates/web-app/template/index.html +0 -14
  640. package/claude-code/aiwf/ko/templates/web-app/template/package.json +0 -44
  641. package/claude-code/aiwf/ko/templates/web-app/template/postcss.config.js +0 -6
  642. package/claude-code/aiwf/ko/templates/web-app/template/public/vite.svg +0 -1
  643. package/claude-code/aiwf/ko/templates/web-app/template/src/App.tsx +0 -21
  644. package/claude-code/aiwf/ko/templates/web-app/template/src/components/Layout.tsx +0 -57
  645. package/claude-code/aiwf/ko/templates/web-app/template/src/components/aiwf/ContextStatus.tsx +0 -107
  646. package/claude-code/aiwf/ko/templates/web-app/template/src/components/aiwf/FeatureLedger.tsx +0 -93
  647. package/claude-code/aiwf/ko/templates/web-app/template/src/components/aiwf/TokenUsage.tsx +0 -71
  648. package/claude-code/aiwf/ko/templates/web-app/template/src/index.css +0 -60
  649. package/claude-code/aiwf/ko/templates/web-app/template/src/main.tsx +0 -10
  650. package/claude-code/aiwf/ko/templates/web-app/template/src/pages/AiwfDashboard.tsx +0 -60
  651. package/claude-code/aiwf/ko/templates/web-app/template/src/pages/HomePage.tsx +0 -89
  652. package/claude-code/aiwf/ko/templates/web-app/template/src/pages/NotFound.tsx +0 -25
  653. package/claude-code/aiwf/ko/templates/web-app/template/src/stores/aiwfStore.ts +0 -126
  654. package/claude-code/aiwf/ko/templates/web-app/template/src/types/global.d.ts +0 -9
  655. package/claude-code/aiwf/ko/templates/web-app/template/src/vite-env.d.ts +0 -1
  656. package/claude-code/aiwf/ko/templates/web-app/template/tailwind.config.js +0 -30
  657. package/claude-code/aiwf/ko/templates/web-app/template/tsconfig.json +0 -37
  658. package/claude-code/aiwf/ko/templates/web-app/template/tsconfig.node.json +0 -10
  659. package/claude-code/aiwf/ko/templates/web-app/template/vite.config.ts +0 -23
  660. package/claude-code/aiwf/ko/tests/compression-test-suite.js +0 -1252
  661. package/claude-code/aiwf/ko/tests/test-git-integration.js +0 -164
  662. package/claude-code/aiwf/ko/tests/token-tracking.test.js +0 -537
  663. package/claude-code/aiwf/ko/utils/background-monitor.js +0 -223
  664. package/claude-code/aiwf/ko/utils/compression-metrics.js +0 -1031
  665. package/claude-code/aiwf/ko/utils/compression-strategies.js +0 -557
  666. package/claude-code/aiwf/ko/utils/content-normalizer.js +0 -455
  667. package/claude-code/aiwf/ko/utils/context-compressor.js +0 -583
  668. package/claude-code/aiwf/ko/utils/context-rule-parser.js +0 -180
  669. package/claude-code/aiwf/ko/utils/context-token-monitor.js +0 -463
  670. package/claude-code/aiwf/ko/utils/context-update-manager.js +0 -502
  671. package/claude-code/aiwf/ko/utils/feature-updater.js +0 -271
  672. package/claude-code/aiwf/ko/utils/git-utils.js +0 -220
  673. package/claude-code/aiwf/ko/utils/importance-classifier.js +0 -645
  674. package/claude-code/aiwf/ko/utils/information-filter.js +0 -710
  675. package/claude-code/aiwf/ko/utils/persona-aware-compressor.js +0 -598
  676. package/claude-code/aiwf/ko/utils/prompt-injector.js +0 -242
  677. package/claude-code/aiwf/ko/utils/simplified-evaluator.js +0 -119
  678. package/claude-code/aiwf/ko/utils/text-summarizer.js +0 -492
  679. package/claude-code/aiwf/ko/utils/token-counter.js +0 -177
  680. package/claude-code/aiwf/ko/utils/token-monitor.js +0 -484
  681. package/claude-code/aiwf/ko/utils/token-reporter.js +0 -453
  682. package/claude-code/aiwf/ko/utils/token-storage.js +0 -433
  683. package/claude-code/aiwf/ko/utils/token-tracker.js +0 -283
  684. package/claude-code/docker/Dockerfile +0 -117
  685. package/jest.config.js +0 -23
  686. package/scripts/update-feature-status.js +0 -70
  687. package/src/commands/feature.js +0 -365
  688. package/tests/application.test.js +0 -260
  689. package/tests/basic.test.js +0 -62
  690. package/tests/commands.test.js +0 -127
  691. package/tests/installer.test.js +0 -129
  692. package/tests/integration/ai-persona-system.test.js +0 -396
  693. package/tests/integration/ai-persona.test.js +0 -390
  694. package/tests/integration/command-integration.test.js +0 -600
  695. package/tests/integration/context-compression.test.js +0 -361
  696. package/tests/integration/feature-ledger.test.js +0 -226
  697. package/tests/integration/git-integration.test.js +0 -307
  698. package/tests/integration/m02-milestone.test.js +0 -420
  699. package/tests/integration/persona-context-application.test.js +0 -508
  700. package/tests/integration/setup.js +0 -174
  701. package/tests/integration/test-persona-aware-compression.js +0 -93
  702. package/tests/integration/test-persona-system/.aiwf/metrics/metrics.json +0 -833
  703. package/tests/integration/test-persona-system/docs/README.md +0 -1
  704. package/tests/integration/test-persona-system/package.json +0 -1
  705. package/tests/integration/test-persona-system/src/auth.js +0 -1
  706. package/tests/integration/test-persona-system/src/index.js +0 -1
  707. package/tests/integration/test-persona-system/test/test.js +0 -1
  708. package/tests/language-utils.test.js +0 -287
  709. package/tests/s02-integration.test.js +0 -422
  710. package/tests/unit/ai-persona-manager.test.js +0 -514
  711. package/tests/unit/sprint-task.test.js +0 -172
@@ -0,0 +1,267 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * AIWF 파일 λͺ©λ‘ μžλ™ μ—…λ°μ΄νŠΈ 슀크립트
5
+ *
6
+ * 이 μŠ€ν¬λ¦½νŠΈλŠ” claude-code 디렉토리λ₯Ό μŠ€μΊ”ν•˜μ—¬
7
+ * src/config/file-lists.js νŒŒμΌμ„ μžλ™μœΌλ‘œ μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€.
8
+ *
9
+ * μ‚¬μš©λ²•:
10
+ * npm run update:file-lists
11
+ * npm run update:file-lists -- --dry-run # 미리보기만
12
+ */
13
+
14
+ import fs from 'fs/promises';
15
+ import path from 'path';
16
+ import { fileURLToPath } from 'url';
17
+ import chalk from 'chalk';
18
+
19
+ const __filename = fileURLToPath(import.meta.url);
20
+ const __dirname = path.dirname(__filename);
21
+ const ROOT_DIR = path.resolve(__dirname, '..');
22
+
23
+ // μŠ€μΊ”ν•  디렉토리 κ²½λ‘œλ“€
24
+ const SCAN_PATHS = {
25
+ commands: {
26
+ en: path.join(ROOT_DIR, 'claude-code/aiwf/en/.claude/commands/aiwf'),
27
+ ko: path.join(ROOT_DIR, 'claude-code/aiwf/ko/.claude/commands/aiwf')
28
+ },
29
+ globalRules: path.join(ROOT_DIR, 'rules/global'),
30
+ manualRules: path.join(ROOT_DIR, 'rules/manual')
31
+ };
32
+
33
+ const OUTPUT_FILE = path.join(ROOT_DIR, 'src/config/file-lists.js');
34
+
35
+ /**
36
+ * λ””λ ‰ν† λ¦¬μ—μ„œ .md νŒŒμΌλ“€μ„ μŠ€μΊ”
37
+ */
38
+ async function scanDirectory(dirPath) {
39
+ try {
40
+ const files = await fs.readdir(dirPath);
41
+ return files
42
+ .filter(file => file.endsWith('.md'))
43
+ .sort();
44
+ } catch (error) {
45
+ console.warn(chalk.yellow(`Warning: Could not scan directory ${dirPath}: ${error.message}`));
46
+ return [];
47
+ }
48
+ }
49
+
50
+ /**
51
+ * 두 μ–Έμ–΄ λ²„μ „μ—μ„œ κ³΅ν†΅μœΌλ‘œ μ‘΄μž¬ν•˜λŠ” νŒŒμΌλ“€λ§Œ μΆ”μΆœ
52
+ */
53
+ async function getCommonCommandFiles() {
54
+ const [enFiles, koFiles] = await Promise.all([
55
+ scanDirectory(SCAN_PATHS.commands.en),
56
+ scanDirectory(SCAN_PATHS.commands.ko)
57
+ ]);
58
+
59
+ // 두 언어에 λͺ¨λ‘ μ‘΄μž¬ν•˜λŠ” νŒŒμΌλ“€λ§Œ 포함
60
+ const commonFiles = enFiles.filter(file => koFiles.includes(file));
61
+
62
+ // 언어별 특수 νŒŒμΌλ“€λ„ 포함 (선택적)
63
+ const enOnlyFiles = enFiles.filter(file => !koFiles.includes(file));
64
+ const koOnlyFiles = koFiles.filter(file => !enFiles.includes(file));
65
+
66
+ console.log(chalk.blue('πŸ“Š Command Files Analysis:'));
67
+ console.log(` Common files: ${chalk.green(commonFiles.length)}`);
68
+ console.log(` English only: ${chalk.yellow(enOnlyFiles.length)} ${enOnlyFiles.length > 0 ? `(${enOnlyFiles.join(', ')})` : ''}`);
69
+ console.log(` Korean only: ${chalk.yellow(koOnlyFiles.length)} ${koOnlyFiles.length > 0 ? `(${koOnlyFiles.join(', ')})` : ''}`);
70
+
71
+ // 곡톡 νŒŒμΌλ“€ + 언어별 특수 νŒŒμΌλ“€μ„ λͺ¨λ‘ 포함
72
+ return [...commonFiles, ...enOnlyFiles, ...koOnlyFiles].sort();
73
+ }
74
+
75
+ /**
76
+ * file-lists.js 파일 생성
77
+ */
78
+ async function generateFileListsContent(commandFiles, globalRulesFiles, manualRulesFiles) {
79
+ const template = `/**
80
+ * AIWF μ„€μΉ˜ μ‹œ λ‹€μš΄λ‘œλ“œν•  파일 λͺ©λ‘λ“€
81
+ * 이 νŒŒμΌμ€ GitHubμ—μ„œ λ‹€μš΄λ‘œλ“œν•  νŒŒμΌλ“€μ˜ 사전 μ •μ˜λœ λͺ©λ‘μ„ ν¬ν•¨ν•©λ‹ˆλ‹€.
82
+ *
83
+ * ⚠️ 이 νŒŒμΌμ€ μžλ™ μƒμ„±λ©λ‹ˆλ‹€. μˆ˜λ™μœΌλ‘œ νŽΈμ§‘ν•˜μ§€ λ§ˆμ„Έμš”!
84
+ * μ—…λ°μ΄νŠΈν•˜λ €λ©΄: npm run update:file-lists
85
+ *
86
+ * Generated at: ${new Date().toISOString()}
87
+ */
88
+
89
+ // Claude Code λͺ…λ Ήμ–΄ 파일 λͺ©λ‘ (ν•œκ΅­μ–΄μ™€ μ˜μ–΄ 곡톡)
90
+ export const COMMAND_FILES = [
91
+ ${commandFiles.map(file => ` '${file}'`).join(',\n')}
92
+ ];
93
+
94
+ // κΈ€λ‘œλ²Œ λ£° 파일 λͺ©λ‘
95
+ export const GLOBAL_RULES_FILES = [
96
+ ${globalRulesFiles.map(file => ` '${file}'`).join(',\n')}
97
+ ];
98
+
99
+ // μˆ˜λ™ λ£° 파일 λͺ©λ‘
100
+ export const MANUAL_RULES_FILES = [
101
+ ${manualRulesFiles.map(file => ` '${file}'`).join(',\n')}
102
+ ];
103
+
104
+ // ν…œν”Œλ¦Ώ 파일 λͺ©λ‘ (ν–₯ν›„ μΆ”κ°€ μ˜ˆμ •)
105
+ export const TEMPLATE_FILES = [
106
+ // ν…œν”Œλ¦Ώ νŒŒμΌλ“€μ΄ μΆ”κ°€λ˜λ©΄ 여기에 λ‚˜μ—΄
107
+ ];
108
+
109
+ // ν”„λ‘¬ν”„νŠΈ 파일 λͺ©λ‘ (ν–₯ν›„ μΆ”κ°€ μ˜ˆμ •)
110
+ export const PROMPT_FILES = [
111
+ // ν”„λ‘¬ν”„νŠΈ νŒŒμΌλ“€μ΄ μΆ”κ°€λ˜λ©΄ 여기에 λ‚˜μ—΄
112
+ ];
113
+
114
+ // λͺ¨λ“  파일 λͺ©λ‘μ„ ν•˜λ‚˜μ˜ 객체둜 export
115
+ export const FILE_LISTS = {
116
+ COMMAND_FILES,
117
+ GLOBAL_RULES_FILES,
118
+ MANUAL_RULES_FILES,
119
+ TEMPLATE_FILES,
120
+ PROMPT_FILES
121
+ };
122
+
123
+ // κ°œλ³„ μΉ΄ν…Œκ³ λ¦¬λ³„ 파일 수 정보
124
+ export const FILE_COUNTS = {
125
+ commands: COMMAND_FILES.length,
126
+ globalRules: GLOBAL_RULES_FILES.length,
127
+ manualRules: MANUAL_RULES_FILES.length,
128
+ templates: TEMPLATE_FILES.length,
129
+ prompts: PROMPT_FILES.length,
130
+ total: COMMAND_FILES.length + GLOBAL_RULES_FILES.length + MANUAL_RULES_FILES.length + TEMPLATE_FILES.length + PROMPT_FILES.length
131
+ };
132
+
133
+ /**
134
+ * νŠΉμ • μ–Έμ–΄μ˜ 파일 쑴재 μ—¬λΆ€ 확인을 μœ„ν•œ 헬퍼 ν•¨μˆ˜λ“€
135
+ */
136
+
137
+ /**
138
+ * μ–Έμ–΄λ³„λ‘œ μ‘΄μž¬ν•˜μ§€ μ•Šμ„ 수 μžˆλŠ” νŒŒμΌλ“€μ„ 필터링
139
+ * @param {Array<string>} fileList - 원본 파일 λͺ©λ‘
140
+ * @param {string} language - μ–Έμ–΄ μ½”λ“œ (ko, en)
141
+ * @returns {Array<string>} ν•„ν„°λ§λœ 파일 λͺ©λ‘
142
+ */
143
+ export function filterFilesByLanguage(fileList, language) {
144
+ // 일뢀 νŒŒμΌλ“€μ€ νŠΉμ • μ–Έμ–΄μ—λ§Œ μ‘΄μž¬ν•  수 있음
145
+ const languageSpecificFiles = {
146
+ ko: [
147
+ // ν•œκ΅­μ–΄μ—λ§Œ μžˆλŠ” νŒŒμΌλ“€ (ν˜„μž¬λŠ” μ—†μŒ)
148
+ ],
149
+ en: [
150
+ // μ˜μ–΄μ—λ§Œ μžˆλŠ” νŒŒμΌλ“€ (ν˜„μž¬λŠ” μ—†μŒ)
151
+ ]
152
+ };
153
+
154
+ // ν˜„μž¬λŠ” λͺ¨λ“  파일이 두 μ–Έμ–΄ λͺ¨λ‘ μ‘΄μž¬ν•œλ‹€κ³  κ°€μ •
155
+ return fileList;
156
+ }
157
+
158
+ /**
159
+ * 파일 λͺ©λ‘ μ—…λ°μ΄νŠΈλ₯Ό μœ„ν•œ 헬퍼 ν•¨μˆ˜
160
+ * μ‹€μ œ 디렉토리λ₯Ό μŠ€μΊ”ν•˜μ—¬ 파일 λͺ©λ‘μ„ μ—…λ°μ΄νŠΈν•  수 μžˆλŠ” ν•¨μˆ˜
161
+ */
162
+ export function getLatestFileList() {
163
+ // 이 ν•¨μˆ˜λŠ” ν–₯ν›„ μžλ™ μ—…λ°μ΄νŠΈ κΈ°λŠ₯ κ΅¬ν˜„ μ‹œ μ‚¬μš©
164
+ return {
165
+ commands: COMMAND_FILES,
166
+ globalRules: GLOBAL_RULES_FILES,
167
+ manualRules: MANUAL_RULES_FILES,
168
+ templates: TEMPLATE_FILES,
169
+ prompts: PROMPT_FILES
170
+ };
171
+ }`;
172
+
173
+ return template;
174
+ }
175
+
176
+ /**
177
+ * κΈ°μ‘΄ 파일과 λΉ„κ΅ν•˜μ—¬ 변경사항 확인
178
+ */
179
+ async function compareWithExisting(newContent) {
180
+ try {
181
+ const existingContent = await fs.readFile(OUTPUT_FILE, 'utf-8');
182
+
183
+ // 생성 μ‹œκ°„ 라인 μ œμ™Έν•˜κ³  비ꡐ (Generated at: λΆ€λΆ„)
184
+ const normalizeContent = (content) => {
185
+ return content.replace(/Generated at: .*$/m, 'Generated at: <timestamp>');
186
+ };
187
+
188
+ return normalizeContent(existingContent) === normalizeContent(newContent);
189
+ } catch {
190
+ return false; // 파일이 μ—†μœΌλ©΄ 변경사항이 μžˆλ‹€κ³  κ°„μ£Ό
191
+ }
192
+ }
193
+
194
+ /**
195
+ * 메인 μ‹€ν–‰ ν•¨μˆ˜
196
+ */
197
+ async function main() {
198
+ const isDryRun = process.argv.includes('--dry-run');
199
+ const isVerbose = process.argv.includes('--verbose');
200
+
201
+ console.log(chalk.blue.bold('πŸ”„ AIWF File Lists Update Script'));
202
+ console.log(chalk.gray(`Scanning directories and updating file lists...\n`));
203
+
204
+ try {
205
+ // 각 디렉토리 μŠ€μΊ”
206
+ const [commandFiles, globalRulesFiles, manualRulesFiles] = await Promise.all([
207
+ getCommonCommandFiles(),
208
+ scanDirectory(SCAN_PATHS.globalRules),
209
+ scanDirectory(SCAN_PATHS.manualRules)
210
+ ]);
211
+
212
+ // 톡계 좜λ ₯
213
+ console.log(chalk.blue('πŸ“Š Scan Results:'));
214
+ console.log(` Command files: ${chalk.green(commandFiles.length)}`);
215
+ console.log(` Global rules: ${chalk.green(globalRulesFiles.length)}`);
216
+ console.log(` Manual rules: ${chalk.green(manualRulesFiles.length)}`);
217
+ console.log(` Total files: ${chalk.green(commandFiles.length + globalRulesFiles.length + manualRulesFiles.length)}`);
218
+
219
+ if (isVerbose) {
220
+ console.log(chalk.gray('\nπŸ“ Detailed file lists:'));
221
+ console.log(chalk.gray('Commands:'), commandFiles.join(', '));
222
+ console.log(chalk.gray('Global rules:'), globalRulesFiles.join(', '));
223
+ console.log(chalk.gray('Manual rules:'), manualRulesFiles.join(', '));
224
+ }
225
+
226
+ // μƒˆ λ‚΄μš© 생성
227
+ const newContent = await generateFileListsContent(commandFiles, globalRulesFiles, manualRulesFiles);
228
+
229
+ // 변경사항 확인
230
+ const hasChanges = !(await compareWithExisting(newContent));
231
+
232
+ if (!hasChanges) {
233
+ console.log(chalk.green('\nβœ… File lists are already up to date!'));
234
+ return;
235
+ }
236
+
237
+ if (isDryRun) {
238
+ console.log(chalk.yellow('\nπŸ” Dry run mode - Changes detected but not saved:'));
239
+ console.log(chalk.gray(`Would update: ${OUTPUT_FILE}`));
240
+ console.log(chalk.gray(`Content length: ${newContent.length} characters`));
241
+ return;
242
+ }
243
+
244
+ // 파일 μ—…λ°μ΄νŠΈ
245
+ await fs.writeFile(OUTPUT_FILE, newContent, 'utf-8');
246
+
247
+ console.log(chalk.green('\nβœ… Successfully updated file lists!'));
248
+ console.log(chalk.gray(`Updated: ${OUTPUT_FILE}`));
249
+ console.log(chalk.blue('\nπŸ’‘ Next steps:'));
250
+ console.log(chalk.gray(' 1. Review the changes: git diff src/config/file-lists.js'));
251
+ console.log(chalk.gray(' 2. Test the changes: npm test'));
252
+ console.log(chalk.gray(' 3. Commit the changes: git add . && git commit -m "update: refresh file lists"'));
253
+
254
+ } catch (error) {
255
+ console.error(chalk.red('\n❌ Error updating file lists:'));
256
+ console.error(chalk.red(error.message));
257
+ console.error(chalk.gray(error.stack));
258
+ process.exit(1);
259
+ }
260
+ }
261
+
262
+ // μŠ€ν¬λ¦½νŠΈκ°€ 직접 싀행될 λ•Œλ§Œ main ν•¨μˆ˜ 호좜
263
+ if (import.meta.url === `file://${process.argv[1]}`) {
264
+ main();
265
+ }
266
+
267
+ export { main as updateFileLists };
@@ -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
+ }