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
package/src/cli/index.js CHANGED
@@ -8,10 +8,13 @@ import PersonaCommand from '../commands/persona.js';
8
8
  import { CacheCLI } from './cache-cli.js';
9
9
  import { addTaskToSprint } from '../commands/sprint-task.js';
10
10
  import CompressCommand from '../commands/compress.js';
11
- import FeatureCommand from '../commands/feature.js';
12
11
  import TokenCommand from '../commands/token.js';
13
12
  import EvaluateCommand from '../commands/evaluate.js';
14
13
  import { createProject } from '../commands/create-project.js';
14
+ import StateCommand from '../commands/state.js';
15
+ import { createIndependentSprint } from '../commands/sprint-independent.js';
16
+ import { CheckpointManager } from '../utils/checkpoint-manager.js';
17
+ import { createYoloConfig, createInteractiveYoloConfig, showYoloConfig } from '../commands/yolo-config.js';
15
18
 
16
19
  // Parse version from package.json
17
20
  import { readFileSync } from 'fs';
@@ -250,55 +253,6 @@ program
250
253
  await compressCmd.execute(args);
251
254
  });
252
255
 
253
- // Feature ledger management commands
254
- const feature = program.command('feature');
255
- feature.description('Manage feature development tracking / 기능 개발 추적 관리');
256
-
257
- feature
258
- .command('list')
259
- .alias('ls')
260
- .description('List all features / 모든 기능 목록')
261
- .action(async () => {
262
- const featureCmd = new FeatureCommand();
263
- await featureCmd.execute(['list']);
264
- });
265
-
266
- feature
267
- .command('create <name> [description...]')
268
- .alias('add')
269
- .description('Create a new feature / 새 기능 생성')
270
- .action(async (name, description) => {
271
- const featureCmd = new FeatureCommand();
272
- const args = ['create', name];
273
- if (description) args.push(...description);
274
- await featureCmd.execute(args);
275
- });
276
-
277
- feature
278
- .command('update <featureId> <status>')
279
- .description('Update feature status / 기능 상태 업데이트')
280
- .action(async (featureId, status) => {
281
- const featureCmd = new FeatureCommand();
282
- await featureCmd.execute(['update', featureId, status]);
283
- });
284
-
285
- feature
286
- .command('status [featureId]')
287
- .description('Show feature status / 기능 상태 표시')
288
- .action(async (featureId) => {
289
- const featureCmd = new FeatureCommand();
290
- const args = ['status'];
291
- if (featureId) args.push(featureId);
292
- await featureCmd.execute(args);
293
- });
294
-
295
- feature
296
- .command('sync')
297
- .description('Sync with git commits / Git 커밋과 동기화')
298
- .action(async () => {
299
- const featureCmd = new FeatureCommand();
300
- await featureCmd.execute(['sync']);
301
- });
302
256
 
303
257
  // Token tracking commands
304
258
  const token = program.command('token');
@@ -391,5 +345,338 @@ evaluate
391
345
  await evaluateCmd.execute(['criteria']);
392
346
  });
393
347
 
348
+ // State management commands
349
+ const state = program.command('state');
350
+ state.description('Manage task state index / 태스크 상태 인덱스 관리');
351
+
352
+ state
353
+ .command('init')
354
+ .description('Initialize state index / 상태 인덱스 초기화')
355
+ .action(async () => {
356
+ const stateCmd = new StateCommand();
357
+ await stateCmd.execute(['init']);
358
+ });
359
+
360
+ state
361
+ .command('update')
362
+ .alias('u')
363
+ .description('Update state index / 상태 인덱스 업데이트')
364
+ .action(async () => {
365
+ const stateCmd = new StateCommand();
366
+ await stateCmd.execute(['update']);
367
+ });
368
+
369
+ state
370
+ .command('show')
371
+ .alias('s')
372
+ .description('Show current state / 현재 상태 표시')
373
+ .action(async () => {
374
+ const stateCmd = new StateCommand();
375
+ await stateCmd.execute(['show']);
376
+ });
377
+
378
+ state
379
+ .command('focus <task-id>')
380
+ .alias('f')
381
+ .description('Focus on a task / 태스크에 포커스')
382
+ .action(async (taskId) => {
383
+ const stateCmd = new StateCommand();
384
+ await stateCmd.execute(['focus', taskId]);
385
+ });
386
+
387
+ state
388
+ .command('complete <task-id>')
389
+ .alias('c')
390
+ .description('Mark task as completed / 태스크 완료 처리')
391
+ .action(async (taskId) => {
392
+ const stateCmd = new StateCommand();
393
+ await stateCmd.execute(['complete', taskId]);
394
+ });
395
+
396
+ state
397
+ .command('next')
398
+ .alias('n')
399
+ .description('Suggest next actions / 다음 작업 제안')
400
+ .action(async () => {
401
+ const stateCmd = new StateCommand();
402
+ await stateCmd.execute(['next']);
403
+ });
404
+
405
+ // Sprint management commands (YOLO focused)
406
+ const sprint = program.command('sprint');
407
+ sprint.description('Independent sprint management / 독립 스프린트 관리');
408
+
409
+ sprint
410
+ .command('independent [name]')
411
+ .alias('ind')
412
+ .description('Create independent sprint / 독립 스프린트 생성')
413
+ .option('--from-readme', 'Extract from README TODOs / README TODO에서 추출')
414
+ .option('--from-issue <number>', 'Create from GitHub issue / GitHub 이슈에서 생성')
415
+ .option('--minimal', 'Minimal engineering level / 최소 엔지니어링 레벨')
416
+ .option('--balanced', 'Balanced engineering level / 균형 엔지니어링 레벨')
417
+ .option('--complete', 'Complete engineering level / 완전 엔지니어링 레벨')
418
+ .option('--description <desc>', 'Sprint description / 스프린트 설명')
419
+ .action(async (name, options) => {
420
+ try {
421
+ console.log(chalk.blue('🚀 독립 스프린트 생성 중...'));
422
+
423
+ // 엔지니어링 레벨 결정
424
+ let engineeringLevel = 'minimal';
425
+ if (options.balanced) engineeringLevel = 'balanced';
426
+ else if (options.complete) engineeringLevel = 'complete';
427
+
428
+ const sprintOptions = {
429
+ name,
430
+ description: options.description,
431
+ engineeringLevel,
432
+ fromReadme: options.fromReadme,
433
+ fromIssue: options.fromIssue,
434
+ minimal: engineeringLevel === 'minimal'
435
+ };
436
+
437
+ const result = await createIndependentSprint(sprintOptions);
438
+
439
+ if (result.success) {
440
+ console.log('');
441
+ console.log(chalk.green('✅ 독립 스프린트 생성 완료!'));
442
+ console.log(` 스프린트 ID: ${chalk.cyan(result.sprintId)}`);
443
+ console.log(` 태스크 수: ${chalk.blue(result.tasks)}개`);
444
+ console.log('');
445
+ console.log(chalk.bold('🚀 다음 단계:'));
446
+ console.log(` Claude Code에서 ${chalk.cyan(`/project:aiwf:yolo ${result.sprintId}`)} 실행`);
447
+ }
448
+ } catch (error) {
449
+ console.error(chalk.red('❌ 독립 스프린트 생성 실패:'), error.message);
450
+ process.exit(1);
451
+ }
452
+ });
453
+
454
+ // YOLO configuration commands
455
+ const yoloConfig = program.command('yolo-config');
456
+ yoloConfig.description('YOLO configuration management / YOLO 설정 관리');
457
+
458
+ yoloConfig
459
+ .command('init')
460
+ .description('Initialize YOLO configuration / YOLO 설정 초기화')
461
+ .option('-f, --force', 'Force overwrite existing config / 기존 설정 덮어쓰기')
462
+ .action(async (options) => {
463
+ try {
464
+ const result = await createYoloConfig(options);
465
+ if (result.success) {
466
+ console.log(chalk.green('✅ YOLO 설정이 초기화되었습니다!'));
467
+ console.log(`📁 위치: ${chalk.cyan(result.configPath)}`);
468
+ } else if (result.skipped) {
469
+ console.log(chalk.yellow('⏭️ 설정 파일이 이미 존재합니다.'));
470
+ }
471
+ } catch (error) {
472
+ console.error(chalk.red('❌ YOLO 설정 초기화 실패:'), error.message);
473
+ process.exit(1);
474
+ }
475
+ });
476
+
477
+ yoloConfig
478
+ .command('wizard')
479
+ .alias('interactive')
480
+ .description('Interactive YOLO configuration wizard / 대화형 YOLO 설정 마법사')
481
+ .action(async () => {
482
+ try {
483
+ const result = await createInteractiveYoloConfig();
484
+ if (!result.success && result.cancelled) {
485
+ process.exit(0);
486
+ }
487
+ } catch (error) {
488
+ console.error(chalk.red('❌ YOLO 설정 마법사 실패:'), error.message);
489
+ process.exit(1);
490
+ }
491
+ });
492
+
493
+ yoloConfig
494
+ .command('show')
495
+ .alias('status')
496
+ .description('Show current YOLO configuration / 현재 YOLO 설정 확인')
497
+ .action(async () => {
498
+ try {
499
+ await showYoloConfig();
500
+ } catch (error) {
501
+ console.error(chalk.red('❌ YOLO 설정 확인 실패:'), error.message);
502
+ process.exit(1);
503
+ }
504
+ });
505
+
506
+ // Checkpoint management commands (YOLO recovery)
507
+ const checkpoint = program.command('checkpoint');
508
+ checkpoint.description('YOLO checkpoint management / YOLO 체크포인트 관리');
509
+
510
+ checkpoint
511
+ .command('list')
512
+ .alias('ls')
513
+ .description('List available checkpoints / 사용 가능한 체크포인트 목록')
514
+ .option('--limit <n>', 'Limit number of checkpoints / 체크포인트 수 제한', '10')
515
+ .action(async (options) => {
516
+ try {
517
+ // 프로젝트 루트 찾기
518
+ const fs = await import('fs/promises');
519
+ const path = await import('path');
520
+ let currentDir = process.cwd();
521
+
522
+ while (currentDir !== path.parse(currentDir).root) {
523
+ try {
524
+ await fs.access(path.join(currentDir, '.aiwf'));
525
+ break;
526
+ } catch {
527
+ currentDir = path.dirname(currentDir);
528
+ }
529
+ }
530
+
531
+ const manager = new CheckpointManager(currentDir);
532
+ const checkpoints = await manager.listCheckpoints();
533
+
534
+ console.log(chalk.bold('📊 체크포인트 목록:'));
535
+ console.log('');
536
+
537
+ if (checkpoints.length === 0) {
538
+ console.log(chalk.yellow('📭 체크포인트가 없습니다.'));
539
+ return;
540
+ }
541
+
542
+ const limit = parseInt(options.limit);
543
+ const limitedCheckpoints = checkpoints.slice(0, limit);
544
+
545
+ for (const cp of limitedCheckpoints) {
546
+ const typeIcon = cp.type === 'session_start' ? '🚀' :
547
+ cp.type === 'task_complete' ? '✅' : '🔄';
548
+ console.log(`${typeIcon} ${chalk.cyan(cp.id)} - ${chalk.yellow(cp.type)}`);
549
+ console.log(` 태스크: ${chalk.blue(cp.tasks_completed)}개 완료`);
550
+ console.log('');
551
+ }
552
+ } catch (error) {
553
+ console.error(chalk.red('❌ 체크포인트 목록 조회 실패:'), error.message);
554
+ process.exit(1);
555
+ }
556
+ });
557
+
558
+ checkpoint
559
+ .command('restore <checkpointId>')
560
+ .description('Restore from checkpoint / 체크포인트에서 복구')
561
+ .action(async (checkpointId) => {
562
+ try {
563
+ const fs = await import('fs/promises');
564
+ const path = await import('path');
565
+ let currentDir = process.cwd();
566
+
567
+ while (currentDir !== path.parse(currentDir).root) {
568
+ try {
569
+ await fs.access(path.join(currentDir, '.aiwf'));
570
+ break;
571
+ } catch {
572
+ currentDir = path.dirname(currentDir);
573
+ }
574
+ }
575
+
576
+ const manager = new CheckpointManager(currentDir);
577
+ await manager.initialize();
578
+
579
+ console.log(chalk.blue(`🔄 체크포인트 ${checkpointId}에서 복구 중...`));
580
+
581
+ const result = await manager.restoreFromCheckpoint(checkpointId);
582
+
583
+ if (result.success) {
584
+ console.log(chalk.green('✅ 체크포인트 복구 성공!'));
585
+ console.log(` 세션 ID: ${chalk.cyan(result.checkpoint.state_snapshot.session_id)}`);
586
+ console.log(` 스프린트: ${chalk.blue(result.checkpoint.state_snapshot.sprint_id || 'N/A')}`);
587
+ console.log('');
588
+ console.log(chalk.green('🚀 복구 완료! YOLO 모드를 다시 실행할 수 있습니다.'));
589
+ }
590
+ } catch (error) {
591
+ console.error(chalk.red('❌ 체크포인트 복구 실패:'), error.message);
592
+ process.exit(1);
593
+ }
594
+ });
595
+
596
+ checkpoint
597
+ .command('status')
598
+ .description('Show current YOLO session status / 현재 YOLO 세션 상태')
599
+ .action(async () => {
600
+ try {
601
+ const fs = await import('fs/promises');
602
+ const path = await import('path');
603
+ let currentDir = process.cwd();
604
+
605
+ while (currentDir !== path.parse(currentDir).root) {
606
+ try {
607
+ await fs.access(path.join(currentDir, '.aiwf'));
608
+ break;
609
+ } catch {
610
+ currentDir = path.dirname(currentDir);
611
+ }
612
+ }
613
+
614
+ const manager = new CheckpointManager(currentDir);
615
+ await manager.loadState();
616
+
617
+ console.log(chalk.bold('📊 YOLO 세션 상태:'));
618
+ console.log('');
619
+
620
+ if (!manager.currentState.session_id) {
621
+ console.log(chalk.yellow('📭 활성 YOLO 세션이 없습니다.'));
622
+ return;
623
+ }
624
+
625
+ console.log(`세션 ID: ${chalk.cyan(manager.currentState.session_id)}`);
626
+ console.log(`스프린트: ${chalk.blue(manager.currentState.sprint_id || 'N/A')}`);
627
+ console.log(`완료된 태스크: ${chalk.green(manager.currentState.completed_tasks.length)}개`);
628
+ console.log(`체크포인트: ${chalk.blue(manager.currentState.checkpoints.length)}개`);
629
+ } catch (error) {
630
+ console.error(chalk.red('❌ 상태 확인 실패:'), error.message);
631
+ process.exit(1);
632
+ }
633
+ });
634
+
635
+ // GitHub integration commands
636
+ const github = program.command('github');
637
+ github.description('GitHub integration / GitHub 통합');
638
+
639
+ github
640
+ .command('issue <task-id>')
641
+ .description('Create GitHub issue from task / 태스크에서 GitHub 이슈 생성')
642
+ .action(async (taskId) => {
643
+ try {
644
+ const { GitHubIntegration } = await import('../lib/github-integration.js');
645
+ const ghIntegration = new GitHubIntegration();
646
+ await ghIntegration.createIssue(taskId);
647
+ } catch (error) {
648
+ console.error(chalk.red(`GitHub issue creation failed: ${error.message}`));
649
+ process.exit(1);
650
+ }
651
+ });
652
+
653
+ github
654
+ .command('pr [task-id]')
655
+ .description('Create pull request for completed task / 완료된 태스크로 PR 생성')
656
+ .action(async (taskId) => {
657
+ try {
658
+ const { GitHubIntegration } = await import('../lib/github-integration.js');
659
+ const ghIntegration = new GitHubIntegration();
660
+ await ghIntegration.createPullRequest(taskId);
661
+ } catch (error) {
662
+ console.error(chalk.red(`Pull request creation failed: ${error.message}`));
663
+ process.exit(1);
664
+ }
665
+ });
666
+
667
+ github
668
+ .command('sync')
669
+ .description('Sync GitHub issues with AIWF tasks / GitHub 이슈와 AIWF 태스크 동기화')
670
+ .action(async () => {
671
+ try {
672
+ const { GitHubIntegration } = await import('../lib/github-integration.js');
673
+ const ghIntegration = new GitHubIntegration();
674
+ await ghIntegration.syncIssues();
675
+ } catch (error) {
676
+ console.error(chalk.red(`GitHub sync failed: ${error.message}`));
677
+ process.exit(1);
678
+ }
679
+ });
680
+
394
681
  // Parse command line arguments
395
682
  program.parse(process.argv);
@@ -0,0 +1,287 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * AIWF 스프린트 CLI
5
+ * 독립 스프린트 생성 및 관리를 위한 명령어 인터페이스
6
+ */
7
+
8
+ import { Command } from 'commander';
9
+ import chalk from 'chalk';
10
+ import { createIndependentSprint } from '../commands/sprint-independent.js';
11
+
12
+ const program = new Command();
13
+
14
+ program
15
+ .name('aiwf-sprint')
16
+ .description('AIWF 독립 스프린트 관리 도구')
17
+ .version('0.3.12');
18
+
19
+ // 독립 스프린트 생성 명령어
20
+ program
21
+ .command('independent [name]')
22
+ .alias('ind')
23
+ .description('독립 스프린트 생성')
24
+ .option('--from-readme', 'README에서 TODO 추출하여 스프린트 생성')
25
+ .option('--from-issue <number>', 'GitHub 이슈에서 스프린트 생성')
26
+ .option('--minimal', '최소 엔지니어링 레벨 설정 (기본값)')
27
+ .option('--balanced', '균형 엔지니어링 레벨 설정')
28
+ .option('--complete', '완전 엔지니어링 레벨 설정')
29
+ .option('--description <desc>', '스프린트 설명')
30
+ .action(async (name, options) => {
31
+ try {
32
+ console.log(chalk.blue('🚀 독립 스프린트 생성 중...'));
33
+ console.log('');
34
+
35
+ // 엔지니어링 레벨 결정
36
+ let engineeringLevel = 'minimal';
37
+ if (options.balanced) engineeringLevel = 'balanced';
38
+ else if (options.complete) engineeringLevel = 'complete';
39
+
40
+ // 옵션 구성
41
+ const sprintOptions = {
42
+ name,
43
+ description: options.description,
44
+ engineeringLevel,
45
+ fromReadme: options.fromReadme,
46
+ fromIssue: options.fromIssue,
47
+ minimal: engineeringLevel === 'minimal'
48
+ };
49
+
50
+ // 독립 스프린트 생성
51
+ const result = await createIndependentSprint(sprintOptions);
52
+
53
+ if (result.success) {
54
+ console.log('');
55
+ console.log(chalk.green('✅ 독립 스프린트 생성 완료!'));
56
+ console.log('');
57
+ console.log(chalk.bold('📋 생성된 스프린트 정보:'));
58
+ console.log(` 스프린트 ID: ${chalk.cyan(result.sprintId)}`);
59
+ console.log(` 태스크 수: ${chalk.blue(result.tasks)}개`);
60
+ console.log('');
61
+ console.log(chalk.bold('🚀 다음 단계:'));
62
+ console.log(` 1. Claude Code에서 ${chalk.cyan(`/project:aiwf:yolo ${result.sprintId}`)} 실행`);
63
+ console.log(` 2. 또는 ${chalk.cyan(`/project:aiwf:yolo --from-independent`)} 실행`);
64
+ console.log('');
65
+ console.log(chalk.gray('💡 팁: YOLO 모드로 전체 스프린트를 자동 완성할 수 있습니다!'));
66
+ }
67
+
68
+ } catch (error) {
69
+ console.error(chalk.red('❌ 독립 스프린트 생성 실패:'), error.message);
70
+ process.exit(1);
71
+ }
72
+ });
73
+
74
+ // 스프린트 목록 보기
75
+ program
76
+ .command('list')
77
+ .alias('ls')
78
+ .description('현재 프로젝트의 모든 스프린트 목록')
79
+ .option('--status <status>', '상태별 필터링 (active, completed, pending)')
80
+ .action(async (options) => {
81
+ try {
82
+ const fs = await import('fs/promises');
83
+ const path = await import('path');
84
+
85
+ // 프로젝트 루트 찾기
86
+ let currentDir = process.cwd();
87
+ while (currentDir !== path.parse(currentDir).root) {
88
+ try {
89
+ await fs.access(path.join(currentDir, '.aiwf'));
90
+ break;
91
+ } catch {
92
+ currentDir = path.dirname(currentDir);
93
+ }
94
+ }
95
+
96
+ const sprintsDir = path.join(currentDir, '.aiwf', '03_SPRINTS');
97
+
98
+ try {
99
+ const entries = await fs.readdir(sprintsDir);
100
+ const sprintDirs = entries.filter(entry => entry.match(/^S\d+_/));
101
+
102
+ if (sprintDirs.length === 0) {
103
+ console.log(chalk.yellow('📭 스프린트가 없습니다.'));
104
+ console.log('');
105
+ console.log(chalk.gray('새 독립 스프린트를 생성하려면:'));
106
+ console.log(chalk.blue(' aiwf-sprint independent "프로젝트 이름"'));
107
+ return;
108
+ }
109
+
110
+ console.log(chalk.bold('📊 스프린트 목록:'));
111
+ console.log('');
112
+
113
+ for (const sprintDir of sprintDirs.sort()) {
114
+ const sprintPath = path.join(sprintsDir, sprintDir);
115
+ const sprintId = sprintDir.match(/^(S\d+)_/)[1];
116
+
117
+ // 스프린트 메타 파일 읽기
118
+ try {
119
+ const metaFiles = (await fs.readdir(sprintPath)).filter(f => f.includes('meta.md'));
120
+ if (metaFiles.length > 0) {
121
+ const metaContent = await fs.readFile(path.join(sprintPath, metaFiles[0]), 'utf-8');
122
+ const statusMatch = metaContent.match(/\*\*상태\*\*:\s*(\w+)/);
123
+ const typeMatch = metaContent.match(/\*\*타입\*\*:\s*([^\n]+)/);
124
+
125
+ const status = statusMatch ? statusMatch[1] : 'unknown';
126
+ const type = typeMatch ? typeMatch[1].trim() : 'normal';
127
+
128
+ // 상태 필터링
129
+ if (options.status && status !== options.status) {
130
+ continue;
131
+ }
132
+
133
+ const statusIcon = status === 'active' ? '🔄' :
134
+ status === 'completed' ? '✅' : '⏳';
135
+ const typeIcon = type.includes('독립') ? '🚀' : '📋';
136
+
137
+ console.log(`${statusIcon} ${typeIcon} ${chalk.cyan(sprintId)} - ${chalk.white(sprintDir.split('_').slice(1).join('_'))}`);
138
+ console.log(` 상태: ${chalk.yellow(status)} | 타입: ${chalk.gray(type)}`);
139
+
140
+ // 태스크 수 계산
141
+ const taskFiles = (await fs.readdir(sprintPath)).filter(f => f.match(/^T\d+_/));
142
+ console.log(` 태스크: ${chalk.blue(taskFiles.length)}개`);
143
+ }
144
+ } catch (error) {
145
+ console.log(`${chalk.red('❌')} ${chalk.cyan(sprintId)} - ${chalk.gray('메타데이터 읽기 실패')}`);
146
+ }
147
+
148
+ console.log('');
149
+ }
150
+
151
+ } catch (error) {
152
+ console.log(chalk.yellow('📭 스프린트 디렉토리가 없습니다.'));
153
+ }
154
+
155
+ } catch (error) {
156
+ console.error(chalk.red('❌ 스프린트 목록 조회 실패:'), error.message);
157
+ process.exit(1);
158
+ }
159
+ });
160
+
161
+ // 스프린트 상태 확인
162
+ program
163
+ .command('status <sprintId>')
164
+ .description('특정 스프린트의 상세 상태 확인')
165
+ .action(async (sprintId) => {
166
+ try {
167
+ const fs = await import('fs/promises');
168
+ const path = await import('path');
169
+
170
+ // 프로젝트 루트 찾기
171
+ let currentDir = process.cwd();
172
+ while (currentDir !== path.parse(currentDir).root) {
173
+ try {
174
+ await fs.access(path.join(currentDir, '.aiwf'));
175
+ break;
176
+ } catch {
177
+ currentDir = path.dirname(currentDir);
178
+ }
179
+ }
180
+
181
+ const sprintsDir = path.join(currentDir, '.aiwf', '03_SPRINTS');
182
+ const entries = await fs.readdir(sprintsDir);
183
+ const sprintDir = entries.find(entry => entry.startsWith(`${sprintId}_`));
184
+
185
+ if (!sprintDir) {
186
+ console.error(chalk.red(`❌ 스프린트 ${sprintId}를 찾을 수 없습니다.`));
187
+ process.exit(1);
188
+ }
189
+
190
+ const sprintPath = path.join(sprintsDir, sprintDir);
191
+
192
+ console.log(chalk.bold(`📊 스프린트 ${sprintId} 상태`));
193
+ console.log('');
194
+
195
+ // 메타 파일 읽기
196
+ const metaFiles = (await fs.readdir(sprintPath)).filter(f => f.includes('meta.md'));
197
+ if (metaFiles.length > 0) {
198
+ const metaContent = await fs.readFile(path.join(sprintPath, metaFiles[0]), 'utf-8');
199
+
200
+ const statusMatch = metaContent.match(/\*\*상태\*\*:\s*(\w+)/);
201
+ const typeMatch = metaContent.match(/\*\*타입\*\*:\s*([^\n]+)/);
202
+ const createdMatch = metaContent.match(/\*\*생성일\*\*:\s*([^\n]+)/);
203
+
204
+ console.log(`상태: ${chalk.yellow(statusMatch ? statusMatch[1] : 'unknown')}`);
205
+ console.log(`타입: ${chalk.blue(typeMatch ? typeMatch[1].trim() : 'normal')}`);
206
+ console.log(`생성일: ${chalk.gray(createdMatch ? createdMatch[1].trim() : 'unknown')}`);
207
+ console.log('');
208
+ }
209
+
210
+ // 태스크 목록
211
+ const taskFiles = (await fs.readdir(sprintPath)).filter(f => f.match(/^T\d+_/));
212
+ console.log(chalk.bold(`📋 태스크 목록 (${taskFiles.length}개):`));
213
+ console.log('');
214
+
215
+ for (const taskFile of taskFiles.sort()) {
216
+ const taskContent = await fs.readFile(path.join(sprintPath, taskFile), 'utf-8');
217
+ const taskId = taskFile.match(/^(T\d+)_/)[1];
218
+ const statusMatch = taskContent.match(/\*\*상태\*\*:\s*(\w+)/);
219
+ const titleMatch = taskContent.match(/^#\s+T\d+:\s*(.+)$/m);
220
+
221
+ const status = statusMatch ? statusMatch[1] : 'pending';
222
+ const title = titleMatch ? titleMatch[1].trim() : taskFile;
223
+
224
+ const statusIcon = status === 'completed' ? '✅' :
225
+ status === 'in_progress' ? '🔄' : '⏳';
226
+
227
+ console.log(`${statusIcon} ${chalk.cyan(taskId)} - ${chalk.white(title)}`);
228
+ console.log(` 상태: ${chalk.yellow(status)}`);
229
+ console.log('');
230
+ }
231
+
232
+ } catch (error) {
233
+ console.error(chalk.red('❌ 스프린트 상태 확인 실패:'), error.message);
234
+ process.exit(1);
235
+ }
236
+ });
237
+
238
+ // 도움말 명령어
239
+ program
240
+ .command('help')
241
+ .description('AIWF 스프린트 명령어 도움말')
242
+ .action(() => {
243
+ console.log(chalk.bold('🚀 AIWF 스프린트 CLI 도움말'));
244
+ console.log('');
245
+ console.log(chalk.yellow('📋 주요 명령어:'));
246
+ console.log('');
247
+ console.log(` ${chalk.cyan('aiwf-sprint independent [name]')} - 독립 스프린트 생성`);
248
+ console.log(` ${chalk.cyan('aiwf-sprint list')} - 스프린트 목록 보기`);
249
+ console.log(` ${chalk.cyan('aiwf-sprint status <id>')} - 스프린트 상태 확인`);
250
+ console.log('');
251
+ console.log(chalk.yellow('🔧 독립 스프린트 옵션:'));
252
+ console.log('');
253
+ console.log(` ${chalk.blue('--from-readme')} - README TODO에서 자동 추출`);
254
+ console.log(` ${chalk.blue('--from-issue <번호>')} - GitHub 이슈에서 생성`);
255
+ console.log(` ${chalk.blue('--minimal')} - 최소 엔지니어링 레벨 (기본값)`);
256
+ console.log(` ${chalk.blue('--balanced')} - 균형 엔지니어링 레벨`);
257
+ console.log(` ${chalk.blue('--complete')} - 완전 엔지니어링 레벨`);
258
+ console.log('');
259
+ console.log(chalk.yellow('💡 사용 예시:'));
260
+ console.log('');
261
+ console.log(` ${chalk.gray('# README TODO로 독립 스프린트 생성')}`);
262
+ console.log(` ${chalk.blue('aiwf-sprint independent --from-readme')}`);
263
+ console.log('');
264
+ console.log(` ${chalk.gray('# GitHub 이슈로 스프린트 생성')}`);
265
+ console.log(` ${chalk.blue('aiwf-sprint independent --from-issue 123')}`);
266
+ console.log('');
267
+ console.log(` ${chalk.gray('# 균형 레벨로 커스텀 스프린트 생성')}`);
268
+ console.log(` ${chalk.blue('aiwf-sprint independent "API 개발" --balanced')}`);
269
+ console.log('');
270
+ console.log(chalk.green('✨ 생성 후 Claude Code에서 `/project:aiwf:yolo [스프린트ID]`로 실행하세요!'));
271
+ });
272
+
273
+ // 에러 핸들링
274
+ program.on('command:*', () => {
275
+ console.error(chalk.red('❌ 알 수 없는 명령어입니다.'));
276
+ console.log('');
277
+ console.log(chalk.blue('도움말을 보려면: aiwf-sprint help'));
278
+ process.exit(1);
279
+ });
280
+
281
+ // CLI 실행
282
+ program.parse(process.argv);
283
+
284
+ // 인수가 없으면 도움말 표시
285
+ if (!process.argv.slice(2).length) {
286
+ program.outputHelp();
287
+ }