@educa-corp/sdd-framework 0.2.4 → 0.2.5

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 (150) hide show
  1. package/commands/generate-architecture.md +706 -0
  2. package/commands/generate-architecture.tmpl +194 -0
  3. package/commands/generate-code.md +16 -2
  4. package/commands/generate-code.tmpl +16 -2
  5. package/commands/generate-tech-docs.md +19 -0
  6. package/commands/generate-tech-docs.tmpl +19 -0
  7. package/core/FRAMEWORK_VERSION +1 -1
  8. package/core/commands/generate-architecture.md +706 -0
  9. package/core/commands/generate-code.md +16 -2
  10. package/core/commands/generate-tech-docs.md +19 -0
  11. package/core/skills/setup-ai-first/SKILL.md +12 -4
  12. package/core/templates/architecture.template.md +392 -111
  13. package/docs/01-getting-started/installation.md +47 -112
  14. package/docs/01-getting-started/quickstart.md +58 -72
  15. package/docs/01-getting-started/what-is-sdd.md +75 -0
  16. package/docs/02-concepts/architecture.md +109 -0
  17. package/docs/02-concepts/glossary.md +87 -0
  18. package/docs/02-concepts/overview.md +93 -0
  19. package/docs/02-concepts/pipeline-steps/00-setup.md +102 -0
  20. package/docs/02-concepts/pipeline-steps/01-discovery.md +129 -0
  21. package/docs/02-concepts/pipeline-steps/02-specification.md +130 -0
  22. package/docs/02-concepts/pipeline-steps/03-design-spec.md +90 -0
  23. package/docs/02-concepts/pipeline-steps/04-bdd.md +120 -0
  24. package/docs/02-concepts/pipeline-steps/05-tech-docs.md +101 -0
  25. package/docs/02-concepts/pipeline-steps/06-code.md +119 -0
  26. package/docs/02-concepts/pipeline-steps/07-dev-selftest.md +92 -0
  27. package/docs/02-concepts/pipeline-steps/08-qc-automation.md +102 -0
  28. package/docs/02-concepts/pipeline-steps/09-validate-traces.md +104 -0
  29. package/docs/02-concepts/pipeline-steps/10-feedback-loop.md +105 -0
  30. package/docs/02-concepts/pipeline-steps/README.md +92 -0
  31. package/docs/02-concepts/roles-and-hitl.md +73 -0
  32. package/docs/02-concepts/traceability.md +94 -0
  33. package/docs/03-guides/architect.md +98 -0
  34. package/docs/03-guides/developer.md +76 -0
  35. package/docs/03-guides/product-owner.md +68 -0
  36. package/docs/03-guides/tester-qa.md +70 -0
  37. package/docs/04-reference/commands.md +105 -0
  38. package/docs/04-reference/configuration.md +94 -0
  39. package/docs/04-reference/model-selection.md +68 -0
  40. package/docs/04-reference/modules.md +74 -0
  41. package/docs/04-reference/trace-schema.md +93 -0
  42. package/docs/README.md +29 -40
  43. package/docs/explain/00-setup-ai-first.md +77 -0
  44. package/docs/explain/00b-generate-architecture.md +76 -0
  45. package/docs/explain/01-define-product.md +79 -0
  46. package/docs/explain/02-generate-prd.md +78 -0
  47. package/docs/explain/03-refine-prd.md +86 -0
  48. package/docs/explain/04-review-context.md +100 -0
  49. package/docs/explain/05-generate-design-spec.md +73 -0
  50. package/docs/explain/06-generate-bdd.md +77 -0
  51. package/docs/explain/07-generate-tech-docs.md +71 -0
  52. package/docs/explain/08-review-tech-docs.md +79 -0
  53. package/docs/explain/09-generate-code.md +78 -0
  54. package/docs/explain/10-review-code.md +70 -0
  55. package/docs/explain/11-map-testids.md +69 -0
  56. package/docs/explain/12-dev-gen-test.md +66 -0
  57. package/docs/explain/13-dev-run-test.md +69 -0
  58. package/docs/explain/14-dev-smoke-test.md +67 -0
  59. package/docs/explain/15-qc-analyze.md +68 -0
  60. package/docs/explain/16-qc-plan.md +61 -0
  61. package/docs/explain/17-qc-design-test.md +61 -0
  62. package/docs/explain/18-qc-review.md +59 -0
  63. package/docs/explain/19-qc-run-test.md +67 -0
  64. package/docs/explain/20-qc-report.md +61 -0
  65. package/docs/explain/21-validate-traces.md +68 -0
  66. package/docs/explain/22-generate-spec-manifest.md +60 -0
  67. package/docs/explain/23-fix-bug.md +69 -0
  68. package/docs/explain/24-debug.md +61 -0
  69. package/docs/explain/25-report-bug.md +65 -0
  70. package/docs/explain/26-propose-scenario.md +63 -0
  71. package/docs/explain/27-learn.md +65 -0
  72. package/docs/explain/28-sync.md +70 -0
  73. package/docs/explain/29-update-framework.md +65 -0
  74. package/docs/explain/README.md +134 -0
  75. package/package.json +1 -1
  76. package/skills/setup-ai-first/SKILL.md +12 -4
  77. package/skills/setup-ai-first/SKILL.tmpl +12 -4
  78. package/templates/architecture.template.md +392 -111
  79. package/docs/01-getting-started/README.md +0 -19
  80. package/docs/01-getting-started/core-concepts.md +0 -102
  81. package/docs/02-guides/README.md +0 -26
  82. package/docs/02-guides/bdd-input-checklist.md +0 -68
  83. package/docs/02-guides/developer/README.md +0 -49
  84. package/docs/02-guides/developer/bdd-and-trace.md +0 -126
  85. package/docs/02-guides/developer/commands.md +0 -76
  86. package/docs/02-guides/developer/pr-checklist.md +0 -16
  87. package/docs/02-guides/developer/scenarios.md +0 -460
  88. package/docs/02-guides/developer/workflow.md +0 -121
  89. package/docs/02-guides/prd-input-checklist.md +0 -94
  90. package/docs/02-guides/product-owner/README.md +0 -81
  91. package/docs/02-guides/product-owner/commands.md +0 -30
  92. package/docs/02-guides/product-owner/handoff-checklist.md +0 -42
  93. package/docs/02-guides/product-owner/prd-writing-rules.md +0 -45
  94. package/docs/02-guides/product-owner/scenarios.md +0 -438
  95. package/docs/02-guides/tech-docs-input-checklist.md +0 -109
  96. package/docs/02-guides/tester/README.md +0 -75
  97. package/docs/02-guides/tester/bug-reporting.md +0 -117
  98. package/docs/02-guides/tester/qc-automation.md +0 -165
  99. package/docs/02-guides/tester/reading-specs.md +0 -79
  100. package/docs/02-guides/tester/scenarios.md +0 -186
  101. package/docs/02-guides/tester/spec-manifest.md +0 -130
  102. package/docs/02-guides/tester/test-checklist.md +0 -31
  103. package/docs/02-guides/tester/workflow.md +0 -77
  104. package/docs/03-concepts/README.md +0 -20
  105. package/docs/03-concepts/architecture.md +0 -248
  106. package/docs/03-concepts/mechanisms-explained.md +0 -124
  107. package/docs/03-concepts/pipeline.md +0 -278
  108. package/docs/03-concepts/traceability.md +0 -152
  109. package/docs/04-operations/README.md +0 -33
  110. package/docs/04-operations/bug-flow.md +0 -364
  111. package/docs/04-operations/publishing.md +0 -154
  112. package/docs/04-operations/sync-and-update.md +0 -522
  113. package/docs/05-reference/README.md +0 -34
  114. package/docs/05-reference/command-cheatsheet.md +0 -147
  115. package/docs/05-reference/commands.md +0 -234
  116. package/docs/05-reference/model-selection.md +0 -74
  117. package/docs/05-reference/modules.md +0 -110
  118. package/docs/05-reference/trace-schema.md +0 -154
  119. package/docs/06-commands/README.md +0 -75
  120. package/docs/06-commands/explain-debug.md +0 -32
  121. package/docs/06-commands/explain-define-product.md +0 -43
  122. package/docs/06-commands/explain-dev-gen-test.md +0 -28
  123. package/docs/06-commands/explain-dev-run-test.md +0 -24
  124. package/docs/06-commands/explain-dev-smoke-test.md +0 -25
  125. package/docs/06-commands/explain-fix-bug.md +0 -28
  126. package/docs/06-commands/explain-generate-bdd.md +0 -45
  127. package/docs/06-commands/explain-generate-code.md +0 -53
  128. package/docs/06-commands/explain-generate-design-spec.md +0 -54
  129. package/docs/06-commands/explain-generate-prd.md +0 -45
  130. package/docs/06-commands/explain-generate-spec-manifest.md +0 -20
  131. package/docs/06-commands/explain-generate-tech-docs.md +0 -56
  132. package/docs/06-commands/explain-learn.md +0 -21
  133. package/docs/06-commands/explain-map-testids.md +0 -28
  134. package/docs/06-commands/explain-propose-scenario.md +0 -24
  135. package/docs/06-commands/explain-qc-analyze.md +0 -22
  136. package/docs/06-commands/explain-qc-design-test.md +0 -20
  137. package/docs/06-commands/explain-qc-plan.md +0 -21
  138. package/docs/06-commands/explain-qc-report.md +0 -23
  139. package/docs/06-commands/explain-qc-review.md +0 -24
  140. package/docs/06-commands/explain-qc-run-test.md +0 -27
  141. package/docs/06-commands/explain-refine-prd.md +0 -51
  142. package/docs/06-commands/explain-report-bug.md +0 -24
  143. package/docs/06-commands/explain-review-code.md +0 -45
  144. package/docs/06-commands/explain-review-context.md +0 -68
  145. package/docs/06-commands/explain-review-tech-docs.md +0 -45
  146. package/docs/06-commands/explain-setup-ai-first.md +0 -25
  147. package/docs/06-commands/explain-sync.md +0 -24
  148. package/docs/06-commands/explain-update-framework.md +0 -22
  149. package/docs/06-commands/explain-validate-traces.md +0 -25
  150. package/docs/t-sample.md +0 -826
@@ -1,68 +0,0 @@
1
- [📚 Docs](../README.md) › [Guides](README.md) › Checklist Input BDD (System/BE)
2
-
3
- # Checklist Input BDD (System / BE) — Để BDD Chuẩn Ngay Lần Đầu
4
-
5
- > Áp cho `/generate-bdd` khi chọn platform **`system`** (BDD cho BE). Chuẩn bị đúng đầu vào để không phải sinh lại.
6
-
7
- ## Hiểu trước cho đúng: System BDD có HAI kiểu sinh
8
-
9
- Khi chọn platform `system`, lệnh tự phân loại:
10
-
11
- - **BE thuần** (feature không có web/app) → System BDD **sinh thẳng từ PRD** (AC / Business Rules / Business Logic).
12
- - **BE trong feature đa-platform** → System BDD **tổng hợp từ web + app BDD đã có** (BE suy ra để phục vụ các luồng client).
13
-
14
- → Biết mình ở kiểu nào mới chuẩn bị đúng.
15
-
16
- ---
17
-
18
- ## Phần CHUNG — cả hai kiểu đều cần
19
-
20
- **1. PRD đã duyệt + Luật/AC rõ ràng** *(đòn bẩy số 1)*
21
- System BDD phủ **mỗi AC và mỗi Business Rule → ít nhất 1 scenario**. PRD mơ hồ ở Business Rules / Logic = BDD mơ hồ. Đây là chỗ quyết định nhiều nhất.
22
-
23
- **2. Loại API đã chốt đúng trong PRD**
24
- - **"Đã có sẵn"** (brownfield) → bảng **Existing API Contract trong PRD phải đầy đủ**, không còn dấu "⛔ còn thiếu". Lệnh dùng bảng này làm chuẩn và **bỏ qua bước tổng hợp**. Còn thiếu = BDD dễ bịa / sai shape.
25
- - **"Tự làm mới"** → contract thiết kế sau; BDD chỉ tả hành vi nghiệp vụ.
26
-
27
- **3. Từ điển + danh sách thực thể đã cập nhật**
28
- System BDD viết bằng **ngôn ngữ sự kiện nghiệp vụ** ("hệ thống nhận X → trả về Y"), **không** dùng từ giao diện (click/tap), **không** chốt cứng shape JSON kỹ thuật. Tên thực thể / trường / enum phải đúng `core-entities.md`.
29
-
30
- **4. Domain khớp cấu hình service** *(chế độ umbrella)*
31
- Domain trong PRD phải khớp một service trong config; lệch là lệnh **dừng**.
32
-
33
- ---
34
-
35
- ## Phần RIÊNG theo kiểu
36
-
37
- ### Nếu BE trong feature đa-platform (tổng hợp)
38
-
39
- **5. Đã sinh web + app BDD TRƯỚC — đúng thứ tự outside-in**
40
- Nếu sinh `system` khi **chưa có** web/app BDD → lệnh tưởng là "BE thuần", sinh từ PRD và **bỏ lỡ** các kỳ vọng client thật (token, profile, redirect…). Phải theo thứ tự **web → app → system**.
41
-
42
- **6. Sẵn sàng quyết "xung đột cross-platform"**
43
- Nếu web và app **kỳ vọng khác nhau** (response / lỗi / luật) → lệnh **dừng ở CHECKPOINT** bắt PO chọn cách hoà: gộp chung / phân biệt theo platform / tách endpoint. Web+app BDD nên nhất quán, hoặc PO sẵn sàng quyết ngay — nếu không sẽ tắc.
44
-
45
- ### Nếu BE thuần
46
-
47
- Bỏ qua câu 5–6. Dồn lực vào câu 1–3: PRD Business Rules / Logic + contract + thực thể.
48
-
49
- ---
50
-
51
- ## Checklist nhanh — trước khi `/generate-bdd` (system)
52
-
53
- - [ ] PRD `approved`, mỗi AC/BR đủ rõ để suy ra scenario
54
- - [ ] Loại API đã chốt; brownfield → bảng Existing API Contract **đầy đủ** (hết ⛔)
55
- - [ ] `business-dictionary` + `core-entities` cập nhật (sự kiện / thực thể)
56
- - [ ] Domain khớp cấu hình service (umbrella)
57
- - [ ] *(đa-platform)* web + app BDD đã sinh + review **trước** system
58
- - [ ] *(đa-platform)* sẵn sàng quyết xung đột cross-platform
59
-
60
- ---
61
-
62
- ## Sau khi sinh BDD
63
-
64
- `/review-context` (BDD) bắt nốt sạn (coverage, Gherkin R1–R10, thuật ngữ); khi 0 critical → người duyệt đặt `# @trace.status: approved` rồi mới sang Tech Docs / Code / QC. Chuẩn bị tốt checklist trên thì bước review nhẹ.
65
-
66
- ---
67
-
68
- ← [Guides](README.md) · Liên quan: [Checklist Input PRD](prd-input-checklist.md) · [Checklist Input Tech-Docs (BE)](tech-docs-input-checklist.md)
@@ -1,49 +0,0 @@
1
- [📚 Docs](../../README.md) › [Guides](../README.md) › Developer
2
-
3
- # Hướng Dẫn Developer — SDD Framework
4
-
5
- Tài liệu dành cho **Developer (FE / BE / App)** — vai trò, commands, trace system, workflow, và các tình huống thực tế. Được chia nhỏ theo chủ đề để dễ đọc:
6
-
7
- ## Mục Lục
8
-
9
- | Trang | Nội dung |
10
- |---|---|
11
- | [Commands](commands.md) | Bảng lệnh cho dev · project lessons · xử lý feedback tester · khi nào dùng `--phase` |
12
- | [BDD & Trace System](bdd-and-trace.md) | Tại sao BDD quan trọng với dev · `@trace.*` fields · trace chain · khi nào `/validate-traces` |
13
- | [Checklist input BDD (System/BE)](../bdd-input-checklist.md) | Chuẩn bị để `/generate-bdd` (system) chuẩn ngay lần đầu |
14
- | [Checklist input Tech-Docs (BE)](../tech-docs-input-checklist.md) | BDD khác tech-doc thế nào · chuẩn bị để `/generate-tech-docs` (BE) ra API contract chuẩn lần đầu |
15
- | [Workflow](workflow.md) | Luồng làm việc cơ bản từ nhận PRD đến tạo PR |
16
- | [Tình huống thực tế](scenarios.md) | 8 scenario: nhận PRD mới, đọc System/Web BDD, PRD đổi, API sign-off, bug từ tester, design spec, brownfield, umbrella, validate-traces |
17
- | [Checklist trước khi tạo PR](pr-checklist.md) | Checklist verify trước khi mở PR |
18
-
19
- ## Vai Trò Dev Trong Framework
20
-
21
- ```
22
- PO/BA Dev
23
- ────────────────────── ──────────────────────────────────────
24
- /define-product /review-context (đọc PRD + BDD)
25
- /generate-prd → đọc BDD từ spec submodule
26
- /refine-prd /generate-tech-docs (từ BDD → Tech Docs)
27
- /review-context /generate-code (từ BDD + Tech Docs → Code)
28
- /generate-design-spec → /dev-gen-test
29
- /generate-bdd (web) /review-code
30
- /generate-bdd (app) /dev-run-test
31
- /generate-bdd (system) /fix-bug / /debug
32
- /validate-traces
33
- ```
34
-
35
- **Dev chịu trách nhiệm:**
36
- - Đọc và hiểu PRD + BDD từ spec submodule trước khi bắt đầu
37
- - **KHÔNG tự generate BDD** — BDD đã được PO generate trong spec repo
38
- - Đảm bảo code trace về đúng BDD scenario, BDD trace về đúng PRD
39
- - **Duyệt BDD:** sau khi `/review-context` (BDD) sạch critical, Dev-lead/SA đặt `# @trace.status: approved` trong `.feature` (cổng trước tech-docs / code / QC)
40
- - Báo PO/BA khi PRD hoặc BDD có gì không rõ hoặc mâu thuẫn — không tự suy diễn
41
-
42
- **Dev KHÔNG làm:**
43
- - Viết/sửa PRD — đó là việc của PO/BA
44
- - Viết/sửa Design Spec — đó là việc của PO/BA + Designer
45
- - Approve PRD — chỉ PO mới có quyền này
46
-
47
- ---
48
-
49
- *Xem thêm:* [Product Owner Guide](../product-owner/README.md) · [Tester Guide](../tester/README.md) · [chương QC Automation](../tester/qc-automation.md) · [Concepts › Traceability](../../03-concepts/traceability.md) · [Reference › Commands](../../05-reference/commands.md)
@@ -1,126 +0,0 @@
1
- [📚 Docs](../../README.md) › [Guides](../README.md) › [Developer](README.md) › BDD & Trace System
2
-
3
- # BDD & Trace System
4
-
5
- - [Tại sao BDD quan trọng với Dev](#tại-sao-bdd-quan-trọng-với-dev)
6
- - [Hiểu Trace System](#hiểu-trace-system)
7
-
8
- ## Tại Sao BDD Quan Trọng Với Dev
9
-
10
- ### BDD không phải "viết test thêm"
11
-
12
- BDD là **spec thực thi được** — nó định nghĩa CHÍNH XÁC hệ thống phải làm gì trước khi viết một dòng code.
13
- ```
14
- PRD (business language) → BDD (technical spec) → Code (implementation)
15
- "Sai password 5 lần Given 5 failed logins if failCount >= 5:
16
- → khoá 30 phút" Then account locked lockAccount(30min)
17
- And locked_until = now+30m
18
- ```
19
-
20
- ### BDD định hướng kiến trúc code
21
-
22
- BDD scenario là unit of work — mỗi scenario ánh xạ thành một test case, một function, một API endpoint. Viết BDD trước buộc dev phải nghĩ về interface trước implementation.
23
- ```gherkin
24
- # BDD này buộc dev phải tạo:
25
- # - POST /auth/login endpoint
26
- # - lockAccount(duration) service method
27
- # - AccountLocked exception/response
28
-
29
- Scenario: Lock account after 5 failed attempts
30
- Given user "alice@example.com" exists
31
- When user attempts login with wrong password 5 times
32
- Then account is locked for 30 minutes
33
- And login returns 423 Locked with "retry_after" header
34
- ```
35
-
36
- ### BDD là tài liệu sống
37
-
38
- Khi BDD pass → code đang hoạt động đúng spec. Khi BDD fail → code lệch khỏi yêu cầu. Không cần đọc PRD để biết feature có đang hoạt động không — chạy BDD là biết ngay.
39
-
40
- ### BDD đến từ spec repo — Dev đọc, không tự gen
41
-
42
- BDD được PO generate trong spec repo, nằm tại `specs/{domain}/{prd-slug}/bdd/`:
43
-
44
- | Subfolder | Platform | Dev team đọc |
45
- |---|---|---|
46
- | `web/` | FE/Web (clicks, sees, navigates) | FE/Web dev |
47
- | `app/` | Mobile (taps, sees screen, navigates) | App dev |
48
- | `system/` | System/BE (request, response, business rules) | BE dev |
49
-
50
- Cả 3 subfolder đều trace về **cùng 1 PRD**. BE không cần đọc BDD của FE và ngược lại.
51
-
52
- ## Hiểu Trace System
53
-
54
- Framework dùng metadata `@trace.*` để liên kết PRD → BDD → Code. (Chi tiết khái niệm: [Concepts › Traceability](../../03-concepts/traceability.md).)
55
-
56
- ### Các trace fields quan trọng
57
-
58
- | Field | Vị trí | Ý nghĩa |
59
- |---|---|---|
60
- | `Domain` | bảng Metadata PRD | Domain của feature (auth, payment, ...) — dùng để route vào đúng service submodule |
61
- | `@trace.module` | BDD / Tech Doc header | Module trong codebase sẽ implement |
62
- | `@trace.prd` | BDD / Tech Doc header | Link về PRD gốc |
63
- | `@trace.bdd` | Code comment / test | Link về BDD scenario |
64
- | `Status` | bảng Metadata PRD | `draft` / `approved` — chỉ code khi `approved` |
65
- | `@trace.status` | BDD `.feature` header | `draft` / `approved` — Dev-lead/SA đặt approved sau review-context BDD sạch; mirror → `uc_status` (dashboard) |
66
- | `dev_selftest` | Trace TSV | `pass` / `fail` / `not_run` — kết quả dev self-check, set bởi `/dev-run-test`. Surfaced trong Living Docs để QC biết dev đã chạy self-check — **KHÔNG phải coverage chính thức** |
67
- | `dev_selftest_at` | Trace TSV | Timestamp lần chạy `/dev-run-test` gần nhất |
68
- | `qc_status` | Trace TSV | `pass` / `fail` / `skip` / `not_run` — kết quả **QC chính thức**, set bởi `/qc-run-test` (do QC chạy, KHÔNG phải dev). Orthogonal với `dev_selftest` và với coverage `status` |
69
- | `qc_run_at` | Trace TSV | Timestamp lần chạy `/qc-run-test` gần nhất |
70
-
71
- ### Ví dụ trace chain hoàn chỉnh
72
-
73
- ```
74
- specs/auth/login/{TICKET-ID}-login.md ← Metadata: Domain: auth, Status: approved
75
-
76
- specs/auth/login/bdd/system/FT-001-UC1-login.feature ← @trace.prd: FT-001 · web/app/system riêng (system tổng hợp từ web+app)
77
-
78
- src/auth/auth.service.ts ← // @trace.bdd: FT-001-UC1-SC1 (service submodule)
79
-
80
- {spec_source}/.trace/auth/login/FT-001.tsv ← coverage/drift — authoritative ở SPEC repo
81
- ```
82
-
83
- ### Khi nào chạy /validate-traces?
84
-
85
- - Sau khi refactor đổi tên file/function
86
- - Sau khi PRD được PO cập nhật (version mới)
87
- - Trước khi tạo PR lớn
88
- - Khi CI báo trace validation fail
89
- - **Sau mỗi codegen session trong umbrella mode** — để sync Living Docs panel
90
-
91
- ```
92
- /validate-traces
93
- → Sẽ report: broken links, orphan BDD (không có PRD), dead code traces
94
- ```
95
-
96
- **Lưu ý khi dùng umbrella (submodule):**
97
- ```
98
- Vấn đề: Living Docs panel mở ở umbrella root (hoặc một service submodule đơn lẻ) → nếu không có mirror local → TRỐNG.
99
- TSV authoritative nằm committed MỘT chỗ ở spec repo: {spec_source}/.trace/
100
-
101
- Giải pháp: /validate-traces (hoặc /sync) regenerate canonical trace-report.json + TSV mirror
102
- trong SPEC MODULE tại {spec_source}/.living-docs/ (gitignored), đồng thời ghi
103
- mirror local tại ./.trace của workspace hiện tại để panel không trống khi dev mở
104
- một service submodule đơn lẻ.
105
-
106
- Lệnh chạy sau mỗi session:
107
- /validate-traces
108
- → Reads .trace/*.tsv authoritative (committed) MỘT chỗ: {spec_source}/.trace/ (mỗi row mang @trace.service)
109
- → Writes trace-report.json → {spec_source}/.living-docs/ (gitignored, regenerated bởi /sync hoặc /validate-traces)
110
- → Writes panel mirror → ./.trace của workspace hiện tại (non-empty khi mở repo lẻ)
111
- → Living Docs panel cập nhật ngay
112
- ```
113
-
114
- > **Authoritative vs mirror:** `.trace/*.tsv` được **commit** ở spec repo `{spec_source}/.trace/` (nguồn sự thật, một chỗ). `{spec_source}/.living-docs/` và `./.trace` chỉ là mirror gitignored, regenerated bởi `/sync` hoặc `/validate-traces`.
115
-
116
- Thêm `.living-docs/` (spec module) và umbrella/workspace `.trace/` mirror vào `.gitignore`:
117
- ```
118
- # .gitignore — spec module
119
- .living-docs/
120
- # .gitignore — workspace/umbrella root (mirror, không commit)
121
- .trace/
122
- ```
123
-
124
- ---
125
-
126
- ← [Commands](commands.md) · Tiếp theo: [Workflow](workflow.md)
@@ -1,76 +0,0 @@
1
- [📚 Docs](../../README.md) › [Guides](../README.md) › [Developer](README.md) › Commands
2
-
3
- # Commands Dành Cho Dev
4
-
5
- | Command | Mục đích | Khi nào dùng |
6
- |---|---|---|
7
- | `/sync` `[spec-branch]` | **One-command setup hoặc update** — git pull + submodule sync + Living Docs refresh. Truyền branch để override branch spec submodule (vd `/sync develop`) | **Mỗi sáng trước khi bắt đầu work** |
8
- | `/update-framework` | Nâng cấp **bản thân framework** (`.agent/commands/`, steps/, modules/) từ npm | Khi có version framework mới — không đụng project-context/CLAUDE.md |
9
- | `/review-context {prd-file}` | Đọc + xác nhận PRD + BDD đủ rõ trước khi code — fan-out review dimension thành sub-agent song song + completeness-critic loop, findings file đầy đủ ngay trong 1 lần chạy | **Bước đầu tiên** khi nhận PRD mới |
10
- | `/generate-tech-docs {1..n BDD file}` | **1 doc full-stack/PRD.** Trỏ vào file BDD (system→§4 API contract; web/app→§4.5 client design) — gộp vào `{TICKET-ID}-tech-design.md`, append qua nhiều lần chạy. Cảnh báo >5 file/lần. Client thiếu design-spec → §4.5 degraded (soft) | Sau BDD approved. Nên trỏ System BDD trước (chốt §4), rồi web/app BDD (append §4.5 map theo §4.1) |
11
- | `/generate-code {bdd-file}` | Sinh code — BE hoặc FE khi API đã sẵn sàng. Guard mềm: BDD `@trace.status` approved; FE/App design-spec approved+fresh+sanity | Sau khi tech docs `approved` |
12
- | `/generate-code {bdd-file} --phase=ui` | FE: gen UI + mock adapter. Mock **shape** từ BE contract nếu có (chuẩn) → else infer từ System BDD + warn (`mock_source=contract\|system-bdd`); fixture values luôn từ System BDD | Ngay sau khi đọc BDD (BE chưa cần deploy API) |
13
- | `/generate-code {bdd-file} --phase=integration` | FE: wire API thật thay mock | Sau khi sign-off gate `approved` |
14
- | `/dev-gen-test {bdd-file}` | **Dev self-check** — sinh test cases từ BDD để dev tự verify code mình vừa gen (KHÔNG phải bộ test chính thức của QC/dev-team) | Song song hoặc sau generate-code |
15
- | `/review-code {file}` | Review code theo 4 lăng kính (Traceability/Layer/Coding Standards/Spec Compliance) | Trước khi tạo PR |
16
- | `/review-tech-docs {tech-doc-file}` | Review chất lượng Tech Docs | Sau generate-tech-docs |
17
- | `/dev-run-test` | **Dev self-check** — chạy test do dev tự gen để xác nhận code mình hoạt động (smoke/self-verify, KHÔNG phải coverage chính thức) — *umbrella mode: tự `cd` vào service_root, dùng service's `test_command`*. Ghi `dev_selftest` (pass/fail) vào trace TSV | Sau khi code + tests sẵn sàng |
18
- | `/fix-bug {issue}` | Phân tích + fix bug có trace | Khi có bug report |
19
- | `/debug {symptom}` | Debug vấn đề chưa rõ nguyên nhân | Khi cần trace root cause |
20
- | `/dev-smoke-test` | **Dev self-check** — kiểm tra nhanh các luồng chính của code mình vừa làm (smoke, không thay thế bộ test chính thức) | Sau deploy hoặc merge lớn |
21
- | `/validate-traces` | Kiểm tra toàn bộ trace chain còn hợp lệ | Sau refactor hoặc khi PRD update |
22
- | `/learn {text}` | Ghi lại lỗi AI hay lặp thành guardrail | Khi AI lặp lại lỗi mà bạn không muốn nó tái diễn |
23
-
24
- > **Dev self-check vs QC chính thức:** `/dev-gen-test` · `/dev-run-test` · `/dev-smoke-test` (ghi `dev_selftest`) chỉ là **smoke self-check của riêng dev**. Bộ QC chính thức giờ là native pipeline `/qc-analyze → /qc-plan → /qc-design-test → /qc-review → /qc-run-test → /qc-report` — **do QC chạy, không phải việc của dev** — và ghi `qc_status` riêng. Chi tiết: [chương QC Automation](../tester/qc-automation.md).
25
-
26
- > Danh mục đầy đủ mọi command: [Reference › Commands](../../05-reference/commands.md).
27
-
28
- ## Project Lessons — dạy framework không lặp lỗi
29
-
30
- AI đôi khi lặp đi lặp lại một lỗi trong dự án (vd: gọi repository thẳng từ controller, quên null-check). Thay vì sửa thủ công mỗi lần, **ghi lại thành "lesson"** — context-loader sẽ nạp nó vào đầu **mọi** lệnh như một ràng buộc cứng.
31
-
32
- **2 cách ghi nhận:**
33
- ```bash
34
- # Cách 1 — chủ động
35
- /learn AI hay gọi repository thẳng từ controller, phải đi qua service layer
36
-
37
- # Cách 2 — tự động: khi /review-code, /fix-bug, /debug phát hiện lỗi lặp lại
38
- # → nó hỏi "Record as a project lesson? (Y/N)" → Y
39
- ```
40
-
41
- **Lưu ở đâu:** `paths.lessons_file` (mặc định `specs/domain-knowledge/lessons-learned.md`; umbrella: `.agent/project-lessons.md` mỗi service). **Commit file này** để cả team cùng được bảo vệ.
42
-
43
- > Đây là **bộ nhớ dự án**, không phải fine-tune model — lesson được nạp vào context mỗi lần chạy, nên AI "nhớ" và không lặp lại. Xem `[CTX LOADED]` có dòng `Lessons: loaded — N guardrails`.
44
-
45
- ## Xử lý feedback từ tester
46
-
47
- Tester gửi bug report (`/report-bug`) và đề xuất scenario (`/propose-scenario`) vào `feedback/` của **spec repo**. Khi dev chạy `/sync`, nó liệt kê:
48
- ```
49
- 📥 New tester feedback (pulled this sync):
50
- Bug reports: BUG-20260608-01 FT-001 — ... [layer: Code]
51
- Scenario proposals: FT-001-trailing-spaces → AC2 (pending review)
52
- ```
53
-
54
- Dev hành động theo phân loại:
55
- - **Bug report** → `/fix-bug {BUG-ID}` (report đã có sẵn spec-context + AC bị vi phạm + layer)
56
- - **Scenario proposal map vào AC sẵn có** → đặt `Status: accepted` trong file proposal → `/generate-bdd` tự chèn vào `.feature` rồi lưu trữ (`incorporated`); hoặc thêm tay. Rồi `/generate-code` + `/dev-gen-test`
57
- - **Proposal là yêu cầu mới (PRD change request)** → chuyển PO sửa PRD trước
58
-
59
- > Bug reports có thể đến từ hai nguồn: Tester dùng `/report-bug` trực tiếp, **hoặc** từ kết quả QC automation (`qc_status: fail` trong `.trace/*.tsv` → QC (hoặc tester) chạy `/report-bug` → `/sync` → dev thấy tại đây). Cả hai đều dùng cùng luồng `/fix-bug`.
60
-
61
- > Tester chỉ *đề xuất* trong `feedback/` — dev/PO mới đưa vào BDD chính thức. Giữ đúng ownership.
62
-
63
- ## Khi nào dùng `--phase` cho FE/App?
64
-
65
- | Tình huống | Command |
66
- |---|---|
67
- | API **đã có sẵn** và đang hoạt động | `/generate-code {file}` — không flag, gen real API ngay |
68
- | BE **chưa ready**, FE muốn bắt đầu ngay | `/generate-code {file} --phase=ui` — UI + mock adapter |
69
- | Sign-off gate xong, cần wire API thật | `/generate-code {file} --phase=integration` |
70
- | BE implement (system BDD) | `/generate-code {file}` — không flag |
71
-
72
- > `--phase` chỉ có giá trị khi BE chưa sẵn sàng. Nếu API đã live → bỏ qua `--phase`, chạy thẳng default.
73
-
74
- ---
75
-
76
- ← [Developer Guide](README.md) · Tiếp theo: [BDD & Trace System](bdd-and-trace.md)
@@ -1,16 +0,0 @@
1
- [📚 Docs](../../README.md) › [Guides](../README.md) › [Developer](README.md) › PR Checklist
2
-
3
- # Checklist Trước Khi Tạo PR
4
-
5
- - [ ] `/validate-traces` → all green (không broken trace)
6
- - [ ] `/dev-run-test` → all pass *(umbrella: đảm bảo service có `.agent/project-context.yaml` với `test_command` trước khi chạy)*
7
- - [ ] `/review-code` → không có issue Critical hoặc Major chưa xử lý
8
- - [ ] Code trace về đúng BDD scenarios trong `my-project-specs/specs/{domain}/{prd-slug}/bdd/`
9
- - [ ] Code có `@trace.bdd` comment cho các function implement BDD scenario
10
- - [ ] BDD `@trace.status: approved` (đã duyệt) trước khi code/PR; FE/App: Design Spec `Status: approved` + `Built from PRD` khớp PRD hiện tại
11
- - [ ] Tech Docs đã được update nếu có thay đổi API/DB schema
12
- - [ ] **Không tự sửa BDD** — BDD là của PO, nếu cần update thì báo PO rồi pull lại
13
-
14
- ---
15
-
16
- ← [Tình huống thực tế](scenarios.md)