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.
- package/CHANGELOG.md +97 -0
- package/README.ko.md +114 -28
- package/README.md +152 -40
- package/docs/AI-WORKFLOW.md +121 -19
- package/docs/API_DOCUMENTATION.md +1 -1
- package/docs/API_REFERENCE.md +1 -1
- package/docs/CLI_USAGE_GUIDE.ko.md +634 -0
- package/docs/CLI_USAGE_GUIDE.md +339 -178
- package/docs/COMMANDS_GUIDE.ko.md +308 -4
- package/docs/COMMANDS_GUIDE.md +117 -0
- package/docs/CONTRIBUTING.ko.md +6 -6
- package/docs/CONTRIBUTING.md +6 -6
- package/docs/DEVELOPMENT_GUIDE.ko.md +440 -0
- package/docs/DEVELOPMENT_GUIDE.md +1 -1
- package/docs/EXAMPLES.md +8 -6
- package/docs/GETTING_STARTED.md +6 -3
- package/docs/STATE_MANAGEMENT_GUIDE.ko.md +278 -0
- package/docs/STATE_MANAGEMENT_GUIDE.md +278 -0
- package/docs/TROUBLESHOOTING.md +14 -13
- package/docs/guides/checkpoint-system-guide-ko.md +356 -0
- package/docs/guides/checkpoint-system-guide.md +356 -0
- package/docs/guides/independent-sprint-guide-ko.md +321 -0
- package/docs/guides/independent-sprint-guide.md +321 -0
- package/package.json +37 -4
- package/scripts/check-dependencies.js +101 -0
- package/scripts/update-file-lists.js +267 -0
- package/src/cli/checkpoint-cli.js +417 -0
- package/src/cli/index.js +337 -50
- package/src/cli/sprint-cli.js +287 -0
- package/src/commands/sprint-independent.js +393 -0
- package/src/commands/state-refactored.js +419 -0
- package/src/commands/state.js +1164 -0
- package/src/commands/yolo-config.js +502 -0
- package/src/config/file-lists.js +147 -0
- package/src/config/yolo-config-template.yaml +168 -0
- package/src/lib/file-downloader.js +7 -72
- package/src/lib/github-integration.js +402 -0
- package/src/lib/resource-loader-enhanced.js +399 -0
- package/src/lib/state/priority-calculator.js +217 -0
- package/src/lib/state/state-index.js +155 -0
- package/src/lib/state/task-scanner.js +328 -0
- package/src/utils/checkpoint-manager.js +425 -0
- package/src/utils/engineering-guard.js +389 -0
- package/.aiwf/00_PROJECT_MANIFEST.md +0 -420
- package/.aiwf/01_PROJECT_DOCS/ARCHITECTURE.md +0 -121
- package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_ADVANCED_USE_CASES.md +0 -412
- package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_API_REFERENCE.md +0 -361
- package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_COMMANDS_GUIDE.md +0 -254
- package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_FAQ.md +0 -365
- package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_SYSTEM_OVERVIEW.md +0 -305
- package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_USER_GUIDE.md +0 -416
- 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
- package/.aiwf/02_REQUIREMENTS/CLAUDE.md +0 -78
- package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/M02_milestone_meta.md +0 -34
- package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/PRD_Context_Engineering_Enhancement.md +0 -108
- package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/SPECS_AI_Persona_System.md +0 -299
- package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/SPECS_Feature_Ledger_System.md +0 -330
- package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/SPECS_Token_Optimization.md +0 -833
- package/.aiwf/02_REQUIREMENTS/M03_Simone_Integration_Enhancement/M03_milestone_meta.md +0 -55
- package/.aiwf/02_REQUIREMENTS/M03_Simone_Integration_Enhancement/SPECS_AIWF_Simplified_Plan.md +0 -221
- package/.aiwf/03_SPRINTS/CLAUDE.md +0 -83
- package/.aiwf/03_SPRINTS/S01_M02_context_foundation/S01_M02_sprint_meta.md +0 -95
- 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
- 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
- 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
- package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX04_S01_Feature_Ledger_/353/254/270/354/204/234/355/231/224.md +0 -114
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/.aiwf/03_SPRINTS/S02_M02_ai_enhancement/S02_M02_sprint_meta.md +0 -107
- 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
- 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
- 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
- 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
- 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
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/S03_FINAL_SPRINT_SUMMARY.md +0 -137
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/S03_M02_sprint_meta.md +0 -217
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T01_S03_new_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T02_S03_first_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T03_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T04_S03_task_with_special_characters.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T05_S03_test.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T06_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T07_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T08_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T09_S03_new_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T100_S03_task_with_special_characters.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T101_S03_test.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T102_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T103_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T104_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T105_S03_new_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T106_S03_first_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T107_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T108_S03_task_with_special_characters.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T109_S03_test.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T10_S03_first_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T110_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T111_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T112_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T11_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T12_S03_task_with_special_characters.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T13_S03_test.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T14_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T15_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T16_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T17_S03_new_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T18_S03_first_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T19_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T20_S03_task_with_special_characters.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T21_S03_test.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T22_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T23_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T24_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T25_S03_new_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T26_S03_first_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T27_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T28_S03_task_with_special_characters.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T29_S03_test.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T30_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T31_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T32_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T33_S03_new_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T34_S03_first_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T35_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T36_S03_task_with_special_characters.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T37_S03_test.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T38_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T39_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T40_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T41_S03_new_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T42_S03_first_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T43_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T44_S03_task_with_special_characters.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T45_S03_test.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T46_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T47_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T48_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T49_S03_new_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T50_S03_first_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T51_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T52_S03_task_with_special_characters.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T53_S03_test.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T54_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T55_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T56_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T57_S03_new_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T58_S03_first_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T59_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T60_S03_task_with_special_characters.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T61_S03_test.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T62_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T63_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T64_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T65_S03_new_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T66_S03_first_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T67_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T68_S03_task_with_special_characters.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T69_S03_test.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T70_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T71_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T72_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T73_S03_new_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T74_S03_first_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T75_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T76_S03_task_with_special_characters.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T77_S03_test.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T78_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T79_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T80_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T81_S03_new_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T82_S03_first_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T83_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T84_S03_task_with_special_characters.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T85_S03_test.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T86_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T87_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T88_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T89_S03_new_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T90_S03_first_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T91_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T92_S03_task_with_special_characters.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T93_S03_test.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T94_S03_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T95_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T96_S03_next_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T97_S03_new_test_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T98_S03_first_task.md +0 -39
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/T99_S03_test_task.md +0 -39
- 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
- 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
- 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
- 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
- package/.aiwf/04_GENERAL_TASKS/CLAUDE.md +0 -96
- package/.aiwf/04_GENERAL_TASKS/TX001_complete_english_translation.md +0 -127
- package/.aiwf/06_FEATURE_LEDGERS/FEATURE_GIT_INTEGRATION.md +0 -314
- package/.aiwf/06_FEATURE_LEDGERS/FEATURE_INTEGRATION_GUIDE.md +0 -227
- package/.aiwf/06_FEATURE_LEDGERS/FEATURE_LEDGER_INDEX.md +0 -23
- package/.aiwf/06_FEATURE_LEDGERS/FEATURE_SCHEMA.md +0 -205
- package/.aiwf/06_FEATURE_LEDGERS/FEATURE_STATE_DIAGRAM.md +0 -190
- package/.aiwf/06_FEATURE_LEDGERS/active/FL001_user_authentication_system.md +0 -47
- package/.aiwf/06_FEATURE_LEDGERS/active/FL002_user_authentication_system.md +0 -47
- package/.aiwf/07_AI_PERSONAS/PERSONA_INDEX.md +0 -57
- package/.aiwf/07_AI_PERSONAS/architect/best_practices.md +0 -104
- package/.aiwf/07_AI_PERSONAS/architect/context_rules.md +0 -46
- package/.aiwf/07_AI_PERSONAS/architect/knowledge_base.md +0 -235
- package/.aiwf/07_AI_PERSONAS/backend/best_practices.md +0 -363
- package/.aiwf/07_AI_PERSONAS/backend/context_rules.md +0 -61
- package/.aiwf/07_AI_PERSONAS/backend/knowledge_base.md +0 -623
- package/.aiwf/07_AI_PERSONAS/data_analyst/best_practices.md +0 -32
- package/.aiwf/07_AI_PERSONAS/data_analyst/context_rules.md +0 -43
- package/.aiwf/07_AI_PERSONAS/data_analyst/knowledge_base.md +0 -36
- package/.aiwf/07_AI_PERSONAS/frontend/best_practices.md +0 -31
- package/.aiwf/07_AI_PERSONAS/frontend/context_rules.md +0 -43
- package/.aiwf/07_AI_PERSONAS/frontend/knowledge_base.md +0 -32
- package/.aiwf/07_AI_PERSONAS/security/best_practices.md +0 -63
- package/.aiwf/07_AI_PERSONAS/security/context_rules.md +0 -53
- package/.aiwf/07_AI_PERSONAS/security/knowledge_base.md +0 -93
- package/.aiwf/10_PERSONAS/active.json +0 -1
- package/.aiwf/10_PERSONAS/developer.md +0 -37
- package/.aiwf/10_STATE_OF_PROJECT/2025-07-09-07-20-solid-progress.md +0 -144
- package/.aiwf/98_PROMPTS/SAAS_DEVELOPMENT_GUIDE.md +0 -302
- package/.aiwf/98_PROMPTS/github_integration.md +0 -130
- package/.aiwf/98_PROMPTS/useful-prompts.md +0 -31
- package/.aiwf/98_PROMPTS/vibe-front-prompts.md +0 -89
- package/.aiwf/99_TEMPLATES/adr_template.md +0 -49
- package/.aiwf/99_TEMPLATES/feature_template.md +0 -263
- package/.aiwf/99_TEMPLATES/milestone_meta_template.md +0 -25
- package/.aiwf/99_TEMPLATES/project_manifest_template.md +0 -39
- package/.aiwf/99_TEMPLATES/sprint_meta_template.md +0 -23
- package/.aiwf/99_TEMPLATES/task_template.md +0 -36
- package/.aiwf/CLAUDE.md +0 -76
- package/.aiwf/ai-tools/README.md +0 -105
- package/.aiwf/ai-tools/augment/README.md +0 -371
- package/.aiwf/ai-tools/augment/config.json +0 -30
- package/.aiwf/ai-tools/augment/template/.augment/aiwf-integration.md +0 -387
- package/.aiwf/ai-tools/augment/template/.augment/augment.yaml +0 -347
- package/.aiwf/ai-tools/augment/template/augment.config.json +0 -64
- package/.aiwf/ai-tools/claude-code/README.md +0 -151
- package/.aiwf/ai-tools/claude-code/config.json +0 -28
- package/.aiwf/ai-tools/claude-code/template/CLAUDE.md +0 -91
- package/.aiwf/ai-tools/cursor/README.md +0 -314
- package/.aiwf/ai-tools/cursor/config.json +0 -29
- package/.aiwf/ai-tools/cursor/template/.cursorrules +0 -362
- package/.aiwf/ai-tools/github-copilot/README.md +0 -195
- package/.aiwf/ai-tools/github-copilot/config.json +0 -24
- package/.aiwf/ai-tools/github-copilot/template/.github/copilot-instructions.md +0 -202
- package/.aiwf/ai-tools/windsurf/README.md +0 -355
- package/.aiwf/ai-tools/windsurf/config.json +0 -29
- package/.aiwf/ai-tools/windsurf/template/.windsurf/aiwf-rules.md +0 -260
- package/.aiwf/ai-tools/windsurf/template/.windsurf/windsurf.config.js +0 -312
- package/.aiwf/ai-tools/windsurf/template/windsurf.config.json +0 -63
- package/.aiwf/config/language.json +0 -6
- package/.aiwf/feature-ledger/FL-001-authentication.json +0 -52
- package/.aiwf/feature-ledger/feature-index.json +0 -20
- package/.aiwf/installed.flag +0 -1
- package/.aiwf/metrics/metrics.json +0 -18
- package/.aiwf/personas/analyst.json +0 -44
- package/.aiwf/personas/architect/best_practices.md +0 -136
- package/.aiwf/personas/architect/knowledge_base.md +0 -377
- package/.aiwf/personas/architect.json +0 -44
- package/.aiwf/personas/backend/best_practices.md +0 -766
- package/.aiwf/personas/backend/knowledge_base.md +0 -1070
- package/.aiwf/personas/current.json +0 -5
- package/.aiwf/personas/data_analyst/best_practices.md +0 -594
- package/.aiwf/personas/data_analyst/knowledge_base.md +0 -1057
- package/.aiwf/personas/developer.json +0 -44
- package/.aiwf/personas/evaluation_criteria.json +0 -137
- package/.aiwf/personas/frontend/best_practices.md +0 -445
- package/.aiwf/personas/frontend/knowledge_base.md +0 -729
- package/.aiwf/personas/persona-index.json +0 -31
- package/.aiwf/personas/reviewer.json +0 -44
- package/.aiwf/personas/security/best_practices.md +0 -307
- package/.aiwf/personas/security/knowledge_base.md +0 -498
- package/.aiwf/personas/tester.json +0 -44
- package/.aiwf/scripts/cache-templates.js +0 -209
- package/.aiwf/scripts/create-offline.js +0 -86
- package/.aiwf/scripts/create-project.js +0 -151
- package/.aiwf/scripts/feature-progress-calculator.cjs +0 -236
- package/.aiwf/scripts/git-integration.cjs +0 -391
- package/.aiwf/scripts/install-git-hooks.cjs +0 -226
- package/.aiwf/scripts/test-commit-parsing.cjs +0 -125
- package/.aiwf/scripts/update-feature-status.cjs +0 -198
- package/.aiwf/test-results-s02.json +0 -36
- package/.claude/commands/aiwf/aiwf_add_task_to_sprint.md +0 -283
- package/.claude/commands/aiwf/aiwf_changelog.md +0 -82
- package/.claude/commands/aiwf/aiwf_code_review.md +0 -88
- package/.claude/commands/aiwf/aiwf_commit.md +0 -160
- package/.claude/commands/aiwf/aiwf_compress_aggressive_persona.md +0 -41
- package/.claude/commands/aiwf/aiwf_compress_context.md +0 -116
- package/.claude/commands/aiwf/aiwf_compress_minimal_persona.md +0 -35
- package/.claude/commands/aiwf/aiwf_compress_stats.md +0 -30
- package/.claude/commands/aiwf/aiwf_compress_with_persona.md +0 -38
- package/.claude/commands/aiwf/aiwf_create_feature_ledger.md +0 -54
- package/.claude/commands/aiwf/aiwf_create_general_task.md +0 -147
- package/.claude/commands/aiwf/aiwf_create_milestone_plan.md +0 -194
- package/.claude/commands/aiwf/aiwf_create_prd.md +0 -280
- package/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +0 -189
- package/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +0 -121
- package/.claude/commands/aiwf/aiwf_default_mode.md +0 -44
- package/.claude/commands/aiwf/aiwf_discuss_review.md +0 -29
- package/.claude/commands/aiwf/aiwf_do_task.md +0 -109
- package/.claude/commands/aiwf/aiwf_docs.md +0 -225
- package/.claude/commands/aiwf/aiwf_evaluate.md +0 -79
- package/.claude/commands/aiwf/aiwf_get_feature_details.md +0 -78
- package/.claude/commands/aiwf/aiwf_infinite.md +0 -202
- package/.claude/commands/aiwf/aiwf_initialize.md +0 -134
- package/.claude/commands/aiwf/aiwf_install_git_hooks.md +0 -63
- package/.claude/commands/aiwf/aiwf_issue_create.md +0 -65
- package/.claude/commands/aiwf/aiwf_link_feature_branch.md +0 -43
- package/.claude/commands/aiwf/aiwf_link_feature_commit.md +0 -46
- package/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +0 -57
- package/.claude/commands/aiwf/aiwf_list_features.md +0 -54
- package/.claude/commands/aiwf/aiwf_mermaid.md +0 -272
- package/.claude/commands/aiwf/aiwf_persona_architect.md +0 -48
- package/.claude/commands/aiwf/aiwf_persona_backend.md +0 -37
- package/.claude/commands/aiwf/aiwf_persona_data_analyst.md +0 -37
- package/.claude/commands/aiwf/aiwf_persona_frontend.md +0 -37
- package/.claude/commands/aiwf/aiwf_persona_security.md +0 -48
- package/.claude/commands/aiwf/aiwf_persona_status.md +0 -50
- package/.claude/commands/aiwf/aiwf_pr_create.md +0 -76
- package/.claude/commands/aiwf/aiwf_prime.md +0 -9
- package/.claude/commands/aiwf/aiwf_project_review.md +0 -261
- package/.claude/commands/aiwf/aiwf_switch_language.md +0 -88
- package/.claude/commands/aiwf/aiwf_test.md +0 -124
- package/.claude/commands/aiwf/aiwf_testing_review.md +0 -198
- package/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +0 -210
- package/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +0 -460
- package/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +0 -165
- package/.claude/commands/aiwf/aiwf_ultrathink_general.md +0 -305
- package/.claude/commands/aiwf/aiwf_update_docs_kr.md +0 -25
- package/.claude/commands/aiwf/aiwf_update_feature_status.md +0 -53
- package/.claude/commands/aiwf/aiwf_yolo.md +0 -300
- package/.eslintrc.json +0 -26
- package/.prettierrc +0 -10
- package/CLAUDE.md +0 -254
- package/RELEASE_NOTES_M02.md +0 -177
- package/TEST_RECOVERY_PLAN.md +0 -68
- package/claude-code/aiwf/en/.aiwf/00_PROJECT_MANIFEST.md +0 -49
- package/claude-code/aiwf/en/.aiwf/01_PROJECT_DOCS/ARCHITECTURE.md +0 -55
- package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/CLAUDE.md +0 -78
- package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/M01_milestone_meta.md +0 -42
- package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_AMEND_01_Auth_Flow_Update.md +0 -73
- package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_Backend_Setup.md +0 -98
- package/claude-code/aiwf/en/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/SPECS_API_V1.md +0 -232
- package/claude-code/aiwf/en/.aiwf/03_SPRINTS/CLAUDE.md +0 -83
- package/claude-code/aiwf/en/.aiwf/03_SPRINTS/S01_M01_Initial_API/S01_sprint_meta.md +0 -49
- package/claude-code/aiwf/en/.aiwf/03_SPRINTS/S01_M01_Initial_API/T01_S01_Setup_Project_Structure.md +0 -60
- package/claude-code/aiwf/en/.aiwf/04_GENERAL_TASKS/CLAUDE.md +0 -96
- package/claude-code/aiwf/en/.aiwf/04_GENERAL_TASKS/T002_API_Rate_Limiting.md +0 -54
- package/claude-code/aiwf/en/.aiwf/04_GENERAL_TASKS/TX001_Refactor_Logging_Module.md +0 -58
- package/claude-code/aiwf/en/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR001_Chosen_Database_System.md +0 -119
- package/claude-code/aiwf/en/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR002_API_Authentication_Method.md +0 -124
- package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-needs-focus.md +0 -139
- package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-test-alignment.md +0 -155
- package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-13-00-50-solid-progress.md +0 -122
- package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-14-08-30-infrastructure-challenges.md +0 -141
- package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-16-21-48-critical-foundation-issues.md +0 -177
- package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-17-15-08-solid-progress.md +0 -149
- package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/index.json +0 -5
- package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/sync-index.js +0 -78
- package/claude-code/aiwf/en/.aiwf/98_PROMPTS/github_integration.md +0 -130
- package/claude-code/aiwf/en/.aiwf/98_PROMPTS/useful-prompts.md +0 -31
- package/claude-code/aiwf/en/.aiwf/98_PROMPTS/vibe-front-prompts.md +0 -89
- package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/adr_template.md +0 -49
- package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/milestone_meta_template.md +0 -25
- package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/project_manifest_template.md +0 -39
- package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/sprint_meta_template.md +0 -23
- package/claude-code/aiwf/en/.aiwf/99_TEMPLATES/task_template.md +0 -36
- package/claude-code/aiwf/en/.aiwf/CLAUDE.md +0 -74
- package/claude-code/aiwf/en/.aiwf/README.md +0 -97
- package/claude-code/aiwf/en/.claude/CLAUDE_BE.md +0 -276
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_changelog.md +0 -82
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_code_review.md +0 -88
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_commit.md +0 -160
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_feature_ledger.md +0 -54
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_general_task.md +0 -147
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_milestone_plan.md +0 -194
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_prd.md +0 -272
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +0 -189
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +0 -121
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_testcase.md +0 -561
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_default_mode.md +0 -66
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_discuss_review.md +0 -29
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_do_task.md +0 -109
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_docs.md +0 -225
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_get_feature_details.md +0 -78
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_infinite.md +0 -202
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_initialize.md +0 -134
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_issue_create.md +0 -65
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +0 -57
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_list_features.md +0 -54
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_mermaid.md +0 -272
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_architect.md +0 -60
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_backend.md +0 -60
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_data_analyst.md +0 -60
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_frontend.md +0 -60
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_security.md +0 -60
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_status.md +0 -72
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_pr_create.md +0 -76
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_prime.md +0 -9
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_project_review.md +0 -261
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_switch_language.md +0 -160
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_test.md +0 -125
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_testing_review.md +0 -198
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +0 -206
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +0 -460
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +0 -165
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_ultrathink_general.md +0 -362
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_update_feature_status.md +0 -53
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_yolo.md +0 -300
- package/claude-code/aiwf/en/.claude/mcp.json +0 -31
- package/claude-code/aiwf/en/.claude/settings.json +0 -102
- package/claude-code/aiwf/en/commands/ai-persona.js +0 -667
- package/claude-code/aiwf/en/commands/compress-context.js +0 -355
- package/claude-code/aiwf/en/commands/feature-ledger.js +0 -565
- package/claude-code/aiwf/en/commands/feature_commit_report.js +0 -370
- package/claude-code/aiwf/en/commands/scan_git_history.js +0 -234
- package/claude-code/aiwf/en/commands/sync_feature_commits.js +0 -154
- package/claude-code/aiwf/en/commands/token-tracking.js +0 -443
- package/claude-code/aiwf/en/config/commit-patterns.js +0 -103
- package/claude-code/aiwf/en/hooks/install-hooks.sh +0 -100
- package/claude-code/aiwf/en/hooks/post-commit +0 -84
- package/claude-code/aiwf/en/tests/compression-test-suite.js +0 -1252
- package/claude-code/aiwf/en/tests/test-git-integration.js +0 -164
- package/claude-code/aiwf/en/tests/token-tracking.test.js +0 -537
- package/claude-code/aiwf/en/utils/compression-metrics.js +0 -1031
- package/claude-code/aiwf/en/utils/compression-strategies.js +0 -557
- package/claude-code/aiwf/en/utils/content-normalizer.js +0 -455
- package/claude-code/aiwf/en/utils/context-compressor.js +0 -583
- package/claude-code/aiwf/en/utils/feature-updater.js +0 -271
- package/claude-code/aiwf/en/utils/git-utils.js +0 -220
- package/claude-code/aiwf/en/utils/importance-classifier.js +0 -645
- package/claude-code/aiwf/en/utils/information-filter.js +0 -710
- package/claude-code/aiwf/en/utils/text-summarizer.js +0 -487
- package/claude-code/aiwf/en/utils/token-counter.js +0 -177
- package/claude-code/aiwf/en/utils/token-monitor.js +0 -484
- package/claude-code/aiwf/en/utils/token-reporter.js +0 -453
- package/claude-code/aiwf/en/utils/token-storage.js +0 -433
- package/claude-code/aiwf/en/utils/token-tracker.js +0 -283
- package/claude-code/aiwf/ko/.aiwf/00_PROJECT_MANIFEST.md +0 -49
- package/claude-code/aiwf/ko/.aiwf/01_PROJECT_DOCS/ARCHITECTURE.md +0 -55
- package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/CLAUDE.md +0 -78
- package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/M01_milestone_meta.md +0 -42
- package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_AMEND_01_Auth_Flow_Update.md +0 -73
- package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_Backend_Setup.md +0 -98
- package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/SPECS_API_V1.md +0 -232
- package/claude-code/aiwf/ko/.aiwf/03_SPRINTS/CLAUDE.md +0 -83
- package/claude-code/aiwf/ko/.aiwf/03_SPRINTS/S01_M01_Initial_API/S01_sprint_meta.md +0 -49
- package/claude-code/aiwf/ko/.aiwf/03_SPRINTS/S01_M01_Initial_API/T01_S01_Setup_Project_Structure.md +0 -60
- package/claude-code/aiwf/ko/.aiwf/04_GENERAL_TASKS/CLAUDE.md +0 -96
- package/claude-code/aiwf/ko/.aiwf/04_GENERAL_TASKS/T002_API_Rate_Limiting.md +0 -54
- package/claude-code/aiwf/ko/.aiwf/04_GENERAL_TASKS/TX001_Refactor_Logging_Module.md +0 -58
- package/claude-code/aiwf/ko/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR001_Chosen_Database_System.md +0 -119
- package/claude-code/aiwf/ko/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR002_API_Authentication_Method.md +0 -124
- package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_ID_GENERATOR.md +0 -138
- package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_INDEX.md +0 -186
- package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_METADATA.md +0 -240
- package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_WORKFLOW.md +0 -183
- package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/README.md +0 -94
- 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
- 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
- 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
- package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/schemas/feature_schema.json +0 -122
- package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/schemas/feature_validator.cjs +0 -406
- package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-needs-focus.md +0 -139
- package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-test-alignment.md +0 -155
- package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-13-00-50-solid-progress.md +0 -122
- package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-14-08-30-infrastructure-challenges.md +0 -141
- package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-16-21-48-critical-foundation-issues.md +0 -177
- package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-17-15-08-solid-progress.md +0 -149
- package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/index.json +0 -5
- package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/sync-index.js +0 -78
- package/claude-code/aiwf/ko/.aiwf/98_PROMPTS/github_integration.md +0 -130
- package/claude-code/aiwf/ko/.aiwf/98_PROMPTS/useful-prompts.md +0 -31
- package/claude-code/aiwf/ko/.aiwf/98_PROMPTS/vibe-front-prompts.md +0 -89
- package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/adr_template.md +0 -49
- package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/milestone_meta_template.md +0 -25
- package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/project_manifest_template.md +0 -39
- package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/sprint_meta_template.md +0 -23
- package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/task_template.md +0 -36
- package/claude-code/aiwf/ko/.aiwf/CLAUDE.md +0 -76
- package/claude-code/aiwf/ko/.aiwf/README.md +0 -97
- package/claude-code/aiwf/ko/.claude/CLAUDE_BE.md +0 -276
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_changelog.md +0 -82
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_code_review.md +0 -88
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_commit.md +0 -160
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_aggressive_persona.md +0 -53
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_context.md +0 -116
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_minimal_persona.md +0 -48
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_stats.md +0 -42
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_with_persona.md +0 -51
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_feature_ledger.md +0 -54
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_general_task.md +0 -147
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_milestone_plan.md +0 -194
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_prd.md +0 -280
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +0 -189
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +0 -121
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_testcase.md +0 -561
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_default_mode.md +0 -44
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_discuss_review.md +0 -29
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_do_task.md +0 -109
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_docs.md +0 -225
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_evaluate.md +0 -92
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_get_feature_details.md +0 -78
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_infinite.md +0 -202
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_initialize.md +0 -134
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_issue_create.md +0 -65
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +0 -57
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_list_features.md +0 -54
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_mermaid.md +0 -272
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_architect.md +0 -48
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_backend.md +0 -37
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_data_analyst.md +0 -37
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_frontend.md +0 -37
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_security.md +0 -48
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_status.md +0 -50
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_pr_create.md +0 -76
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_prime.md +0 -9
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_project_review.md +0 -261
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_test.md +0 -124
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_testing_review.md +0 -198
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +0 -210
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +0 -460
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +0 -165
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_ultrathink_general.md +0 -305
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_update_docs.md +0 -25
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_update_feature_status.md +0 -53
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_yolo.md +0 -300
- package/claude-code/aiwf/ko/.claude/mcp.json +0 -31
- package/claude-code/aiwf/ko/.claude/settings.json +0 -102
- package/claude-code/aiwf/ko/CLAUDE.md +0 -76
- package/claude-code/aiwf/ko/ai-tools/README.md +0 -105
- package/claude-code/aiwf/ko/ai-tools/augment/README.md +0 -371
- package/claude-code/aiwf/ko/ai-tools/augment/config.json +0 -30
- package/claude-code/aiwf/ko/ai-tools/augment/template/.augment/aiwf-integration.md +0 -387
- package/claude-code/aiwf/ko/ai-tools/augment/template/.augment/augment.yaml +0 -347
- package/claude-code/aiwf/ko/ai-tools/augment/template/augment.config.json +0 -64
- package/claude-code/aiwf/ko/ai-tools/claude-code/README.md +0 -151
- package/claude-code/aiwf/ko/ai-tools/claude-code/config.json +0 -28
- package/claude-code/aiwf/ko/ai-tools/claude-code/template/CLAUDE.md +0 -91
- package/claude-code/aiwf/ko/ai-tools/cursor/README.md +0 -314
- package/claude-code/aiwf/ko/ai-tools/cursor/config.json +0 -29
- package/claude-code/aiwf/ko/ai-tools/cursor/template/.cursorrules +0 -362
- package/claude-code/aiwf/ko/ai-tools/github-copilot/README.md +0 -195
- package/claude-code/aiwf/ko/ai-tools/github-copilot/config.json +0 -24
- package/claude-code/aiwf/ko/ai-tools/github-copilot/template/.github/copilot-instructions.md +0 -202
- package/claude-code/aiwf/ko/ai-tools/windsurf/README.md +0 -355
- package/claude-code/aiwf/ko/ai-tools/windsurf/config.json +0 -29
- package/claude-code/aiwf/ko/ai-tools/windsurf/template/.windsurf/aiwf-rules.md +0 -260
- package/claude-code/aiwf/ko/ai-tools/windsurf/template/.windsurf/windsurf.config.js +0 -312
- package/claude-code/aiwf/ko/ai-tools/windsurf/template/windsurf.config.json +0 -63
- package/claude-code/aiwf/ko/commands/ai-persona.js +0 -602
- package/claude-code/aiwf/ko/commands/compress-context.js +0 -389
- package/claude-code/aiwf/ko/commands/evaluate.js +0 -246
- package/claude-code/aiwf/ko/commands/feature-ledger.js +0 -565
- package/claude-code/aiwf/ko/commands/feature_commit_report.js +0 -370
- package/claude-code/aiwf/ko/commands/persona-context-apply.js +0 -562
- package/claude-code/aiwf/ko/commands/scan_git_history.js +0 -234
- package/claude-code/aiwf/ko/commands/sync_feature_commits.js +0 -154
- package/claude-code/aiwf/ko/commands/token-tracking.js +0 -443
- package/claude-code/aiwf/ko/config/commit-patterns.js +0 -103
- package/claude-code/aiwf/ko/config/language.json +0 -6
- package/claude-code/aiwf/ko/feature-ledger/FL-001-authentication.json +0 -52
- package/claude-code/aiwf/ko/feature-ledger/feature-index.json +0 -20
- package/claude-code/aiwf/ko/hooks/install-hooks.sh +0 -100
- package/claude-code/aiwf/ko/hooks/post-commit +0 -84
- package/claude-code/aiwf/ko/personas/PERSONA_INDEX.md +0 -57
- package/claude-code/aiwf/ko/personas/analyst.json +0 -44
- package/claude-code/aiwf/ko/personas/architect/best_practices.md +0 -136
- package/claude-code/aiwf/ko/personas/architect/knowledge_base.md +0 -377
- package/claude-code/aiwf/ko/personas/architect.json +0 -44
- package/claude-code/aiwf/ko/personas/backend/best_practices.md +0 -766
- package/claude-code/aiwf/ko/personas/backend/knowledge_base.md +0 -1070
- package/claude-code/aiwf/ko/personas/data_analyst/best_practices.md +0 -594
- package/claude-code/aiwf/ko/personas/data_analyst/knowledge_base.md +0 -1057
- package/claude-code/aiwf/ko/personas/developer.json +0 -44
- package/claude-code/aiwf/ko/personas/developer.md +0 -37
- package/claude-code/aiwf/ko/personas/evaluation_criteria.json +0 -137
- package/claude-code/aiwf/ko/personas/frontend/best_practices.md +0 -445
- package/claude-code/aiwf/ko/personas/frontend/knowledge_base.md +0 -729
- package/claude-code/aiwf/ko/personas/persona-index.json +0 -31
- package/claude-code/aiwf/ko/personas/reviewer.json +0 -44
- package/claude-code/aiwf/ko/personas/security/best_practices.md +0 -307
- package/claude-code/aiwf/ko/personas/security/knowledge_base.md +0 -498
- package/claude-code/aiwf/ko/personas/tester.json +0 -44
- package/claude-code/aiwf/ko/scripts/cache-templates.js +0 -209
- package/claude-code/aiwf/ko/scripts/create-offline.js +0 -86
- package/claude-code/aiwf/ko/scripts/create-project.js +0 -151
- package/claude-code/aiwf/ko/scripts/feature-progress-calculator.cjs +0 -236
- package/claude-code/aiwf/ko/scripts/git-integration.cjs +0 -391
- package/claude-code/aiwf/ko/scripts/install-git-hooks.cjs +0 -226
- package/claude-code/aiwf/ko/scripts/test-commit-parsing.cjs +0 -125
- package/claude-code/aiwf/ko/scripts/update-feature-status.cjs +0 -198
- package/claude-code/aiwf/ko/templates/README.md +0 -78
- package/claude-code/aiwf/ko/templates/api-server/config.json +0 -64
- package/claude-code/aiwf/ko/templates/api-server/template/.aiwf/config.json +0 -56
- package/claude-code/aiwf/ko/templates/api-server/template/.aiwf/feature-ledger.json +0 -42
- package/claude-code/aiwf/ko/templates/api-server/template/.aiwf/personas/backend-engineer.json +0 -40
- package/claude-code/aiwf/ko/templates/api-server/template/.aiwf/scripts/cli.js +0 -111
- package/claude-code/aiwf/ko/templates/api-server/template/.env.example +0 -29
- package/claude-code/aiwf/ko/templates/api-server/template/.eslintrc.json +0 -23
- package/claude-code/aiwf/ko/templates/api-server/template/README.md +0 -171
- package/claude-code/aiwf/ko/templates/api-server/template/jest.config.js +0 -26
- package/claude-code/aiwf/ko/templates/api-server/template/nodemon.json +0 -9
- package/claude-code/aiwf/ko/templates/api-server/template/package.json +0 -61
- package/claude-code/aiwf/ko/templates/api-server/template/src/app.ts +0 -60
- package/claude-code/aiwf/ko/templates/api-server/template/src/config/swagger.ts +0 -38
- package/claude-code/aiwf/ko/templates/api-server/template/src/controllers/aiwfController.ts +0 -68
- package/claude-code/aiwf/ko/templates/api-server/template/src/controllers/authController.ts +0 -128
- package/claude-code/aiwf/ko/templates/api-server/template/src/controllers/statusController.ts +0 -28
- package/claude-code/aiwf/ko/templates/api-server/template/src/index.ts +0 -28
- package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/aiwfMiddleware.ts +0 -50
- package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/authMiddleware.ts +0 -41
- package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/errorHandler.ts +0 -42
- package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/notFoundHandler.ts +0 -14
- package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/requestLogger.ts +0 -20
- package/claude-code/aiwf/ko/templates/api-server/template/src/routes/aiwf.ts +0 -42
- package/claude-code/aiwf/ko/templates/api-server/template/src/routes/index.ts +0 -13
- package/claude-code/aiwf/ko/templates/api-server/template/src/routes/v1/index.ts +0 -67
- package/claude-code/aiwf/ko/templates/api-server/template/src/utils/logger.ts +0 -37
- package/claude-code/aiwf/ko/templates/api-server/template/tests/app.test.ts +0 -40
- package/claude-code/aiwf/ko/templates/api-server/template/tsconfig.json +0 -43
- package/claude-code/aiwf/ko/templates/npm-library/config.json +0 -61
- package/claude-code/aiwf/ko/templates/npm-library/template/LICENSE +0 -21
- package/claude-code/aiwf/ko/templates/npm-library/template/README.md +0 -201
- package/claude-code/aiwf/ko/templates/npm-library/template/package.json +0 -78
- package/claude-code/aiwf/ko/templates/web-app/config.json +0 -53
- package/claude-code/aiwf/ko/templates/web-app/template/.aiwf/config.json +0 -54
- package/claude-code/aiwf/ko/templates/web-app/template/.aiwf/feature-ledger.json +0 -37
- package/claude-code/aiwf/ko/templates/web-app/template/.aiwf/personas/fullstack-developer.json +0 -40
- package/claude-code/aiwf/ko/templates/web-app/template/.aiwf/scripts/cli.js +0 -110
- package/claude-code/aiwf/ko/templates/web-app/template/.eslintrc.cjs +0 -20
- package/claude-code/aiwf/ko/templates/web-app/template/README.md +0 -151
- package/claude-code/aiwf/ko/templates/web-app/template/index.html +0 -14
- package/claude-code/aiwf/ko/templates/web-app/template/package.json +0 -44
- package/claude-code/aiwf/ko/templates/web-app/template/postcss.config.js +0 -6
- package/claude-code/aiwf/ko/templates/web-app/template/public/vite.svg +0 -1
- package/claude-code/aiwf/ko/templates/web-app/template/src/App.tsx +0 -21
- package/claude-code/aiwf/ko/templates/web-app/template/src/components/Layout.tsx +0 -57
- package/claude-code/aiwf/ko/templates/web-app/template/src/components/aiwf/ContextStatus.tsx +0 -107
- package/claude-code/aiwf/ko/templates/web-app/template/src/components/aiwf/FeatureLedger.tsx +0 -93
- package/claude-code/aiwf/ko/templates/web-app/template/src/components/aiwf/TokenUsage.tsx +0 -71
- package/claude-code/aiwf/ko/templates/web-app/template/src/index.css +0 -60
- package/claude-code/aiwf/ko/templates/web-app/template/src/main.tsx +0 -10
- package/claude-code/aiwf/ko/templates/web-app/template/src/pages/AiwfDashboard.tsx +0 -60
- package/claude-code/aiwf/ko/templates/web-app/template/src/pages/HomePage.tsx +0 -89
- package/claude-code/aiwf/ko/templates/web-app/template/src/pages/NotFound.tsx +0 -25
- package/claude-code/aiwf/ko/templates/web-app/template/src/stores/aiwfStore.ts +0 -126
- package/claude-code/aiwf/ko/templates/web-app/template/src/types/global.d.ts +0 -9
- package/claude-code/aiwf/ko/templates/web-app/template/src/vite-env.d.ts +0 -1
- package/claude-code/aiwf/ko/templates/web-app/template/tailwind.config.js +0 -30
- package/claude-code/aiwf/ko/templates/web-app/template/tsconfig.json +0 -37
- package/claude-code/aiwf/ko/templates/web-app/template/tsconfig.node.json +0 -10
- package/claude-code/aiwf/ko/templates/web-app/template/vite.config.ts +0 -23
- package/claude-code/aiwf/ko/tests/compression-test-suite.js +0 -1252
- package/claude-code/aiwf/ko/tests/test-git-integration.js +0 -164
- package/claude-code/aiwf/ko/tests/token-tracking.test.js +0 -537
- package/claude-code/aiwf/ko/utils/background-monitor.js +0 -223
- package/claude-code/aiwf/ko/utils/compression-metrics.js +0 -1031
- package/claude-code/aiwf/ko/utils/compression-strategies.js +0 -557
- package/claude-code/aiwf/ko/utils/content-normalizer.js +0 -455
- package/claude-code/aiwf/ko/utils/context-compressor.js +0 -583
- package/claude-code/aiwf/ko/utils/context-rule-parser.js +0 -180
- package/claude-code/aiwf/ko/utils/context-token-monitor.js +0 -463
- package/claude-code/aiwf/ko/utils/context-update-manager.js +0 -502
- package/claude-code/aiwf/ko/utils/feature-updater.js +0 -271
- package/claude-code/aiwf/ko/utils/git-utils.js +0 -220
- package/claude-code/aiwf/ko/utils/importance-classifier.js +0 -645
- package/claude-code/aiwf/ko/utils/information-filter.js +0 -710
- package/claude-code/aiwf/ko/utils/persona-aware-compressor.js +0 -598
- package/claude-code/aiwf/ko/utils/prompt-injector.js +0 -242
- package/claude-code/aiwf/ko/utils/simplified-evaluator.js +0 -119
- package/claude-code/aiwf/ko/utils/text-summarizer.js +0 -492
- package/claude-code/aiwf/ko/utils/token-counter.js +0 -177
- package/claude-code/aiwf/ko/utils/token-monitor.js +0 -484
- package/claude-code/aiwf/ko/utils/token-reporter.js +0 -453
- package/claude-code/aiwf/ko/utils/token-storage.js +0 -433
- package/claude-code/aiwf/ko/utils/token-tracker.js +0 -283
- package/claude-code/docker/Dockerfile +0 -117
- package/jest.config.js +0 -23
- package/scripts/update-feature-status.js +0 -70
- package/src/commands/feature.js +0 -365
- package/tests/application.test.js +0 -260
- package/tests/basic.test.js +0 -62
- package/tests/commands.test.js +0 -127
- package/tests/installer.test.js +0 -129
- package/tests/integration/ai-persona-system.test.js +0 -396
- package/tests/integration/ai-persona.test.js +0 -390
- package/tests/integration/command-integration.test.js +0 -600
- package/tests/integration/context-compression.test.js +0 -361
- package/tests/integration/feature-ledger.test.js +0 -226
- package/tests/integration/git-integration.test.js +0 -307
- package/tests/integration/m02-milestone.test.js +0 -420
- package/tests/integration/persona-context-application.test.js +0 -508
- package/tests/integration/setup.js +0 -174
- package/tests/integration/test-persona-aware-compression.js +0 -93
- package/tests/integration/test-persona-system/.aiwf/metrics/metrics.json +0 -833
- package/tests/integration/test-persona-system/docs/README.md +0 -1
- package/tests/integration/test-persona-system/package.json +0 -1
- package/tests/integration/test-persona-system/src/auth.js +0 -1
- package/tests/integration/test-persona-system/src/index.js +0 -1
- package/tests/integration/test-persona-system/test/test.js +0 -1
- package/tests/language-utils.test.js +0 -287
- package/tests/s02-integration.test.js +0 -422
- package/tests/unit/ai-persona-manager.test.js +0 -514
- package/tests/unit/sprint-task.test.js +0 -172
package/claude-code/aiwf/en/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR001_Chosen_Database_System.md
DELETED
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
# ADR 001: Chosen Database System (EXAMPLE)
|
|
2
|
-
|
|
3
|
-
## Status
|
|
4
|
-
|
|
5
|
-
Accepted
|
|
6
|
-
|
|
7
|
-
## Date
|
|
8
|
-
|
|
9
|
-
2023-07-05
|
|
10
|
-
|
|
11
|
-
## Context
|
|
12
|
-
|
|
13
|
-
The backend system needs a database to store user accounts, projects, tasks, and other application data. The choice of database system will impact performance, scalability, development speed, and maintenance requirements.
|
|
14
|
-
|
|
15
|
-
**Note: This is an example Architecture Decision Record to demonstrate how ADRs might be structured in the AIWF framework.**
|
|
16
|
-
|
|
17
|
-
We evaluated several options including:
|
|
18
|
-
|
|
19
|
-
- Relational databases (PostgreSQL, MySQL)
|
|
20
|
-
- Document databases (MongoDB, CouchDB)
|
|
21
|
-
- Key-value stores (Redis, DynamoDB)
|
|
22
|
-
|
|
23
|
-
## Decision
|
|
24
|
-
|
|
25
|
-
We will use **MongoDB** as the primary database for this project.
|
|
26
|
-
|
|
27
|
-
## Rationale
|
|
28
|
-
|
|
29
|
-
The decision was based on the following factors:
|
|
30
|
-
|
|
31
|
-
1. **Schema Flexibility**: The project requirements are expected to evolve rapidly during development. MongoDB's flexible schema allows us to iterate quickly without needing migrations for every model change.
|
|
32
|
-
|
|
33
|
-
2. **JSON-Native Data Model**: Our API communicates in JSON, and MongoDB's BSON format aligns well with our data structures. This reduces the object-relational impedance mismatch.
|
|
34
|
-
|
|
35
|
-
3. **Scalability**: MongoDB's horizontal scaling capabilities via sharding will support our growth projections.
|
|
36
|
-
|
|
37
|
-
4. **Developer Productivity**: The team has prior experience with MongoDB and Mongoose ODM, which will accelerate development.
|
|
38
|
-
|
|
39
|
-
5. **Performance**: For our read-heavy workloads with relatively simple query patterns, MongoDB offers good performance characteristics.
|
|
40
|
-
|
|
41
|
-
6. **Ecosystem**: The robust Node.js ecosystem around MongoDB with libraries like Mongoose provides tools for validation, middleware, and other features that align with our development approach.
|
|
42
|
-
|
|
43
|
-
Some concerns were raised about:
|
|
44
|
-
|
|
45
|
-
- Lack of ACID transactions across multiple documents (though MongoDB does support multi-document transactions now)
|
|
46
|
-
- Potential for data duplication in document model
|
|
47
|
-
|
|
48
|
-
We determined these concerns were manageable for our use case and outweighed by the benefits.
|
|
49
|
-
|
|
50
|
-
## Alternatives Considered
|
|
51
|
-
|
|
52
|
-
### PostgreSQL
|
|
53
|
-
|
|
54
|
-
Pros:
|
|
55
|
-
|
|
56
|
-
- Mature, proven technology with strong ACID compliance
|
|
57
|
-
- Excellent for complex relational data and joins
|
|
58
|
-
- Support for JSON data types provides some schema flexibility
|
|
59
|
-
|
|
60
|
-
Cons:
|
|
61
|
-
|
|
62
|
-
- Schema migrations could slow development velocity
|
|
63
|
-
- Object-relational mapping adds complexity
|
|
64
|
-
- Less natural fit for our document-oriented data model
|
|
65
|
-
|
|
66
|
-
### DynamoDB
|
|
67
|
-
|
|
68
|
-
Pros:
|
|
69
|
-
|
|
70
|
-
- Fully managed service with automatic scaling
|
|
71
|
-
- Predictable performance with guaranteed low-latency
|
|
72
|
-
- Strong consistency options
|
|
73
|
-
|
|
74
|
-
Cons:
|
|
75
|
-
|
|
76
|
-
- Less flexible query capabilities
|
|
77
|
-
- AWS lock-in
|
|
78
|
-
- Potentially higher cost for our access patterns
|
|
79
|
-
- Less familiar to the development team
|
|
80
|
-
|
|
81
|
-
## Consequences
|
|
82
|
-
|
|
83
|
-
### Positive
|
|
84
|
-
|
|
85
|
-
- Faster initial development due to schema flexibility
|
|
86
|
-
- Easier object mapping between API and database
|
|
87
|
-
- Good performance for our expected read-heavy workloads
|
|
88
|
-
- Simplified deployment with MongoDB Atlas
|
|
89
|
-
|
|
90
|
-
### Negative
|
|
91
|
-
|
|
92
|
-
- Will require care when modeling relationships between data
|
|
93
|
-
- May need supplementary systems (like Redis) for certain use cases
|
|
94
|
-
- Need to handle eventual consistency in some parts of the application
|
|
95
|
-
|
|
96
|
-
### Neutral
|
|
97
|
-
|
|
98
|
-
- Team will need to follow MongoDB best practices for schema design
|
|
99
|
-
- We'll use Mongoose ODM to provide schema validation and middleware
|
|
100
|
-
|
|
101
|
-
## Implementation Notes
|
|
102
|
-
|
|
103
|
-
- We will use MongoDB Atlas as the managed service for all environments
|
|
104
|
-
- Mongoose will be our ODM of choice
|
|
105
|
-
- Initial indexes will be created for user email, project names, and task status
|
|
106
|
-
- We will implement soft deletion for most entities
|
|
107
|
-
- Data validation will happen at both the Mongoose schema level and API input level
|
|
108
|
-
|
|
109
|
-
## Related Decisions
|
|
110
|
-
|
|
111
|
-
- ADR002: API Authentication Method
|
|
112
|
-
- ADR004: Caching Strategy (pending)
|
|
113
|
-
|
|
114
|
-
## References
|
|
115
|
-
|
|
116
|
-
- [MongoDB Documentation](https://docs.mongodb.com/)
|
|
117
|
-
- [Mongoose Documentation](https://mongoosejs.com/docs/)
|
|
118
|
-
- MongoDB vs PostgreSQL comparison analysis (internal document)
|
|
119
|
-
- Performance benchmark results (internal document)
|
package/claude-code/aiwf/en/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR002_API_Authentication_Method.md
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
# ADR 002: API Authentication Method (EXAMPLE)
|
|
2
|
-
|
|
3
|
-
## Status
|
|
4
|
-
|
|
5
|
-
Accepted
|
|
6
|
-
|
|
7
|
-
## Date
|
|
8
|
-
|
|
9
|
-
2023-07-08
|
|
10
|
-
|
|
11
|
-
## Context
|
|
12
|
-
|
|
13
|
-
Our API requires a secure authentication mechanism to identify users, protect resources, and control access to endpoints. We needed to select an approach that balances security, usability, and compatibility with our chosen tech stack.
|
|
14
|
-
|
|
15
|
-
**Note: This is an example Architecture Decision Record to demonstrate how ADRs might be structured in the AIWF framework.**
|
|
16
|
-
|
|
17
|
-
Several authentication strategies were considered:
|
|
18
|
-
|
|
19
|
-
- Session-based authentication with cookies
|
|
20
|
-
- JWT (JSON Web Tokens)
|
|
21
|
-
- OAuth 2.0
|
|
22
|
-
- API keys
|
|
23
|
-
- Combinations of the above
|
|
24
|
-
|
|
25
|
-
## Decision
|
|
26
|
-
|
|
27
|
-
We will use **JWT (JSON Web Tokens)** as our primary authentication method, with OAuth 2.0 support for social logins.
|
|
28
|
-
|
|
29
|
-
## Rationale
|
|
30
|
-
|
|
31
|
-
Our decision was based on the following factors:
|
|
32
|
-
|
|
33
|
-
1. **Statelessness**: JWTs are self-contained and don't require server-side session storage, aligning well with our API-first, potentially distributed architecture.
|
|
34
|
-
|
|
35
|
-
2. **Performance**: Token validation can happen without database lookups for each request, improving API response times.
|
|
36
|
-
|
|
37
|
-
3. **Cross-domain compatibility**: JWTs work well across different domains and in mobile applications, supporting our multi-client strategy.
|
|
38
|
-
|
|
39
|
-
4. **Security feature support**: JWTs support expiration, audience validation, and can be cryptographically signed to ensure integrity.
|
|
40
|
-
|
|
41
|
-
5. **OAuth Integration**: For social logins (Google, GitHub), we can still issue JWTs after OAuth authentication, maintaining a consistent authorization approach.
|
|
42
|
-
|
|
43
|
-
6. **Client-side storage**: JWTs can be securely stored in client-side mechanisms like localStorage or HTTP-only cookies, giving us flexibility in implementation.
|
|
44
|
-
|
|
45
|
-
7. **Industry standard**: JWT is widely adopted, well-documented, and has strong library support in our tech stack.
|
|
46
|
-
|
|
47
|
-
We acknowledged some concerns with JWT:
|
|
48
|
-
|
|
49
|
-
- Token revocation requires additional mechanisms (blacklisting or short expiration with refresh tokens)
|
|
50
|
-
- Token size can be larger than simple session IDs
|
|
51
|
-
- Token payload is encoded, not encrypted (sensitive data shouldn't be included)
|
|
52
|
-
|
|
53
|
-
## Alternatives Considered
|
|
54
|
-
|
|
55
|
-
### Session-based Authentication
|
|
56
|
-
|
|
57
|
-
Pros:
|
|
58
|
-
|
|
59
|
-
- Well-established, traditional approach
|
|
60
|
-
- Easy to implement and understand
|
|
61
|
-
- Simple to revoke (delete the session)
|
|
62
|
-
|
|
63
|
-
Cons:
|
|
64
|
-
|
|
65
|
-
- Requires session storage on the server
|
|
66
|
-
- Can be problematic in distributed/scaled environments
|
|
67
|
-
- Typically relies on cookies which have cross-domain limitations
|
|
68
|
-
|
|
69
|
-
### API Keys
|
|
70
|
-
|
|
71
|
-
Pros:
|
|
72
|
-
|
|
73
|
-
- Very simple to implement
|
|
74
|
-
- Good for service-to-service communication
|
|
75
|
-
- No expiration management needed
|
|
76
|
-
|
|
77
|
-
Cons:
|
|
78
|
-
|
|
79
|
-
- Not suitable for user authentication
|
|
80
|
-
- Limited granularity for permissions
|
|
81
|
-
- No built-in standard for claims or payload
|
|
82
|
-
|
|
83
|
-
## Consequences
|
|
84
|
-
|
|
85
|
-
### Positive
|
|
86
|
-
|
|
87
|
-
- Simplified server architecture with no session storage requirements
|
|
88
|
-
- Improved performance for authentication checks
|
|
89
|
-
- Enhanced cross-domain and mobile app support
|
|
90
|
-
- Ability to include standard claims (exp, iat, sub, etc.) in the token
|
|
91
|
-
|
|
92
|
-
### Negative
|
|
93
|
-
|
|
94
|
-
- Need to implement token refresh mechanism for long-lived sessions
|
|
95
|
-
- Need for a token blacklist/revocation strategy
|
|
96
|
-
- More complex client-side token management compared to cookies
|
|
97
|
-
|
|
98
|
-
### Neutral
|
|
99
|
-
|
|
100
|
-
- Need to carefully design token payload to balance size and information needs
|
|
101
|
-
- Will use short-lived access tokens (15 minutes) with longer-lived refresh tokens (7 days)
|
|
102
|
-
- Client applications must properly handle token storage and renewal
|
|
103
|
-
|
|
104
|
-
## Implementation Notes
|
|
105
|
-
|
|
106
|
-
- We will use the `jsonwebtoken` library for token creation and validation
|
|
107
|
-
- Tokens will be signed with RS256 (asymmetric) algorithm
|
|
108
|
-
- Access tokens will have a 15-minute expiration
|
|
109
|
-
- Refresh tokens will have a 7-day expiration and be single-use
|
|
110
|
-
- We will implement a token blacklist using Redis for immediate revocation when needed
|
|
111
|
-
- Social login (OAuth) will use Passport.js strategies
|
|
112
|
-
- Authentication middleware will validate tokens on protected routes
|
|
113
|
-
|
|
114
|
-
## Related Decisions
|
|
115
|
-
|
|
116
|
-
- ADR001: Chosen Database System
|
|
117
|
-
- ADR003: API Security Measures (pending)
|
|
118
|
-
|
|
119
|
-
## References
|
|
120
|
-
|
|
121
|
-
- [JWT.io](https://jwt.io/)
|
|
122
|
-
- [IETF RFC 7519 - JSON Web Token](https://tools.ietf.org/html/rfc7519)
|
|
123
|
-
- [Auth0: JWTs vs Sessions](https://auth0.com/blog/cookies-vs-tokens-definitive-guide/)
|
|
124
|
-
- [OWASP: JSON Web Token Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/JSON_Web_Token_for_Java_Cheat_Sheet.html)
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
# Project Review - 2025-06-12 12:00
|
|
2
|
-
|
|
3
|
-
## 🎭 Review Sentiment
|
|
4
|
-
|
|
5
|
-
🚨⚠️🔧
|
|
6
|
-
|
|
7
|
-
## Executive Summary
|
|
8
|
-
|
|
9
|
-
- **Result:** NEEDS_WORK
|
|
10
|
-
- **Scope:** Full project review including test infrastructure, documentation, architecture, and code quality
|
|
11
|
-
- **Overall Judgment:** needs-focus
|
|
12
|
-
|
|
13
|
-
## Test Infrastructure Assessment
|
|
14
|
-
|
|
15
|
-
- **Test Suite Status**: FAILING (Backend: 25/26 failed suites, Frontend: 6/28 failed tests)
|
|
16
|
-
- **Test Pass Rate**: Backend: 98.3% (400 passed, 7 failed), Frontend: 78.6% (22 passed, 6 failed)
|
|
17
|
-
- **Test Health Score**: 3/10
|
|
18
|
-
- **Infrastructure Health**: BROKEN
|
|
19
|
-
- Import errors: 3 (missing test config files, path resolution issues)
|
|
20
|
-
- Configuration errors: 2 (dependency injection failures)
|
|
21
|
-
- Fixture issues: 1 (floating-point precision)
|
|
22
|
-
- **Test Categories**:
|
|
23
|
-
- Unit Tests: 400/407 passing (mostly meaningless smoke tests)
|
|
24
|
-
- Integration Tests: 0/7 passing (external dependency failures)
|
|
25
|
-
- API Tests: 0 functional tests (only smoke tests)
|
|
26
|
-
- **Critical Issues**:
|
|
27
|
-
- Missing `test-connect-info.json` configuration file
|
|
28
|
-
- API signature changes not reflected in tests (`dashboardService.create()` parameter mismatch)
|
|
29
|
-
- External database dependencies causing unstable tests
|
|
30
|
-
- Repository mocking setup missing across all services
|
|
31
|
-
- **Sprint Coverage**: <5% of actual functionality has meaningful tests
|
|
32
|
-
- **Blocking Status**: BLOCKED - Critical test infrastructure failures prevent reliable development
|
|
33
|
-
- **Recommendations**:
|
|
34
|
-
- Immediate: Fix missing test configuration files and dependency injection
|
|
35
|
-
- Short-term: Replace smoke tests with behavior-focused unit tests
|
|
36
|
-
- Long-term: Establish comprehensive test strategy with coverage targets
|
|
37
|
-
|
|
38
|
-
## Development Context
|
|
39
|
-
|
|
40
|
-
- **Current Milestone:** MVP 안정화 및 핵심 기능 강화 (active)
|
|
41
|
-
- **Current Sprint:** No active sprint structure in place
|
|
42
|
-
- **Expected Completeness:** Milestone requirements document exists but lacks sprint planning
|
|
43
|
-
|
|
44
|
-
## Progress Assessment
|
|
45
|
-
|
|
46
|
-
- **Milestone Progress:** 40% (documentation and architecture in place, but stability/performance work needed)
|
|
47
|
-
- **Sprint Status:** No formal sprint structure implemented
|
|
48
|
-
- **Deliverable Tracking:** Milestone requirements defined but not broken into actionable sprints
|
|
49
|
-
|
|
50
|
-
## Architecture & Technical Assessment
|
|
51
|
-
|
|
52
|
-
- **Architecture Score:** 7/10 - Well-structured modular design with clear separation of concerns
|
|
53
|
-
- **Technical Debt Level:** MEDIUM - Several architectural decisions need refinement but foundation is solid
|
|
54
|
-
- **Code Quality:** Mixed - Good patterns in core modules, but inconsistencies in error handling and type safety
|
|
55
|
-
|
|
56
|
-
Specific examples:
|
|
57
|
-
- ✅ Excellent: Modular NestJS structure with proper dependency injection
|
|
58
|
-
- ✅ Good: Multi-database support with Knex abstraction layer
|
|
59
|
-
- ⚠️ Needs work: Connection Service handling too many responsibilities
|
|
60
|
-
- ❌ Poor: TypeScript type safety with excessive `any` usage in API services
|
|
61
|
-
|
|
62
|
-
## File Organization Audit
|
|
63
|
-
|
|
64
|
-
- **Workflow Compliance:** NEEDS_ATTENTION
|
|
65
|
-
- **File Organization Issues:**
|
|
66
|
-
- Root directory pollution: `identifier.sqlite`, `package-lock.json` should be removed
|
|
67
|
-
- Directory name typos: `entites/` should be `entities/`, `tabel-query/` should be `table-query/`
|
|
68
|
-
- IntelliJ project files (*.iml) committed to repository
|
|
69
|
-
- Experimental code in production paths: `testLineChart.ts`
|
|
70
|
-
- **Cleanup Tasks Needed:**
|
|
71
|
-
- Remove 6+ unnecessary files from root and subdirectories
|
|
72
|
-
- Fix directory naming inconsistencies
|
|
73
|
-
- Consolidate duplicate dummy data files between backend and frontend
|
|
74
|
-
|
|
75
|
-
## Critical Findings
|
|
76
|
-
|
|
77
|
-
### Critical Issues (Severity 8-10)
|
|
78
|
-
|
|
79
|
-
#### Test Infrastructure Collapse
|
|
80
|
-
- 96% of test suites failing due to infrastructure issues, not logic problems
|
|
81
|
-
- No meaningful test coverage for authentication, data processing, or UI components
|
|
82
|
-
- External database dependencies making tests unstable and environment-dependent
|
|
83
|
-
- Missing test configuration files blocking integration test execution
|
|
84
|
-
|
|
85
|
-
#### Type Safety Violations
|
|
86
|
-
- Frontend API services using `Promise<any>` extensively, eliminating TypeScript benefits
|
|
87
|
-
- Backend missing proper error type definitions
|
|
88
|
-
- Inconsistent parameter types causing test failures (dashboard service API changes)
|
|
89
|
-
|
|
90
|
-
#### File System Pollution
|
|
91
|
-
- Repository contains IDE-specific files and temporary artifacts
|
|
92
|
-
- Directory naming errors preventing proper module imports
|
|
93
|
-
- Root-level files that should be in subdirectories or gitignored
|
|
94
|
-
|
|
95
|
-
### Improvement Opportunities (Severity 4-7)
|
|
96
|
-
|
|
97
|
-
#### Architecture Refinements
|
|
98
|
-
- Connection Service mixing multiple database engine logic (violates SRP)
|
|
99
|
-
- Dashboard Module depending on too many entities (tight coupling)
|
|
100
|
-
- Missing Factory pattern for database engine selection
|
|
101
|
-
|
|
102
|
-
#### Performance Concerns
|
|
103
|
-
- No caching strategy for frequently accessed data
|
|
104
|
-
- Large bundle sizes in frontend without optimization
|
|
105
|
-
- Lambda cold start issues not addressed
|
|
106
|
-
|
|
107
|
-
#### Documentation Gaps
|
|
108
|
-
- No ADRs (Architecture Decision Records) documenting technical choices
|
|
109
|
-
- Missing API documentation despite Swagger setup
|
|
110
|
-
- Test strategy and coverage guidelines not defined
|
|
111
|
-
|
|
112
|
-
## John Carmack Critique 🔥
|
|
113
|
-
|
|
114
|
-
1. **Test Infrastructure is Fundamentally Broken**: You have a 98.3% pass rate but essentially 0% meaningful coverage. This is worse than having no tests - it gives false confidence. The authentication system processes JWT tokens and passwords with zero validation tests. In a production BI system handling enterprise data, this is unacceptable. Fix the test infrastructure immediately or accept that you're shipping blind.
|
|
115
|
-
|
|
116
|
-
2. **Type Safety Theater**: TypeScript with `Promise<any>` everywhere defeats the entire purpose. You're getting all the compilation overhead with none of the safety benefits. Either commit to proper typing or drop TypeScript - this middle ground helps nobody and slows down development while providing zero protection.
|
|
117
|
-
|
|
118
|
-
3. **Connection Service is a God Object**: One service handling 10+ database engines with massive switch-case logic. This violates every SOLID principle simultaneously. When MySQL behavior differs from BigQuery, you'll have cascade failures across unrelated database types. Factor this into per-engine strategies before it becomes unmaintainable.
|
|
119
|
-
|
|
120
|
-
## Recommendations
|
|
121
|
-
|
|
122
|
-
Based on the findings, here are prioritized action items:
|
|
123
|
-
|
|
124
|
-
- **Important fixes:**
|
|
125
|
-
- Fix test infrastructure immediately - add missing config files, proper mocking setup
|
|
126
|
-
- Remove file system pollution (*.iml files, root directory cleanup)
|
|
127
|
-
- Fix directory naming typos that break imports
|
|
128
|
-
- Establish proper TypeScript typing in API layer
|
|
129
|
-
|
|
130
|
-
- **Optional fixes/changes:**
|
|
131
|
-
- Refactor Connection Service using Strategy/Factory patterns
|
|
132
|
-
- Add comprehensive error handling patterns
|
|
133
|
-
- Implement caching layer for database metadata
|
|
134
|
-
- Create ADR documentation for major technical decisions
|
|
135
|
-
|
|
136
|
-
- **Next Sprint Focus:**
|
|
137
|
-
- Cannot proceed to next sprint until test infrastructure is stabilized
|
|
138
|
-
- Recommend creating "Test Infrastructure Recovery" sprint before continuing MVP stabilization
|
|
139
|
-
- Focus on establishing baseline test coverage for authentication and data processing modules
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
# Test-Strategy Alignment Review - 2025-06-12 12:00
|
|
2
|
-
|
|
3
|
-
## Alignment Summary
|
|
4
|
-
|
|
5
|
-
Overall alignment with testing strategy: **POOR**
|
|
6
|
-
|
|
7
|
-
Key findings:
|
|
8
|
-
- Test suite has extremely low practical coverage (<5%) despite 98.3% pass rate for basic smoke tests
|
|
9
|
-
- Critical functionality (authentication, data processing, UI components) has no meaningful test coverage
|
|
10
|
-
- Tests focus on implementation details rather than user behavior and business value
|
|
11
|
-
- Frontend has essentially zero test coverage for core BI functionality
|
|
12
|
-
|
|
13
|
-
## Tests Requiring Modification
|
|
14
|
-
|
|
15
|
-
### Remove (Over-engineered/Out of scope)
|
|
16
|
-
- `backend-api/test/QTT-*/` - Integration tests with hardcoded external database dependencies
|
|
17
|
-
- **Reason**: These tests depend on actual database connections and fail in isolation
|
|
18
|
-
- **Action**: Replace with mocked integration tests
|
|
19
|
-
|
|
20
|
-
### Simplify (Too complex for purpose)
|
|
21
|
-
- All `*.service.spec.ts` files currently only test `should be defined`
|
|
22
|
-
- **File**: `src/auth/auth.service.spec.ts`
|
|
23
|
-
- **Issue**: Pointless smoke test that provides no value
|
|
24
|
-
- **Action**: Replace with behavior-focused authentication flow tests
|
|
25
|
-
|
|
26
|
-
- All `*.controller.spec.ts` files with minimal coverage
|
|
27
|
-
- **File**: `src/dashboard/dashboard.controller.spec.ts`
|
|
28
|
-
- **Issue**: Missing dependency mocking, tests implementation details
|
|
29
|
-
- **Action**: Focus on HTTP contract testing and error handling
|
|
30
|
-
|
|
31
|
-
### Add (Critical gaps)
|
|
32
|
-
- **Authentication Security Tests**
|
|
33
|
-
- JWT token generation/validation
|
|
34
|
-
- Password validation and hashing
|
|
35
|
-
- Token refresh mechanism
|
|
36
|
-
- Session timeout handling
|
|
37
|
-
|
|
38
|
-
- **Database Connection Tests**
|
|
39
|
-
- Connection pool management
|
|
40
|
-
- SQL injection prevention
|
|
41
|
-
- Query timeout handling
|
|
42
|
-
- Multi-database engine support
|
|
43
|
-
|
|
44
|
-
- **Frontend User Journey Tests**
|
|
45
|
-
- Login/logout flow
|
|
46
|
-
- Widget creation 3-step process
|
|
47
|
-
- Dashboard layout drag-and-drop
|
|
48
|
-
- Data visualization rendering
|
|
49
|
-
|
|
50
|
-
- **API Integration Tests**
|
|
51
|
-
- Error response format consistency
|
|
52
|
-
- CORS handling
|
|
53
|
-
- Rate limiting behavior
|
|
54
|
-
- File upload security
|
|
55
|
-
|
|
56
|
-
## Recommended Actions
|
|
57
|
-
|
|
58
|
-
### Immediate (Blocking issues)
|
|
59
|
-
- [ ] Fix dependency injection in all service tests (`backend-api/src/**/*.service.spec.ts`)
|
|
60
|
-
- [ ] Remove hardcoded database connections from QTT tests
|
|
61
|
-
- [ ] Add basic authentication flow tests for security validation
|
|
62
|
-
- [ ] Fix floating-point precision issues in `frontend-web/src/widget/utils/chartUtil.test.ts`
|
|
63
|
-
|
|
64
|
-
### Short-term (Quality improvements)
|
|
65
|
-
- [ ] Implement test data factories for consistent mock objects
|
|
66
|
-
- [ ] Add comprehensive API contract tests for all controllers
|
|
67
|
-
- [ ] Create E2E test suite for critical user workflows
|
|
68
|
-
- [ ] Establish test coverage baseline and improvement targets
|
|
69
|
-
|
|
70
|
-
### Long-term (Technical debt)
|
|
71
|
-
- [ ] Implement visual regression testing for 50+ chart components
|
|
72
|
-
- [ ] Add performance testing for large dataset processing
|
|
73
|
-
- [ ] Create automated security testing pipeline
|
|
74
|
-
- [ ] Establish test strategy documentation with coverage guidelines
|
|
75
|
-
|
|
76
|
-
## Test Health Indicators
|
|
77
|
-
|
|
78
|
-
- Tests align with code purpose: **NO** - Most tests are meaningless smoke tests
|
|
79
|
-
- Critical paths covered: **NO** - Authentication, data processing, UI flows lack coverage
|
|
80
|
-
- Maintenance burden reasonable: **PARTIALLY** - Current tests are minimal but don't provide value
|
|
81
|
-
- Tests support development velocity: **NO** - Tests don't catch regressions or guide refactoring
|
|
82
|
-
|
|
83
|
-
## Implementation Examples
|
|
84
|
-
|
|
85
|
-
### Before (Current - Meaningless)
|
|
86
|
-
```typescript
|
|
87
|
-
// auth.service.spec.ts
|
|
88
|
-
describe('AuthService', () => {
|
|
89
|
-
it('should be defined', () => {
|
|
90
|
-
expect(service).toBeDefined();
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### After (Behavior-focused)
|
|
96
|
-
```typescript
|
|
97
|
-
// auth.service.spec.ts
|
|
98
|
-
describe('AuthService', () => {
|
|
99
|
-
describe('validateUser', () => {
|
|
100
|
-
it('should return user data for valid credentials', async () => {
|
|
101
|
-
const mockUser = { id: 1, email: 'test@test.com' };
|
|
102
|
-
mockUserRepository.findOne.mockResolvedValue(mockUser);
|
|
103
|
-
|
|
104
|
-
const result = await service.validateUser('test@test.com', 'validPassword');
|
|
105
|
-
|
|
106
|
-
expect(result).toEqual(mockUser);
|
|
107
|
-
expect(mockUserRepository.findOne).toHaveBeenCalledWith({
|
|
108
|
-
where: { email: 'test@test.com' }
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
it('should throw UnauthorizedException for invalid credentials', async () => {
|
|
113
|
-
mockUserRepository.findOne.mockResolvedValue(null);
|
|
114
|
-
|
|
115
|
-
await expect(service.validateUser('test@test.com', 'wrongPassword'))
|
|
116
|
-
.rejects.toThrow(UnauthorizedException);
|
|
117
|
-
});
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
### Frontend Test Example
|
|
123
|
-
```typescript
|
|
124
|
-
// Widget creation flow test
|
|
125
|
-
describe('Widget Creation Flow', () => {
|
|
126
|
-
it('should complete 3-step widget creation successfully', async () => {
|
|
127
|
-
// Step 1: Dataset selection
|
|
128
|
-
fireEvent.click(screen.getByText('Sample Dataset'));
|
|
129
|
-
fireEvent.click(screen.getByText('다음'));
|
|
130
|
-
|
|
131
|
-
// Step 2: Chart type selection
|
|
132
|
-
fireEvent.click(screen.getByText('Line Chart'));
|
|
133
|
-
fireEvent.click(screen.getByText('다음'));
|
|
134
|
-
|
|
135
|
-
// Step 3: Configuration
|
|
136
|
-
fireEvent.change(screen.getByLabelText('위젯명'), {
|
|
137
|
-
target: { value: 'Test Widget' }
|
|
138
|
-
});
|
|
139
|
-
fireEvent.click(screen.getByText('저장'));
|
|
140
|
-
|
|
141
|
-
await waitFor(() => {
|
|
142
|
-
expect(screen.getByText('위젯이 생성되었습니다')).toBeInTheDocument();
|
|
143
|
-
});
|
|
144
|
-
});
|
|
145
|
-
});
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
## Next Review
|
|
149
|
-
|
|
150
|
-
Recommended review in: **2 weeks**
|
|
151
|
-
Focus areas for next review:
|
|
152
|
-
- Authentication test implementation progress
|
|
153
|
-
- Frontend test coverage establishment
|
|
154
|
-
- Integration test stability improvements
|
|
155
|
-
- Test infrastructure setup completion
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
# Project Review - [2025-06-13 00:50]
|
|
2
|
-
|
|
3
|
-
## 🎭 Review Sentiment
|
|
4
|
-
|
|
5
|
-
🚀 ⚡ 🔧
|
|
6
|
-
|
|
7
|
-
## Executive Summary
|
|
8
|
-
|
|
9
|
-
- **Result:** GOOD
|
|
10
|
-
- **Scope:** S03 스프린트 완료 후 종합적인 프로젝트 상태 리뷰
|
|
11
|
-
- **Overall Judgment:** solid-progress
|
|
12
|
-
|
|
13
|
-
## Test Infrastructure Assessment
|
|
14
|
-
|
|
15
|
-
- **Test Suite Status**: PASSING (217/228 tests)
|
|
16
|
-
- **Test Pass Rate**: 95.2% (217 passed, 11 failed)
|
|
17
|
-
- **Test Health Score**: 8/10
|
|
18
|
-
- **Infrastructure Health**: HEALTHY
|
|
19
|
-
- Import errors: 0
|
|
20
|
-
- Configuration errors: 2 (minor dependency injection issues)
|
|
21
|
-
- Fixture issues: 0
|
|
22
|
-
- **Test Categories**:
|
|
23
|
-
- Unit Tests: 217/228 passing
|
|
24
|
-
- Integration Tests: 상당 부분 통과
|
|
25
|
-
- API Tests: 대부분 통과
|
|
26
|
-
- **Critical Issues**:
|
|
27
|
-
- QueryAnalyzerService DataSource 의존성 주입 문제
|
|
28
|
-
- SlowQueryMonitorService 모킹 파라미터 불일치
|
|
29
|
-
- TypeScript 컴파일 에러 1건 (수정 완료)
|
|
30
|
-
- **Sprint Coverage**: S03 스프린트 deliverable 95% 이상 테스트 커버리지
|
|
31
|
-
- **Blocking Status**: CLEAR - 95% 이상 통과율로 개발 진행에 문제 없음
|
|
32
|
-
- **Recommendations**:
|
|
33
|
-
- QueryAnalyzerService 테스트 모듈 설정 수정 필요
|
|
34
|
-
- CSV 출력 테스트 기대값 정규화 (수정 완료)
|
|
35
|
-
|
|
36
|
-
## Development Context
|
|
37
|
-
|
|
38
|
-
- **Current Milestone:** M01 - MVP 안정화 및 핵심 기능 강화
|
|
39
|
-
- **Current Sprint:** S03 - 데이터베이스 성능 최적화 (거의 완료)
|
|
40
|
-
- **Expected Completeness:** S03 스프린트는 6/7 태스크 완료로 86% 진행률
|
|
41
|
-
|
|
42
|
-
## Progress Assessment
|
|
43
|
-
|
|
44
|
-
- **Milestone Progress:** 약 43% 완료 (3/7 스프린트 진행)
|
|
45
|
-
- **Sprint Status:** S03 거의 완료 (T01, T02, T04, T05, T06, T07 완료, T03만 남음)
|
|
46
|
-
- **Deliverable Tracking:** 데이터베이스 성능 최적화 핵심 목표 달성
|
|
47
|
-
|
|
48
|
-
## Architecture & Technical Assessment
|
|
49
|
-
|
|
50
|
-
- **Architecture Score:** 8/10 - 우수한 모듈화와 계층 분리
|
|
51
|
-
- **Technical Debt Level:** MEDIUM
|
|
52
|
-
- 중복 디렉토리 문제 (src/widget/tabel-query vs table-query)
|
|
53
|
-
- 과도한 추상화로 인한 복잡성 증가
|
|
54
|
-
- 빌드 아티팩트가 버전 관리에 포함됨
|
|
55
|
-
- **Code Quality:** 전반적으로 우수한 품질
|
|
56
|
-
- 명확한 네이밍 컨벤션
|
|
57
|
-
- 일관된 아키텍처 패턴
|
|
58
|
-
- 포괄적인 타입 안전성
|
|
59
|
-
|
|
60
|
-
## File Organization Audit
|
|
61
|
-
|
|
62
|
-
- **Workflow Compliance:** NEEDS_ATTENTION
|
|
63
|
-
- **File Organization Issues:**
|
|
64
|
-
- 중복 디렉토리: src/widget/tabel-query (오타) vs table-query
|
|
65
|
-
- 빌드 결과물이 저장소에 포함: dist/, coverage/ 폴더
|
|
66
|
-
- 루트 레벨 임시 파일들: test-connect-info.json, test-results.log
|
|
67
|
-
- **Cleanup Tasks Needed:**
|
|
68
|
-
- 오타 디렉토리 제거
|
|
69
|
-
- .gitignore에 빌드 아티팩트 추가
|
|
70
|
-
- 임시 파일들을 적절한 위치로 이동
|
|
71
|
-
|
|
72
|
-
## Critical Findings
|
|
73
|
-
### Critical Issues (Severity 8-10)
|
|
74
|
-
|
|
75
|
-
#### 파일 시스템 정리 필요
|
|
76
|
-
|
|
77
|
-
- 중복 디렉토리로 인한 혼란 가능성
|
|
78
|
-
- 빌드 아티팩트가 저장소 크기 증가시킴
|
|
79
|
-
- 개발 환경 불일치 가능성
|
|
80
|
-
|
|
81
|
-
### Improvement Opportunities (Severity 4-7)
|
|
82
|
-
|
|
83
|
-
#### 아키텍처 단순화
|
|
84
|
-
|
|
85
|
-
- 과도한 최적화 레이어 통합 검토
|
|
86
|
-
- 인터페이스 및 추상화 수준 최적화
|
|
87
|
-
- 의존성 수 검토 및 정리
|
|
88
|
-
|
|
89
|
-
#### 테스트 인프라 강화
|
|
90
|
-
|
|
91
|
-
- 의존성 주입 문제 해결
|
|
92
|
-
- 통합 테스트 모듈 설정 개선
|
|
93
|
-
- E2E 테스트 확장
|
|
94
|
-
|
|
95
|
-
## John Carmack Critique 🔥
|
|
96
|
-
|
|
97
|
-
1. **과도한 엔지니어링**: 3단계 최적화 레이어가 대부분의 사용 사례에 비해 과도함. "99%의 경우 적절한 인덱스와 간단한 캐싱이면 충분하다"
|
|
98
|
-
|
|
99
|
-
2. **추상화 남용**: 12개의 DB 드라이버와 50+ 인터페이스. "정말 모든 DB를 지원해야 하는가? 80% 케이스를 위한 20% 노력이 더 가치있다"
|
|
100
|
-
|
|
101
|
-
3. **완벽주의의 함정**: 50+ 차트 타입과 수백 개의 설정 옵션. "사용자는 5개 차트로 90%의 일을 한다. 나머지는 feature creep이다"
|
|
102
|
-
|
|
103
|
-
## Recommendations
|
|
104
|
-
|
|
105
|
-
**Important fixes:**
|
|
106
|
-
- 중복 디렉토리 즉시 정리 (src/widget/tabel-query 제거)
|
|
107
|
-
- .gitignore에 dist/, coverage/, node_modules/ 추가
|
|
108
|
-
- 테스트 모듈 의존성 주입 문제 해결
|
|
109
|
-
- 임시 파일들을 test/ 또는 .env 디렉토리로 이동
|
|
110
|
-
|
|
111
|
-
**Optional fixes/changes:**
|
|
112
|
-
- 최적화 레이어 통합 검토 (DatabaseSpecific + Enhanced + Cache 서비스)
|
|
113
|
-
- 사용하지 않는 DB 드라이버 제거 검토
|
|
114
|
-
- 인터페이스 복잡도 감소
|
|
115
|
-
- 차트 타입 사용률 분석 후 핵심 차트에 집중
|
|
116
|
-
|
|
117
|
-
**Next Sprint Focus:**
|
|
118
|
-
- S03 스프린트의 T03_S03 (TypeORM Query Optimization) 완료
|
|
119
|
-
- S04 스프린트 (API Lambda 최적화) 시작 가능
|
|
120
|
-
- 파일 시스템 정리 후 다음 단계 진행 권장
|
|
121
|
-
|
|
122
|
-
**Overall Assessment:** 프로젝트는 건실하게 진행되고 있으며, S03 스프린트의 데이터베이스 성능 최적화 목표를 거의 달성했습니다. 아키텍처는 우수하나 일부 과도한 추상화와 파일 정리 이슈가 있어 정리 후 다음 스프린트 진행을 권장합니다.
|