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
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
# Sprint Management Instructions
|
|
2
|
-
|
|
3
|
-
## Important Section - Always read
|
|
4
|
-
|
|
5
|
-
- When updating Tasks Logs (Output Log) always fetch current date and time first
|
|
6
|
-
- Update Output Log after every Subtask
|
|
7
|
-
- Always be truthful in Logs. If you cannot complete a task for technical reasons, just write it down. Don't lie!
|
|
8
|
-
- Only mark lines as done if you could acctually progress them.
|
|
9
|
-
- Update the task file after every completed subtask and check Acceptance criteria as well if successful.
|
|
10
|
-
|
|
11
|
-
## Sprint Structure
|
|
12
|
-
|
|
13
|
-
Sprints are organized by milestone and sequence:
|
|
14
|
-
|
|
15
|
-
- Folders follow pattern: `S<NN>_M<NN>_<Focus_Area>/` where:
|
|
16
|
-
- `S<NN>` is the sprint sequence number
|
|
17
|
-
- `M<NN>` directly references the milestone ID this sprint belongs to
|
|
18
|
-
- `<Focus_Area>` describes the sprint's main focus
|
|
19
|
-
- Each sprint has a meta file: `S<NN>_sprint_meta.md`
|
|
20
|
-
- Tasks use pattern: `T<NN>_S<NN>_<Description>.md`
|
|
21
|
-
|
|
22
|
-
## Sprint Meta Files
|
|
23
|
-
|
|
24
|
-
Sprint meta files define sprint goals and track status:
|
|
25
|
-
|
|
26
|
-
```yaml
|
|
27
|
-
---
|
|
28
|
-
sprint_id: S01
|
|
29
|
-
milestone_id: M01
|
|
30
|
-
status: in_progress # planning | in_progress | review | complete
|
|
31
|
-
---
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Update status as progress occurs:
|
|
35
|
-
|
|
36
|
-
- planning → in_progress → review → complete
|
|
37
|
-
|
|
38
|
-
Always use the template at `.AIWF/99_TEMPLATES/sprint_template.md` when creating new sprint meta files.
|
|
39
|
-
|
|
40
|
-
## Sprint Tasks
|
|
41
|
-
|
|
42
|
-
Tasks within a sprint follow a standard format:
|
|
43
|
-
|
|
44
|
-
- Status progression: open → in_progress → pending_review → done
|
|
45
|
-
- When completing a task:
|
|
46
|
-
- Ask for user confirmation
|
|
47
|
-
- Update status to "done"
|
|
48
|
-
- Rename file from T... to TX... (e.g., `TX01_S01_Task_Name.md`)
|
|
49
|
-
- Update Output Log with final entry
|
|
50
|
-
- If GitHub issue is linked, update issue status
|
|
51
|
-
|
|
52
|
-
Always use the template at `.AIWF/99_TEMPLATES/task_template.md` when creating new sprint tasks.
|
|
53
|
-
|
|
54
|
-
### GitHub Issue Integration
|
|
55
|
-
|
|
56
|
-
When working with tasks that have GitHub issues:
|
|
57
|
-
|
|
58
|
-
1. **Creating Issues**: Use `/project:aiwf:issue_create {task_id}` to create a GitHub issue from a task
|
|
59
|
-
2. **Linking Issues**: Add `github_issue: #123` to task frontmatter
|
|
60
|
-
3. **Status Updates**: Update issue status when task status changes
|
|
61
|
-
4. **Commit Integration**: Include `fixes #123` or `relates to #456` in commit messages
|
|
62
|
-
5. **Pull Requests**: Use `/project:aiwf:pr_create {task_id}` to create PR with issue linking
|
|
63
|
-
|
|
64
|
-
## Working with Sprint Tasks
|
|
65
|
-
|
|
66
|
-
When executing a sprint task:
|
|
67
|
-
|
|
68
|
-
1. Analyze task's Acceptance Criteria and Subtasks
|
|
69
|
-
2. Check if task has a linked GitHub issue (look for `github_issue` in frontmatter)
|
|
70
|
-
3. Update status to "in_progress" and update GitHub issue if linked:
|
|
71
|
-
```bash
|
|
72
|
-
gh issue comment {issue_number} --body "🚀 Task work has started."
|
|
73
|
-
gh issue edit {issue_number} --add-label "in-progress"
|
|
74
|
-
```
|
|
75
|
-
4. Log activities in the Output Log with timestamps after every Subtask(!)
|
|
76
|
-
5. Mark subtasks as completed using [x] only when they are really completed. If you were not able to complete them, don't mark them and tell the user.
|
|
77
|
-
6. Reference architectural guidelines when implementing technical solutions
|
|
78
|
-
7. Ensure the task follows the structure from the task template
|
|
79
|
-
8. When task is complete, update GitHub issue if linked:
|
|
80
|
-
```bash
|
|
81
|
-
gh issue comment {issue_number} --body "✅ Task has been completed."
|
|
82
|
-
gh issue edit {issue_number} --remove-label "in-progress" --add-label "completed"
|
|
83
|
-
```
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sprint_folder_name: S01_M01_Initial_API
|
|
3
|
-
sprint_sequence_id: S01
|
|
4
|
-
milestone_id: M01
|
|
5
|
-
title: Initial API Development
|
|
6
|
-
status: active # pending | active | completed | aborted
|
|
7
|
-
goal: Implement the foundational API structure including user authentication, basic project endpoints, and the initial database models.
|
|
8
|
-
last_updated: 2023-07-15
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Sprint: Initial API Development (S01) (EXAMPLE)
|
|
12
|
-
|
|
13
|
-
## Sprint Goal
|
|
14
|
-
|
|
15
|
-
Implement the foundational API structure including user authentication, basic project endpoints, and the initial database models.
|
|
16
|
-
|
|
17
|
-
## Scope & Key Deliverables
|
|
18
|
-
|
|
19
|
-
1. Set up the project structure with Express.js and MongoDB
|
|
20
|
-
2. Implement user registration and authentication endpoints
|
|
21
|
-
3. Create basic project and task models
|
|
22
|
-
4. Implement core API endpoints for projects and tasks
|
|
23
|
-
5. Set up automated testing infrastructure
|
|
24
|
-
|
|
25
|
-
## Sprint Backlog
|
|
26
|
-
|
|
27
|
-
- [T01_S01_Setup_Project_Structure](./T01_S01_Setup_Project_Structure.md)
|
|
28
|
-
- [T02_S01_Define_User_Model](./T02_S01_Define_User_Model.md)
|
|
29
|
-
- [T03_S01_Implement_Auth_Endpoints](./T03_S01_Implement_Auth_Endpoints.md)
|
|
30
|
-
- [T04_S01_Define_Project_Model](./T04_S01_Define_Project_Model.md)
|
|
31
|
-
- [T05_S01_Implement_Project_Endpoints](./T05_S01_Implement_Project_Endpoints.md)
|
|
32
|
-
|
|
33
|
-
## Definition of Done (for the Sprint)
|
|
34
|
-
|
|
35
|
-
The sprint will be considered complete when:
|
|
36
|
-
|
|
37
|
-
- All sprint tasks are completed and meet their acceptance criteria
|
|
38
|
-
- All implemented endpoints pass their test cases
|
|
39
|
-
- API documentation is updated to reflect implemented endpoints
|
|
40
|
-
- Code has been reviewed and merged to the development branch
|
|
41
|
-
|
|
42
|
-
## Notes / Context
|
|
43
|
-
|
|
44
|
-
This is an example sprint document to demonstrate how sprints might be structured in a project using the AIWF framework. This simulates what a typical initial API development sprint might look like.
|
|
45
|
-
|
|
46
|
-
## Related Documents
|
|
47
|
-
|
|
48
|
-
- [Milestone M01: Backend Setup](../../02_REQUIREMENTS/M01_Backend_Setup/M01_milestone_meta.md)
|
|
49
|
-
- [API Specifications V1](../../02_REQUIREMENTS/M01_Backend_Setup/SPECS_API_V1.md)
|
package/claude-code/aiwf/ko/.aiwf/03_SPRINTS/S01_M01_Initial_API/T01_S01_Setup_Project_Structure.md
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
task_id: T01_S01
|
|
3
|
-
sprint_sequence_id: S01
|
|
4
|
-
status: in_progress # open | in_progress | pending_review | done | failed | blocked
|
|
5
|
-
complexity: Medium # Low | Medium | High
|
|
6
|
-
last_updated: 2023-07-15
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Task: Setup Project Structure (EXAMPLE)
|
|
10
|
-
|
|
11
|
-
## Description
|
|
12
|
-
|
|
13
|
-
Set up the initial project structure for the backend API service, including directory organization, dependency installation, and basic configuration.
|
|
14
|
-
|
|
15
|
-
**Note: This is an example task to demonstrate the structure of a task in the AIWF framework.**
|
|
16
|
-
|
|
17
|
-
## Goal / Objectives
|
|
18
|
-
|
|
19
|
-
- Create a well-organized, scalable project structure
|
|
20
|
-
- Set up the Express.js application with middleware
|
|
21
|
-
- Configure MongoDB connection
|
|
22
|
-
- Implement basic error handling
|
|
23
|
-
- Set up environment configuration
|
|
24
|
-
- Initialize logging system
|
|
25
|
-
|
|
26
|
-
## Acceptance Criteria
|
|
27
|
-
|
|
28
|
-
- [ ] Project structure follows MVC pattern with clear separation of concerns
|
|
29
|
-
- [ ] Express application is set up with necessary middleware (CORS, body-parser, etc.)
|
|
30
|
-
- [ ] MongoDB connection is configured with error handling
|
|
31
|
-
- [ ] Environment variables are properly managed (development vs production)
|
|
32
|
-
- [ ] Logger is implemented for request/error tracking
|
|
33
|
-
- [ ] Basic error handling middleware is implemented
|
|
34
|
-
- [ ] Project runs without errors
|
|
35
|
-
- [ ] Initial tests pass
|
|
36
|
-
|
|
37
|
-
## Subtasks
|
|
38
|
-
|
|
39
|
-
- [ ] Initialize Node.js project with package.json
|
|
40
|
-
- [ ] Install core dependencies (express, mongoose, dotenv, etc.)
|
|
41
|
-
- [ ] Create directory structure for routes, controllers, models, middleware
|
|
42
|
-
- [ ] Set up Express application with basic middleware
|
|
43
|
-
- [ ] Configure MongoDB connection
|
|
44
|
-
- [ ] Implement environment-specific configurations
|
|
45
|
-
- [ ] Set up logging system
|
|
46
|
-
- [ ] Implement error handling middleware
|
|
47
|
-
- [ ] Write basic tests to verify configuration
|
|
48
|
-
|
|
49
|
-
## Output Log
|
|
50
|
-
|
|
51
|
-
[2023-07-15 14:30:00] Started task
|
|
52
|
-
[2023-07-15 14:45:22] Created files: package.json, .env.example
|
|
53
|
-
[2023-07-15 15:10:05] Created directory structure and base files: app.js, server.js, config/db.js, config/env.js
|
|
54
|
-
[2023-07-15 15:30:18] Created middleware: middleware/auth.js, middleware/error.js
|
|
55
|
-
[2023-07-15 15:45:30] Created util files: utils/logger.js
|
|
56
|
-
[2023-07-15 16:10:15] Created base routes: routes/index.js
|
|
57
|
-
[2023-07-15 16:45:22] Implemented error handling in middleware/error.js
|
|
58
|
-
[2023-07-15 17:20:10] Configured logging system in utils/logger.js
|
|
59
|
-
[2023-07-15 18:20:45] Added Jest configuration and created sample tests
|
|
60
|
-
[2023-07-15 18:35:30] Completed all subtasks, verified server starts successfully
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
# General Tasks Instructions
|
|
2
|
-
|
|
3
|
-
## General Task Structure
|
|
4
|
-
|
|
5
|
-
General tasks are standalone work items not tied to sprints:
|
|
6
|
-
|
|
7
|
-
- Files follow pattern: `T<NNN>_<Description>.md`
|
|
8
|
-
- Completed tasks: `TX<NNN>_<Description>.md`
|
|
9
|
-
|
|
10
|
-
Always use the template at `.AIWF/99_TEMPLATES/task_template.md` when creating new general tasks.
|
|
11
|
-
|
|
12
|
-
## Task Formatting
|
|
13
|
-
|
|
14
|
-
General tasks use standardized YAML frontmatter and sections:
|
|
15
|
-
|
|
16
|
-
```yaml
|
|
17
|
-
---
|
|
18
|
-
task_id: T001
|
|
19
|
-
status: open # open | in_progress | pending_review | done | failed | blocked
|
|
20
|
-
complexity: Medium # Low | Medium | High
|
|
21
|
-
last_updated: YYYY-MM-DD HH:MM
|
|
22
|
-
github_issue: #123 # Optional: Link to GitHub issue
|
|
23
|
-
---
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
The full task structure with all sections is defined in the task template. Always maintain this structure.
|
|
27
|
-
|
|
28
|
-
## Working with General Tasks
|
|
29
|
-
|
|
30
|
-
When handling general tasks:
|
|
31
|
-
|
|
32
|
-
1. Check if task has a linked GitHub issue (look for `github_issue` in frontmatter)
|
|
33
|
-
2. Update the status field as you progress
|
|
34
|
-
3. If GitHub issue is linked, update it when starting:
|
|
35
|
-
```bash
|
|
36
|
-
gh issue comment {issue_number} --body "🚀 Task work has started."
|
|
37
|
-
gh issue edit {issue_number} --add-label "in-progress"
|
|
38
|
-
```
|
|
39
|
-
4. Record timestamps in this format (YYYY-MM-DD HH:MM)
|
|
40
|
-
5. Log all significant actions in the Output Log section:
|
|
41
|
-
|
|
42
|
-
```plaintext
|
|
43
|
-
[YYYY-MM-DD HH:MM] Started task
|
|
44
|
-
[YYYY-MM-DD HH:MM] Modified files: file1.js, file2.js
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
6. Mark subtasks as they're completed: `- [x] Completed subtask`
|
|
48
|
-
7. Use the Acceptance Criteria as your primary completion checklist
|
|
49
|
-
8. Ensure all sections from the task template are preserved
|
|
50
|
-
|
|
51
|
-
## Task Completion Process
|
|
52
|
-
|
|
53
|
-
When a task is complete:
|
|
54
|
-
|
|
55
|
-
1. Update status to "done"
|
|
56
|
-
2. Update all Acceptance Criteria with [x]
|
|
57
|
-
3. Add final Output Log entry
|
|
58
|
-
4. If GitHub issue is linked, update it:
|
|
59
|
-
```bash
|
|
60
|
-
gh issue comment {issue_number} --body "✅ Task has been completed."
|
|
61
|
-
gh issue edit {issue_number} --remove-label "in-progress" --add-label "completed"
|
|
62
|
-
```
|
|
63
|
-
5. Rename file from T... to TX... (e.g., `TX001_Task_Name.md`)
|
|
64
|
-
|
|
65
|
-
## GitHub Integration
|
|
66
|
-
|
|
67
|
-
### Creating Issues from Tasks
|
|
68
|
-
|
|
69
|
-
To create a GitHub issue from a general task:
|
|
70
|
-
|
|
71
|
-
```bash
|
|
72
|
-
/project:aiwf:issue_create {task_id}
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### Linking Existing Issues
|
|
76
|
-
|
|
77
|
-
Add to task frontmatter:
|
|
78
|
-
|
|
79
|
-
```yaml
|
|
80
|
-
github_issue: #123
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### Commit Integration
|
|
84
|
-
|
|
85
|
-
When committing changes for a task with a linked issue:
|
|
86
|
-
|
|
87
|
-
- Use `fixes #123` to auto-close the issue
|
|
88
|
-
- Use `relates to #123` to reference without closing
|
|
89
|
-
|
|
90
|
-
### Pull Request Creation
|
|
91
|
-
|
|
92
|
-
After task completion, create a PR:
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
/project:aiwf:pr_create {task_id}
|
|
96
|
-
```
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
task_id: T002
|
|
3
|
-
status: in_progress # open | in_progress | pending_review | done | failed | blocked
|
|
4
|
-
complexity: Medium # Low | Medium | High
|
|
5
|
-
last_updated: 2023-07-25T09:15:00Z
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Task: API Rate Limiting (EXAMPLE)
|
|
9
|
-
|
|
10
|
-
## Description
|
|
11
|
-
|
|
12
|
-
Implement rate limiting for the API to prevent abuse and ensure fair usage across all clients. This task involves adding middleware to track and limit requests based on client IP or API key.
|
|
13
|
-
|
|
14
|
-
**Note: This is an example general task to demonstrate how non-sprint-specific tasks might be structured in the AIWF framework.**
|
|
15
|
-
|
|
16
|
-
## Goal / Objectives
|
|
17
|
-
|
|
18
|
-
- Protect API endpoints from abuse and excessive requests
|
|
19
|
-
- Implement configurable rate limits based on client authentication
|
|
20
|
-
- Track usage statistics for billing and monitoring
|
|
21
|
-
- Provide clear feedback to clients when limits are exceeded
|
|
22
|
-
- Ensure minimal performance impact on normal API operation
|
|
23
|
-
|
|
24
|
-
## Acceptance Criteria
|
|
25
|
-
|
|
26
|
-
- [ ] Rate limiting is applied to all public API endpoints
|
|
27
|
-
- [ ] Different rate limits are configurable based on client tier/authentication
|
|
28
|
-
- [ ] Response headers include rate limit information (limit, remaining, reset)
|
|
29
|
-
- [ ] When limit is exceeded, a 429 status code is returned with appropriate error message
|
|
30
|
-
- [ ] Rate limiting can be temporarily disabled for specific clients if needed
|
|
31
|
-
- [ ] Implementation has minimal impact on response times (<10ms overhead)
|
|
32
|
-
- [ ] Usage statistics are collected for monitoring and analysis
|
|
33
|
-
|
|
34
|
-
## Subtasks
|
|
35
|
-
|
|
36
|
-
- [x] Research rate limiting strategies and best practices
|
|
37
|
-
- [x] Evaluate libraries (express-rate-limit, rate-limiter-flexible, etc.)
|
|
38
|
-
- [x] Design rate limit tiers for different client types
|
|
39
|
-
- [ ] Implement rate limiting middleware
|
|
40
|
-
- [ ] Add custom response headers
|
|
41
|
-
- [ ] Create storage adapter for distributed rate limiting
|
|
42
|
-
- [ ] Implement override mechanism for special cases
|
|
43
|
-
- [ ] Add monitoring and alerts for rate limit events
|
|
44
|
-
- [ ] Document rate limiting behavior for API consumers
|
|
45
|
-
|
|
46
|
-
## Output Log
|
|
47
|
-
|
|
48
|
-
_(This section is populated as work progresses on the task)_
|
|
49
|
-
|
|
50
|
-
[2023-07-23 10:30:00] Started task
|
|
51
|
-
[2023-07-23 13:45:22] Completed research on rate limiting strategies
|
|
52
|
-
[2023-07-24 09:15:30] Evaluated rate-limiter-flexible and express-rate-limit libraries
|
|
53
|
-
[2023-07-24 15:50:15] Decided on rate-limiter-flexible for implementation
|
|
54
|
-
[2023-07-25 09:15:00] Designed rate limit tiers for different client authentication levels
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
task_id: T001
|
|
3
|
-
status: done # open | in_progress | pending_review | done | failed | blocked
|
|
4
|
-
complexity: Medium # Low | Medium | High
|
|
5
|
-
last_updated: 2023-07-22T16:45:00Z
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Task: Refactor Logging Module (EXAMPLE)
|
|
9
|
-
|
|
10
|
-
## Description
|
|
11
|
-
|
|
12
|
-
The current logging implementation is basic and needs to be enhanced to provide better visibility and monitoring capabilities. This task involves refactoring the logging module to add structured logging, log rotation, and improved error tracking.
|
|
13
|
-
|
|
14
|
-
**Note: This is an example general task to demonstrate how non-sprint-specific tasks might be structured in the AIWF framework.**
|
|
15
|
-
|
|
16
|
-
## Goal / Objectives
|
|
17
|
-
|
|
18
|
-
- Implement structured JSON logging for better parsing by log analysis tools
|
|
19
|
-
- Add log rotation to prevent log files from growing too large
|
|
20
|
-
- Enable different log levels based on environment
|
|
21
|
-
- Add request ID tracking for tracing requests through the system
|
|
22
|
-
- Improve error logging with stack traces and contextual information
|
|
23
|
-
|
|
24
|
-
## Acceptance Criteria
|
|
25
|
-
|
|
26
|
-
- [x] Logs are output in structured JSON format
|
|
27
|
-
- [x] Log files are rotated based on size and/or date
|
|
28
|
-
- [x] Different log levels are used appropriately (debug, info, warn, error)
|
|
29
|
-
- [x] Each request has a unique ID that is logged with every related log entry
|
|
30
|
-
- [x] Error logs include stack traces and relevant request information
|
|
31
|
-
- [x] Performance impact of logging is minimal
|
|
32
|
-
- [x] Documentation is updated to reflect new logging capabilities
|
|
33
|
-
|
|
34
|
-
## Subtasks
|
|
35
|
-
|
|
36
|
-
- [x] Evaluate and select appropriate logging libraries and tools
|
|
37
|
-
- [x] Design the structured log format with required fields
|
|
38
|
-
- [x] Implement log rotation configuration
|
|
39
|
-
- [x] Add request ID middleware for request tracking
|
|
40
|
-
- [x] Enhance error logging with more contextual information
|
|
41
|
-
- [x] Update logging throughout the application to use new formats
|
|
42
|
-
- [x] Write tests for logging functionality
|
|
43
|
-
- [x] Document the new logging system
|
|
44
|
-
|
|
45
|
-
## Output Log
|
|
46
|
-
|
|
47
|
-
_(This section is populated as work progresses on the task)_
|
|
48
|
-
|
|
49
|
-
[2023-07-15 10:30:00] Started task
|
|
50
|
-
[2023-07-15 11:15:22] Researched logging libraries: winston, pino, bunyan
|
|
51
|
-
[2023-07-15 13:45:30] Created prototype with winston for structured JSON logging
|
|
52
|
-
[2023-07-15 15:20:15] Implemented log rotation with winston-daily-rotate-file
|
|
53
|
-
[2023-07-15 16:40:05] Added request ID middleware
|
|
54
|
-
[2023-07-15 17:30:18] Enhanced error logging with stack traces and context
|
|
55
|
-
[2023-07-16 09:15:40] Updated application code to use new logging format
|
|
56
|
-
[2023-07-18 14:22:10] Wrote tests for logging functionality
|
|
57
|
-
[2023-07-20 11:05:33] Updated documentation with logging guidelines
|
|
58
|
-
[2023-07-22 16:45:00] Task completed
|
package/claude-code/aiwf/ko/.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/ko/.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)
|