@educa-corp/sdd-framework 0.5.0 → 0.7.0

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 (243) hide show
  1. package/bin/build.js +113 -19
  2. package/bin/gate-trace.js +487 -0
  3. package/bin/index.js +445 -146
  4. package/bin/lint-trace.js +643 -0
  5. package/bin/self-check.js +804 -2
  6. package/bin/trace-schema.json +621 -10
  7. package/core/FRAMEWORK_VERSION +1 -1
  8. package/core/README.md +20 -0
  9. package/core/commands/amend-prd.md +518 -0
  10. package/core/commands/debug.md +123 -511
  11. package/core/commands/define-product.md +86 -510
  12. package/core/commands/dev-gen-test.md +86 -510
  13. package/core/commands/dev-run-test.md +133 -519
  14. package/core/commands/dev-smoke-test.md +86 -510
  15. package/core/commands/extend-prd.md +128 -522
  16. package/core/commands/fix-bug.md +118 -509
  17. package/core/commands/generate-architecture.md +94 -515
  18. package/core/commands/generate-bdd.md +128 -513
  19. package/core/commands/generate-code.md +119 -510
  20. package/core/commands/generate-design-spec.md +86 -510
  21. package/core/commands/generate-prd.md +89 -510
  22. package/core/commands/generate-spec-manifest.md +86 -510
  23. package/core/commands/generate-tech-docs.md +120 -512
  24. package/core/commands/learn.md +172 -496
  25. package/core/commands/map-testids.md +86 -510
  26. package/core/commands/propose-scenario.md +86 -510
  27. package/core/commands/qc-analyze.md +86 -510
  28. package/core/commands/qc-design-test.md +86 -510
  29. package/core/commands/qc-plan.md +86 -510
  30. package/core/commands/qc-report.md +86 -510
  31. package/core/commands/qc-review.md +86 -510
  32. package/core/commands/qc-run-test.md +115 -513
  33. package/core/commands/refine-prd.md +112 -522
  34. package/core/commands/report-bug.md +86 -510
  35. package/core/commands/review-code.md +123 -511
  36. package/core/commands/review-context.md +136 -522
  37. package/core/commands/review-tech-docs.md +90 -511
  38. package/core/commands/setup-ai-first.md +166 -138
  39. package/core/commands/sync.md +155 -107
  40. package/core/commands/update-framework.md +16 -103
  41. package/core/commands/validate-traces.md +426 -511
  42. package/core/hooks/data-guard.js +174 -83
  43. package/core/hooks/settings.json +2 -1
  44. package/core/rules/workflow.md +64 -4
  45. package/core/steps/capture-lesson.md +34 -1
  46. package/core/steps/context-loader.md +50 -8
  47. package/core/steps/gate.md +92 -35
  48. package/core/steps/report-footer.md +23 -0
  49. package/core/templates/README.md +24 -1
  50. package/core/templates/ci/trace-gate.yml +146 -0
  51. package/core/templates/feature.template +1 -1
  52. package/core/templates/hooks/pre-push +61 -0
  53. package/docs/02-concepts/architecture.md +61 -6
  54. package/docs/02-concepts/traceability.md +57 -0
  55. package/docs/03-guides/architect.md +63 -0
  56. package/docs/04-reference/commands.md +148 -134
  57. package/docs/04-reference/model-selection.md +32 -19
  58. package/docs/04-reference/trace-schema.md +39 -0
  59. package/docs/explain/02b-extend-prd.md +1 -1
  60. package/docs/explain/02c-amend-prd.md +152 -0
  61. package/docs/explain/21-validate-traces.md +2 -1
  62. package/docs/explain/27-learn.md +5 -3
  63. package/docs/explain/28-sync.md +25 -0
  64. package/docs/explain/README.md +136 -135
  65. package/package.json +5 -9
  66. package/commands/debug.md +0 -917
  67. package/commands/debug.tmpl +0 -257
  68. package/commands/define-product.md +0 -862
  69. package/commands/define-product.tmpl +0 -225
  70. package/commands/dev-gen-test.md +0 -1124
  71. package/commands/dev-gen-test.tmpl +0 -490
  72. package/commands/dev-run-test.md +0 -859
  73. package/commands/dev-run-test.tmpl +0 -225
  74. package/commands/dev-smoke-test.md +0 -798
  75. package/commands/dev-smoke-test.tmpl +0 -217
  76. package/commands/extend-prd.md +0 -907
  77. package/commands/extend-prd.tmpl +0 -270
  78. package/commands/fix-bug.md +0 -910
  79. package/commands/fix-bug.tmpl +0 -197
  80. package/commands/generate-architecture.md +0 -775
  81. package/commands/generate-architecture.tmpl +0 -194
  82. package/commands/generate-bdd.md +0 -1347
  83. package/commands/generate-bdd.tmpl +0 -590
  84. package/commands/generate-code.md +0 -1283
  85. package/commands/generate-code.tmpl +0 -649
  86. package/commands/generate-design-spec.md +0 -1161
  87. package/commands/generate-design-spec.tmpl +0 -524
  88. package/commands/generate-prd.md +0 -1143
  89. package/commands/generate-prd.tmpl +0 -223
  90. package/commands/generate-spec-manifest.md +0 -745
  91. package/commands/generate-spec-manifest.tmpl +0 -164
  92. package/commands/generate-tech-docs.md +0 -1344
  93. package/commands/generate-tech-docs.tmpl +0 -273
  94. package/commands/learn.md +0 -723
  95. package/commands/learn.tmpl +0 -63
  96. package/commands/map-testids.md +0 -662
  97. package/commands/map-testids.tmpl +0 -81
  98. package/commands/propose-scenario.md +0 -783
  99. package/commands/propose-scenario.tmpl +0 -202
  100. package/commands/qc-analyze.md +0 -693
  101. package/commands/qc-analyze.tmpl +0 -112
  102. package/commands/qc-design-test.md +0 -650
  103. package/commands/qc-design-test.tmpl +0 -69
  104. package/commands/qc-plan.md +0 -630
  105. package/commands/qc-plan.tmpl +0 -49
  106. package/commands/qc-report.md +0 -641
  107. package/commands/qc-report.tmpl +0 -60
  108. package/commands/qc-review.md +0 -634
  109. package/commands/qc-review.tmpl +0 -53
  110. package/commands/qc-run-test.md +0 -750
  111. package/commands/qc-run-test.tmpl +0 -116
  112. package/commands/refine-prd.md +0 -1074
  113. package/commands/refine-prd.tmpl +0 -278
  114. package/commands/report-bug.md +0 -729
  115. package/commands/report-bug.tmpl +0 -148
  116. package/commands/review-code.md +0 -803
  117. package/commands/review-code.tmpl +0 -143
  118. package/commands/review-context.md +0 -1323
  119. package/commands/review-context.tmpl +0 -527
  120. package/commands/review-tech-docs.md +0 -982
  121. package/commands/review-tech-docs.tmpl +0 -401
  122. package/commands/setup-ai-first.md +0 -574
  123. package/commands/setup-ai-first.tmpl +0 -378
  124. package/commands/sync.md +0 -486
  125. package/commands/sync.tmpl +0 -384
  126. package/commands/update-framework.md +0 -290
  127. package/commands/update-framework.tmpl +0 -188
  128. package/commands/validate-traces.md +0 -1435
  129. package/commands/validate-traces.tmpl +0 -854
  130. package/hooks/data-guard.js +0 -141
  131. package/hooks/settings.json +0 -18
  132. package/modules/android-compose/module.yaml +0 -13
  133. package/modules/android-compose/stack-profile.yaml +0 -57
  134. package/modules/angular/architecture-snippets/component-patterns.md +0 -187
  135. package/modules/angular/module.yaml +0 -6
  136. package/modules/angular/stack-profile.yaml +0 -38
  137. package/modules/context-engineering/architecture-snippets/context-design.md +0 -119
  138. package/modules/context-engineering/module.yaml +0 -9
  139. package/modules/context-engineering/stack-profile.yaml +0 -61
  140. package/modules/dotnet/architecture-snippets/clean-arch.md +0 -160
  141. package/modules/dotnet/module.yaml +0 -6
  142. package/modules/dotnet/stack-profile.yaml +0 -50
  143. package/modules/flutter/module.yaml +0 -14
  144. package/modules/flutter/stack-profile.yaml +0 -59
  145. package/modules/golang/architecture-snippets/domain-layout.md +0 -283
  146. package/modules/golang/module.yaml +0 -6
  147. package/modules/golang/stack-profile.yaml +0 -40
  148. package/modules/ios-swiftui/module.yaml +0 -13
  149. package/modules/ios-swiftui/stack-profile.yaml +0 -55
  150. package/modules/java-spring/architecture-snippets/layered-arch.md +0 -201
  151. package/modules/java-spring/module.yaml +0 -15
  152. package/modules/java-spring/stack-profile.yaml +0 -28
  153. package/modules/nextjs/architecture-snippets/app-router-patterns.md +0 -269
  154. package/modules/nextjs/module.yaml +0 -14
  155. package/modules/nextjs/stack-profile.yaml +0 -74
  156. package/modules/nuxt/module.yaml +0 -14
  157. package/modules/nuxt/stack-profile.yaml +0 -58
  158. package/modules/phaser-game/architecture-snippets/phaser-scene-patterns.md +0 -646
  159. package/modules/phaser-game/module.yaml +0 -15
  160. package/modules/phaser-game/stack-profile.yaml +0 -90
  161. package/modules/php-laravel/architecture-snippets/service-repository.md +0 -302
  162. package/modules/php-laravel/module.yaml +0 -15
  163. package/modules/php-laravel/stack-profile.yaml +0 -56
  164. package/modules/qc-playwright/stack-profile.yaml +0 -66
  165. package/modules/react/architecture-snippets/hooks-query-patterns.md +0 -254
  166. package/modules/react/module.yaml +0 -14
  167. package/modules/react/stack-profile.yaml +0 -63
  168. package/modules/react-native/module.yaml +0 -14
  169. package/modules/react-native/stack-profile.yaml +0 -56
  170. package/modules/vue/module.yaml +0 -14
  171. package/modules/vue/stack-profile.yaml +0 -65
  172. package/rules/data-protection.md +0 -80
  173. package/rules/workflow.md +0 -73
  174. package/scripts/init.sh +0 -49
  175. package/scripts/upgrade.sh +0 -94
  176. package/skills/code/SKILL.md +0 -19
  177. package/skills/code/SKILL.tmpl +0 -19
  178. package/skills/debug/SKILL.md +0 -19
  179. package/skills/debug/SKILL.tmpl +0 -19
  180. package/skills/design-spec/SKILL.md +0 -11
  181. package/skills/design-spec/SKILL.tmpl +0 -11
  182. package/skills/discovery/SKILL.md +0 -14
  183. package/skills/discovery/SKILL.tmpl +0 -14
  184. package/skills/prd/SKILL.md +0 -19
  185. package/skills/prd/SKILL.tmpl +0 -19
  186. package/skills/qc/qa-analyst/DOC_GAPS.template.md +0 -63
  187. package/skills/qc/qa-analyst/acceptance-criteria.md +0 -60
  188. package/skills/qc/qa-analyst/business-rules.md +0 -59
  189. package/skills/qc/qa-analyst/data-flow.md +0 -64
  190. package/skills/qc/qa-analyst/spec-breakdown.md +0 -61
  191. package/skills/qc/qa-designer/e2e/journey.md +0 -41
  192. package/skills/qc/qa-designer/exploratory/charter.md +0 -68
  193. package/skills/qc/qa-designer/exploratory/explore-to-functional.md +0 -43
  194. package/skills/qc/qa-designer/functional/api.md +0 -45
  195. package/skills/qc/qa-designer/functional/gui-feature.md +0 -46
  196. package/skills/qc/qa-designer/functional/gui-screen.md +0 -52
  197. package/skills/qc/qa-designer/integration/api.md +0 -42
  198. package/skills/qc/qa-designer/integration/db.md +0 -39
  199. package/skills/qc/qa-designer/integration/gui.md +0 -40
  200. package/skills/qc/qa-designer/integration/kafka.md +0 -40
  201. package/skills/qc/qa-designer/non-functional.md +0 -40
  202. package/skills/qc/qa-planner/test-plan.md +0 -120
  203. package/skills/qc/qa-reviewer/script/e2e.md +0 -87
  204. package/skills/qc/qa-reviewer/script/exploratory.md +0 -45
  205. package/skills/qc/qa-reviewer/script/functional.md +0 -101
  206. package/skills/qc/qa-reviewer/script/integration.md +0 -91
  207. package/skills/qc/qa-reviewer/script/non-functional.md +0 -126
  208. package/skills/qc/qa-reviewer/test-case/e2e.md +0 -73
  209. package/skills/qc/qa-reviewer/test-case/exploratory.md +0 -43
  210. package/skills/qc/qa-reviewer/test-case/functional.md +0 -76
  211. package/skills/qc/qa-reviewer/test-case/integration.md +0 -69
  212. package/skills/qc/qa-reviewer/test-case/non-functional.md +0 -73
  213. package/skills/qc/qa-runner/e2e.md +0 -49
  214. package/skills/qc/qa-runner/exploratory/session.md +0 -36
  215. package/skills/qc/qa-runner/functional/api.md +0 -35
  216. package/skills/qc/qa-runner/functional/gui-feature.md +0 -51
  217. package/skills/qc/qa-runner/functional/gui-screen.md +0 -55
  218. package/skills/qc/qa-runner/integration.md +0 -47
  219. package/skills/qc/qa-runner/non-functional.md +0 -49
  220. package/skills/qc/qa-runner/report/report.md +0 -37
  221. package/skills/setup-ai-first/SKILL.md +0 -19
  222. package/skills/setup-ai-first/SKILL.tmpl +0 -19
  223. package/skills/spec/SKILL.md +0 -19
  224. package/skills/spec/SKILL.tmpl +0 -19
  225. package/skills/test/SKILL.md +0 -18
  226. package/skills/test/SKILL.tmpl +0 -18
  227. package/steps/business-language.md +0 -56
  228. package/steps/capture-lesson.md +0 -79
  229. package/steps/context-loader.md +0 -385
  230. package/steps/gate.md +0 -94
  231. package/steps/report-footer.md +0 -102
  232. package/steps/review-fanout.md +0 -159
  233. package/steps/spawn-agent.md +0 -129
  234. package/steps/trace-mirror.md +0 -53
  235. package/templates/README.md +0 -47
  236. package/templates/architecture.template.md +0 -394
  237. package/templates/design-spec.template.md +0 -217
  238. package/templates/feature.template +0 -123
  239. package/templates/platform-guide.template.md +0 -145
  240. package/templates/prd.template.md +0 -283
  241. package/templates/product-definition.template.md +0 -188
  242. package/templates/project-context.yaml +0 -212
  243. package/templates/tech-design.template.md +0 -490
@@ -1,217 +0,0 @@
1
- # /dev-smoke-test — Smoke Test Service hoặc App đang chạy
2
-
3
- Dùng khi service/app **đang chạy sẵn**. Khác `/dev-run-test` (không cần live server).
4
-
5
- ## Gate
6
- {{include:steps/gate.md}}
7
-
8
- *Lưu ý: Với lệnh này, target ở Bước 1 là một UC-ID từ `$ARGUMENTS`. Context loading cung cấp `conventions.service_run`, thông tin port, và `tech_stack.module`.*
9
-
10
- ## Context
11
- {{include:steps/context-loader.md}}
12
-
13
- ---
14
-
15
- ## Service Detection
16
-
17
- Đọc `active_module` từ context. Dùng để chọn đúng cách dev-smoke-test.
18
-
19
- | Platform | Modules |
20
- |---|---|
21
- | `backend` | `java-spring`, `golang`, `dotnet`, `php-laravel`, `context-engineering` |
22
- | `web-frontend` | `react`, `nextjs`, `vue`, `nuxt`, `angular` |
23
- | `mobile` | `flutter`, `react-native`, `ios-swiftui`, `android-compose` |
24
-
25
- ---
26
-
27
- ## Nếu `platform_type = backend`
28
-
29
- ### Phase 1 — Xác minh service đang chạy
30
-
31
- Đọc `conventions.service_run` từ project-context.yaml để xác định port.
32
-
33
- ```bash
34
- # Try common health endpoints (use whichever applies):
35
- curl -s http://localhost:{port}/health # generic / Go / Node
36
- curl -s http://localhost:{port}/actuator/health # Spring Boot
37
- curl -s http://localhost:{port}/ping # some frameworks
38
- ```
39
-
40
- Nếu chưa chạy → "Khởi động với `{conventions.service_run}` từ project root."
41
-
42
- ### Phase 2 — Xác định endpoint
43
-
44
- Từ UC-ID → tìm controller/handler có `@trace.implements={UC-ID}`.
45
- Liệt kê: method, path, auth/role bắt buộc.
46
-
47
- ### Phase 3 — Lấy auth token (nếu cần)
48
-
49
- ```
50
- Endpoint yêu cầu auth. Lựa chọn:
51
- 1. Dán Bearer token (từ Postman/DevTools)
52
- 2. Dùng test/dev token từ local config
53
- 3. Skip — chỉ test endpoint public
54
- ```
55
-
56
- ### Phase 4 — Run
57
-
58
- ```bash
59
- # GET
60
- curl -s -X GET "http://localhost:{port}/v1/{resource}" \
61
- -H "Authorization: Bearer {token}" | {JSON_FORMATTER}
62
-
63
- # POST
64
- curl -s -X POST "http://localhost:{port}/v1/{resource}" \
65
- -H "Authorization: Bearer {token}" \
66
- -H "Content-Type: application/json" \
67
- -d '{"field1": "test_value"}'
68
- ```
69
-
70
- | Kết quả | Ý nghĩa |
71
- |--------|---------|
72
- | 200/201 + đúng data | ✅ OK |
73
- | 200 + sai data | ⚠️ Logic bug → /debug |
74
- | 400 | Sai request body → kiểm tra field bắt buộc |
75
- | 401 | Token hết hạn hoặc sai config |
76
- | 403 | Sai role → kiểm tra auth rule |
77
- | 500 | Server error → /debug |
78
- | Connection refused | Service chưa chạy |
79
-
80
- ### Nếu `active_module = context-engineering`
81
-
82
- #### Phase 1 — Xác minh entry point của pipeline tới được
83
-
84
- Chạy prompt function trực tiếp với một input hợp lệ tối thiểu:
85
-
86
- ```bash
87
- # Python (pytest / script):
88
- python -c "from {module}.{function} import {function}; print({function}(input='{test_input}'))"
89
-
90
- # Or using the project test command with a smoke marker:
91
- {conventions.test_command} -m smoke -v
92
- ```
93
-
94
- #### Phase 2 — Xác minh cấu trúc output
95
-
96
- Kiểm tra output khớp schema kỳ vọng:
97
-
98
- ```
99
- Expected output schema: {output fields from @trace or tech-doc}
100
- Actual output: {paste output here}
101
- ```
102
-
103
- #### Phase 3 — Diễn giải kết quả
104
-
105
- | Kết quả | Ý nghĩa |
106
- |--------|---------|
107
- | Output khớp schema | ✅ OK |
108
- | Output có nhưng sai format | ⚠️ Logic bug → /debug |
109
- | `APIError` / `AuthenticationError` | API key không hợp lệ hoặc service unavailable |
110
- | `TokenLimitError` | Input quá dài — kiểm tra kích thước prompt template |
111
- | Exception / traceback | Lỗi code → /debug |
112
-
113
- ---
114
-
115
- ## Nếu `platform_type = web-frontend`
116
-
117
- ### Phase 1 — Xác minh dev server đang chạy
118
-
119
- ```bash
120
- # Linux / macOS:
121
- curl -s -o /dev/null -w "%{http_code}" http://localhost:{port}
122
-
123
- # Windows (cmd / PowerShell):
124
- curl -s -o NUL -w "%{http_code}" http://localhost:{port}
125
-
126
- # Should return 200. If not: start with {conventions.service_run} (e.g., npm run dev)
127
- ```
128
-
129
- ### Phase 2 — Chạy E2E smoke test
130
-
131
- Xác định E2E tool trong dự án (Playwright hoặc Cypress):
132
-
133
- ```bash
134
- # Playwright — run scenarios tagged with this UC:
135
- npx playwright test --grep "{UC-ID}"
136
-
137
- # Cypress:
138
- npx cypress run --spec "cypress/e2e/{UC-ID}*"
139
- ```
140
-
141
- Nếu chưa có E2E test → mở browser và verify thủ công:
142
- 1. Điều hướng tới route của UC này
143
- 2. Thực hiện hành động chính của người dùng
144
- 3. Xác nhận kết quả kỳ vọng hiển thị
145
-
146
- ### Phase 3 — Diễn giải kết quả
147
-
148
- | Kết quả | Ý nghĩa |
149
- |--------|---------|
150
- | Tất cả E2E test pass | ✅ OK |
151
- | Assertion failed | ⚠️ Logic bug → /debug |
152
- | `ERR_CONNECTION_REFUSED` | Dev server chưa chạy |
153
- | API trả về 4xx/5xx | Vấn đề backend → kiểm tra backend service |
154
-
155
- ---
156
-
157
- ## Nếu `platform_type = mobile`
158
-
159
- ### Phase 1 — Xác minh device/emulator sẵn sàng
160
-
161
- ```bash
162
- # Flutter:
163
- flutter devices # list connected devices/emulators
164
- flutter install # install current build on device
165
-
166
- # React Native:
167
- npx react-native run-android # build + install on connected Android
168
- npx react-native run-ios # build + install on iOS simulator
169
-
170
- # Android (Compose):
171
- ./gradlew installDebug # install APK on connected device/emulator
172
-
173
- # iOS (SwiftUI):
174
- # Open Xcode → select simulator → Product → Run
175
- ```
176
-
177
- ### Phase 2 — Checklist dev-smoke-test thủ công
178
-
179
- Với UC đang test, verify trên device:
180
- 1. Điều hướng tới màn của UC này
181
- 2. Thực hiện hành động chính từ Scenario `.feature` (step `When`)
182
- 3. Xác nhận kết quả kỳ vọng hiển thị (step `Then`)
183
- 4. Kiểm tra có crash hoặc dialog lỗi bất ngờ không
184
-
185
- ### Phase 3 — Bắt issue nếu phát hiện
186
-
187
- ```bash
188
- # Flutter:
189
- flutter logs
190
-
191
- # Android:
192
- adb logcat -d | grep -i "error\|exception\|crash"
193
-
194
- # iOS:
195
- # Copy crash log from Xcode → Devices and Simulators → View Device Logs
196
- ```
197
-
198
- Dán output vào `/debug`.
199
-
200
- ---
201
-
202
- ## Output
203
-
204
- {{include:steps/report-footer.md}}
205
-
206
- ```
207
- /dev-smoke-test Report — {UC-ID}
208
- Platform: {backend | web-frontend | mobile}
209
- | Endpoint / Flow | Status | Result |
210
- |-----------------------|-------------|---------|
211
- | {method} {path/screen}| ✅/⚠️/❌ | {notes} |
212
-
213
- Status legend: ✅ = OK | ⚠️ = Responded but wrong data / logic bug | ❌ = Error / not running
214
-
215
- Issues: {mô tả các failure}
216
- Next: /debug (dán lỗi tương tác) HOẶC /fix-bug {TICKET_ID} HOẶC sẵn sàng PR
217
- ```