@edupia-tutor/spec-driven-docs 0.14.0 → 0.14.2

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 (162) hide show
  1. package/bin/index.js +12 -1
  2. package/commands/debug.md +436 -436
  3. package/commands/debug.tmpl +111 -111
  4. package/commands/define-product.md +350 -345
  5. package/commands/define-product.tmpl +69 -64
  6. package/commands/dev-gen-test.md +365 -365
  7. package/commands/dev-gen-test.tmpl +63 -63
  8. package/commands/dev-run-test.md +376 -376
  9. package/commands/dev-run-test.tmpl +74 -74
  10. package/commands/dev-smoke-test.md +341 -341
  11. package/commands/dev-smoke-test.tmpl +60 -60
  12. package/commands/fix-bug.md +403 -403
  13. package/commands/fix-bug.tmpl +78 -78
  14. package/commands/generate-bdd.md +513 -513
  15. package/commands/generate-bdd.tmpl +211 -211
  16. package/commands/generate-code.md +481 -483
  17. package/commands/generate-code.tmpl +179 -181
  18. package/commands/generate-design-spec.md +497 -497
  19. package/commands/generate-design-spec.tmpl +220 -220
  20. package/commands/generate-prd.md +452 -400
  21. package/commands/generate-prd.tmpl +50 -200
  22. package/commands/generate-spec-manifest.md +340 -340
  23. package/commands/generate-spec-manifest.tmpl +59 -59
  24. package/commands/generate-tech-docs.md +365 -365
  25. package/commands/generate-tech-docs.tmpl +84 -84
  26. package/commands/learn.md +347 -347
  27. package/commands/learn.tmpl +22 -22
  28. package/commands/map-testids.md +322 -322
  29. package/commands/map-testids.tmpl +41 -41
  30. package/commands/propose-scenario.md +335 -335
  31. package/commands/propose-scenario.tmpl +54 -54
  32. package/commands/qc-analyze.md +323 -324
  33. package/commands/qc-analyze.tmpl +42 -43
  34. package/commands/qc-design-test.md +304 -304
  35. package/commands/qc-design-test.tmpl +23 -23
  36. package/commands/qc-plan.md +297 -297
  37. package/commands/qc-plan.tmpl +16 -16
  38. package/commands/qc-report.md +302 -302
  39. package/commands/qc-report.tmpl +21 -21
  40. package/commands/qc-review.md +298 -298
  41. package/commands/qc-review.tmpl +17 -17
  42. package/commands/qc-run-test.md +337 -337
  43. package/commands/qc-run-test.tmpl +35 -35
  44. package/commands/refine-prd.md +428 -430
  45. package/commands/refine-prd.tmpl +62 -62
  46. package/commands/report-bug.md +351 -351
  47. package/commands/report-bug.tmpl +70 -70
  48. package/commands/review-code.md +364 -364
  49. package/commands/review-code.tmpl +39 -39
  50. package/commands/review-context.md +578 -580
  51. package/commands/review-context.tmpl +212 -212
  52. package/commands/review-tech-docs.md +427 -427
  53. package/commands/review-tech-docs.tmpl +146 -146
  54. package/commands/setup-ai-first.md +239 -239
  55. package/commands/setup-ai-first.tmpl +133 -133
  56. package/commands/sync.md +145 -145
  57. package/commands/sync.tmpl +93 -93
  58. package/commands/update-framework.md +88 -88
  59. package/commands/update-framework.tmpl +36 -36
  60. package/commands/validate-traces.md +381 -381
  61. package/commands/validate-traces.tmpl +100 -100
  62. package/core/FRAMEWORK_VERSION +1 -1
  63. package/core/commands/debug.md +436 -436
  64. package/core/commands/define-product.md +350 -345
  65. package/core/commands/dev-gen-test.md +365 -365
  66. package/core/commands/dev-run-test.md +376 -376
  67. package/core/commands/dev-smoke-test.md +341 -341
  68. package/core/commands/fix-bug.md +403 -403
  69. package/core/commands/generate-bdd.md +513 -513
  70. package/core/commands/generate-code.md +481 -483
  71. package/core/commands/generate-design-spec.md +497 -497
  72. package/core/commands/generate-prd.md +452 -400
  73. package/core/commands/generate-spec-manifest.md +340 -340
  74. package/core/commands/generate-tech-docs.md +365 -365
  75. package/core/commands/learn.md +347 -347
  76. package/core/commands/map-testids.md +322 -322
  77. package/core/commands/propose-scenario.md +335 -335
  78. package/core/commands/qc-analyze.md +323 -324
  79. package/core/commands/qc-design-test.md +304 -304
  80. package/core/commands/qc-plan.md +297 -297
  81. package/core/commands/qc-report.md +302 -302
  82. package/core/commands/qc-review.md +298 -298
  83. package/core/commands/qc-run-test.md +337 -337
  84. package/core/commands/refine-prd.md +428 -430
  85. package/core/commands/report-bug.md +351 -351
  86. package/core/commands/review-code.md +364 -364
  87. package/core/commands/review-context.md +578 -580
  88. package/core/commands/review-tech-docs.md +427 -427
  89. package/core/commands/setup-ai-first.md +239 -239
  90. package/core/commands/sync.md +145 -145
  91. package/core/commands/update-framework.md +88 -88
  92. package/core/commands/validate-traces.md +381 -381
  93. package/core/skills/code/SKILL.md +389 -389
  94. package/core/skills/debug/SKILL.md +391 -391
  95. package/core/skills/design-spec/SKILL.md +318 -318
  96. package/core/skills/discovery/SKILL.md +7 -547
  97. package/core/skills/prd/SKILL.md +298 -394
  98. package/core/skills/setup-ai-first/SKILL.md +80 -80
  99. package/core/skills/spec/SKILL.md +178 -178
  100. package/core/skills/test/SKILL.md +604 -604
  101. package/core/steps/capture-lesson.md +44 -44
  102. package/core/steps/context-loader.md +175 -175
  103. package/core/steps/gate.md +54 -54
  104. package/core/steps/report-footer.md +52 -52
  105. package/core/steps/review-fanout.md +85 -87
  106. package/core/steps/spawn-agent.md +45 -45
  107. package/core/steps/trace-mirror.md +21 -21
  108. package/core/templates/architecture.template.md +37 -37
  109. package/core/templates/design-spec.template.md +77 -77
  110. package/core/templates/platform-guide.template.md +47 -47
  111. package/core/templates/prd.template.md +107 -232
  112. package/core/templates/product-definition.template.md +101 -88
  113. package/core/templates/project-context.yaml +2 -2
  114. package/docs/01-getting-started/core-concepts.md +1 -1
  115. package/docs/01-getting-started/quickstart.md +7 -7
  116. package/docs/02-guides/developer/bdd-and-trace.md +1 -1
  117. package/docs/02-guides/developer/scenarios.md +5 -5
  118. package/docs/02-guides/product-owner/handoff-checklist.md +1 -1
  119. package/docs/02-guides/product-owner/scenarios.md +23 -23
  120. package/docs/02-guides/tester/bug-reporting.md +2 -2
  121. package/docs/02-guides/tester/reading-specs.md +2 -2
  122. package/docs/02-guides/tester/scenarios.md +1 -1
  123. package/docs/02-guides/tester/spec-manifest.md +3 -3
  124. package/docs/02-guides/tester/workflow.md +1 -1
  125. package/docs/03-concepts/architecture.md +3 -3
  126. package/docs/03-concepts/pipeline.md +3 -3
  127. package/docs/04-operations/publishing.md +20 -3
  128. package/docs/04-operations/sync-and-update.md +5 -5
  129. package/docs/05-reference/command-cheatsheet.md +2 -2
  130. package/docs/05-reference/commands.md +8 -8
  131. package/package.json +1 -1
  132. package/scripts/migrate-specs.js +5 -3
  133. package/scripts/rename-prd-files.js +174 -0
  134. package/skills/code/SKILL.md +389 -389
  135. package/skills/code/SKILL.tmpl +56 -56
  136. package/skills/debug/SKILL.md +391 -391
  137. package/skills/debug/SKILL.tmpl +60 -60
  138. package/skills/design-spec/SKILL.md +318 -318
  139. package/skills/design-spec/SKILL.tmpl +37 -37
  140. package/skills/discovery/SKILL.md +7 -547
  141. package/skills/discovery/SKILL.tmpl +7 -140
  142. package/skills/prd/SKILL.md +298 -394
  143. package/skills/prd/SKILL.tmpl +40 -151
  144. package/skills/setup-ai-first/SKILL.md +80 -80
  145. package/skills/setup-ai-first/SKILL.tmpl +28 -28
  146. package/skills/spec/SKILL.md +178 -178
  147. package/skills/spec/SKILL.tmpl +20 -20
  148. package/skills/test/SKILL.md +604 -604
  149. package/skills/test/SKILL.tmpl +44 -44
  150. package/steps/capture-lesson.md +44 -44
  151. package/steps/context-loader.md +175 -175
  152. package/steps/gate.md +54 -54
  153. package/steps/report-footer.md +52 -52
  154. package/steps/review-fanout.md +85 -87
  155. package/steps/spawn-agent.md +45 -45
  156. package/steps/trace-mirror.md +21 -21
  157. package/templates/architecture.template.md +37 -37
  158. package/templates/design-spec.template.md +77 -77
  159. package/templates/platform-guide.template.md +47 -47
  160. package/templates/prd.template.md +107 -232
  161. package/templates/product-definition.template.md +101 -88
  162. package/templates/project-context.yaml +2 -2
@@ -1,10 +1,10 @@
1
1
  ---
2
- description: Generates unit and integration tests from BDD specs, runs the test suite and reports results, or dev-smoke-tests live API endpoints on a running service. Trigger when: "/dev-gen-test", "/dev-run-test", "/dev-smoke-test", "tạo test", "viết test", "chạy test", "generate tests", "run tests", "test kết quả", "smoke test", "test API", "kiểm tra endpoint đang chạy".
2
+ description: Sinh unit integration test từ BDD spec, chạy test suite report kết quả, hoặc dev-smoke-test các API endpoint live trên service đang chạy. Trigger when: "/dev-gen-test", "/dev-run-test", "/dev-smoke-test", "tạo test", "viết test", "chạy test", "generate tests", "run tests", "test kết quả", "smoke test", "test API", "kiểm tra endpoint đang chạy".
3
3
  ---
4
4
 
5
5
  # Test Skills — Generate, Run & Smoke Test
6
6
 
7
- This skill handles three commands: `/dev-gen-test`, `/dev-run-test`, and `/dev-smoke-test`.
7
+ Skill này xử ba lệnh: `/dev-gen-test`, `/dev-run-test`, `/dev-smoke-test`.
8
8
 
9
9
  ---
10
10
 
@@ -15,13 +15,13 @@ This skill handles three commands: `/dev-gen-test`, `/dev-run-test`, and `/dev-s
15
15
  <!-- Directory: specs/*/*/bdd/*.feature — or pass UC-ID/class path as argument -->
16
16
  {{include:steps/gate.md}}
17
17
 
18
- Also read:
19
- - `.feature` file to understand expected behaviors
20
- - Find files to test: Controllers with `@trace.implements={UC-ID}`, Service implementations, Facade implementations (if applicable)
18
+ Cũng đọc:
19
+ - File `.feature` để hiểu các behavior kỳ vọng
20
+ - Tìm file cần test: Controller `@trace.implements={UC-ID}`, Service implementation, Facade implementation (nếu áp dụng)
21
21
 
22
22
  ### CHECKPOINT — Test Plan
23
23
 
24
- Before generating, present plan:
24
+ Trước khi sinh, trình bày plan:
25
25
 
26
26
  ```
27
27
  Test Plan — {UC-ID}:
@@ -40,7 +40,7 @@ Total: {N} test classes, ~{M} test cases
40
40
  Proceed? (Y/N)
41
41
  ```
42
42
 
43
- Wait for confirmation.
43
+ Chờ xác nhận.
44
44
 
45
45
  ### Generate
46
46
 
@@ -112,7 +112,7 @@ class {Resource}ControllerTest {
112
112
 
113
113
  ### File Placement
114
114
 
115
- Follow project test structure from CLAUDE.md. Typical:
115
+ Theo cấu trúc test của dự án từ CLAUDE.md. Điển hình:
116
116
  ```
117
117
  src/test/{language}/{package}/
118
118
  ├── service/impl/{Resource}ServiceImplTest.{ext}
@@ -122,11 +122,11 @@ src/test/{language}/{package}/
122
122
 
123
123
  ### Self-Review Checklist
124
124
 
125
- - [ ] `@trace.verifies` tag on every test class
126
- - [ ] Every scenario in .feature has at least one test
127
- - [ ] Mock only the correct layer (no repo mocks in controller tests)
128
- - [ ] Test names follow `methodName_whenCondition_shouldOutcome` pattern
129
- - [ ] No debug print statements in tests
125
+ - [ ] Tag `@trace.verifies` trên mỗi test class
126
+ - [ ] Mỗi scenario trong .feature ít nhất một test
127
+ - [ ] Chỉ mock đúng layer (không mock repo trong controller test)
128
+ - [ ] Test name theo pattern `methodName_whenCondition_shouldOutcome`
129
+ - [ ] Không debug print trong test
130
130
 
131
131
  ### Output
132
132
 
@@ -147,8 +147,8 @@ src/test/{language}/{package}/
147
147
 
148
148
  {{include:steps/context-loader.md}}
149
149
 
150
- Identify service/module from argument (UC-ID or service name).
151
- Read `conventions.test_command` from the loaded project context.
150
+ Xác định service/module từ argument (UC-ID hoặc tên service).
151
+ Đọc `conventions.test_command` từ project context đã nạp.
152
152
 
153
153
  ### Run
154
154
 
@@ -165,7 +165,7 @@ Read `conventions.test_command` from the loaded project context.
165
165
 
166
166
  ### Analyze Results
167
167
 
168
- #### When tests PASS
168
+ #### Khi test PASS
169
169
 
170
170
  ```
171
171
  ✅ Tests passed
@@ -174,18 +174,18 @@ Read `conventions.test_command` from the loaded project context.
174
174
  - Duration: {X}s
175
175
  ```
176
176
 
177
- #### When tests FAIL — Debug Mode
177
+ #### Khi test FAIL — Debug Mode
178
178
 
179
- Read stack trace and analyze:
179
+ Đọc stack trace phân tích:
180
180
 
181
- | Error Pattern | Common Cause | Suggested Fix |
181
+ | Error Pattern | Nguyên nhân thường gặp | Suggested Fix |
182
182
  |---|---|---|
183
- | NullPointerException in test | Missing mock setup | Check `given(...)` setup for null dependency |
184
- | Bean/dependency not found | Missing mock/stub declaration | Add mock for missing dependency |
185
- | Expected 200 but got 403 | Missing auth setup in test | Add auth user/role to test context |
186
- | Expected 200 but got 400 | Request body fails validation | Check required fields in request DTO |
187
- | LazyInitializationException | Lazy collection accessed outside transaction | Add `@Transactional` on test or use eager fetch |
188
- | Mapper/mapper implementation not found | Code generator (e.g. MapStruct) not run | Run compile step before tests |
183
+ | NullPointerException trong test | Thiếu setup mock | Kiểm tra setup `given(...)` cho dependency null |
184
+ | Bean/dependency not found | Thiếu khai báo mock/stub | Thêm mock cho dependency thiếu |
185
+ | Expected 200 but got 403 | Thiếu setup auth trong test | Thêm auth user/role vào test context |
186
+ | Expected 200 but got 400 | Request body fail validation | Kiểm tra field bắt buộc trong request DTO |
187
+ | LazyInitializationException | Lazy collection truy cập ngoài transaction | Thêm `@Transactional` trên test hoặc dùng eager fetch |
188
+ | Mapper/mapper implementation not found | Code generator (vd MapStruct) chưa chạy | Chạy compile trước khi test |
189
189
 
190
190
  ### Output
191
191
 
@@ -212,32 +212,32 @@ Duration: {X}s
212
212
 
213
213
  ## /dev-smoke-test — Test Live API Endpoints
214
214
 
215
- Use when the service is **already running** to verify endpoints work correctly.
216
- Different from `/dev-run-test` (which runs unit/integration tests without a live server).
215
+ Dùng khi service **đang chạy sẵn** để verify endpoint hoạt động đúng.
216
+ Khác `/dev-run-test` (chạy unit/integration test không cần live server).
217
217
 
218
218
  ### Phase 1 — Find Service URL
219
219
 
220
220
  {{include:steps/context-loader.md}}
221
221
 
222
- Read `conventions.service_run` from the loaded project context to find port.
222
+ Đọc `conventions.service_run` từ project context đã nạp để tìm port.
223
223
  Default: `http://localhost:8080`
224
224
 
225
- Check if service is running:
225
+ Kiểm tra service đang chạy:
226
226
  ```bash
227
227
  curl -s http://localhost:{port}/health
228
228
  # or /actuator/health for Spring Boot
229
229
  ```
230
230
 
231
- If not running: "Service is not running. Start it with: `{RUN_COMMAND}` from your project root."
231
+ Nếu chưa chạy: "Service is not running. Start it with: `{RUN_COMMAND}` from your project root."
232
232
 
233
233
  ### Phase 2 — Identify Endpoints
234
234
 
235
- From UC-ID → find Controller with `@trace.implements={UC-ID}`:
236
- - List: method, path, required auth/role
235
+ Từ UC-ID → tìm Controller `@trace.implements={UC-ID}`:
236
+ - Liệt kê: method, path, auth/role bắt buộc
237
237
 
238
- ### Phase 3 — Get Auth Token (if needed)
238
+ ### Phase 3 — Get Auth Token (nếu cần)
239
239
 
240
- If endpoints require auth, ask:
240
+ Nếu endpoint yêu cầu auth, hỏi:
241
241
  ```
242
242
  This endpoint requires authentication. Options:
243
243
  1. Paste your Bearer token (from Postman / browser DevTools / test login)
@@ -261,17 +261,17 @@ curl -s -X POST "http://localhost:{port}/v1/{resource}" \
261
261
 
262
262
  ### Phase 5 — Interpret Results
263
263
 
264
- | Result | Meaning |
264
+ | Result | Ý nghĩa |
265
265
  |--------|---------|
266
- | 200/201 + correct data | ✅ OK |
267
- | 200 + wrong data | ⚠️ Logic bug → use `/debug` |
268
- | 400 | Request body wrongcheck required fields |
269
- | 401 | Token expired or wrong realm |
270
- | 403 | Wrong role → check auth config |
271
- | 500 + stacktrace | Server error → paste into `/debug` |
272
- | Connection refused | Service not running or wrong port |
273
-
274
- If errors in logs:
266
+ | 200/201 + đúng data | ✅ OK |
267
+ | 200 + sai data | ⚠️ Logic bug → dùng `/debug` |
268
+ | 400 | Request body saikiểm tra field bắt buộc |
269
+ | 401 | Token hết hạn hoặc sai realm |
270
+ | 403 | Sai role → kiểm tra auth config |
271
+ | 500 + stacktrace | Server error → dán vào `/debug` |
272
+ | Connection refused | Service chưa chạy hoặc sai port |
273
+
274
+ Nếu lỗi trong log:
275
275
  ```bash
276
276
  tail -n 100 {LOG_FILE_PATH}
277
277
  ```
@@ -1,71 +1,71 @@
1
- # Capture Lesson — Record a Recurring Mistake as a Guardrail
1
+ # Capture Lesson — Ghi lại lỗi lặp lại thành một Guardrail
2
2
 
3
- Reusable procedure to persist a "lesson" so the AI does not repeat a mistake in this project.
4
- Used by `/learn` (manual) and offered by `/review-code`, `/fix-bug`, `/debug` (auto).
3
+ Quy trình tái sử dụng để lưu một "lesson" nhằm tránh AI lặp lại lỗi trong dự án này.
4
+ Dùng bởi `/learn` (thủ công) được đề xuất bởi `/review-code`, `/fix-bug`, `/debug` (tự động).
5
5
 
6
- > **Project memory, not model training.** A lesson is plain text injected into context at the
7
- > start of every command (context-loader Step 6.7). Functionally this stops the repeatthe AI
8
- > sees the guardrail before it generates. No model weights change.
6
+ > **Bộ nhớ dự án, không phải huấn luyện model.** Một lesson văn bản thuần được inject vào context
7
+ > đầu mỗi lệnh (context-loader Bước 6.7). Về mặt chức năng, điều này chặn việc lặp lại AI thấy
8
+ > guardrail trước khi sinh nội dung. Không có trọng số model nào thay đổi.
9
9
 
10
- ## L1 — Resolve the lessons file
10
+ ## L1 — Phân giải file lessons
11
11
 
12
- Resolve `lessons_path` in this order:
13
- 1. `paths.lessons_file` from loaded context (may be service-overridden in umbrella mode, Step 1.6)
14
- 2. Default `specs/domain-knowledge/lessons-learned.md` (single-service)
15
- 3. In umbrella/service mode (when `service_root` is set) default `{service_root}/.agent/project-lessons.md`
12
+ Phân giải `lessons_path` theo thứ tự sau:
13
+ 1. `paths.lessons_file` từ context đã nạp ( thể bị service override ở chế độ umbrella, Bước 1.6)
14
+ 2. Mặc định `specs/domain-knowledge/lessons-learned.md` (single-service)
15
+ 3. chế độ umbrella/service (khi `service_root` được set) mặc định `{service_root}/.agent/project-lessons.md`
16
16
 
17
- ## L2 — Build the lesson
17
+ ## L2 — Dựng lesson
18
18
 
19
- Gather these fieldsfrom `$ARGUMENTS` (for `/learn`) or from the calling command's findings
20
- (for `/review-code`, `/fix-bug`, `/debug`):
19
+ Thu thập các field sau từ `$ARGUMENTS` (cho `/learn`) hoặc từ findings của lệnh gọi
20
+ (cho `/review-code`, `/fix-bug`, `/debug`):
21
21
 
22
- | Field | Meaning |
22
+ | Field | Ý nghĩa |
23
23
  |-------|---------|
24
- | `category` | one of: `code-gen` \| `bdd` \| `tech-docs` \| `tests` \| `prd` \| `general` |
25
- | `title` | short phrase naming the mistake |
26
- | `mistake` | concretely, what the AI did wrong |
27
- | `rule` | imperative correction — "Always …" / "Never …" — testable, not vague |
28
- | `scope` | where it applies: a domain, a file glob (e.g. `*Controller.*`), or `all` |
29
- | `source` | how captured: `/learn` \| `/review-code {UC-ID}` \| `/fix-bug {TICKET}` \| `/debug` |
24
+ | `category` | một trong: `code-gen` \| `bdd` \| `tech-docs` \| `tests` \| `prd` \| `general` |
25
+ | `title` | cụm từ ngắn đặt tên cho lỗi |
26
+ | `mistake` | cụ thể, AI đã làm sai điều gì |
27
+ | `rule` | câu sửa mệnh lệnh — "Luôn …" / "Không bao giờ …" — testable, không hồ |
28
+ | `scope` | phạm vi áp dụng: một domain, một file glob (vd `*Controller.*`), hoặc `all` |
29
+ | `source` | cách ghi nhận: `/learn` \| `/review-code {UC-ID}` \| `/fix-bug {TICKET}` \| `/debug` |
30
30
 
31
- If `rule` is vague (e.g. "be careful"), rewrite it into a concrete, checkable instruction before saving.
31
+ Nếu `rule` hồ (vd "cẩn thận"), viết lại thành chỉ dẫn cụ thể, kiểm tra được trước khi lưu.
32
32
 
33
- ## L3 — De-duplicate
33
+ ## L3 — Khử trùng lặp
34
34
 
35
- Read existing lessons in `lessons_path`. If one already covers the same mistake:
36
- - **Refine** that entry (tighten the Rule, widen/narrow Scope, bump Date, append the new Source) — do NOT add a duplicate.
35
+ Đọc các lesson hiện có trong `lessons_path`. Nếu đã một lesson cùng lỗi:
36
+ - **Tinh chỉnh** entry đó (siết chặt Rule, mở rộng/thu hẹp Scope, cập nhật Date, thêm Source mới) — KHÔNG thêm bản trùng.
37
37
 
38
- Otherwise assign the next id `L-{NNN}` = (highest existing number + 1), zero-padded to 3 digits.
38
+ Nếu không, gán id kế tiếp `L-{NNN}` = (số lớn nhất hiện có + 1), pad 0 đủ 3 chữ số.
39
39
 
40
- ## L4 — Write
40
+ ## L4 — Ghi
41
41
 
42
- If `lessons_path` does not exist, create it with this header first:
42
+ Nếu `lessons_path` chưa tồn tại, tạo file với header sau trước:
43
43
 
44
44
  ```markdown
45
45
  # Project Lessons — Learned Guardrails
46
46
 
47
- > Mistakes the AI must NOT repeat in this project. Loaded by context-loader at the start of
48
- > every command and treated as hard constraints (same priority as CLAUDE.md coding standards).
49
- > Add with /learn, or accept the prompt during /review-code, /fix-bug, /debug.
50
- > Commit this file so the whole team shares the guardrails.
47
+ > Các lỗi AI KHÔNG được lặp lại trong dự án này. Được nạp bởi context-loader đầu
48
+ > mỗi lệnh coi như ràng buộc cứng (cùng mức ưu tiên với coding standards trong CLAUDE.md).
49
+ > Thêm bằng /learn, hoặc chấp nhận prompt trong /review-code, /fix-bug, /debug.
50
+ > Commit file này để cả team dùng chung guardrail.
51
51
 
52
- | Category | Applies to |
52
+ | Category | Áp dụng cho |
53
53
  |----------|-----------|
54
- | code-gen | /generate-code output |
55
- | bdd | /generate-bdd output |
56
- | tech-docs | /generate-tech-docs output |
57
- | tests | /dev-gen-test output |
58
- | prd | /generate-prd, /refine-prd output |
59
- | general | every command |
54
+ | code-gen | output của /generate-code |
55
+ | bdd | output của /generate-bdd |
56
+ | tech-docs | output của /generate-tech-docs |
57
+ | tests | output của /dev-gen-test |
58
+ | prd | output của /generate-prd, /refine-prd |
59
+ | general | mọi lệnh |
60
60
 
61
61
  ---
62
62
  ```
63
63
 
64
- Insert the new lesson directly under the `---` separator (**newest first**), in this exact shape:
64
+ Chèn lesson mới ngay dưới dấu phân cách `---` (**mới nhất lên đầu**), theo đúng dạng:
65
65
 
66
66
  ```markdown
67
67
  ### L-{NNN} — [{category}] {title}
68
- - **Date**: {today YYYY-MM-DD}
68
+ - **Date**: {hôm nay YYYY-MM-DD}
69
69
  - **Scope**: {scope}
70
70
  - **Mistake**: {mistake}
71
71
  - **Rule**: {rule}
@@ -73,7 +73,7 @@ Insert the new lesson directly under the `---` separator (**newest first**), in
73
73
 
74
74
  ```
75
75
 
76
- ## L5 — Confirm
76
+ ## L5 — Xác nhận
77
77
 
78
- Print: `📝 Lesson {id} recorded → {lessons_path} ([{category}] {title})`
79
- Then remind: `Commit {lessons_path} so the team shares this guardrail.`
78
+ In: `📝 Đã ghi lesson {id} → {lessons_path} ([{category}] {title})`
79
+ Rồi nhắc: `Commit {lessons_path} để cả team dùng chung guardrail này.`