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
@@ -0,0 +1,232 @@
1
+ # API Specifications V1
2
+
3
+ This document provides detailed specifications for the API endpoints to be implemented in the backend.
4
+
5
+ ## Base URL
6
+
7
+ All API endpoints are prefixed with: `/api/v1`
8
+
9
+ ## Authentication
10
+
11
+ All authenticated endpoints require a valid JWT token in the Authorization header:
12
+
13
+ ```
14
+ Authorization: Bearer <token>
15
+ ```
16
+
17
+ ## Error Handling
18
+
19
+ All API endpoints follow a consistent error response format:
20
+
21
+ ```json
22
+ {
23
+ "error": {
24
+ "code": "ERROR_CODE",
25
+ "message": "Human-readable error message",
26
+ "details": {} // Optional additional error details
27
+ }
28
+ }
29
+ ```
30
+
31
+ Common error codes:
32
+ - `UNAUTHORIZED`: Authentication required or invalid
33
+ - `FORBIDDEN`: Insufficient permissions
34
+ - `NOT_FOUND`: Resource not found
35
+ - `VALIDATION_ERROR`: Request validation failed
36
+ - `INTERNAL_ERROR`: Server-side error
37
+
38
+ ## Endpoints
39
+
40
+ ### Authentication
41
+
42
+ #### POST /api/v1/auth/register
43
+
44
+ Register a new user.
45
+
46
+ **Request:**
47
+ ```json
48
+ {
49
+ "email": "user@example.com",
50
+ "password": "securepassword",
51
+ "name": "John Doe"
52
+ }
53
+ ```
54
+
55
+ **Response (201 Created):**
56
+ ```json
57
+ {
58
+ "user": {
59
+ "id": "user123",
60
+ "email": "user@example.com",
61
+ "name": "John Doe",
62
+ "created_at": "2023-07-10T12:00:00Z"
63
+ },
64
+ "token": "jwt.token.here"
65
+ }
66
+ ```
67
+
68
+ #### POST /api/v1/auth/login
69
+
70
+ Authenticate a user.
71
+
72
+ **Request:**
73
+ ```json
74
+ {
75
+ "email": "user@example.com",
76
+ "password": "securepassword"
77
+ }
78
+ ```
79
+
80
+ **Response (200 OK):**
81
+ ```json
82
+ {
83
+ "user": {
84
+ "id": "user123",
85
+ "email": "user@example.com",
86
+ "name": "John Doe",
87
+ "created_at": "2023-07-10T12:00:00Z"
88
+ },
89
+ "token": "jwt.token.here"
90
+ }
91
+ ```
92
+
93
+ ### Users
94
+
95
+ #### GET /api/v1/users/me
96
+
97
+ Get current authenticated user profile.
98
+
99
+ **Response (200 OK):**
100
+ ```json
101
+ {
102
+ "id": "user123",
103
+ "email": "user@example.com",
104
+ "name": "John Doe",
105
+ "created_at": "2023-07-10T12:00:00Z",
106
+ "role": "user",
107
+ "status": "active"
108
+ }
109
+ ```
110
+
111
+ #### PUT /api/v1/users/me
112
+
113
+ Update current user profile.
114
+
115
+ **Request:**
116
+ ```json
117
+ {
118
+ "name": "John Smith",
119
+ "avatar_url": "https://example.com/avatar.jpg"
120
+ }
121
+ ```
122
+
123
+ **Response (200 OK):**
124
+ ```json
125
+ {
126
+ "id": "user123",
127
+ "email": "user@example.com",
128
+ "name": "John Smith",
129
+ "avatar_url": "https://example.com/avatar.jpg",
130
+ "created_at": "2023-07-10T12:00:00Z",
131
+ "role": "user",
132
+ "status": "active"
133
+ }
134
+ ```
135
+
136
+ ### Projects
137
+
138
+ #### GET /api/v1/projects
139
+
140
+ List all projects accessible to the authenticated user.
141
+
142
+ **Query Parameters:**
143
+ - `status` (optional): Filter by status (active, archived)
144
+ - `limit` (optional): Maximum number of results (default: 20)
145
+ - `offset` (optional): Pagination offset (default: 0)
146
+
147
+ **Response (200 OK):**
148
+ ```json
149
+ {
150
+ "total": 42,
151
+ "data": [
152
+ {
153
+ "id": "proj123",
154
+ "title": "Project Alpha",
155
+ "description": "This is project alpha",
156
+ "created_at": "2023-07-10T12:00:00Z",
157
+ "owner": {
158
+ "id": "user123",
159
+ "name": "John Doe"
160
+ },
161
+ "status": "active"
162
+ },
163
+ ...
164
+ ]
165
+ }
166
+ ```
167
+
168
+ #### POST /api/v1/projects
169
+
170
+ Create a new project.
171
+
172
+ **Request:**
173
+ ```json
174
+ {
175
+ "title": "New Project",
176
+ "description": "Description of the project"
177
+ }
178
+ ```
179
+
180
+ **Response (201 Created):**
181
+ ```json
182
+ {
183
+ "id": "proj456",
184
+ "title": "New Project",
185
+ "description": "Description of the project",
186
+ "created_at": "2023-07-15T14:30:00Z",
187
+ "owner": {
188
+ "id": "user123",
189
+ "name": "John Doe"
190
+ },
191
+ "status": "active"
192
+ }
193
+ ```
194
+
195
+ ### Tasks
196
+
197
+ #### GET /api/v1/projects/:projectId/tasks
198
+
199
+ List tasks for a specific project.
200
+
201
+ **Query Parameters:**
202
+ - `status` (optional): Filter by status (todo, in_progress, done)
203
+ - `assigned_to` (optional): Filter by assigned user ID
204
+ - `limit` (optional): Maximum number of results (default: 50)
205
+ - `offset` (optional): Pagination offset (default: 0)
206
+
207
+ **Response (200 OK):**
208
+ ```json
209
+ {
210
+ "total": 24,
211
+ "data": [
212
+ {
213
+ "id": "task123",
214
+ "title": "Implement login page",
215
+ "description": "Create the login page with email and password fields",
216
+ "due_date": "2023-08-01T00:00:00Z",
217
+ "status": "in_progress",
218
+ "priority": "high",
219
+ "assigned_to": {
220
+ "id": "user123",
221
+ "name": "John Doe"
222
+ },
223
+ "project_id": "proj123"
224
+ },
225
+ ...
226
+ ]
227
+ }
228
+ ```
229
+
230
+ ## Rate Limiting
231
+
232
+ API requests are rate-limited to 100 requests per minute per user. When the limit is exceeded, the API will respond with status code 429 (Too Many Requests).
@@ -0,0 +1,83 @@
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
+ ```
@@ -0,0 +1,49 @@
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)
@@ -0,0 +1,60 @@
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
@@ -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
+ ```
@@ -0,0 +1,54 @@
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
@@ -0,0 +1,58 @@
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