aiwf 0.1.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/CLAUDE.md +19 -0
  3. package/LICENSE +1 -1
  4. package/README.ko.md +90 -62
  5. package/README.md +109 -62
  6. package/claude-code/{simone/.simone → aiwf/en/.aiwf}/01_PROJECT_DOCS/ARCHITECTURE.md +1 -1
  7. package/claude-code/{simone/.simone → aiwf/en/.aiwf}/02_REQUIREMENTS/M01_Backend_Setup/M01_milestone_meta.md +5 -1
  8. package/claude-code/{simone/.simone → aiwf/en/.aiwf}/02_REQUIREMENTS/M01_Backend_Setup/PRD_AMEND_01_Auth_Flow_Update.md +5 -1
  9. package/claude-code/{simone/.simone/03_SPRINTS/CLAUDE.MD → aiwf/en/.aiwf/03_SPRINTS/CLAUDE.md} +28 -7
  10. package/claude-code/{simone/.simone → aiwf/en/.aiwf}/03_SPRINTS/S01_M01_Initial_API/S01_sprint_meta.md +8 -1
  11. package/claude-code/{simone/.simone → aiwf/en/.aiwf}/03_SPRINTS/S01_M01_Initial_API/T01_S01_Setup_Project_Structure.md +5 -1
  12. package/claude-code/aiwf/en/.aiwf/04_GENERAL_TASKS/CLAUDE.md +96 -0
  13. package/claude-code/{simone/.simone → aiwf/en/.aiwf}/04_GENERAL_TASKS/T002_API_Rate_Limiting.md +7 -2
  14. package/claude-code/{simone/.simone → aiwf/en/.aiwf}/04_GENERAL_TASKS/TX001_Refactor_Logging_Module.md +7 -2
  15. package/claude-code/{simone/.simone → aiwf/en/.aiwf}/05_ARCHITECTURAL_DECISIONS/ADR001_Chosen_Database_System.md +7 -1
  16. package/claude-code/{simone/.simone → aiwf/en/.aiwf}/05_ARCHITECTURAL_DECISIONS/ADR002_API_Authentication_Method.md +7 -1
  17. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-needs-focus.md +139 -0
  18. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-test-alignment.md +155 -0
  19. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-13-00-50-solid-progress.md +122 -0
  20. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-14-08-30-infrastructure-challenges.md +141 -0
  21. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-16-21-48-critical-foundation-issues.md +177 -0
  22. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-17-15-08-solid-progress.md +149 -0
  23. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/index.json +5 -0
  24. package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/sync-index.js +78 -0
  25. package/claude-code/aiwf/en/.aiwf/98_PROMPTS/github_integration.md +130 -0
  26. package/claude-code/aiwf/en/.aiwf/98_PROMPTS/useful-prompts.md +31 -0
  27. package/claude-code/aiwf/en/.aiwf/98_PROMPTS/vibe-front-prompts.md +89 -0
  28. package/claude-code/{simone/.simone → aiwf/en/.aiwf}/99_TEMPLATES/task_template.md +1 -0
  29. package/claude-code/{simone/.simone/CLAUDE.MD → aiwf/en/.aiwf/CLAUDE.md} +13 -4
  30. package/claude-code/{simone/.simone → aiwf/en/.aiwf}/README.md +6 -6
  31. package/claude-code/aiwf/en/.claude/CLAUDE_BE.md +276 -0
  32. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_changelog.md +82 -0
  33. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_code_review.md +88 -0
  34. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_commit.md +160 -0
  35. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_general_task.md +147 -0
  36. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_milestone_plan.md +194 -0
  37. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_prd.md +272 -0
  38. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +189 -0
  39. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +121 -0
  40. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_discuss_review.md +29 -0
  41. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_do_task.md +109 -0
  42. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_docs.md +225 -0
  43. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_infinite.md +202 -0
  44. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_initialize.md +134 -0
  45. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_issue_create.md +65 -0
  46. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_language_manager.md +287 -0
  47. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_language_status.md +246 -0
  48. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_mermaid.md +272 -0
  49. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_pr_create.md +76 -0
  50. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_prime.md +9 -0
  51. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_project_review.md +261 -0
  52. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_switch_language.md +160 -0
  53. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_test.md +125 -0
  54. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_testing_review.md +198 -0
  55. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +206 -0
  56. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +460 -0
  57. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +165 -0
  58. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_ultrathink_general.md +362 -0
  59. package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_yolo.md +300 -0
  60. package/claude-code/aiwf/en/.claude/mcp.json +31 -0
  61. package/claude-code/aiwf/en/.claude/settings.json +102 -0
  62. package/claude-code/aiwf/ko/.aiwf/00_PROJECT_MANIFEST.md +49 -0
  63. package/claude-code/aiwf/ko/.aiwf/01_PROJECT_DOCS/ARCHITECTURE.md +55 -0
  64. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/CLAUDE.md +78 -0
  65. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/M01_milestone_meta.md +42 -0
  66. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_AMEND_01_Auth_Flow_Update.md +73 -0
  67. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_Backend_Setup.md +98 -0
  68. package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/SPECS_API_V1.md +232 -0
  69. package/claude-code/aiwf/ko/.aiwf/03_SPRINTS/CLAUDE.md +83 -0
  70. package/claude-code/aiwf/ko/.aiwf/03_SPRINTS/S01_M01_Initial_API/S01_sprint_meta.md +49 -0
  71. package/claude-code/aiwf/ko/.aiwf/03_SPRINTS/S01_M01_Initial_API/T01_S01_Setup_Project_Structure.md +60 -0
  72. package/claude-code/aiwf/ko/.aiwf/04_GENERAL_TASKS/CLAUDE.md +96 -0
  73. package/claude-code/aiwf/ko/.aiwf/04_GENERAL_TASKS/T002_API_Rate_Limiting.md +54 -0
  74. package/claude-code/aiwf/ko/.aiwf/04_GENERAL_TASKS/TX001_Refactor_Logging_Module.md +58 -0
  75. package/claude-code/aiwf/ko/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR001_Chosen_Database_System.md +119 -0
  76. package/claude-code/aiwf/ko/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR002_API_Authentication_Method.md +124 -0
  77. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-needs-focus.md +139 -0
  78. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-test-alignment.md +155 -0
  79. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-13-00-50-solid-progress.md +122 -0
  80. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-14-08-30-infrastructure-challenges.md +141 -0
  81. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-16-21-48-critical-foundation-issues.md +177 -0
  82. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-17-15-08-solid-progress.md +149 -0
  83. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/index.json +5 -0
  84. package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/sync-index.js +78 -0
  85. package/claude-code/aiwf/ko/.aiwf/98_PROMPTS/github_integration.md +130 -0
  86. package/claude-code/aiwf/ko/.aiwf/98_PROMPTS/useful-prompts.md +31 -0
  87. package/claude-code/aiwf/ko/.aiwf/98_PROMPTS/vibe-front-prompts.md +89 -0
  88. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/adr_template.md +49 -0
  89. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/milestone_meta_template.md +25 -0
  90. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/project_manifest_template.md +39 -0
  91. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/sprint_meta_template.md +23 -0
  92. package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/task_template.md +36 -0
  93. package/claude-code/aiwf/ko/.aiwf/CLAUDE.md +76 -0
  94. package/claude-code/aiwf/ko/.aiwf/README.md +97 -0
  95. package/claude-code/aiwf/ko/.claude/CLAUDE_BE.md +276 -0
  96. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_changelog.md +82 -0
  97. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_code_review.md +88 -0
  98. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_commit.md +160 -0
  99. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_general_task.md +147 -0
  100. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_milestone_plan.md +194 -0
  101. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_prd.md +280 -0
  102. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +189 -0
  103. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +121 -0
  104. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_discuss_review.md +29 -0
  105. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_do_task.md +109 -0
  106. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_docs.md +225 -0
  107. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_infinite.md +202 -0
  108. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_initialize.md +134 -0
  109. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_issue_create.md +65 -0
  110. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_language_manager.md +287 -0
  111. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_language_status.md +246 -0
  112. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_mermaid.md +272 -0
  113. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_pr_create.md +76 -0
  114. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_prime.md +9 -0
  115. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_project_review.md +261 -0
  116. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_switch_language.md +160 -0
  117. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_test.md +124 -0
  118. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_testing_review.md +198 -0
  119. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +210 -0
  120. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +460 -0
  121. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +165 -0
  122. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_ultrathink_general.md +305 -0
  123. package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_yolo.md +300 -0
  124. package/claude-code/aiwf/ko/.claude/mcp.json +31 -0
  125. package/claude-code/aiwf/ko/.claude/settings.json +102 -0
  126. package/{AI-WORKFLOW.md → docs/AI-WORKFLOW.ko.md} +38 -24
  127. package/docs/AI-WORKFLOW.md +299 -0
  128. package/docs/COMMANDS_GUIDE.ko.md +727 -0
  129. package/docs/COMMANDS_GUIDE.md +726 -0
  130. package/docs/CONTRIBUTING.md +406 -0
  131. package/docs/DEVELOPMENT_GUIDE.md +727 -0
  132. package/docs/Enhanced_Installation_Flow_Design.md +498 -0
  133. package/docs/PRD.ko.md +148 -0
  134. package/docs/PRD.md +150 -0
  135. package/docs/moonklabs-metadata-system-prd.md +127 -0
  136. package/index.js +1493 -122
  137. package/jest.config.js +4 -0
  138. package/language-cli.js +279 -0
  139. package/language-utils.js +330 -0
  140. package/package.json +23 -10
  141. package/scripts/validate-commands.cjs +338 -0
  142. package/scripts/validate-commands.js +254 -0
  143. package/tests/basic.test.js +62 -0
  144. package/tests/commands.test.js +127 -0
  145. package/tests/installer.test.js +129 -0
  146. package/tests/language-utils.test.js +271 -0
  147. package/COMMANDS_GUIDE.md +0 -462
  148. package/PRD.ko.md +0 -96
  149. package/PRD.md +0 -98
  150. package/claude-code/simone/.simone/04_GENERAL_TASKS/CLAUDE.MD +0 -51
  151. package/claude-code/simone/CHANGELOG.md +0 -71
  152. package/claude-code/simone/LICENSE +0 -21
  153. package/claude-code/simone/README.md +0 -219
  154. package/claude-code/simone/SYNC_GUIDE.md +0 -172
  155. package/claude-code/simone/sync-simone.sh +0 -138
  156. /package/claude-code/{simone/.simone → aiwf/en/.aiwf}/00_PROJECT_MANIFEST.md +0 -0
  157. /package/claude-code/{simone/.simone → aiwf/en/.aiwf}/02_REQUIREMENTS/CLAUDE.md +0 -0
  158. /package/claude-code/{simone/.simone → aiwf/en/.aiwf}/02_REQUIREMENTS/M01_Backend_Setup/PRD_Backend_Setup.md +0 -0
  159. /package/claude-code/{simone/.simone → aiwf/en/.aiwf}/02_REQUIREMENTS/M01_Backend_Setup/SPECS_API_V1.md +0 -0
  160. /package/claude-code/{simone/.simone → aiwf/en/.aiwf}/99_TEMPLATES/adr_template.md +0 -0
  161. /package/claude-code/{simone/.simone → aiwf/en/.aiwf}/99_TEMPLATES/milestone_meta_template.md +0 -0
  162. /package/claude-code/{simone/.simone → aiwf/en/.aiwf}/99_TEMPLATES/project_manifest_template.md +0 -0
  163. /package/claude-code/{simone/.simone → aiwf/en/.aiwf}/99_TEMPLATES/sprint_meta_template.md +0 -0
@@ -11,9 +11,11 @@ last_updated: 2023-07-15
11
11
  # Sprint: Initial API Development (S01) (EXAMPLE)
12
12
 
13
13
  ## Sprint Goal
14
+
14
15
  Implement the foundational API structure including user authentication, basic project endpoints, and the initial database models.
15
16
 
16
17
  ## Scope & Key Deliverables
18
+
17
19
  1. Set up the project structure with Express.js and MongoDB
18
20
  2. Implement user registration and authentication endpoints
19
21
  3. Create basic project and task models
@@ -21,6 +23,7 @@ Implement the foundational API structure including user authentication, basic pr
21
23
  5. Set up automated testing infrastructure
22
24
 
23
25
  ## Sprint Backlog
26
+
24
27
  - [T01_S01_Setup_Project_Structure](./T01_S01_Setup_Project_Structure.md)
25
28
  - [T02_S01_Define_User_Model](./T02_S01_Define_User_Model.md)
26
29
  - [T03_S01_Implement_Auth_Endpoints](./T03_S01_Implement_Auth_Endpoints.md)
@@ -28,15 +31,19 @@ Implement the foundational API structure including user authentication, basic pr
28
31
  - [T05_S01_Implement_Project_Endpoints](./T05_S01_Implement_Project_Endpoints.md)
29
32
 
30
33
  ## Definition of Done (for the Sprint)
34
+
31
35
  The sprint will be considered complete when:
36
+
32
37
  - All sprint tasks are completed and meet their acceptance criteria
33
38
  - All implemented endpoints pass their test cases
34
39
  - API documentation is updated to reflect implemented endpoints
35
40
  - Code has been reviewed and merged to the development branch
36
41
 
37
42
  ## Notes / Context
38
- This is an example sprint document to demonstrate how sprints might be structured in a project using the Simone framework. This simulates what a typical initial API development sprint might look like.
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.
39
45
 
40
46
  ## Related Documents
47
+
41
48
  - [Milestone M01: Backend Setup](../../02_REQUIREMENTS/M01_Backend_Setup/M01_milestone_meta.md)
42
49
  - [API Specifications V1](../../02_REQUIREMENTS/M01_Backend_Setup/SPECS_API_V1.md)
@@ -9,11 +9,13 @@ last_updated: 2023-07-15
9
9
  # Task: Setup Project Structure (EXAMPLE)
10
10
 
11
11
  ## Description
12
+
12
13
  Set up the initial project structure for the backend API service, including directory organization, dependency installation, and basic configuration.
13
14
 
14
- **Note: This is an example task to demonstrate the structure of a task in the Simone framework.**
15
+ **Note: This is an example task to demonstrate the structure of a task in the AIWF framework.**
15
16
 
16
17
  ## Goal / Objectives
18
+
17
19
  - Create a well-organized, scalable project structure
18
20
  - Set up the Express.js application with middleware
19
21
  - Configure MongoDB connection
@@ -22,6 +24,7 @@ Set up the initial project structure for the backend API service, including dire
22
24
  - Initialize logging system
23
25
 
24
26
  ## Acceptance Criteria
27
+
25
28
  - [ ] Project structure follows MVC pattern with clear separation of concerns
26
29
  - [ ] Express application is set up with necessary middleware (CORS, body-parser, etc.)
27
30
  - [ ] MongoDB connection is configured with error handling
@@ -32,6 +35,7 @@ Set up the initial project structure for the backend API service, including dire
32
35
  - [ ] Initial tests pass
33
36
 
34
37
  ## Subtasks
38
+
35
39
  - [ ] Initialize Node.js project with package.json
36
40
  - [ ] Install core dependencies (express, mongoose, dotenv, etc.)
37
41
  - [ ] Create directory structure for routes, controllers, models, middleware
@@ -0,0 +1,96 @@
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
+ ```
@@ -8,11 +8,13 @@ last_updated: 2023-07-25T09:15:00Z
8
8
  # Task: API Rate Limiting (EXAMPLE)
9
9
 
10
10
  ## Description
11
+
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.
12
13
 
13
- **Note: This is an example general task to demonstrate how non-sprint-specific tasks might be structured in the Simone framework.**
14
+ **Note: This is an example general task to demonstrate how non-sprint-specific tasks might be structured in the AIWF framework.**
14
15
 
15
16
  ## Goal / Objectives
17
+
16
18
  - Protect API endpoints from abuse and excessive requests
17
19
  - Implement configurable rate limits based on client authentication
18
20
  - Track usage statistics for billing and monitoring
@@ -20,6 +22,7 @@ Implement rate limiting for the API to prevent abuse and ensure fair usage acros
20
22
  - Ensure minimal performance impact on normal API operation
21
23
 
22
24
  ## Acceptance Criteria
25
+
23
26
  - [ ] Rate limiting is applied to all public API endpoints
24
27
  - [ ] Different rate limits are configurable based on client tier/authentication
25
28
  - [ ] Response headers include rate limit information (limit, remaining, reset)
@@ -29,6 +32,7 @@ Implement rate limiting for the API to prevent abuse and ensure fair usage acros
29
32
  - [ ] Usage statistics are collected for monitoring and analysis
30
33
 
31
34
  ## Subtasks
35
+
32
36
  - [x] Research rate limiting strategies and best practices
33
37
  - [x] Evaluate libraries (express-rate-limit, rate-limiter-flexible, etc.)
34
38
  - [x] Design rate limit tiers for different client types
@@ -40,7 +44,8 @@ Implement rate limiting for the API to prevent abuse and ensure fair usage acros
40
44
  - [ ] Document rate limiting behavior for API consumers
41
45
 
42
46
  ## Output Log
43
- *(This section is populated as work progresses on the task)*
47
+
48
+ _(This section is populated as work progresses on the task)_
44
49
 
45
50
  [2023-07-23 10:30:00] Started task
46
51
  [2023-07-23 13:45:22] Completed research on rate limiting strategies
@@ -8,11 +8,13 @@ last_updated: 2023-07-22T16:45:00Z
8
8
  # Task: Refactor Logging Module (EXAMPLE)
9
9
 
10
10
  ## Description
11
+
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.
12
13
 
13
- **Note: This is an example general task to demonstrate how non-sprint-specific tasks might be structured in the Simone framework.**
14
+ **Note: This is an example general task to demonstrate how non-sprint-specific tasks might be structured in the AIWF framework.**
14
15
 
15
16
  ## Goal / Objectives
17
+
16
18
  - Implement structured JSON logging for better parsing by log analysis tools
17
19
  - Add log rotation to prevent log files from growing too large
18
20
  - Enable different log levels based on environment
@@ -20,6 +22,7 @@ The current logging implementation is basic and needs to be enhanced to provide
20
22
  - Improve error logging with stack traces and contextual information
21
23
 
22
24
  ## Acceptance Criteria
25
+
23
26
  - [x] Logs are output in structured JSON format
24
27
  - [x] Log files are rotated based on size and/or date
25
28
  - [x] Different log levels are used appropriately (debug, info, warn, error)
@@ -29,6 +32,7 @@ The current logging implementation is basic and needs to be enhanced to provide
29
32
  - [x] Documentation is updated to reflect new logging capabilities
30
33
 
31
34
  ## Subtasks
35
+
32
36
  - [x] Evaluate and select appropriate logging libraries and tools
33
37
  - [x] Design the structured log format with required fields
34
38
  - [x] Implement log rotation configuration
@@ -39,7 +43,8 @@ The current logging implementation is basic and needs to be enhanced to provide
39
43
  - [x] Document the new logging system
40
44
 
41
45
  ## Output Log
42
- *(This section is populated as work progresses on the task)*
46
+
47
+ _(This section is populated as work progresses on the task)_
43
48
 
44
49
  [2023-07-15 10:30:00] Started task
45
50
  [2023-07-15 11:15:22] Researched logging libraries: winston, pino, bunyan
@@ -12,9 +12,10 @@ Accepted
12
12
 
13
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
14
 
15
- **Note: This is an example Architecture Decision Record to demonstrate how ADRs might be structured in the Simone framework.**
15
+ **Note: This is an example Architecture Decision Record to demonstrate how ADRs might be structured in the AIWF framework.**
16
16
 
17
17
  We evaluated several options including:
18
+
18
19
  - Relational databases (PostgreSQL, MySQL)
19
20
  - Document databases (MongoDB, CouchDB)
20
21
  - Key-value stores (Redis, DynamoDB)
@@ -40,6 +41,7 @@ The decision was based on the following factors:
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.
41
42
 
42
43
  Some concerns were raised about:
44
+
43
45
  - Lack of ACID transactions across multiple documents (though MongoDB does support multi-document transactions now)
44
46
  - Potential for data duplication in document model
45
47
 
@@ -50,11 +52,13 @@ We determined these concerns were manageable for our use case and outweighed by
50
52
  ### PostgreSQL
51
53
 
52
54
  Pros:
55
+
53
56
  - Mature, proven technology with strong ACID compliance
54
57
  - Excellent for complex relational data and joins
55
58
  - Support for JSON data types provides some schema flexibility
56
59
 
57
60
  Cons:
61
+
58
62
  - Schema migrations could slow development velocity
59
63
  - Object-relational mapping adds complexity
60
64
  - Less natural fit for our document-oriented data model
@@ -62,11 +66,13 @@ Cons:
62
66
  ### DynamoDB
63
67
 
64
68
  Pros:
69
+
65
70
  - Fully managed service with automatic scaling
66
71
  - Predictable performance with guaranteed low-latency
67
72
  - Strong consistency options
68
73
 
69
74
  Cons:
75
+
70
76
  - Less flexible query capabilities
71
77
  - AWS lock-in
72
78
  - Potentially higher cost for our access patterns
@@ -12,9 +12,10 @@ Accepted
12
12
 
13
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
14
 
15
- **Note: This is an example Architecture Decision Record to demonstrate how ADRs might be structured in the Simone framework.**
15
+ **Note: This is an example Architecture Decision Record to demonstrate how ADRs might be structured in the AIWF framework.**
16
16
 
17
17
  Several authentication strategies were considered:
18
+
18
19
  - Session-based authentication with cookies
19
20
  - JWT (JSON Web Tokens)
20
21
  - OAuth 2.0
@@ -44,6 +45,7 @@ Our decision was based on the following factors:
44
45
  7. **Industry standard**: JWT is widely adopted, well-documented, and has strong library support in our tech stack.
45
46
 
46
47
  We acknowledged some concerns with JWT:
48
+
47
49
  - Token revocation requires additional mechanisms (blacklisting or short expiration with refresh tokens)
48
50
  - Token size can be larger than simple session IDs
49
51
  - Token payload is encoded, not encrypted (sensitive data shouldn't be included)
@@ -53,11 +55,13 @@ We acknowledged some concerns with JWT:
53
55
  ### Session-based Authentication
54
56
 
55
57
  Pros:
58
+
56
59
  - Well-established, traditional approach
57
60
  - Easy to implement and understand
58
61
  - Simple to revoke (delete the session)
59
62
 
60
63
  Cons:
64
+
61
65
  - Requires session storage on the server
62
66
  - Can be problematic in distributed/scaled environments
63
67
  - Typically relies on cookies which have cross-domain limitations
@@ -65,11 +69,13 @@ Cons:
65
69
  ### API Keys
66
70
 
67
71
  Pros:
72
+
68
73
  - Very simple to implement
69
74
  - Good for service-to-service communication
70
75
  - No expiration management needed
71
76
 
72
77
  Cons:
78
+
73
79
  - Not suitable for user authentication
74
80
  - Limited granularity for permissions
75
81
  - No built-in standard for claims or payload
@@ -0,0 +1,139 @@
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
@@ -0,0 +1,155 @@
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