aiwf 0.3.7 → 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 (605) 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 +461 -0
  28. package/src/cli/sprint-cli.js +287 -0
  29. package/src/commands/compress.js +60 -0
  30. package/src/commands/create-project.js +23 -17
  31. package/src/commands/evaluate.js +459 -0
  32. package/src/commands/persona.js +37 -16
  33. package/src/commands/sprint-independent.js +393 -0
  34. package/src/commands/state-refactored.js +419 -0
  35. package/src/commands/state.js +1164 -0
  36. package/src/commands/token.js +312 -0
  37. package/src/commands/yolo-config.js +502 -0
  38. package/src/config/file-lists.js +147 -0
  39. package/src/config/yolo-config-template.yaml +168 -0
  40. package/src/lib/file-downloader.js +7 -72
  41. package/src/lib/github-integration.js +402 -0
  42. package/src/lib/resource-loader-enhanced.js +399 -0
  43. package/src/lib/resource-loader.js +250 -0
  44. package/{claude-code/aiwf/ko → src/lib/resources}/commands/ai-persona.js +1 -1
  45. package/src/lib/state/priority-calculator.js +217 -0
  46. package/src/lib/state/state-index.js +155 -0
  47. package/src/lib/state/task-scanner.js +328 -0
  48. package/src/utils/checkpoint-manager.js +425 -0
  49. package/src/utils/engineering-guard.js +389 -0
  50. package/.aiwf/00_PROJECT_MANIFEST.md +0 -196
  51. package/.aiwf/01_PROJECT_DOCS/ARCHITECTURE.md +0 -121
  52. package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_ADVANCED_USE_CASES.md +0 -412
  53. package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_API_REFERENCE.md +0 -361
  54. package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_COMMANDS_GUIDE.md +0 -254
  55. package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_FAQ.md +0 -365
  56. package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_SYSTEM_OVERVIEW.md +0 -305
  57. package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_USER_GUIDE.md +0 -416
  58. 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
  59. package/.aiwf/02_REQUIREMENTS/CLAUDE.md +0 -78
  60. package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/M02_milestone_meta.md +0 -34
  61. package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/PRD_Context_Engineering_Enhancement.md +0 -108
  62. package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/SPECS_AI_Persona_System.md +0 -299
  63. package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/SPECS_Feature_Ledger_System.md +0 -330
  64. package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/SPECS_Token_Optimization.md +0 -833
  65. package/.aiwf/02_REQUIREMENTS/M03_Simone_Integration_Enhancement/M03_milestone_meta.md +0 -55
  66. package/.aiwf/02_REQUIREMENTS/M03_Simone_Integration_Enhancement/SPECS_AIWF_Simplified_Plan.md +0 -221
  67. package/.aiwf/03_SPRINTS/CLAUDE.md +0 -83
  68. package/.aiwf/03_SPRINTS/S01_M02_context_foundation/S01_M02_sprint_meta.md +0 -95
  69. 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
  70. 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
  71. 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
  72. package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX04_S01_Feature_Ledger_/353/254/270/354/204/234/355/231/224.md +0 -114
  73. 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
  74. 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
  75. 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
  76. 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
  77. 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
  78. 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
  79. 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
  80. 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
  81. package/.aiwf/03_SPRINTS/S02_M02_ai_enhancement/S02_M02_sprint_meta.md +0 -107
  82. 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
  83. 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
  84. 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
  85. 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
  86. 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
  87. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/S03_FINAL_SPRINT_SUMMARY.md +0 -137
  88. package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/S03_M02_sprint_meta.md +0 -105
  89. 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
  90. 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
  91. 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
  92. 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
  93. package/.aiwf/04_GENERAL_TASKS/CLAUDE.md +0 -96
  94. package/.aiwf/04_GENERAL_TASKS/TX001_complete_english_translation.md +0 -127
  95. package/.aiwf/06_FEATURE_LEDGERS/FEATURE_GIT_INTEGRATION.md +0 -314
  96. package/.aiwf/06_FEATURE_LEDGERS/FEATURE_INTEGRATION_GUIDE.md +0 -227
  97. package/.aiwf/06_FEATURE_LEDGERS/FEATURE_LEDGER_INDEX.md +0 -23
  98. package/.aiwf/06_FEATURE_LEDGERS/FEATURE_SCHEMA.md +0 -205
  99. package/.aiwf/06_FEATURE_LEDGERS/FEATURE_STATE_DIAGRAM.md +0 -190
  100. package/.aiwf/06_FEATURE_LEDGERS/active/FL001_user_authentication_system.md +0 -47
  101. package/.aiwf/06_FEATURE_LEDGERS/active/FL002_user_authentication_system.md +0 -47
  102. package/.aiwf/07_AI_PERSONAS/architect/best_practices.md +0 -104
  103. package/.aiwf/07_AI_PERSONAS/architect/context_rules.md +0 -46
  104. package/.aiwf/07_AI_PERSONAS/architect/knowledge_base.md +0 -235
  105. package/.aiwf/07_AI_PERSONAS/backend/best_practices.md +0 -363
  106. package/.aiwf/07_AI_PERSONAS/backend/context_rules.md +0 -61
  107. package/.aiwf/07_AI_PERSONAS/backend/knowledge_base.md +0 -623
  108. package/.aiwf/07_AI_PERSONAS/data_analyst/best_practices.md +0 -32
  109. package/.aiwf/07_AI_PERSONAS/data_analyst/context_rules.md +0 -43
  110. package/.aiwf/07_AI_PERSONAS/data_analyst/knowledge_base.md +0 -36
  111. package/.aiwf/07_AI_PERSONAS/frontend/best_practices.md +0 -31
  112. package/.aiwf/07_AI_PERSONAS/frontend/context_rules.md +0 -43
  113. package/.aiwf/07_AI_PERSONAS/frontend/knowledge_base.md +0 -32
  114. package/.aiwf/07_AI_PERSONAS/security/best_practices.md +0 -63
  115. package/.aiwf/07_AI_PERSONAS/security/context_rules.md +0 -53
  116. package/.aiwf/07_AI_PERSONAS/security/knowledge_base.md +0 -93
  117. package/.aiwf/10_PERSONAS/active.json +0 -1
  118. package/.aiwf/10_STATE_OF_PROJECT/2025-07-09-07-20-solid-progress.md +0 -144
  119. package/.aiwf/98_PROMPTS/SAAS_DEVELOPMENT_GUIDE.md +0 -302
  120. package/.aiwf/98_PROMPTS/github_integration.md +0 -130
  121. package/.aiwf/98_PROMPTS/useful-prompts.md +0 -31
  122. package/.aiwf/98_PROMPTS/vibe-front-prompts.md +0 -89
  123. package/.aiwf/99_TEMPLATES/adr_template.md +0 -49
  124. package/.aiwf/99_TEMPLATES/feature_template.md +0 -263
  125. package/.aiwf/99_TEMPLATES/milestone_meta_template.md +0 -25
  126. package/.aiwf/99_TEMPLATES/project_manifest_template.md +0 -39
  127. package/.aiwf/99_TEMPLATES/sprint_meta_template.md +0 -23
  128. package/.aiwf/99_TEMPLATES/task_template.md +0 -36
  129. package/.aiwf/CLAUDE.md +0 -76
  130. package/.aiwf/ai-tools/README.md +0 -105
  131. package/.aiwf/ai-tools/augment/README.md +0 -371
  132. package/.aiwf/ai-tools/augment/config.json +0 -30
  133. package/.aiwf/ai-tools/augment/template/.augment/aiwf-integration.md +0 -387
  134. package/.aiwf/ai-tools/augment/template/.augment/augment.yaml +0 -347
  135. package/.aiwf/ai-tools/augment/template/augment.config.json +0 -64
  136. package/.aiwf/ai-tools/claude-code/README.md +0 -151
  137. package/.aiwf/ai-tools/claude-code/config.json +0 -28
  138. package/.aiwf/ai-tools/claude-code/template/CLAUDE.md +0 -91
  139. package/.aiwf/ai-tools/cursor/README.md +0 -314
  140. package/.aiwf/ai-tools/cursor/config.json +0 -29
  141. package/.aiwf/ai-tools/cursor/template/.cursorrules +0 -362
  142. package/.aiwf/ai-tools/github-copilot/README.md +0 -195
  143. package/.aiwf/ai-tools/github-copilot/config.json +0 -24
  144. package/.aiwf/ai-tools/github-copilot/template/.github/copilot-instructions.md +0 -202
  145. package/.aiwf/ai-tools/windsurf/README.md +0 -355
  146. package/.aiwf/ai-tools/windsurf/config.json +0 -29
  147. package/.aiwf/ai-tools/windsurf/template/.windsurf/aiwf-rules.md +0 -260
  148. package/.aiwf/ai-tools/windsurf/template/.windsurf/windsurf.config.js +0 -312
  149. package/.aiwf/ai-tools/windsurf/template/windsurf.config.json +0 -63
  150. package/.aiwf/config/language.json +0 -6
  151. package/.aiwf/feature-ledger/FL-001-authentication.json +0 -52
  152. package/.aiwf/feature-ledger/feature-index.json +0 -20
  153. package/.aiwf/installed.flag +0 -1
  154. package/.aiwf/metrics/metrics.json +0 -18
  155. package/.aiwf/personas/current.json +0 -5
  156. package/.aiwf/scripts/cache-templates.js +0 -209
  157. package/.aiwf/scripts/create-offline.js +0 -86
  158. package/.aiwf/scripts/create-project.js +0 -151
  159. package/.aiwf/scripts/feature-progress-calculator.cjs +0 -236
  160. package/.aiwf/scripts/git-integration.cjs +0 -391
  161. package/.aiwf/scripts/install-git-hooks.cjs +0 -226
  162. package/.aiwf/scripts/test-commit-parsing.cjs +0 -125
  163. package/.aiwf/scripts/update-feature-status.cjs +0 -198
  164. package/.aiwf/test-results-s02.json +0 -36
  165. package/.claude/commands/aiwf/aiwf_add_task_to_sprint.md +0 -283
  166. package/.claude/commands/aiwf/aiwf_changelog.md +0 -82
  167. package/.claude/commands/aiwf/aiwf_code_review.md +0 -88
  168. package/.claude/commands/aiwf/aiwf_commit.md +0 -160
  169. package/.claude/commands/aiwf/aiwf_compress_aggressive_persona.md +0 -53
  170. package/.claude/commands/aiwf/aiwf_compress_context.md +0 -116
  171. package/.claude/commands/aiwf/aiwf_compress_minimal_persona.md +0 -48
  172. package/.claude/commands/aiwf/aiwf_compress_stats.md +0 -79
  173. package/.claude/commands/aiwf/aiwf_compress_with_persona.md +0 -51
  174. package/.claude/commands/aiwf/aiwf_create_feature_ledger.md +0 -54
  175. package/.claude/commands/aiwf/aiwf_create_general_task.md +0 -147
  176. package/.claude/commands/aiwf/aiwf_create_milestone_plan.md +0 -194
  177. package/.claude/commands/aiwf/aiwf_create_prd.md +0 -280
  178. package/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +0 -189
  179. package/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +0 -121
  180. package/.claude/commands/aiwf/aiwf_default_mode.md +0 -44
  181. package/.claude/commands/aiwf/aiwf_discuss_review.md +0 -29
  182. package/.claude/commands/aiwf/aiwf_do_task.md +0 -109
  183. package/.claude/commands/aiwf/aiwf_docs.md +0 -225
  184. package/.claude/commands/aiwf/aiwf_evaluate.md +0 -92
  185. package/.claude/commands/aiwf/aiwf_get_feature_details.md +0 -78
  186. package/.claude/commands/aiwf/aiwf_infinite.md +0 -202
  187. package/.claude/commands/aiwf/aiwf_initialize.md +0 -134
  188. package/.claude/commands/aiwf/aiwf_install_git_hooks.md +0 -63
  189. package/.claude/commands/aiwf/aiwf_issue_create.md +0 -65
  190. package/.claude/commands/aiwf/aiwf_link_feature_branch.md +0 -43
  191. package/.claude/commands/aiwf/aiwf_link_feature_commit.md +0 -46
  192. package/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +0 -57
  193. package/.claude/commands/aiwf/aiwf_list_features.md +0 -54
  194. package/.claude/commands/aiwf/aiwf_mermaid.md +0 -272
  195. package/.claude/commands/aiwf/aiwf_persona_architect.md +0 -48
  196. package/.claude/commands/aiwf/aiwf_persona_backend.md +0 -37
  197. package/.claude/commands/aiwf/aiwf_persona_data_analyst.md +0 -37
  198. package/.claude/commands/aiwf/aiwf_persona_frontend.md +0 -37
  199. package/.claude/commands/aiwf/aiwf_persona_security.md +0 -48
  200. package/.claude/commands/aiwf/aiwf_persona_status.md +0 -50
  201. package/.claude/commands/aiwf/aiwf_pr_create.md +0 -76
  202. package/.claude/commands/aiwf/aiwf_prime.md +0 -9
  203. package/.claude/commands/aiwf/aiwf_project_review.md +0 -261
  204. package/.claude/commands/aiwf/aiwf_switch_language.md +0 -160
  205. package/.claude/commands/aiwf/aiwf_test.md +0 -124
  206. package/.claude/commands/aiwf/aiwf_testing_review.md +0 -198
  207. package/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +0 -210
  208. package/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +0 -460
  209. package/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +0 -165
  210. package/.claude/commands/aiwf/aiwf_ultrathink_general.md +0 -305
  211. package/.claude/commands/aiwf/aiwf_update_docs_kr.md +0 -25
  212. package/.claude/commands/aiwf/aiwf_update_feature_status.md +0 -53
  213. package/.claude/commands/aiwf/aiwf_yolo.md +0 -300
  214. package/.eslintrc.json +0 -26
  215. package/.prettierrc +0 -10
  216. package/CLAUDE.md +0 -254
  217. package/RELEASE_NOTES_M02.md +0 -177
  218. package/TEST_RECOVERY_PLAN.md +0 -68
  219. package/claude-code/aiwf/en/.aiwf/00_PROJECT_MANIFEST.md +0 -49
  220. package/claude-code/aiwf/en/.aiwf/01_PROJECT_DOCS/ARCHITECTURE.md +0 -55
  221. package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/CLAUDE.md +0 -78
  222. package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/M01_milestone_meta.md +0 -42
  223. package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_AMEND_01_Auth_Flow_Update.md +0 -73
  224. package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_Backend_Setup.md +0 -98
  225. package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/SPECS_API_V1.md +0 -232
  226. package/claude-code/aiwf/en/.aiwf/03_SPRINTS/CLAUDE.md +0 -83
  227. package/claude-code/aiwf/en/.aiwf/03_SPRINTS/S01_M01_Initial_API/S01_sprint_meta.md +0 -49
  228. package/claude-code/aiwf/en/.aiwf/03_SPRINTS/S01_M01_Initial_API/T01_S01_Setup_Project_Structure.md +0 -60
  229. package/claude-code/aiwf/en/.aiwf/04_GENERAL_TASKS/CLAUDE.md +0 -96
  230. package/claude-code/aiwf/en/.aiwf/04_GENERAL_TASKS/T002_API_Rate_Limiting.md +0 -54
  231. package/claude-code/aiwf/en/.aiwf/04_GENERAL_TASKS/TX001_Refactor_Logging_Module.md +0 -58
  232. package/claude-code/aiwf/en/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR001_Chosen_Database_System.md +0 -119
  233. package/claude-code/aiwf/en/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR002_API_Authentication_Method.md +0 -124
  234. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-needs-focus.md +0 -139
  235. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-test-alignment.md +0 -155
  236. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-13-00-50-solid-progress.md +0 -122
  237. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-14-08-30-infrastructure-challenges.md +0 -141
  238. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-16-21-48-critical-foundation-issues.md +0 -177
  239. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-17-15-08-solid-progress.md +0 -149
  240. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/index.json +0 -5
  241. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/sync-index.js +0 -78
  242. package/claude-code/aiwf/en/.aiwf/98_PROMPTS/github_integration.md +0 -130
  243. package/claude-code/aiwf/en/.aiwf/98_PROMPTS/useful-prompts.md +0 -31
  244. package/claude-code/aiwf/en/.aiwf/98_PROMPTS/vibe-front-prompts.md +0 -89
  245. package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/adr_template.md +0 -49
  246. package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/milestone_meta_template.md +0 -25
  247. package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/project_manifest_template.md +0 -39
  248. package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/sprint_meta_template.md +0 -23
  249. package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/task_template.md +0 -36
  250. package/claude-code/aiwf/en/.aiwf/CLAUDE.md +0 -74
  251. package/claude-code/aiwf/en/.aiwf/README.md +0 -97
  252. package/claude-code/aiwf/en/.claude/CLAUDE_BE.md +0 -276
  253. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_changelog.md +0 -82
  254. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_code_review.md +0 -88
  255. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_commit.md +0 -160
  256. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_feature_ledger.md +0 -54
  257. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_general_task.md +0 -147
  258. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_milestone_plan.md +0 -194
  259. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_prd.md +0 -272
  260. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +0 -189
  261. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +0 -121
  262. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_testcase.md +0 -561
  263. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_default_mode.md +0 -66
  264. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_discuss_review.md +0 -29
  265. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_do_task.md +0 -109
  266. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_docs.md +0 -225
  267. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_get_feature_details.md +0 -78
  268. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_infinite.md +0 -202
  269. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_initialize.md +0 -134
  270. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_issue_create.md +0 -65
  271. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +0 -57
  272. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_list_features.md +0 -54
  273. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_mermaid.md +0 -272
  274. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_architect.md +0 -60
  275. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_backend.md +0 -60
  276. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_data_analyst.md +0 -60
  277. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_frontend.md +0 -60
  278. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_security.md +0 -60
  279. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_status.md +0 -72
  280. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_pr_create.md +0 -76
  281. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_prime.md +0 -9
  282. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_project_review.md +0 -261
  283. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_switch_language.md +0 -160
  284. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_test.md +0 -125
  285. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_testing_review.md +0 -198
  286. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +0 -206
  287. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +0 -460
  288. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +0 -165
  289. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_ultrathink_general.md +0 -362
  290. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_update_feature_status.md +0 -53
  291. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_yolo.md +0 -300
  292. package/claude-code/aiwf/en/.claude/mcp.json +0 -31
  293. package/claude-code/aiwf/en/.claude/settings.json +0 -102
  294. package/claude-code/aiwf/en/commands/ai-persona.js +0 -667
  295. package/claude-code/aiwf/en/commands/compress-context.js +0 -355
  296. package/claude-code/aiwf/en/commands/feature-ledger.js +0 -565
  297. package/claude-code/aiwf/en/config/commit-patterns.js +0 -103
  298. package/claude-code/aiwf/en/hooks/install-hooks.sh +0 -100
  299. package/claude-code/aiwf/en/hooks/post-commit +0 -84
  300. package/claude-code/aiwf/en/tests/compression-test-suite.js +0 -1252
  301. package/claude-code/aiwf/en/tests/test-git-integration.js +0 -164
  302. package/claude-code/aiwf/en/tests/token-tracking.test.js +0 -537
  303. package/claude-code/aiwf/en/utils/context-compressor.js +0 -583
  304. package/claude-code/aiwf/en/utils/git-utils.js +0 -220
  305. package/claude-code/aiwf/en/utils/text-summarizer.js +0 -487
  306. package/claude-code/aiwf/ko/.aiwf/00_PROJECT_MANIFEST.md +0 -49
  307. package/claude-code/aiwf/ko/.aiwf/01_PROJECT_DOCS/ARCHITECTURE.md +0 -55
  308. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/CLAUDE.md +0 -78
  309. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/M01_milestone_meta.md +0 -42
  310. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_AMEND_01_Auth_Flow_Update.md +0 -73
  311. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_Backend_Setup.md +0 -98
  312. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/SPECS_API_V1.md +0 -232
  313. package/claude-code/aiwf/ko/.aiwf/03_SPRINTS/CLAUDE.md +0 -83
  314. package/claude-code/aiwf/ko/.aiwf/03_SPRINTS/S01_M01_Initial_API/S01_sprint_meta.md +0 -49
  315. package/claude-code/aiwf/ko/.aiwf/03_SPRINTS/S01_M01_Initial_API/T01_S01_Setup_Project_Structure.md +0 -60
  316. package/claude-code/aiwf/ko/.aiwf/04_GENERAL_TASKS/CLAUDE.md +0 -96
  317. package/claude-code/aiwf/ko/.aiwf/04_GENERAL_TASKS/T002_API_Rate_Limiting.md +0 -54
  318. package/claude-code/aiwf/ko/.aiwf/04_GENERAL_TASKS/TX001_Refactor_Logging_Module.md +0 -58
  319. package/claude-code/aiwf/ko/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR001_Chosen_Database_System.md +0 -119
  320. package/claude-code/aiwf/ko/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR002_API_Authentication_Method.md +0 -124
  321. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_ID_GENERATOR.md +0 -138
  322. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_INDEX.md +0 -186
  323. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_METADATA.md +0 -240
  324. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_WORKFLOW.md +0 -183
  325. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/README.md +0 -94
  326. 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
  327. 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
  328. 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
  329. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/schemas/feature_schema.json +0 -122
  330. package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/schemas/feature_validator.cjs +0 -406
  331. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-needs-focus.md +0 -139
  332. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-test-alignment.md +0 -155
  333. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-13-00-50-solid-progress.md +0 -122
  334. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-14-08-30-infrastructure-challenges.md +0 -141
  335. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-16-21-48-critical-foundation-issues.md +0 -177
  336. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-17-15-08-solid-progress.md +0 -149
  337. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/index.json +0 -5
  338. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/sync-index.js +0 -78
  339. package/claude-code/aiwf/ko/.aiwf/98_PROMPTS/github_integration.md +0 -130
  340. package/claude-code/aiwf/ko/.aiwf/98_PROMPTS/useful-prompts.md +0 -31
  341. package/claude-code/aiwf/ko/.aiwf/98_PROMPTS/vibe-front-prompts.md +0 -89
  342. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/adr_template.md +0 -49
  343. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/milestone_meta_template.md +0 -25
  344. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/project_manifest_template.md +0 -39
  345. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/sprint_meta_template.md +0 -23
  346. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/task_template.md +0 -36
  347. package/claude-code/aiwf/ko/.aiwf/CLAUDE.md +0 -76
  348. package/claude-code/aiwf/ko/.aiwf/README.md +0 -97
  349. package/claude-code/aiwf/ko/.claude/CLAUDE_BE.md +0 -276
  350. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_changelog.md +0 -82
  351. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_code_review.md +0 -88
  352. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_commit.md +0 -160
  353. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_aggressive_persona.md +0 -53
  354. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_context.md +0 -116
  355. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_minimal_persona.md +0 -48
  356. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_stats.md +0 -79
  357. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_with_persona.md +0 -51
  358. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_feature_ledger.md +0 -54
  359. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_general_task.md +0 -147
  360. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_milestone_plan.md +0 -194
  361. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_prd.md +0 -280
  362. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +0 -189
  363. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +0 -121
  364. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_testcase.md +0 -561
  365. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_default_mode.md +0 -44
  366. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_discuss_review.md +0 -29
  367. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_do_task.md +0 -109
  368. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_docs.md +0 -225
  369. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_evaluate.md +0 -92
  370. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_get_feature_details.md +0 -78
  371. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_infinite.md +0 -202
  372. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_initialize.md +0 -134
  373. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_issue_create.md +0 -65
  374. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +0 -57
  375. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_list_features.md +0 -54
  376. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_mermaid.md +0 -272
  377. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_architect.md +0 -48
  378. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_backend.md +0 -37
  379. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_data_analyst.md +0 -37
  380. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_frontend.md +0 -37
  381. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_security.md +0 -48
  382. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_status.md +0 -50
  383. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_pr_create.md +0 -76
  384. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_prime.md +0 -9
  385. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_project_review.md +0 -261
  386. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_switch_language.md +0 -160
  387. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_test.md +0 -124
  388. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_testing_review.md +0 -198
  389. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +0 -210
  390. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +0 -460
  391. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +0 -165
  392. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_ultrathink_general.md +0 -305
  393. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_update_docs_kr.md +0 -25
  394. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_update_feature_status.md +0 -53
  395. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_yolo.md +0 -300
  396. package/claude-code/aiwf/ko/.claude/mcp.json +0 -31
  397. package/claude-code/aiwf/ko/.claude/settings.json +0 -102
  398. package/claude-code/aiwf/ko/CLAUDE.md +0 -76
  399. package/claude-code/aiwf/ko/ai-tools/README.md +0 -105
  400. package/claude-code/aiwf/ko/ai-tools/augment/README.md +0 -371
  401. package/claude-code/aiwf/ko/ai-tools/augment/config.json +0 -30
  402. package/claude-code/aiwf/ko/ai-tools/augment/template/.augment/aiwf-integration.md +0 -387
  403. package/claude-code/aiwf/ko/ai-tools/augment/template/.augment/augment.yaml +0 -347
  404. package/claude-code/aiwf/ko/ai-tools/augment/template/augment.config.json +0 -64
  405. package/claude-code/aiwf/ko/ai-tools/claude-code/README.md +0 -151
  406. package/claude-code/aiwf/ko/ai-tools/claude-code/config.json +0 -28
  407. package/claude-code/aiwf/ko/ai-tools/claude-code/template/CLAUDE.md +0 -91
  408. package/claude-code/aiwf/ko/ai-tools/cursor/README.md +0 -314
  409. package/claude-code/aiwf/ko/ai-tools/cursor/config.json +0 -29
  410. package/claude-code/aiwf/ko/ai-tools/cursor/template/.cursorrules +0 -362
  411. package/claude-code/aiwf/ko/ai-tools/github-copilot/README.md +0 -195
  412. package/claude-code/aiwf/ko/ai-tools/github-copilot/config.json +0 -24
  413. package/claude-code/aiwf/ko/ai-tools/github-copilot/template/.github/copilot-instructions.md +0 -202
  414. package/claude-code/aiwf/ko/ai-tools/windsurf/README.md +0 -355
  415. package/claude-code/aiwf/ko/ai-tools/windsurf/config.json +0 -29
  416. package/claude-code/aiwf/ko/ai-tools/windsurf/template/.windsurf/aiwf-rules.md +0 -260
  417. package/claude-code/aiwf/ko/ai-tools/windsurf/template/.windsurf/windsurf.config.js +0 -312
  418. package/claude-code/aiwf/ko/ai-tools/windsurf/template/windsurf.config.json +0 -63
  419. package/claude-code/aiwf/ko/commands/feature_commit_report.js +0 -370
  420. package/claude-code/aiwf/ko/commands/scan_git_history.js +0 -234
  421. package/claude-code/aiwf/ko/commands/sync_feature_commits.js +0 -154
  422. package/claude-code/aiwf/ko/commands/token-tracking.js +0 -443
  423. package/claude-code/aiwf/ko/feature-ledger/FL-001-authentication.json +0 -52
  424. package/claude-code/aiwf/ko/feature-ledger/feature-index.json +0 -20
  425. package/claude-code/aiwf/ko/hooks/install-hooks.sh +0 -100
  426. package/claude-code/aiwf/ko/hooks/post-commit +0 -84
  427. package/claude-code/aiwf/ko/personas/PERSONA_INDEX.md +0 -57
  428. package/claude-code/aiwf/ko/personas/analyst.json +0 -44
  429. package/claude-code/aiwf/ko/personas/architect/best_practices.md +0 -136
  430. package/claude-code/aiwf/ko/personas/architect/knowledge_base.md +0 -377
  431. package/claude-code/aiwf/ko/personas/architect.json +0 -44
  432. package/claude-code/aiwf/ko/personas/backend/best_practices.md +0 -766
  433. package/claude-code/aiwf/ko/personas/backend/knowledge_base.md +0 -1070
  434. package/claude-code/aiwf/ko/personas/data_analyst/best_practices.md +0 -594
  435. package/claude-code/aiwf/ko/personas/data_analyst/knowledge_base.md +0 -1057
  436. package/claude-code/aiwf/ko/personas/developer.json +0 -44
  437. package/claude-code/aiwf/ko/personas/developer.md +0 -37
  438. package/claude-code/aiwf/ko/personas/evaluation_criteria.json +0 -137
  439. package/claude-code/aiwf/ko/personas/frontend/best_practices.md +0 -445
  440. package/claude-code/aiwf/ko/personas/frontend/knowledge_base.md +0 -729
  441. package/claude-code/aiwf/ko/personas/persona-index.json +0 -31
  442. package/claude-code/aiwf/ko/personas/reviewer.json +0 -44
  443. package/claude-code/aiwf/ko/personas/security/best_practices.md +0 -307
  444. package/claude-code/aiwf/ko/personas/security/knowledge_base.md +0 -498
  445. package/claude-code/aiwf/ko/personas/tester.json +0 -44
  446. package/claude-code/aiwf/ko/scripts/cache-templates.js +0 -209
  447. package/claude-code/aiwf/ko/scripts/create-offline.js +0 -86
  448. package/claude-code/aiwf/ko/scripts/create-project.js +0 -151
  449. package/claude-code/aiwf/ko/scripts/feature-progress-calculator.cjs +0 -236
  450. package/claude-code/aiwf/ko/scripts/git-integration.cjs +0 -391
  451. package/claude-code/aiwf/ko/scripts/install-git-hooks.cjs +0 -226
  452. package/claude-code/aiwf/ko/scripts/test-commit-parsing.cjs +0 -125
  453. package/claude-code/aiwf/ko/scripts/update-feature-status.cjs +0 -198
  454. package/claude-code/aiwf/ko/tests/compression-test-suite.js +0 -1252
  455. package/claude-code/aiwf/ko/tests/test-git-integration.js +0 -164
  456. package/claude-code/aiwf/ko/tests/token-tracking.test.js +0 -537
  457. package/claude-code/aiwf/ko/utils/compression-metrics.js +0 -1031
  458. package/claude-code/aiwf/ko/utils/compression-strategies.js +0 -557
  459. package/claude-code/aiwf/ko/utils/content-normalizer.js +0 -455
  460. package/claude-code/aiwf/ko/utils/feature-updater.js +0 -271
  461. package/claude-code/aiwf/ko/utils/importance-classifier.js +0 -645
  462. package/claude-code/aiwf/ko/utils/information-filter.js +0 -710
  463. package/claude-code/aiwf/ko/utils/token-counter.js +0 -177
  464. package/claude-code/aiwf/ko/utils/token-monitor.js +0 -484
  465. package/claude-code/aiwf/ko/utils/token-reporter.js +0 -453
  466. package/claude-code/aiwf/ko/utils/token-storage.js +0 -433
  467. package/claude-code/aiwf/ko/utils/token-tracker.js +0 -283
  468. package/claude-code/docker/Dockerfile +0 -117
  469. package/jest.config.js +0 -23
  470. package/scripts/update-feature-status.js +0 -70
  471. package/tests/application.test.js +0 -260
  472. package/tests/basic.test.js +0 -62
  473. package/tests/commands.test.js +0 -127
  474. package/tests/installer.test.js +0 -129
  475. package/tests/integration/ai-persona-system.test.js +0 -396
  476. package/tests/integration/ai-persona.test.js +0 -390
  477. package/tests/integration/command-integration.test.js +0 -600
  478. package/tests/integration/context-compression.test.js +0 -361
  479. package/tests/integration/feature-ledger.test.js +0 -226
  480. package/tests/integration/git-integration.test.js +0 -307
  481. package/tests/integration/m02-milestone.test.js +0 -420
  482. package/tests/integration/persona-context-application.test.js +0 -508
  483. package/tests/integration/setup.js +0 -174
  484. package/tests/integration/test-persona-aware-compression.js +0 -93
  485. package/tests/integration/test-persona-system/.aiwf/metrics/metrics.json +0 -833
  486. package/tests/integration/test-persona-system/docs/README.md +0 -1
  487. package/tests/integration/test-persona-system/package.json +0 -1
  488. package/tests/integration/test-persona-system/src/auth.js +0 -1
  489. package/tests/integration/test-persona-system/src/index.js +0 -1
  490. package/tests/integration/test-persona-system/test/test.js +0 -1
  491. package/tests/language-utils.test.js +0 -287
  492. package/tests/s02-integration.test.js +0 -422
  493. package/tests/unit/ai-persona-manager.test.js +0 -514
  494. package/tests/unit/sprint-task.test.js +0 -172
  495. /package/{claude-code/aiwf/ko → src/lib/resources}/commands/compress-context.js +0 -0
  496. /package/{claude-code/aiwf/ko → src/lib/resources}/commands/evaluate.js +0 -0
  497. /package/{claude-code/aiwf/ko → src/lib/resources}/commands/feature-ledger.js +0 -0
  498. /package/{claude-code/aiwf/en → src/lib/resources}/commands/feature_commit_report.js +0 -0
  499. /package/{claude-code/aiwf/ko → src/lib/resources}/commands/persona-context-apply.js +0 -0
  500. /package/{claude-code/aiwf/en → src/lib/resources}/commands/scan_git_history.js +0 -0
  501. /package/{claude-code/aiwf/en → src/lib/resources}/commands/sync_feature_commits.js +0 -0
  502. /package/{claude-code/aiwf/en → src/lib/resources}/commands/token-tracking.js +0 -0
  503. /package/{claude-code/aiwf/ko → src/lib/resources}/config/commit-patterns.js +0 -0
  504. /package/{claude-code/aiwf/ko → src/lib/resources}/config/language.json +0 -0
  505. /package/{.aiwf/07_AI_PERSONAS → src/lib/resources/personas}/PERSONA_INDEX.md +0 -0
  506. /package/{.aiwf → src/lib/resources}/personas/analyst.json +0 -0
  507. /package/{.aiwf → src/lib/resources}/personas/architect/best_practices.md +0 -0
  508. /package/{.aiwf → src/lib/resources}/personas/architect/knowledge_base.md +0 -0
  509. /package/{.aiwf → src/lib/resources}/personas/architect.json +0 -0
  510. /package/{.aiwf → src/lib/resources}/personas/backend/best_practices.md +0 -0
  511. /package/{.aiwf → src/lib/resources}/personas/backend/knowledge_base.md +0 -0
  512. /package/{.aiwf → src/lib/resources}/personas/data_analyst/best_practices.md +0 -0
  513. /package/{.aiwf → src/lib/resources}/personas/data_analyst/knowledge_base.md +0 -0
  514. /package/{.aiwf → src/lib/resources}/personas/developer.json +0 -0
  515. /package/{.aiwf/10_PERSONAS → src/lib/resources/personas}/developer.md +0 -0
  516. /package/{.aiwf → src/lib/resources}/personas/evaluation_criteria.json +0 -0
  517. /package/{.aiwf → src/lib/resources}/personas/frontend/best_practices.md +0 -0
  518. /package/{.aiwf → src/lib/resources}/personas/frontend/knowledge_base.md +0 -0
  519. /package/{.aiwf → src/lib/resources}/personas/persona-index.json +0 -0
  520. /package/{.aiwf → src/lib/resources}/personas/reviewer.json +0 -0
  521. /package/{.aiwf → src/lib/resources}/personas/security/best_practices.md +0 -0
  522. /package/{.aiwf → src/lib/resources}/personas/security/knowledge_base.md +0 -0
  523. /package/{.aiwf → src/lib/resources}/personas/tester.json +0 -0
  524. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/README.md +0 -0
  525. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/config.json +0 -0
  526. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/.aiwf/config.json +0 -0
  527. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/.aiwf/feature-ledger.json +0 -0
  528. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/.aiwf/personas/backend-engineer.json +0 -0
  529. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/.aiwf/scripts/cli.js +0 -0
  530. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/.env.example +0 -0
  531. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/.eslintrc.json +0 -0
  532. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/README.md +0 -0
  533. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/jest.config.js +0 -0
  534. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/nodemon.json +0 -0
  535. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/package.json +0 -0
  536. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/src/app.ts +0 -0
  537. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/src/config/swagger.ts +0 -0
  538. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/src/controllers/aiwfController.ts +0 -0
  539. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/src/controllers/authController.ts +0 -0
  540. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/src/controllers/statusController.ts +0 -0
  541. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/src/index.ts +0 -0
  542. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/src/middleware/aiwfMiddleware.ts +0 -0
  543. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/src/middleware/authMiddleware.ts +0 -0
  544. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/src/middleware/errorHandler.ts +0 -0
  545. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/src/middleware/notFoundHandler.ts +0 -0
  546. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/src/middleware/requestLogger.ts +0 -0
  547. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/src/routes/aiwf.ts +0 -0
  548. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/src/routes/index.ts +0 -0
  549. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/src/routes/v1/index.ts +0 -0
  550. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/src/utils/logger.ts +0 -0
  551. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/tests/app.test.ts +0 -0
  552. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/api-server/template/tsconfig.json +0 -0
  553. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/npm-library/config.json +0 -0
  554. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/npm-library/template/LICENSE +0 -0
  555. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/npm-library/template/README.md +0 -0
  556. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/npm-library/template/package.json +0 -0
  557. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/config.json +0 -0
  558. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/.aiwf/config.json +0 -0
  559. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/.aiwf/feature-ledger.json +0 -0
  560. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/.aiwf/personas/fullstack-developer.json +0 -0
  561. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/.aiwf/scripts/cli.js +0 -0
  562. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/.eslintrc.cjs +0 -0
  563. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/README.md +0 -0
  564. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/index.html +0 -0
  565. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/package.json +0 -0
  566. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/postcss.config.js +0 -0
  567. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/public/vite.svg +0 -0
  568. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/src/App.tsx +0 -0
  569. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/src/components/Layout.tsx +0 -0
  570. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/src/components/aiwf/ContextStatus.tsx +0 -0
  571. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/src/components/aiwf/FeatureLedger.tsx +0 -0
  572. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/src/components/aiwf/TokenUsage.tsx +0 -0
  573. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/src/index.css +0 -0
  574. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/src/main.tsx +0 -0
  575. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/src/pages/AiwfDashboard.tsx +0 -0
  576. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/src/pages/HomePage.tsx +0 -0
  577. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/src/pages/NotFound.tsx +0 -0
  578. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/src/stores/aiwfStore.ts +0 -0
  579. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/src/types/global.d.ts +0 -0
  580. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/src/vite-env.d.ts +0 -0
  581. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/tailwind.config.js +0 -0
  582. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/tsconfig.json +0 -0
  583. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/tsconfig.node.json +0 -0
  584. /package/{claude-code/aiwf/ko → src/lib/resources}/templates/web-app/template/vite.config.ts +0 -0
  585. /package/{claude-code/aiwf/ko → src/lib/resources}/utils/background-monitor.js +0 -0
  586. /package/{claude-code/aiwf/en → src/lib/resources}/utils/compression-metrics.js +0 -0
  587. /package/{claude-code/aiwf/en → src/lib/resources}/utils/compression-strategies.js +0 -0
  588. /package/{claude-code/aiwf/en → src/lib/resources}/utils/content-normalizer.js +0 -0
  589. /package/{claude-code/aiwf/ko → src/lib/resources}/utils/context-compressor.js +0 -0
  590. /package/{claude-code/aiwf/ko → src/lib/resources}/utils/context-rule-parser.js +0 -0
  591. /package/{claude-code/aiwf/ko → src/lib/resources}/utils/context-token-monitor.js +0 -0
  592. /package/{claude-code/aiwf/ko → src/lib/resources}/utils/context-update-manager.js +0 -0
  593. /package/{claude-code/aiwf/en → src/lib/resources}/utils/feature-updater.js +0 -0
  594. /package/{claude-code/aiwf/ko → src/lib/resources}/utils/git-utils.js +0 -0
  595. /package/{claude-code/aiwf/en → src/lib/resources}/utils/importance-classifier.js +0 -0
  596. /package/{claude-code/aiwf/en → src/lib/resources}/utils/information-filter.js +0 -0
  597. /package/{claude-code/aiwf/ko → src/lib/resources}/utils/persona-aware-compressor.js +0 -0
  598. /package/{claude-code/aiwf/ko → src/lib/resources}/utils/prompt-injector.js +0 -0
  599. /package/{claude-code/aiwf/ko → src/lib/resources}/utils/simplified-evaluator.js +0 -0
  600. /package/{claude-code/aiwf/ko → src/lib/resources}/utils/text-summarizer.js +0 -0
  601. /package/{claude-code/aiwf/en → src/lib/resources}/utils/token-counter.js +0 -0
  602. /package/{claude-code/aiwf/en → src/lib/resources}/utils/token-monitor.js +0 -0
  603. /package/{claude-code/aiwf/en → src/lib/resources}/utils/token-reporter.js +0 -0
  604. /package/{claude-code/aiwf/en → src/lib/resources}/utils/token-storage.js +0 -0
  605. /package/{claude-code/aiwf/en → src/lib/resources}/utils/token-tracker.js +0 -0
@@ -0,0 +1,389 @@
1
+ /**
2
+ * 오버엔지니어링 방지 가드
3
+ * YOLO 모드에서 과도한 복잡성을 방지하는 유틸리티
4
+ */
5
+
6
+ import fs from 'fs/promises';
7
+ import path from 'path';
8
+ import yaml from 'js-yaml';
9
+
10
+ export class EngineeringGuard {
11
+ constructor(configPath = null) {
12
+ this.config = null;
13
+ this.violations = [];
14
+ this.warnings = [];
15
+
16
+ if (configPath) {
17
+ this.loadConfig(configPath);
18
+ }
19
+ }
20
+
21
+ /**
22
+ * 설정 파일 로드
23
+ */
24
+ async loadConfig(configPath) {
25
+ try {
26
+ const content = await fs.readFile(configPath, 'utf-8');
27
+ const yoloConfig = yaml.load(content);
28
+ this.config = yoloConfig.overengineering_prevention || {};
29
+ } catch (error) {
30
+ // 기본 설정 사용
31
+ this.config = {
32
+ max_file_lines: 300,
33
+ max_function_lines: 50,
34
+ max_nesting_depth: 4,
35
+ max_abstraction_layers: 3,
36
+ limit_design_patterns: true,
37
+ no_future_proofing: true
38
+ };
39
+ }
40
+ }
41
+
42
+ /**
43
+ * 파일 복잡도 검사
44
+ */
45
+ async checkFileComplexity(filePath) {
46
+ try {
47
+ const content = await fs.readFile(filePath, 'utf-8');
48
+ const lines = content.split('\n');
49
+
50
+ // 파일 크기 검사
51
+ if (lines.length > this.config.max_file_lines) {
52
+ this.violations.push({
53
+ type: 'file_too_large',
54
+ file: filePath,
55
+ lines: lines.length,
56
+ limit: this.config.max_file_lines,
57
+ severity: 'high'
58
+ });
59
+ }
60
+
61
+ // 함수 크기 검사 (간단한 휴리스틱)
62
+ const functions = this.extractFunctions(content);
63
+ for (const func of functions) {
64
+ if (func.lines > this.config.max_function_lines) {
65
+ this.violations.push({
66
+ type: 'function_too_large',
67
+ file: filePath,
68
+ function: func.name,
69
+ lines: func.lines,
70
+ limit: this.config.max_function_lines,
71
+ severity: 'medium'
72
+ });
73
+ }
74
+ }
75
+
76
+ // 중첩 깊이 검사
77
+ const maxNesting = this.calculateMaxNesting(content);
78
+ if (maxNesting > this.config.max_nesting_depth) {
79
+ this.violations.push({
80
+ type: 'excessive_nesting',
81
+ file: filePath,
82
+ depth: maxNesting,
83
+ limit: this.config.max_nesting_depth,
84
+ severity: 'medium'
85
+ });
86
+ }
87
+
88
+ // 디자인 패턴 과용 검사
89
+ if (this.config.limit_design_patterns) {
90
+ const patterns = this.detectDesignPatterns(content);
91
+ if (patterns.length > 2) {
92
+ this.warnings.push({
93
+ type: 'too_many_patterns',
94
+ file: filePath,
95
+ patterns: patterns,
96
+ message: '단순한 해결책을 고려하세요'
97
+ });
98
+ }
99
+ }
100
+
101
+ // 미래 대비 코드 검사
102
+ if (this.config.no_future_proofing) {
103
+ const futureProofing = this.detectFutureProofing(content);
104
+ if (futureProofing.length > 0) {
105
+ this.warnings.push({
106
+ type: 'future_proofing',
107
+ file: filePath,
108
+ instances: futureProofing,
109
+ message: 'YAGNI (You Ain\'t Gonna Need It) 원칙을 따르세요'
110
+ });
111
+ }
112
+ }
113
+
114
+ } catch (error) {
115
+ // 파일 읽기 실패는 무시
116
+ }
117
+ }
118
+
119
+ /**
120
+ * 함수 추출 (간단한 패턴 매칭)
121
+ */
122
+ extractFunctions(content) {
123
+ const functions = [];
124
+ const lines = content.split('\n');
125
+
126
+ // JavaScript/TypeScript 함수 패턴
127
+ const functionPatterns = [
128
+ /^(?:export\s+)?(?:async\s+)?function\s+(\w+)/,
129
+ /^(?:export\s+)?const\s+(\w+)\s*=\s*(?:async\s+)?(?:\([^)]*\)|[^=]+)\s*=>/,
130
+ /^\s*(\w+)\s*\([^)]*\)\s*\{/,
131
+ /^\s*(?:async\s+)?(\w+)\s*:\s*(?:async\s+)?(?:\([^)]*\)|[^=]+)\s*=>/
132
+ ];
133
+
134
+ let currentFunction = null;
135
+ let braceCount = 0;
136
+
137
+ lines.forEach((line, index) => {
138
+ // 함수 시작 감지
139
+ if (!currentFunction) {
140
+ for (const pattern of functionPatterns) {
141
+ const match = line.match(pattern);
142
+ if (match) {
143
+ currentFunction = {
144
+ name: match[1],
145
+ startLine: index,
146
+ lines: 0
147
+ };
148
+ braceCount = 0;
149
+ break;
150
+ }
151
+ }
152
+ }
153
+
154
+ // 중괄호 카운트
155
+ if (currentFunction) {
156
+ braceCount += (line.match(/\{/g) || []).length;
157
+ braceCount -= (line.match(/\}/g) || []).length;
158
+
159
+ // 함수 끝 감지
160
+ if (braceCount === 0 && line.includes('}')) {
161
+ currentFunction.lines = index - currentFunction.startLine + 1;
162
+ functions.push(currentFunction);
163
+ currentFunction = null;
164
+ }
165
+ }
166
+ });
167
+
168
+ return functions;
169
+ }
170
+
171
+ /**
172
+ * 최대 중첩 깊이 계산
173
+ */
174
+ calculateMaxNesting(content) {
175
+ const lines = content.split('\n');
176
+ let maxDepth = 0;
177
+ let currentDepth = 0;
178
+
179
+ lines.forEach(line => {
180
+ // 들여쓰기 기반 간단한 계산
181
+ const indent = line.match(/^(\s*)/)[1].length;
182
+ const depth = Math.floor(indent / 2); // 2 spaces = 1 level
183
+
184
+ // 중괄호 기반 계산도 추가
185
+ currentDepth += (line.match(/\{/g) || []).length;
186
+ currentDepth -= (line.match(/\}/g) || []).length;
187
+
188
+ maxDepth = Math.max(maxDepth, Math.max(depth, currentDepth));
189
+ });
190
+
191
+ return maxDepth;
192
+ }
193
+
194
+ /**
195
+ * 디자인 패턴 감지
196
+ */
197
+ detectDesignPatterns(content) {
198
+ const patterns = [];
199
+
200
+ // 일반적인 패턴 키워드
201
+ const patternKeywords = {
202
+ 'Factory': /class\s+\w*Factory|createFactory|factory\s*:/i,
203
+ 'Singleton': /getInstance|singleton|private\s+constructor/i,
204
+ 'Observer': /subscribe|unsubscribe|notify|observer|listeners/i,
205
+ 'Strategy': /strategy|setStrategy|executeStrategy/i,
206
+ 'Decorator': /decorator|@\w+|wrapped|enhance/i,
207
+ 'Adapter': /adapter|adapt|wrapper/i,
208
+ 'Proxy': /proxy|handler|intercept/i
209
+ };
210
+
211
+ for (const [pattern, regex] of Object.entries(patternKeywords)) {
212
+ if (regex.test(content)) {
213
+ patterns.push(pattern);
214
+ }
215
+ }
216
+
217
+ return patterns;
218
+ }
219
+
220
+ /**
221
+ * 미래 대비 코드 감지
222
+ */
223
+ detectFutureProofing(content) {
224
+ const instances = [];
225
+
226
+ // 미래 대비 코드 패턴
227
+ const futurePatterns = [
228
+ { pattern: /TODO:?\s*(?:future|later|someday|eventually)/gi, type: 'future_todo' },
229
+ { pattern: /FIXME:?\s*(?:when|if|after)/gi, type: 'conditional_fixme' },
230
+ { pattern: /\/\/\s*(?:Will|Might|Could)\s+(?:be|need|require)/gi, type: 'speculative_comment' },
231
+ { pattern: /reserved|future[Uu]se|placeholder|notImplemented/g, type: 'reserved_code' },
232
+ { pattern: /version\s*[><=]+\s*['"]?\d+\.\d+/g, type: 'version_check' },
233
+ { pattern: /deprecated.*future/gi, type: 'future_deprecation' }
234
+ ];
235
+
236
+ const lines = content.split('\n');
237
+ lines.forEach((line, index) => {
238
+ for (const { pattern, type } of futurePatterns) {
239
+ const matches = line.match(pattern);
240
+ if (matches) {
241
+ instances.push({
242
+ type,
243
+ line: index + 1,
244
+ content: line.trim(),
245
+ matches
246
+ });
247
+ }
248
+ }
249
+ });
250
+
251
+ return instances;
252
+ }
253
+
254
+ /**
255
+ * 프로젝트 전체 검사
256
+ */
257
+ async checkProject(projectPath, filePatterns = ['**/*.js', '**/*.ts', '**/*.jsx', '**/*.tsx']) {
258
+ this.violations = [];
259
+ this.warnings = [];
260
+
261
+ // 간단한 파일 목록 수집 (실제로는 glob 패턴 사용 필요)
262
+ const checkDir = async (dir) => {
263
+ const entries = await fs.readdir(dir, { withFileTypes: true });
264
+
265
+ for (const entry of entries) {
266
+ const fullPath = path.join(dir, entry.name);
267
+
268
+ if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'node_modules') {
269
+ await checkDir(fullPath);
270
+ } else if (entry.isFile()) {
271
+ const ext = path.extname(entry.name);
272
+ if (['.js', '.ts', '.jsx', '.tsx'].includes(ext)) {
273
+ await this.checkFileComplexity(fullPath);
274
+ }
275
+ }
276
+ }
277
+ };
278
+
279
+ await checkDir(projectPath);
280
+
281
+ return this.generateReport();
282
+ }
283
+
284
+ /**
285
+ * 검사 결과 리포트 생성
286
+ */
287
+ generateReport() {
288
+ const report = {
289
+ passed: this.violations.length === 0,
290
+ violations: this.violations,
291
+ warnings: this.warnings,
292
+ summary: {
293
+ total_violations: this.violations.length,
294
+ high_severity: this.violations.filter(v => v.severity === 'high').length,
295
+ medium_severity: this.violations.filter(v => v.severity === 'medium').length,
296
+ warnings: this.warnings.length
297
+ },
298
+ recommendations: []
299
+ };
300
+
301
+ // 권장사항 생성
302
+ if (report.summary.high_severity > 0) {
303
+ report.recommendations.push('큰 파일을 작은 모듈로 분할하세요');
304
+ }
305
+
306
+ if (this.violations.some(v => v.type === 'function_too_large')) {
307
+ report.recommendations.push('긴 함수를 더 작은 단위로 리팩토링하세요');
308
+ }
309
+
310
+ if (this.violations.some(v => v.type === 'excessive_nesting')) {
311
+ report.recommendations.push('조기 반환(early return)을 사용하여 중첩을 줄이세요');
312
+ }
313
+
314
+ if (this.warnings.some(w => w.type === 'too_many_patterns')) {
315
+ report.recommendations.push('필요한 경우가 아니면 단순한 해결책을 선택하세요');
316
+ }
317
+
318
+ if (this.warnings.some(w => w.type === 'future_proofing')) {
319
+ report.recommendations.push('현재 요구사항에만 집중하세요 (YAGNI)');
320
+ }
321
+
322
+ return report;
323
+ }
324
+
325
+ /**
326
+ * 실시간 피드백 제공
327
+ */
328
+ async provideFeedback(filePath, content = null) {
329
+ if (!content) {
330
+ content = await fs.readFile(filePath, 'utf-8');
331
+ }
332
+
333
+ const feedback = [];
334
+ const lines = content.split('\n');
335
+
336
+ // 즉각적인 피드백 규칙
337
+ if (lines.length > this.config.max_file_lines * 0.8) {
338
+ feedback.push({
339
+ level: 'warning',
340
+ message: `파일이 너무 커지고 있습니다 (${lines.length}/${this.config.max_file_lines} 줄). 분할을 고려하세요.`
341
+ });
342
+ }
343
+
344
+ // 복잡한 조건문 감지
345
+ const complexConditions = content.match(/if\s*\([^)]{50,}\)/g);
346
+ if (complexConditions && complexConditions.length > 0) {
347
+ feedback.push({
348
+ level: 'suggestion',
349
+ message: '복잡한 조건문을 별도의 함수로 추출하는 것을 고려하세요.'
350
+ });
351
+ }
352
+
353
+ // 과도한 주석 감지
354
+ const commentLines = lines.filter(line => line.trim().startsWith('//')).length;
355
+ const codeLines = lines.filter(line => line.trim() && !line.trim().startsWith('//')).length;
356
+ if (commentLines > codeLines * 0.5) {
357
+ feedback.push({
358
+ level: 'info',
359
+ message: '코드보다 주석이 많습니다. 코드 자체가 문서가 되도록 리팩토링을 고려하세요.'
360
+ });
361
+ }
362
+
363
+ return feedback;
364
+ }
365
+ }
366
+
367
+ // 싱글톤 인스턴스
368
+ let guardInstance = null;
369
+
370
+ /**
371
+ * EngineeringGuard 인스턴스 가져오기
372
+ */
373
+ export function getEngineeringGuard(configPath = null) {
374
+ if (!guardInstance) {
375
+ guardInstance = new EngineeringGuard(configPath);
376
+ }
377
+ return guardInstance;
378
+ }
379
+
380
+ /**
381
+ * 빠른 검사 헬퍼 함수
382
+ */
383
+ export async function quickCheck(filePath) {
384
+ const guard = getEngineeringGuard();
385
+ await guard.checkFileComplexity(filePath);
386
+ return guard.generateReport();
387
+ }
388
+
389
+ export default EngineeringGuard;
@@ -1,196 +0,0 @@
1
- # AIWF 프로젝트 매니페스트
2
-
3
- **프로젝트명**: AIWF (AI Workflow Framework)
4
- **생성일**: 2025-07-02
5
- **마지막 업데이트**: 2025-07-16
6
- **프로젝트 유형**: Node.js NPM 패키지
7
- **현재 버전**: 0.3.1
8
- **최고 마일스톤**: M03
9
- **최고 스프린트**: S03
10
-
11
- ## 프로젝트 개요
12
-
13
- AIWF는 Claude Code와의 통합을 위해 설계된 마크다운 기반 프로젝트 관리 프레임워크입니다. AI 지원 개발을 위한 체계적인 워크플로우를 제공하며, 다국어 지원(한국어/영어)을 통해 글로벌 개발자들이 사용할 수 있도록 설계되었습니다.
14
-
15
- ## 현재 마일스톤
16
-
17
- - **활성 마일스톤**: M02_Context_Engineering_Enhancement
18
- - **마일스톤 상태**: 완료
19
- - **진행률**: 100%
20
- - **완료일**: 2025-07-08
21
-
22
- ## 현재 스프린트
23
-
24
- - **활성 스프린트**: S03_M02_ecosystem_integration
25
- - **스프린트 상태**: complete
26
- - **시작일**: 2025-07-08
27
- - **완료일**: 2025-07-08
28
-
29
- ## 활성 태스크
30
-
31
- ### 진행 중
32
-
33
- - **T14_S03**: 기본 프로젝트 템플릿 구축 (in_progress → 2025-07-10 06:20 시작)
34
- ### 계획됨
35
-
36
- - 계획된 태스크 없음
37
-
38
- ### 최근 완료
39
-
40
- - **T13_S03**: AI 도구 통합 템플릿 개발 (completed → 2025-07-10 04:37 완료)
41
-
42
- - **TX001**: Complete English Translation for 100% i18n Support (completed → 2025-07-09 08:13 완료)
43
- - **TX05_S02**: S02 통합 테스트 및 문서화 (completed → 2025-07-08 00:09 완료)
44
- - **TX03_S02**: Context 압축 알고리즘 구현 (completed → 2025-07-09 03:48 완료)
45
- - **TX11_S01**: 통합 테스트 Suite 구축 (completed → 2025-07-09 03:06 완료)
46
- - **TX10_S01**: update_docs 명령어 복구 (completed → 2025-07-09 02:49 완료)
47
- - **TX09_S01**: 압축 알고리즘 프로토타입 (completed → 2025-07-09 02:35 완료)
48
- - **TX08_S01**: 토큰 추적 시스템 프로토타입 (completed → 2025-07-09 02:12 완료)
49
- - **TX07_S01**: Context 압축 아키텍처 설계 (completed → 2025-07-09 01:54 완료)
50
- - **TX05_S01**: AI 페르소나 데이터 구조 설계 (completed → 2025-07-09 01:25 완료)
51
- - **TX04_S01**: Feature Ledger 문서화 (completed → 2025-07-09 01:02 완료)
52
- - **TX03_S01**: Git 연동 Feature 추적 (completed → 2025-07-09 00:45 완료)
53
- - **TX02_S01**: Feature Ledger CLI 명령어 개발 (completed → 2025-07-09 00:18 완료)
54
- - **TX01_S01**: Feature Ledger 데이터 구조 설계 (completed → 2025-07-09 00:01 완료)
55
- - **T04_S03**: update_docs 명령어 누락 이슈 해결 (completed → 2025-07-03 06:35 완료)
56
- - **T03_S03**: 한국어 명령어 전체 시스템 표준화 (completed → 2025-07-03 06:28 완료)
57
-
58
- ### 완료됨
59
-
60
- - 프로젝트 초기화 완료
61
- - M01 마일스톤 완료 (한국어 명령어 표준화)
62
-
63
- ## 마일스톤 목록
64
-
65
- | ID | 이름 | 상태 | 진행률 | 시작일 | 완료일 |
66
- | --- | ------------------------------- | ------- | ------ | ---------- | ------ |
67
- | M02 | Context_Engineering_Enhancement | 완료 | 100% | 2025-07-08 | 2025-07-08 |
68
- | M03 | AIWF_Simplification_Reliability | 계획 중 | 0% | TBD | TBD |
69
-
70
- ### 마일스톤 상세
71
- - [x] [M02: Context Engineering Enhancement](02_REQUIREMENTS/M02_Context_Engineering_Enhancement/M02_milestone_meta.md) - 상태: 완료
72
- - [ ] [M03: AIWF 단순화 및 신뢰성 강화](02_REQUIREMENTS/M03_Simone_Integration_Enhancement/M03_milestone_meta.md) - 상태: 계획 중
73
-
74
- ## 스프린트 목록
75
-
76
- | ID | 이름 | 마일스톤 | 상태 | 진행률 | 시작일 | 완료일 |
77
- | --- | ----------------------------- | -------- | --------- | ------ | ---------- | ------ |
78
- | S01 | context_foundation | M02 | complete | 100% | 2025-07-08 | 2025-07-08 |
79
- | S02 | ai_enhancement | M02 | complete | 100% | 2025-07-08 | 2025-07-08 |
80
- | S03 | ecosystem_integration | M02 | complete | 100% | 2025-07-08 | 2025-07-08 |
81
-
82
- ## 일반 태스크
83
-
84
- - [x] [TX001: Complete English Translation for 100% i18n Support](04_GENERAL_TASKS/TX001_complete_english_translation.md) - 상태: 완료
85
-
86
- ## 태스크 통계
87
-
88
- - **총 태스크**: 19
89
- - **완료**: 19
90
- - **진행 중**: 0
91
- - **대기 중**: 0
92
- - **차단됨**: 0
93
-
94
- ## 프로젝트 메트릭
95
-
96
- - **코드 커버리지**: N/A (NPM 패키지)
97
- - **활성 이슈**: 0
98
- - **해결된 이슈**: 0
99
- - **오픈 PR**: 0
100
-
101
- ## 기술 스택
102
-
103
- - **언어**: JavaScript (ES6+)
104
- - **런타임**: Node.js 14.0.0+
105
- - **패키지 매니저**: NPM
106
- - **테스트**: Jest
107
- - **CLI 도구**: Commander.js, Chalk, Ora, Prompts
108
-
109
- ## 주요 디렉토리
110
-
111
- - `index.js`: 메인 CLI 설치 도구
112
- - `claude-code/aiwf/ko/`: 한국어 AIWF 프레임워크
113
- - `claude-code/aiwf/en/`: 영어 AIWF 프레임워크
114
- - `rules/`: IDE별 개발 규칙
115
- - `docs/`: 프로젝트 문서
116
- - `tests/`: 테스트 파일
117
-
118
- ## 연락처 및 리소스
119
-
120
- - **저자**: moonklabs
121
- - **라이선스**: MIT
122
- - **저장소**: https://github.com/aiwf/aiwf
123
- - **NPM**: https://www.npmjs.com/package/aiwf
124
- - **이슈 트래커**: https://github.com/aiwf/aiwf/issues
125
-
126
- ## 주요 변경사항 로그
127
-
128
- ### 2025-07-10
129
-
130
- - 스프린트 태스크 상태 업데이트:
131
- - S01_M02: 실제로 11/12 태스크 구현 완료 (테스크 파일에는 4/12로 표시됨)
132
- - AI 페르소나, Context 압축, 토큰 추적 시스템 모두 구현됨
133
- - Feature Ledger CLI 명령어만 미구현
134
- - S02_M02: 태스크 파일과 구현의 불일치 확인
135
- - 6개 페르소나 구현 (계획 5개와 다른 이름)
136
- - Feature-Git 연동 부분 구현
137
- - S03_M02: AI 도구 템플릿 및 프로젝트 템플릿 미구현
138
- - Claude Code 템플릿만 존재
139
- - 오프라인 캐시 시스템은 구현됨
140
-
141
- ### 2025-07-08
142
-
143
- - S02 스프린트 완료: AI 강화 기능 구현
144
- - 5개 AI 페르소나 명령어 구현 완료
145
- - Context 압축 알고리즘 구현 (토큰 50% 절약 달성)
146
- - Feature-Git 연동 시스템 구축
147
- - 모든 DoD 항목 충족
148
- - M01 마일스톤 삭제 (완료됨)
149
- - M02 Context Engineering Enhancement 마일스톤을 위한 스프린트 재구성:
150
- - S01_M02_context_foundation: Feature Ledger, AI 페르소나, Context 압축 기반 구축
151
- - S02_M02_ai_enhancement: 5개 AI 페르소나, Context 압축 모드, Git 연동 구현
152
- - S03_M02_ecosystem_integration: 5개 AI 도구 템플릿, 통합 및 문서화 완성
153
- - M02 DoD 요구사항에 맞춘 스프린트 재정의
154
- - 1주일 단위 실행 가능한 범위로 조정
155
-
156
- ### 2025-07-02
157
-
158
- - AIWF 프로젝트 초기화 완료
159
- - 아키텍처 문서 생성
160
- - M01 한국어 명령어 표준화 마일스톤 시작
161
- - T03_S03 태스크 생성
162
-
163
- ## 향후 계획
164
-
165
- ### M03: AIWF 단순화 및 신뢰성 강화 (계획 중)
166
-
167
- **목표**: 태스크 상태 불일치 해결 및 CLI 인터페이스 단순화
168
-
169
- 1. **Week 1: 프로젝트 정리 및 기초 구축**:
170
- - 프로젝트 구조 정리 (중복 파일 제거, 모듈화)
171
- - JSON 기반 태스크 인덱스 시스템 설계
172
- - CLI 실행 파일 기본 구현
173
-
174
- 2. **Week 2: 핵심 기능 구현**:
175
- - 태스크 무결성 검사 시스템
176
- - 안전한 상태 변경 명령어
177
- - 기본 AI 도우미 (research, plan)
178
-
179
- 3. **Week 3: 통합 및 완성**:
180
- - 향상된 사용자 경험 (컬러 출력, 에러 메시지)
181
- - 테스트 및 문서화
182
- - v0.4.0 릴리즈 준비
183
-
184
- **제거된 오버엔지니어링**: SQLite DB, MCP 서버 통합, 웹 대시보드, 병렬 처리
185
-
186
- ### 레거시 목표
187
-
188
- 1. **즉시 조치 필요 사항**:
189
- - Feature Ledger CLI 명령어 구현 (aiwf_create_feature_ledger, aiwf_update_feature_status 등)
190
- - AI 도구 템플릿 4개 추가 (GitHub Copilot, Cursor, Windsurf, Augment)
191
- - 프로젝트 템플릿 시스템 구현
192
- - `.aiwf/ai-tools/` 및 `.aiwf/07_AI_PERSONAS/` 디렉토리 생성
193
-
194
- 2. **장기 목표**:
195
- - 새로운 언어 지원 추가
196
- - 커뮤니티 생태계 구축
@@ -1,121 +0,0 @@
1
- # AIWF (AI Workflow Framework) 아키텍처
2
-
3
- ## 프로젝트 개요
4
-
5
- AIWF는 Claude Code와의 통합을 위해 설계된 마크다운 기반 프로젝트 관리 프레임워크입니다. AI 지원 개발을 위한 체계적인 워크플로우를 제공하며, 다국어 지원(한국어/영어)을 통해 글로벌 개발자들이 사용할 수 있도록 설계되었습니다.
6
-
7
- ## 핵심 목적
8
-
9
- - AI가 효과적으로 처리할 수 있는 관리 가능한 단위로 소프트웨어 프로젝트를 분해
10
- - Claude Code와의 완벽한 통합을 통한 개발 생산성 극대화
11
- - 체계적인 프로젝트 관리 및 추적 시스템 제공
12
- - 다국어 환경에서의 일관된 개발 경험 보장
13
-
14
- ## 핵심 아키텍처 구성요소
15
-
16
- ### 1. CLI 설치 도구 (index.js)
17
- - **역할**: GitHub에서 AIWF 프레임워크 구성요소를 다운로드하고 설치하는 메인 진입점
18
- - **기술 스택**: Node.js ES modules, Commander.js, Chalk, Ora, Prompts
19
- - **핵심 기능**:
20
- - GitHub API 통합으로 최신 프레임워크 컨텐츠 가져오기
21
- - 대화형 언어 선택 (한국어/영어)
22
- - 자동 백업 및 업데이트 시스템
23
- - IDE별 규칙 변환 (Cursor, Windsurf)
24
-
25
- ### 2. AIWF 프레임워크 (claude-code/aiwf/)
26
- - **구조**: 언어별 분리된 디렉토리 구조 (`ko/`, `en/`)
27
- - **구성요소**:
28
- - `.claude/commands/`: Claude Code 커스텀 명령어
29
- - `.aiwf/`: 프로젝트 관리 구조 및 템플릿
30
-
31
- ### 3. 규칙 시스템 (rules/)
32
- - **Global Rules**: 항상 적용되는 개발 가이드라인
33
- - **Manual Rules**: 필요에 따라 적용하는 규칙들
34
- - **IDE 통합**: Cursor와 Windsurf IDE를 위한 특화된 규칙 변환
35
-
36
- ## 기술적 아키텍처 결정사항
37
-
38
- ### 다국어 지원 전략
39
- - **언어별 분리**: `ko/`, `en/` 폴더를 통한 완전한 언어별 컨텐츠 분리
40
- - **설치 시점 선택**: 사용자가 설치 시 언어를 선택하여 해당 언어 버전만 설치
41
- - **명령어 현지화**: 언어별 Claude Code 명령어 제공
42
-
43
- ### GitHub 통합 전략
44
- - **직접 다운로드**: GitHub API를 통한 실시간 컨텐츠 페치
45
- - **무인증 액세스**: GitHub API 속도 제한 내에서 동작
46
- - **마스터 브랜치 기준**: 항상 최신 안정 버전 제공
47
-
48
- ### 파일 관리 전략
49
- - **원자적 연산**: 백업/복원 기능을 통한 안전한 업데이트
50
- - **선택적 업데이트**:
51
- - CLAUDE.md 파일: 항상 업데이트
52
- - 명령어: 항상 업데이트
53
- - 템플릿: 신규 설치 시만 다운로드
54
- - 사용자 컨텐츠: 업데이트 중 보존
55
-
56
- ## 프로젝트 관리 워크플로우
57
-
58
- ### 명령어 구조
59
- ```
60
- /project:aiwf:<command>
61
- ```
62
-
63
- ### 핵심 명령어 카테고리
64
- 1. **설정**: `initialize`, `prime`
65
- 2. **계획**: `plan_milestone`, `create_sprints_from_milestone`
66
- 3. **개발**: `do_task`, `commit`, `test`, `code_review`
67
- 4. **자동화**: `yolo` (자율 실행)
68
- 5. **GitHub 통합**: `issue_create`, `pr_create`
69
- 6. **분석**: `ultrathink_*`, `mermaid`, `project_review`
70
-
71
- ### 디렉토리 구조 규칙
72
- ```
73
- .aiwf/
74
- ├── 00_PROJECT_MANIFEST.md # 중앙 추적 문서
75
- ├── 01_PROJECT_DOCS/ # 프로젝트 문서
76
- ├── 02_REQUIREMENTS/ # 마일스톤 요구사항
77
- ├── 03_SPRINTS/ # 스프린트 실행 추적
78
- ├── 04_GENERAL_TASKS/ # 독립적 태스크
79
- ├── 05_ARCHITECTURE_DECISIONS/ # ADR 문서
80
- ├── 10_STATE_OF_PROJECT/ # 프로젝트 상태 스냅샷
81
- ├── 98_PROMPTS/ # 유용한 AI 프롬프트
82
- └── 99_TEMPLATES/ # 문서 템플릿
83
- ```
84
-
85
- ## 중요한 기술적 제약사항
86
-
87
- ### 설치 안전성
88
- - 사용자가 생성한 프로젝트 컨텐츠는 절대 덮어쓰지 않음
89
- - 업데이트 전 항상 백업 생성
90
- - 스프린트 및 태스크의 기존 작업 보존
91
-
92
- ### Node.js 요구사항
93
- - 최소 Node.js 14.0.0
94
- - ES 모듈 사용 (`"type": "module"`)
95
- - `https` 및 `fs/promises` 지원 필요
96
-
97
- ### 네트워크 의존성
98
- - 설치를 위한 인터넷 연결 필요
99
- - 라이브 GitHub 저장소에서 모든 컨텐츠 가져오기
100
- - GitHub API 속도 제한 고려 (미인증)
101
-
102
- ## 보안 고려사항
103
-
104
- - GitHub API를 통한 안전한 컨텐츠 다운로드
105
- - 사용자 로컬 파일 시스템에 대한 안전한 파일 조작
106
- - 백업 메커니즘을 통한 데이터 손실 방지
107
-
108
- ## 확장성 고려사항
109
-
110
- ### 새로운 언어 추가
111
- 1. `claude-code/aiwf/{lang_code}/` 디렉토리 생성
112
- 2. 기존 언어에서 컨텐츠 복사 및 번역
113
- 3. `index.js`의 `messages` 객체에 언어 옵션 추가
114
- 4. 언어 선택 프롬프트 업데이트
115
-
116
- ### 새로운 명령어 추가
117
- 1. 언어별 디렉토리에 명령어 파일 생성
118
- 2. 명명 규칙 준수 (한국어 버전은 `_kr` 접미사 가능)
119
- 3. 문서 업데이트
120
-
121
- 이 아키텍처는 안정성과 사용자 안전을 중시하며, 광범위한 오류 처리와 백업 메커니즘을 통해 여러 언어에서 안정적인 프레임워크 배포를 보장합니다.