@edupia-tutor/spec-driven-docs 0.14.5 → 0.14.7

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 (97) hide show
  1. package/bin/index.js +1 -1
  2. package/commands/debug.md +1 -1
  3. package/commands/define-product.md +1 -1
  4. package/commands/dev-gen-test.md +1 -1
  5. package/commands/dev-run-test.md +1 -1
  6. package/commands/dev-smoke-test.md +1 -1
  7. package/commands/fix-bug.md +1 -1
  8. package/commands/generate-bdd.md +16 -2
  9. package/commands/generate-bdd.tmpl +15 -1
  10. package/commands/generate-code.md +1 -1
  11. package/commands/generate-design-spec.md +15 -1
  12. package/commands/generate-design-spec.tmpl +14 -0
  13. package/commands/generate-prd.md +2 -1
  14. package/commands/generate-prd.tmpl +1 -0
  15. package/commands/generate-spec-manifest.md +1 -1
  16. package/commands/generate-tech-docs.md +1 -1
  17. package/commands/learn.md +1 -1
  18. package/commands/map-testids.md +1 -1
  19. package/commands/propose-scenario.md +1 -1
  20. package/commands/qc-analyze.md +1 -1
  21. package/commands/qc-design-test.md +1 -1
  22. package/commands/qc-plan.md +1 -1
  23. package/commands/qc-report.md +1 -1
  24. package/commands/qc-review.md +1 -1
  25. package/commands/qc-run-test.md +1 -1
  26. package/commands/refine-prd.md +19 -10
  27. package/commands/refine-prd.tmpl +18 -9
  28. package/commands/report-bug.md +1 -1
  29. package/commands/review-code.md +1 -1
  30. package/commands/review-context.md +124 -34
  31. package/commands/review-context.tmpl +87 -33
  32. package/commands/review-tech-docs.md +1 -1
  33. package/commands/setup-ai-first.md +10 -10
  34. package/commands/setup-ai-first.tmpl +9 -9
  35. package/commands/sync.md +1 -1
  36. package/commands/update-framework.md +1 -1
  37. package/commands/validate-traces.md +1 -1
  38. package/core/FRAMEWORK_VERSION +1 -1
  39. package/core/commands/debug.md +1 -1
  40. package/core/commands/define-product.md +1 -1
  41. package/core/commands/dev-gen-test.md +1 -1
  42. package/core/commands/dev-run-test.md +1 -1
  43. package/core/commands/dev-smoke-test.md +1 -1
  44. package/core/commands/fix-bug.md +1 -1
  45. package/core/commands/generate-bdd.md +16 -2
  46. package/core/commands/generate-code.md +1 -1
  47. package/core/commands/generate-design-spec.md +15 -1
  48. package/core/commands/generate-prd.md +2 -1
  49. package/core/commands/generate-spec-manifest.md +1 -1
  50. package/core/commands/generate-tech-docs.md +1 -1
  51. package/core/commands/learn.md +1 -1
  52. package/core/commands/map-testids.md +1 -1
  53. package/core/commands/propose-scenario.md +1 -1
  54. package/core/commands/qc-analyze.md +1 -1
  55. package/core/commands/qc-design-test.md +1 -1
  56. package/core/commands/qc-plan.md +1 -1
  57. package/core/commands/qc-report.md +1 -1
  58. package/core/commands/qc-review.md +1 -1
  59. package/core/commands/qc-run-test.md +1 -1
  60. package/core/commands/refine-prd.md +19 -10
  61. package/core/commands/report-bug.md +1 -1
  62. package/core/commands/review-code.md +1 -1
  63. package/core/commands/review-context.md +124 -34
  64. package/core/commands/review-tech-docs.md +1 -1
  65. package/core/commands/setup-ai-first.md +10 -10
  66. package/core/commands/sync.md +1 -1
  67. package/core/commands/update-framework.md +1 -1
  68. package/core/commands/validate-traces.md +1 -1
  69. package/core/skills/code/SKILL.md +2 -2
  70. package/core/skills/debug/SKILL.md +3 -3
  71. package/core/skills/design-spec/SKILL.md +1 -1
  72. package/core/skills/prd/SKILL.md +1 -1
  73. package/core/skills/setup-ai-first/SKILL.md +1 -1
  74. package/core/skills/spec/SKILL.md +2 -2
  75. package/core/skills/test/SKILL.md +3 -3
  76. package/core/steps/report-footer.md +1 -1
  77. package/core/templates/project-context.yaml +2 -2
  78. package/docs/01-getting-started/core-concepts.md +1 -1
  79. package/docs/02-guides/developer/bdd-and-trace.md +3 -3
  80. package/docs/02-guides/developer/scenarios.md +2 -2
  81. package/docs/02-guides/developer/workflow.md +1 -1
  82. package/docs/02-guides/product-owner/README.md +2 -2
  83. package/docs/02-guides/product-owner/handoff-checklist.md +5 -5
  84. package/docs/02-guides/product-owner/scenarios.md +19 -17
  85. package/docs/03-concepts/traceability.md +3 -3
  86. package/docs/04-operations/sync-and-update.md +3 -3
  87. package/docs/05-reference/command-cheatsheet.md +1 -1
  88. package/package.json +1 -1
  89. package/skills/code/SKILL.md +2 -2
  90. package/skills/debug/SKILL.md +3 -3
  91. package/skills/design-spec/SKILL.md +1 -1
  92. package/skills/prd/SKILL.md +1 -1
  93. package/skills/setup-ai-first/SKILL.md +1 -1
  94. package/skills/spec/SKILL.md +2 -2
  95. package/skills/test/SKILL.md +3 -3
  96. package/steps/report-footer.md +1 -1
  97. package/templates/project-context.yaml +2 -2
@@ -57,11 +57,11 @@ Framework dùng metadata `@trace.*` để liên kết PRD → BDD → Code. (Chi
57
57
 
58
58
  | Field | Vị trí | Ý nghĩa |
59
59
  |---|---|---|
60
- | `@trace.domain` | PRD frontmatter | Domain của feature (auth, payment, ...) — dùng để route vào đúng service submodule |
60
+ | `Domain` | bảng Metadata PRD | Domain của feature (auth, payment, ...) — dùng để route vào đúng service submodule |
61
61
  | `@trace.module` | BDD / Tech Doc header | Module trong codebase sẽ implement |
62
62
  | `@trace.prd` | BDD / Tech Doc header | Link về PRD gốc |
63
63
  | `@trace.bdd` | Code comment / test | Link về BDD scenario |
64
- | `@trace.status` | PRD frontmatter | `draft` / `approved` — chỉ code khi `approved` |
64
+ | `Status` | bảng Metadata PRD | `draft` / `approved` — chỉ code khi `approved` |
65
65
  | `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** |
66
66
  | `dev_selftest_at` | Trace TSV | Timestamp lần chạy `/dev-run-test` gần nhất |
67
67
  | `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` |
@@ -70,7 +70,7 @@ Framework dùng metadata `@trace.*` để liên kết PRD → BDD → Code. (Chi
70
70
  ### Ví dụ trace chain hoàn chỉnh
71
71
 
72
72
  ```
73
- specs/auth/login/{TICKET-ID}-login.md ← @trace.domain: auth, @trace.status: approved
73
+ specs/auth/login/{TICKET-ID}-login.md ← Metadata: Domain: auth, Status: approved
74
74
 
75
75
  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)
76
76
 
@@ -21,7 +21,7 @@
21
21
  (lấy PRD + BDD mới nhất từ PO)
22
22
 
23
23
  2. /review-context my-project-specs/specs/payment/checkout/{TICKET-ID}-checkout.md
24
- → Kiểm tra @trace.status = approved (không code khi còn draft)
24
+ → Kiểm tra Status = approved (bảng Metadata PRD; không code khi còn draft)
25
25
  → Đọc kỹ AC, UC, BR
26
26
 
27
27
  3. Đọc BDD tương ứng theo platform của mình:
@@ -343,7 +343,7 @@ code . ← hoặc claude .
343
343
  # → sync Living Docs panel
344
344
 
345
345
  # 4. Framework tự detect umbrella mode từ project-context.yaml
346
- # Khi chạy /review-context với PRD có @trace.domain: be
346
+ # Khi chạy /review-context với PRD có Domain: be (bảng Metadata)
347
347
  # → CODE route tới mass-product-be/ · BDD đọc từ spec repo mass-product-spec/specs/{domain}/{prd-slug}/bdd/ (spec_source set)
348
348
  ```
349
349
 
@@ -45,7 +45,7 @@ Nhận thông báo PRD + BDD mới từ PO
45
45
 
46
46
 
47
47
  /review-context {prd-file}
48
- → Kiểm tra @trace.domain, @trace.status = approved
48
+ → Kiểm tra Domain, Status = approved (bảng Metadata PRD)
49
49
  → Đọc hiểu AC, UC, BR trong PRD
50
50
  → Đọc BDD tương ứng trong specs/{domain}/{prd-slug}/bdd/{platform}/
51
51
  → Nếu có gì không rõ: hỏi PO TRƯỚC khi tiếp tục
@@ -32,8 +32,8 @@ PO/BA Dev team
32
32
 
33
33
  **PO/BA chịu trách nhiệm:**
34
34
  - Đảm bảo PRD platform-agnostic (không chứa UI details hay API specs)
35
- - Đặt `@trace.domain` đúng để dev team routing hoạt động
36
- - Cập nhật `@trace.status: approved` trước khi handoff
35
+ - Đặt row `Domain` (bảng Metadata) đúng để dev team routing hoạt động
36
+ - Cập nhật `Status: approved` (bảng Metadata) trước khi handoff
37
37
  - **Generate BDD cho tất cả platforms** theo thứ tự **outside-in: web → app → system** — System BDD được **tổng hợp từ web+app BDD** (project chỉ-BE thì system gen thẳng từ PRD). Xem [scenarios](scenarios.md).
38
38
  - Thông báo dev team khi có PRD hoặc BDD mới/update
39
39
 
@@ -5,10 +5,10 @@
5
5
  Trước khi thông báo dev team bắt đầu, kiểm tra:
6
6
 
7
7
  **Metadata:**
8
- - [ ] `@trace.id` có và đúng format (vd: FEAT-01)
9
- - [ ] `@trace.domain` có và khớp với domain names đã thống nhất với dev team
10
- - [ ] `@trace.status: approved` (không phải draft/in-review)
11
- - [ ] `@trace.version` có (vd: 1.0)
8
+ - [ ] Row `Ticket` (bảng Metadata) có và đúng format (vd: FEAT-01)
9
+ - [ ] Row `Domain` có và khớp với domain names đã thống nhất với dev team
10
+ - [ ] Row `Status` = `approved` (không phải draft)
11
+ - [ ] Row `Version` có (vd: 1.0)
12
12
 
13
13
  **Nội dung PRD:**
14
14
  - [ ] Tất cả `{{PLACEHOLDER}}` đã được điền
@@ -23,7 +23,7 @@ Trước khi thông báo dev team bắt đầu, kiểm tra:
23
23
  - [ ] Không có P3 conflict với PRD khác trong cùng domain
24
24
 
25
25
  **Cho FE/App thêm:**
26
- - [ ] Design Spec đã tạo và `@trace.status: approved` (không còn `draft`)
26
+ - [ ] Design Spec đã tạo và `Status: approved` trong Metadata (không còn `draft`)
27
27
  - [ ] Mỗi screen có Figma link node-level (`?node-id=`) — không screen nào bị flag ❌ Missing
28
28
  - [ ] Designer đã sign-off (gate này bị BLOCKED nếu còn screen thiếu node-id link)
29
29
 
@@ -40,13 +40,13 @@ Mở findings file, xem xét từng finding: `accepted` → apply · `modified`
40
40
  ```
41
41
  /review-context specs/auth/FEAT-01-login/FEAT-01-login.md
42
42
  ```
43
- Kiểm tra: `@trace.status`, `@trace.domain`, completeness.
43
+ Kiểm tra: `Status`, `Domain` (bảng Metadata), completeness.
44
44
 
45
45
  **Bước 5 — Approve PRD:**
46
46
  ```yaml
47
- # Trong file PRD, cập nhật:
48
- @trace.status: approved
49
- @trace.version: 1.0
47
+ # Trong bảng Metadata của PRD, cập nhật:
48
+ # | **Status** | approved |
49
+ # | **Version** | 1.0 |
50
50
  ```
51
51
 
52
52
  **Bước 6 — Tạo Design Spec (FE/App):**
@@ -55,7 +55,7 @@ Kiểm tra: `@trace.status`, `@trace.domain`, completeness.
55
55
  ```
56
56
  Agent hỏi platform (web / app). PO phải cung cấp **Figma link node-level** (URL chứa `?node-id=`, lấy bằng right-click vào frame → "Copy link to selection") cho **mỗi screen**. Screen nào thiếu link → bị flag ❌ Missing, Status giữ `draft`, `/generate-bdd` bị BLOCKED cho đến khi đủ link.
57
57
 
58
- Sau khi Designer review + confirm đủ Figma node-id links → `@trace.status: approved`.
58
+ Sau khi Designer review + confirm đủ Figma node-id links → đặt `Status: approved` trong Metadata Design Spec.
59
59
 
60
60
  **Bước 7 — Generate BDD:**
61
61
  ```
@@ -84,7 +84,7 @@ git push
84
84
 
85
85
  ```
86
86
  /define-product → product definition
87
- /generate-prd → PRD với @trace.domain: auth
87
+ /generate-prd → PRD với Domain: auth (bảng Metadata)
88
88
  /review-context --fix → auto-fix
89
89
  /generate-design-spec → design spec cho FE (nếu có designer)
90
90
  /generate-bdd → web → specs/auth/FEAT-01-login/bdd/web/
@@ -115,7 +115,7 @@ git push
115
115
  ```
116
116
  Output: `specs/auth/FEAT-01-login/design-spec/FEAT-01-design-spec-web.md`
117
117
 
118
- Mỗi screen cần Figma link node-id. Screen thiếu → flag ❌ Missing, BLOCKED. Sau khi Designer review → `@trace.status: approved`.
118
+ Mỗi screen cần Figma link node-id. Screen thiếu → flag ❌ Missing, BLOCKED. Sau khi Designer review → đặt `Status: approved` trong Metadata Design Spec.
119
119
 
120
120
  **Bước 2 — Generate BDD:**
121
121
  ```
@@ -162,7 +162,8 @@ Lặp lại cho đến khi `recommendation: APPROVED`.
162
162
 
163
163
  **Bước 1 — Đổi status về draft:**
164
164
  ```yaml
165
- @trace.status: draft
165
+ # Trong bảng Metadata PRD:
166
+ # | **Status** | draft |
166
167
  ```
167
168
 
168
169
  **Bước 2 — Sửa nội dung:**
@@ -178,9 +179,9 @@ Lặp lại cho đến khi `recommendation: APPROVED`.
178
179
 
179
180
  **Bước 4 — Approve và thông báo:**
180
181
  ```yaml
181
- @trace.status: approved
182
- @trace.version: 1.1 # minor bump vì chỉ thêm AC
183
- # major bump (2.0) nếu thay đổi cơ bản
182
+ # Trong bảng Metadata PRD:
183
+ # | **Status** | approved |
184
+ # | **Version** | 1.1 | # minor bump (chỉ thêm AC); major (2.0) nếu thay đổi cơ bản
184
185
  ```
185
186
  ```bash
186
187
  git add specs/auth/FEAT-01-login/FEAT-01-login.md
@@ -225,7 +226,7 @@ services:
225
226
  specs_dir: "loyalty-service/specs/bdd"
226
227
  ```
227
228
 
228
- **Bước 3 — Viết PRD bình thường với `@trace.domain: loyalty`.**
229
+ **Bước 3 — Viết PRD bình thường với `Domain: loyalty` (bảng Metadata).**
229
230
 
230
231
  > **Lưu ý:** Nếu dev team chưa cập nhật services config → `/review-context` P0 check sẽ cảnh báo domain không match.
231
232
 
@@ -281,7 +282,7 @@ specs/
281
282
 
282
283
  ```bash
283
284
  # Xem nhanh tất cả PRDs và status:
284
- grep -r "@trace.status" specs/ --include="*.md"
285
+ grep -rn "\*\*Status\*\*" specs/ --include="*.md"
285
286
  ```
286
287
 
287
288
  ---
@@ -290,10 +291,11 @@ grep -r "@trace.status" specs/ --include="*.md"
290
291
 
291
292
  **Checklist trước khi thông báo:**
292
293
  ```yaml
293
- @trace.id: FEAT-01 ✅
294
- @trace.domain: auth khớp với services keys của dev team
295
- @trace.status: approvedđã approved
296
- @trace.version: 1.0 version number
294
+ # Bảng Metadata PRD:
295
+ # | **Ticket** | FEAT-01 | (đúng format)
296
+ # | **Domain** | auth | khớp services keys của dev team
297
+ # | **Status** | approved | đã approved
298
+ # | **Version** | 1.0 | ✅ có version number
297
299
  ```
298
300
 
299
301
  ```
@@ -22,7 +22,7 @@ Mỗi artifact mang `@trace.*` metadata liên kết về artifact trước nó:
22
22
 
23
23
  ```
24
24
  product-definition.md
25
- └─► PRD.md (@trace.domain, @trace.status; Service/Module trong metadata)
25
+ └─► PRD.md (Domain, Status, Service/Module — đều trong bảng Metadata)
26
26
  └─► specs/{domain}/{prd-slug}/bdd/{web|app|system}/{UC-ID}.feature (@trace.prd_version, @trace.module)
27
27
  └─► specs/{domain}/{prd-slug}/tech-docs/{UC-ID}-tech-design*.md (@trace.bdd_version)
28
28
  └─► src/ code — service submodule (@trace.implements)
@@ -34,8 +34,8 @@ product-definition.md
34
34
 
35
35
  | Field | Vị trí | Ý nghĩa |
36
36
  |-------|--------|---------|
37
- | `@trace.domain` | PRD frontmatter | Domain của feature (auth, payment, …) — route vào đúng service submodule |
38
- | `@trace.status` | PRD frontmatter | `draft` / `approved` — dev team chỉ code khi `approved` |
37
+ | `Domain` | bảng Metadata PRD | Domain của feature (auth, payment, …) — route vào đúng service submodule |
38
+ | `Status` | bảng Metadata PRD | `draft` / `approved` — dev team chỉ code khi `approved` |
39
39
  | `@trace.service` / `@trace.module` | BDD / Tech Doc header | Service + module sẽ implement |
40
40
  | `@trace.prd_version` / `@trace.bdd_version` | BDD / code / test | Version của spec mà artifact được sinh từ — base cho drift detection |
41
41
  | `@trace.implements` | Code comment | Scenario mà code này implement: `={UC-ID}-SC{N}` |
@@ -256,7 +256,7 @@ Topology giả định cho mọi ví dụ dưới đây:
256
256
  **① PO — 1 tầng (spec repo)**
257
257
  ```bash
258
258
  cd my-project-specs && git pull
259
- # /generate-prd · /generate-design-spec · /generate-bdd (web/app/system) · set @trace.status: approved
259
+ # /generate-prd · /generate-design-spec · /generate-bdd (web/app/system) · set Status: approved (bảng Metadata)
260
260
  git add specs/payment/checkout/{TICKET-ID}-checkout.md \
261
261
  specs/payment/checkout/design-spec/FT-042-checkout-design.md \
262
262
  specs/payment/checkout/bdd/system/FT-042-UC1-checkout-system.feature \
@@ -400,7 +400,7 @@ git pull
400
400
  /refine-prd {prd-file} # review 4 lens: QA/DEV/SA/PO
401
401
  /review-context {prd-file} # chất lượng + P0 check
402
402
  /review-context --fix {prd-file} # auto-fix vấn đề nhỏ
403
- # → update @trace.status: approved khi PRD sẵn sàng
403
+ # → update Status: approved (bảng Metadata) khi PRD sẵn sàng
404
404
  /generate-design-spec {prd-file} # FE/App
405
405
  /generate-bdd {prd-file} # outside-in: web → app → system (System BDD tổng hợp từ web+app)
406
406
 
@@ -417,7 +417,7 @@ cd my-project-web
417
417
  git add my-project-specs && git commit -m "chore: sync specs" && git push
418
418
 
419
419
  /review-context my-project-specs/specs/{domain}/{prd-slug}/{TICKET-ID}-{prd-slug}.md
420
- # → P0: @trace.domain khớp services config? @trace.status: approved?
420
+ # → P0: Domain (bảng Metadata) khớp services config? Status: approved?
421
421
  # Đọc Web BDD do PO generate (KHÔNG tự generate BDD):
422
422
  # my-project-specs/specs/{domain}/{prd-slug}/bdd/web/{TICKET-ID}-UC*.feature
423
423
 
@@ -63,7 +63,7 @@ Có **4 lệnh review** cho **4 loại artifact khác nhau**. Đây là điểm
63
63
  | Tôi muốn review… | Cách dùng (ví dụ) | Nó kiểm cái gì | Ai chạy |
64
64
  |---|---|---|---|
65
65
  | **PRD — nội dung & độ đầy đủ** | `/refine-prd specs/auth/login/{TICKET-ID}-login.md` | 4 lens QA·DEV·SA·PO: AC có test được? edge case? scope rõ? | PO |
66
- | **PRD — chất lượng trước khi approve** | `/review-context specs/auth/login/{TICKET-ID}-login.md` | P-checks: banned term, mơ hồ, mâu thuẫn PRD khác, thiếu section, routing `@trace.domain` | PO |
66
+ | **PRD — chất lượng trước khi approve** | `/review-context specs/auth/login/{TICKET-ID}-login.md` | P-checks: banned term, mơ hồ, mâu thuẫn PRD khác, thiếu section, routing theo `Domain` (bảng Metadata) | PO |
67
67
  | **BDD `.feature`** | `/review-context specs/auth/login/bdd/system/FEAT-01-UC1-login.feature` | B-checks: mỗi AC/BR → có ≥1 scenario? Gherkin R1–R10, compliance C1–C5 | SA/Dev |
68
68
  | **Tech design** | `/review-tech-docs specs/auth/login/tech-docs/FEAT-01-UC1-tech-design.md` | T-checks: đúng layer/architecture, entity, trace BDD, cross-team API sign-off | Dev/SA |
69
69
  | **Code** | `/review-code FEAT-01-UC1` | 4 lens: Security · Performance · Architecture · Test coverage | Dev |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edupia-tutor/spec-driven-docs",
3
- "version": "0.14.5",
3
+ "version": "0.14.7",
4
4
  "description": "AI-First Spec-Driven Development workflow framework for Claude Code",
5
5
  "bin": {
6
6
  "spec-driven-docs": "./bin/index.js"
@@ -572,7 +572,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
572
572
  | /define-product | `/generate-prd {product-definition-file}` |
573
573
  | /generate-prd | `/refine-prd {prd-file}` rồi `/review-context {prd-file}` |
574
574
  | /refine-prd | Mở Review Board → cập nhật PRD → `/review-context {prd-file}` |
575
- | /review-context (PRD) | FE/App: `/generate-design-spec {prd-file}` (rồi BDD sau khi sign-off); BE: `/generate-bdd {prd-file}` trực tiếp; sửa PRD nếu NEEDS_FIX |
575
+ | /review-context (PRD) | Khi 0 critical → PO đặt `Status: approved`, rồi FE/App: `/generate-design-spec {prd-file}` ( design sign-off → BDD); BE: `/generate-bdd {prd-file}`. Còn critical/NEEDS_FIX sửa PRD (giữ draft) |
576
576
  | /generate-design-spec | Designer review → xác nhận link Figma → PO + Designer sign-off → `/generate-bdd {prd-file}` |
577
577
  | /generate-bdd | `/review-context {feature-file}` để kiểm tra độ phủ |
578
578
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` nếu APPROVED; sinh lại nếu NEEDS_FIX |
@@ -730,7 +730,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
730
730
  | /define-product | `/generate-prd {product-definition-file}` |
731
731
  | /generate-prd | `/refine-prd {prd-file}` rồi `/review-context {prd-file}` |
732
732
  | /refine-prd | Mở Review Board → cập nhật PRD → `/review-context {prd-file}` |
733
- | /review-context (PRD) | FE/App: `/generate-design-spec {prd-file}` (rồi BDD sau khi sign-off); BE: `/generate-bdd {prd-file}` trực tiếp; sửa PRD nếu NEEDS_FIX |
733
+ | /review-context (PRD) | Khi 0 critical → PO đặt `Status: approved`, rồi FE/App: `/generate-design-spec {prd-file}` ( design sign-off → BDD); BE: `/generate-bdd {prd-file}`. Còn critical/NEEDS_FIX sửa PRD (giữ draft) |
734
734
  | /generate-design-spec | Designer review → xác nhận link Figma → PO + Designer sign-off → `/generate-bdd {prd-file}` |
735
735
  | /generate-bdd | `/review-context {feature-file}` để kiểm tra độ phủ |
736
736
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` nếu APPROVED; sinh lại nếu NEEDS_FIX |
@@ -503,7 +503,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
503
503
  | /define-product | `/generate-prd {product-definition-file}` |
504
504
  | /generate-prd | `/refine-prd {prd-file}` rồi `/review-context {prd-file}` |
505
505
  | /refine-prd | Mở Review Board → cập nhật PRD → `/review-context {prd-file}` |
506
- | /review-context (PRD) | FE/App: `/generate-design-spec {prd-file}` (rồi BDD sau khi sign-off); BE: `/generate-bdd {prd-file}` trực tiếp; sửa PRD nếu NEEDS_FIX |
506
+ | /review-context (PRD) | Khi 0 critical → PO đặt `Status: approved`, rồi FE/App: `/generate-design-spec {prd-file}` ( design sign-off → BDD); BE: `/generate-bdd {prd-file}`. Còn critical/NEEDS_FIX sửa PRD (giữ draft) |
507
507
  | /generate-design-spec | Designer review → xác nhận link Figma → PO + Designer sign-off → `/generate-bdd {prd-file}` |
508
508
  | /generate-bdd | `/review-context {feature-file}` để kiểm tra độ phủ |
509
509
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` nếu APPROVED; sinh lại nếu NEEDS_FIX |
@@ -687,7 +687,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
687
687
  | /define-product | `/generate-prd {product-definition-file}` |
688
688
  | /generate-prd | `/refine-prd {prd-file}` rồi `/review-context {prd-file}` |
689
689
  | /refine-prd | Mở Review Board → cập nhật PRD → `/review-context {prd-file}` |
690
- | /review-context (PRD) | FE/App: `/generate-design-spec {prd-file}` (rồi BDD sau khi sign-off); BE: `/generate-bdd {prd-file}` trực tiếp; sửa PRD nếu NEEDS_FIX |
690
+ | /review-context (PRD) | Khi 0 critical → PO đặt `Status: approved`, rồi FE/App: `/generate-design-spec {prd-file}` ( design sign-off → BDD); BE: `/generate-bdd {prd-file}`. Còn critical/NEEDS_FIX sửa PRD (giữ draft) |
691
691
  | /generate-design-spec | Designer review → xác nhận link Figma → PO + Designer sign-off → `/generate-bdd {prd-file}` |
692
692
  | /generate-bdd | `/review-context {feature-file}` để kiểm tra độ phủ |
693
693
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` nếu APPROVED; sinh lại nếu NEEDS_FIX |
@@ -828,7 +828,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
828
828
  | /define-product | `/generate-prd {product-definition-file}` |
829
829
  | /generate-prd | `/refine-prd {prd-file}` rồi `/review-context {prd-file}` |
830
830
  | /refine-prd | Mở Review Board → cập nhật PRD → `/review-context {prd-file}` |
831
- | /review-context (PRD) | FE/App: `/generate-design-spec {prd-file}` (rồi BDD sau khi sign-off); BE: `/generate-bdd {prd-file}` trực tiếp; sửa PRD nếu NEEDS_FIX |
831
+ | /review-context (PRD) | Khi 0 critical → PO đặt `Status: approved`, rồi FE/App: `/generate-design-spec {prd-file}` ( design sign-off → BDD); BE: `/generate-bdd {prd-file}`. Còn critical/NEEDS_FIX sửa PRD (giữ draft) |
832
832
  | /generate-design-spec | Designer review → xác nhận link Figma → PO + Designer sign-off → `/generate-bdd {prd-file}` |
833
833
  | /generate-bdd | `/review-context {feature-file}` để kiểm tra độ phủ |
834
834
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` nếu APPROVED; sinh lại nếu NEEDS_FIX |
@@ -539,7 +539,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
539
539
  | /define-product | `/generate-prd {product-definition-file}` |
540
540
  | /generate-prd | `/refine-prd {prd-file}` rồi `/review-context {prd-file}` |
541
541
  | /refine-prd | Mở Review Board → cập nhật PRD → `/review-context {prd-file}` |
542
- | /review-context (PRD) | FE/App: `/generate-design-spec {prd-file}` (rồi BDD sau khi sign-off); BE: `/generate-bdd {prd-file}` trực tiếp; sửa PRD nếu NEEDS_FIX |
542
+ | /review-context (PRD) | Khi 0 critical → PO đặt `Status: approved`, rồi FE/App: `/generate-design-spec {prd-file}` ( design sign-off → BDD); BE: `/generate-bdd {prd-file}`. Còn critical/NEEDS_FIX sửa PRD (giữ draft) |
543
543
  | /generate-design-spec | Designer review → xác nhận link Figma → PO + Designer sign-off → `/generate-bdd {prd-file}` |
544
544
  | /generate-bdd | `/review-context {feature-file}` để kiểm tra độ phủ |
545
545
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` nếu APPROVED; sinh lại nếu NEEDS_FIX |
@@ -424,7 +424,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
424
424
  | /define-product | `/generate-prd {product-definition-file}` |
425
425
  | /generate-prd | `/refine-prd {prd-file}` rồi `/review-context {prd-file}` |
426
426
  | /refine-prd | Mở Review Board → cập nhật PRD → `/review-context {prd-file}` |
427
- | /review-context (PRD) | FE/App: `/generate-design-spec {prd-file}` (rồi BDD sau khi sign-off); BE: `/generate-bdd {prd-file}` trực tiếp; sửa PRD nếu NEEDS_FIX |
427
+ | /review-context (PRD) | Khi 0 critical → PO đặt `Status: approved`, rồi FE/App: `/generate-design-spec {prd-file}` ( design sign-off → BDD); BE: `/generate-bdd {prd-file}`. Còn critical/NEEDS_FIX sửa PRD (giữ draft) |
428
428
  | /generate-design-spec | Designer review → xác nhận link Figma → PO + Designer sign-off → `/generate-bdd {prd-file}` |
429
429
  | /generate-bdd | `/review-context {feature-file}` để kiểm tra độ phủ |
430
430
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` nếu APPROVED; sinh lại nếu NEEDS_FIX |
@@ -175,7 +175,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
175
175
  | /define-product | `/generate-prd {product-definition-file}` |
176
176
  | /generate-prd | `/refine-prd {prd-file}` rồi `/review-context {prd-file}` |
177
177
  | /refine-prd | Mở Review Board → cập nhật PRD → `/review-context {prd-file}` |
178
- | /review-context (PRD) | FE/App: `/generate-design-spec {prd-file}` (rồi BDD sau khi sign-off); BE: `/generate-bdd {prd-file}` trực tiếp; sửa PRD nếu NEEDS_FIX |
178
+ | /review-context (PRD) | Khi 0 critical → PO đặt `Status: approved`, rồi FE/App: `/generate-design-spec {prd-file}` ( design sign-off → BDD); BE: `/generate-bdd {prd-file}`. Còn critical/NEEDS_FIX sửa PRD (giữ draft) |
179
179
  | /generate-design-spec | Designer review → xác nhận link Figma → PO + Designer sign-off → `/generate-bdd {prd-file}` |
180
180
  | /generate-bdd | `/review-context {feature-file}` để kiểm tra độ phủ |
181
181
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` nếu APPROVED; sinh lại nếu NEEDS_FIX |
@@ -244,7 +244,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
244
244
  | /define-product | `/generate-prd {product-definition-file}` |
245
245
  | /generate-prd | `/refine-prd {prd-file}` rồi `/review-context {prd-file}` |
246
246
  | /refine-prd | Mở Review Board → cập nhật PRD → `/review-context {prd-file}` |
247
- | /review-context (PRD) | FE/App: `/generate-design-spec {prd-file}` (rồi BDD sau khi sign-off); BE: `/generate-bdd {prd-file}` trực tiếp; sửa PRD nếu NEEDS_FIX |
247
+ | /review-context (PRD) | Khi 0 critical → PO đặt `Status: approved`, rồi FE/App: `/generate-design-spec {prd-file}` ( design sign-off → BDD); BE: `/generate-bdd {prd-file}`. Còn critical/NEEDS_FIX sửa PRD (giữ draft) |
248
248
  | /generate-design-spec | Designer review → xác nhận link Figma → PO + Designer sign-off → `/generate-bdd {prd-file}` |
249
249
  | /generate-bdd | `/review-context {feature-file}` để kiểm tra độ phủ |
250
250
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` nếu APPROVED; sinh lại nếu NEEDS_FIX |
@@ -421,7 +421,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
421
421
  | /define-product | `/generate-prd {product-definition-file}` |
422
422
  | /generate-prd | `/refine-prd {prd-file}` rồi `/review-context {prd-file}` |
423
423
  | /refine-prd | Mở Review Board → cập nhật PRD → `/review-context {prd-file}` |
424
- | /review-context (PRD) | FE/App: `/generate-design-spec {prd-file}` (rồi BDD sau khi sign-off); BE: `/generate-bdd {prd-file}` trực tiếp; sửa PRD nếu NEEDS_FIX |
424
+ | /review-context (PRD) | Khi 0 critical → PO đặt `Status: approved`, rồi FE/App: `/generate-design-spec {prd-file}` ( design sign-off → BDD); BE: `/generate-bdd {prd-file}`. Còn critical/NEEDS_FIX sửa PRD (giữ draft) |
425
425
  | /generate-design-spec | Designer review → xác nhận link Figma → PO + Designer sign-off → `/generate-bdd {prd-file}` |
426
426
  | /generate-bdd | `/review-context {feature-file}` để kiểm tra độ phủ |
427
427
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` nếu APPROVED; sinh lại nếu NEEDS_FIX |
@@ -287,7 +287,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
287
287
  | /define-product | `/generate-prd {product-definition-file}` |
288
288
  | /generate-prd | `/refine-prd {prd-file}` rồi `/review-context {prd-file}` |
289
289
  | /refine-prd | Mở Review Board → cập nhật PRD → `/review-context {prd-file}` |
290
- | /review-context (PRD) | FE/App: `/generate-design-spec {prd-file}` (rồi BDD sau khi sign-off); BE: `/generate-bdd {prd-file}` trực tiếp; sửa PRD nếu NEEDS_FIX |
290
+ | /review-context (PRD) | Khi 0 critical → PO đặt `Status: approved`, rồi FE/App: `/generate-design-spec {prd-file}` ( design sign-off → BDD); BE: `/generate-bdd {prd-file}`. Còn critical/NEEDS_FIX sửa PRD (giữ draft) |
291
291
  | /generate-design-spec | Designer review → xác nhận link Figma → PO + Designer sign-off → `/generate-bdd {prd-file}` |
292
292
  | /generate-bdd | `/review-context {feature-file}` để kiểm tra độ phủ |
293
293
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` nếu APPROVED; sinh lại nếu NEEDS_FIX |
@@ -763,7 +763,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
763
763
  | /define-product | `/generate-prd {product-definition-file}` |
764
764
  | /generate-prd | `/refine-prd {prd-file}` rồi `/review-context {prd-file}` |
765
765
  | /refine-prd | Mở Review Board → cập nhật PRD → `/review-context {prd-file}` |
766
- | /review-context (PRD) | FE/App: `/generate-design-spec {prd-file}` (rồi BDD sau khi sign-off); BE: `/generate-bdd {prd-file}` trực tiếp; sửa PRD nếu NEEDS_FIX |
766
+ | /review-context (PRD) | Khi 0 critical → PO đặt `Status: approved`, rồi FE/App: `/generate-design-spec {prd-file}` ( design sign-off → BDD); BE: `/generate-bdd {prd-file}`. Còn critical/NEEDS_FIX sửa PRD (giữ draft) |
767
767
  | /generate-design-spec | Designer review → xác nhận link Figma → PO + Designer sign-off → `/generate-bdd {prd-file}` |
768
768
  | /generate-bdd | `/review-context {feature-file}` để kiểm tra độ phủ |
769
769
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` nếu APPROVED; sinh lại nếu NEEDS_FIX |
@@ -1257,7 +1257,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
1257
1257
  | /define-product | `/generate-prd {product-definition-file}` |
1258
1258
  | /generate-prd | `/refine-prd {prd-file}` rồi `/review-context {prd-file}` |
1259
1259
  | /refine-prd | Mở Review Board → cập nhật PRD → `/review-context {prd-file}` |
1260
- | /review-context (PRD) | FE/App: `/generate-design-spec {prd-file}` (rồi BDD sau khi sign-off); BE: `/generate-bdd {prd-file}` trực tiếp; sửa PRD nếu NEEDS_FIX |
1260
+ | /review-context (PRD) | Khi 0 critical → PO đặt `Status: approved`, rồi FE/App: `/generate-design-spec {prd-file}` ( design sign-off → BDD); BE: `/generate-bdd {prd-file}`. Còn critical/NEEDS_FIX sửa PRD (giữ draft) |
1261
1261
  | /generate-design-spec | Designer review → xác nhận link Figma → PO + Designer sign-off → `/generate-bdd {prd-file}` |
1262
1262
  | /generate-bdd | `/review-context {feature-file}` để kiểm tra độ phủ |
1263
1263
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` nếu APPROVED; sinh lại nếu NEEDS_FIX |
@@ -60,7 +60,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
60
60
  | /define-product | `/generate-prd {product-definition-file}` |
61
61
  | /generate-prd | `/refine-prd {prd-file}` rồi `/review-context {prd-file}` |
62
62
  | /refine-prd | Mở Review Board → cập nhật PRD → `/review-context {prd-file}` |
63
- | /review-context (PRD) | FE/App: `/generate-design-spec {prd-file}` (rồi BDD sau khi sign-off); BE: `/generate-bdd {prd-file}` trực tiếp; sửa PRD nếu NEEDS_FIX |
63
+ | /review-context (PRD) | Khi 0 critical → PO đặt `Status: approved`, rồi FE/App: `/generate-design-spec {prd-file}` ( design sign-off → BDD); BE: `/generate-bdd {prd-file}`. Còn critical/NEEDS_FIX sửa PRD (giữ draft) |
64
64
  | /generate-design-spec | Designer review → xác nhận link Figma → PO + Designer sign-off → `/generate-bdd {prd-file}` |
65
65
  | /generate-bdd | `/review-context {feature-file}` để kiểm tra độ phủ |
66
66
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` nếu APPROVED; sinh lại nếu NEEDS_FIX |
@@ -14,7 +14,7 @@
14
14
  # 3. When a workflow says "→ key.subkey", look up that key
15
15
  # and use the resolved value as the actual path
16
16
  # 4. All paths are RELATIVE to workspace root
17
- # 5. For "{domain}", substitute from spec's @trace.domain
17
+ # 5. For "{domain}", substitute the feature's domain (PRD: row `Domain` in Metadata / folder path; .feature: @trace.domain)
18
18
  # =============================================================
19
19
 
20
20
  project:
@@ -132,7 +132,7 @@ domains:
132
132
  # With spec_source set, only ONE override is needed instead of four separate dir vars.
133
133
  #
134
134
  # services: # domain → service submodule routing
135
- # {{DOMAIN_1}}: # must match @trace.domain in PRD files
135
+ # {{DOMAIN_1}}: # must match the PRD's `Domain` (Metadata row) / folder path segment
136
136
  # path: "{{SERVICE_SUBMODULE_DIR}}" # relative path to service submodule (code + .trace/)
137
137
  # module: "{{STACK_MODULE}}" # e.g., java-spring, nextjs, flutter
138
138
  # # NOTE: with spec_source set, BDD + tech-docs are cross-team and live in the spec repo —