@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,14 +1,14 @@
1
1
  # {TICKET-ID} Product Definition — {Feature Name}
2
2
 
3
3
  <!--
4
- This template is used by the /define-product workflow.
5
- AI Agent fills each section through phased Q&A with PO.
6
- Output is structured input for /generate-prd.
7
-
8
- RULES:
9
- - Each section corresponds to 1 phase in the workflow
10
- - Incomplete sectionkeep placeholder, MUST NOT proceed to next phase
11
- - PO confirmation status is recorded in each section
4
+ Template này được dùng bởi workflow /define-product.
5
+ AI Agent điền từng section qua Q&A theo từng phase với PO.
6
+ Output input cấu trúc cho /generate-prd.
7
+
8
+ QUY TẮC:
9
+ - Mỗi section tương ứng với 1 phase trong workflow
10
+ - Section chưa đủ giữ placeholder, KHÔNG được sang phase tiếp theo
11
+ - Trạng thái xác nhận của PO được ghi trong mỗi section
12
12
  -->
13
13
 
14
14
  ---
@@ -18,151 +18,164 @@
18
18
  | Field | Value |
19
19
  |--------------------|--------------------------------|
20
20
  | **Ticket** | {TICKET-ID} |
21
- | **Feature** | {Feature name} |
21
+ | **Feature** | {tên tính năng} |
22
22
  | **Domain** | {domain} |
23
- | **PO** | {PO name} |
23
+ | **PO** | {tên PO} |
24
24
  | **Created** | {YYYY-MM-DD} |
25
25
  | **Status** | in-progress / completed |
26
- | **Completed Phase**| {last completed phase number} |
26
+ | **Completed Phase**| {số phase hoàn thành gần nhất} |
27
27
 
28
28
  ---
29
29
 
30
- ## Phase 0: Knowledge Sync
30
+ ## Phase 0: Đồng bộ tri thức (Knowledge Sync)
31
31
 
32
- > AI syncs system knowledge. No PO input needed.
32
+ > ⚙️ AI tự thu thập đây là **bối cảnh hệ thống**, KHÔNG phải yêu cầu nghiệp vụ do PO viết. Mục đích: chuẩn hoá thuật ngữ và nhận biết phần đã có để tái sử dụng. Không cần input từ PO.
33
33
 
34
- ### Related Entities
35
- - {Entity 1} — {brief description}
36
- - {Entity 2} — {brief description}
34
+ ### Khái niệm / dữ liệu nghiệp vụ liên quan
35
+ - {Khái niệm 1} — { tả ngắn}
36
+ - {Khái niệm 2} — { tả ngắn}
37
37
 
38
- ### Related Modules
39
- - {Module 1}
40
- - {Module 2}
38
+ ### Phần hệ thống / feature liên quan
39
+ - {Phần 1}
40
+ - {Phần 2}
41
41
 
42
- ### Existing Rules / Logic
43
- - {Rule/logic from existing PRDs or domain knowledge}
42
+ ### Rule / Logic có sẵn
43
+ - {Rule/logic từ các PRD sẵn hoặc domain knowledge}
44
44
 
45
- ### Terminology Normalization
46
- | Term in PO input | Canonical term (business-dictionary) |
47
- |-------------------|--------------------------------------|
48
- | {original term} | {canonical term} |
45
+ ### Chuẩn hoá thuật ngữ
46
+ | Thuật ngữ trong input PO | Thuật ngữ chuẩn (business-dictionary) |
47
+ |--------------------------|---------------------------------------|
48
+ | {thuật ngữ gốc} | {thuật ngữ chuẩn} |
49
49
 
50
50
  ---
51
51
 
52
- ## Phase 1: Feature Definition
52
+ ## Phase 1: Định nghĩa tính năng (Feature Definition)
53
53
 
54
- > ✅ PO Confirmed: {Yes/No}
54
+ > ✅ PO xác nhận: {Có/Không}
55
55
 
56
- ### Context
57
- {Business context leading to this feature}
56
+ ### Bối cảnh (Context)
57
+ {Bối cảnh nghiệp vụ dẫn đến tính năng này}
58
58
 
59
- ### Problem Statement
60
- {Problem to solve}
59
+ ### Tuyên bố vấn đề (Problem Statement)
60
+ {Vấn đề cần giải quyết}
61
61
 
62
- ### Goal
63
- {Feature objective}
62
+ ### Mục tiêu (Goal)
63
+ {Mục tiêu của tính năng}
64
64
 
65
- ### Actors
66
- | Actor | Role | Primary/Secondary |
67
- |----------|--------------------|-------------------|
68
- | {Actor} | {Role description} | Primary |
65
+ ### Actor
66
+ | Actor | Vai trò | Chính/Phụ |
67
+ |----------|--------------------|-----------|
68
+ | {Actor} | { tả vai trò} | Primary |
69
69
 
70
- ### Scope (In Scope)
71
- - {Function 1}
72
- - {Function 2}
70
+ ### Phạm vi (In Scope)
71
+ - {Chức năng 1}
72
+ - {Chức năng 2}
73
+
74
+ ### Ngoài phạm vi (Out of Scope)
75
+ - {Hạng mục KHÔNG làm trong ticket này — kèm lý do / để dành pha sau}
73
76
 
74
77
  ### User Story
75
- - **As a** {User role}
76
- - **I want to** {User goal}
77
- - **So that** {Business value}
78
+ - **Là một (As a)** {vai trò}
79
+ - **Tôi muốn (I want to)** {mục tiêu}
80
+ - **Để (So that)** {giá trị nghiệp vụ}
81
+
82
+ ### Phụ thuộc liên service *(mức nghiệp vụ)*
83
+
84
+ > Feature này cần **dữ liệu/năng lực** gì từ feature/team khác — KHÔNG mô tả API/event/callback (đó là kỹ thuật, thuộc Tech-docs).
85
+
86
+ - {Cần {dữ liệu/năng lực} từ {feature/team} — vì {lý do nghiệp vụ}} — hoặc "Không có"
78
87
 
79
88
  ---
80
89
 
81
- ## Phase 2: User Flow Definition
90
+ ## Phase 2: Định nghĩa User Flow
91
+
92
+ > ✅ PO xác nhận: {Có/Không}
82
93
 
83
- > PO Confirmed: {Yes/No}
94
+ ### Điểm vào (Entry Point)
95
+ {Người dùng bắt đầu tương tác với tính năng như thế nào}
84
96
 
85
- ### Entry Point
86
- {How user starts interacting with the feature}
97
+ ### Các bước của Flow
98
+ | Bước | Hành động | Trạng thái/Kết quả nghiệp vụ | Ghi chú |
99
+ |------|-----------------|------------------------------|------------|
100
+ | 1 | {hành động} | {trạng thái/kết quả nghiệp vụ} | {ghi chú} |
101
+ | 2 | {hành động} | {trạng thái/kết quả nghiệp vụ} | {ghi chú} |
87
102
 
88
- ### Flow Steps
89
- | Step | Action | Screen/State | Notes |
90
- |------|-----------------|------------------|-------------|
91
- | 1 | {User action} | {Screen/State} | {Notes} |
92
- | 2 | {User action} | {Screen/State} | {Notes} |
103
+ ### Điểm ra (Exit Point)
104
+ {Kết quả cuối khi flow hoàn thành}
93
105
 
94
- ### Exit Point
95
- {Final outcome when flow completes}
106
+ ### Edge Cases / Luồng lỗi & ngoại lệ
107
+ > Các kịch bản thất bại nghiệp vụ ngoài happy path — input thiếu, điều kiện không thoả, thao tác đồng thời, phụ thuộc không sẵn sàng.
108
+ - {Kịch bản: khi {điều kiện bất thường} → {kết quả nghiệp vụ kỳ vọng}}
96
109
 
97
110
  ---
98
111
 
99
- ## Phase 3: Clarification Log
112
+ ## Phase 3: Nhật ký làm rõ (Clarification Log)
100
113
 
101
- > Records all questions and answers across rounds.
114
+ > Ghi lại mọi câu hỏi câu trả lời qua các vòng.
102
115
 
103
- ### Round {N}
104
- | # | Category | Question | PO Answer |
116
+ ### Vòng {N}
117
+ | # | Nhóm | Câu hỏi | PO trả lời |
105
118
  |---|----------|------------|------------|
106
- | 1 | Context | {question} | {answer} |
107
- | 2 | Flow | {question} | {answer} |
108
- | 3 | Logic | {question} | {answer} |
119
+ | 1 | Context | {câu hỏi} | {trả lời} |
120
+ | 2 | Flow | {câu hỏi} | {trả lời} |
121
+ | 3 | Logic | {câu hỏi} | {trả lời} |
109
122
 
110
- ### Unresolved Items
111
- - {Unresolved itemif any remain, MUST NOT proceed to Phase 4}
123
+ ### Mục chưa giải quyết
124
+ - {Mục chưa giải quyết nếu còn tồn đọng, KHÔNG được sang Phase 4}
112
125
 
113
126
  ---
114
127
 
115
128
  ## Phase 4: Business Rules
116
129
 
117
- > ✅ PO Confirmed: {Yes/No}
130
+ > ✅ PO xác nhận: {Có/Không}
118
131
 
119
- | Rule ID | Action/Trigger | Rule | Condition |
120
- |---------|---------------------|---------------------|----------------------|
121
- | BR-1 | {Action from flow} | {Business rule} | {Applicable condition} |
122
- | BR-2 | {Action from flow} | {Business rule} | {Applicable condition} |
132
+ | Rule ID | Hành động/Trigger | Quy tắc | Điều kiện |
133
+ |---------|---------------------|---------------------|------------------------|
134
+ | BR-1 | {hành động từ flow} | {business rule} | {điều kiện áp dụng} |
135
+ | BR-2 | {hành động từ flow} | {business rule} | {điều kiện áp dụng} |
123
136
 
124
137
  ---
125
138
 
126
139
  ## Phase 5: Business Logic
127
140
 
128
- > ✅ PO Confirmed: {Yes/No}
141
+ > ✅ PO xác nhận: {Có/Không}
129
142
 
130
- | Rule ID | System Behavior | Data State Change | UI Behavior | Error Handling |
131
- |---------|------------------------------------------|----------------------|----------------------|-----------------------|
132
- | BR-1 | {How system processes when rule triggers} | {Data changes} | {enable/disable/...} | {Error message/action}|
133
- | BR-2 | {How system processes when rule triggers} | {Data changes} | {enable/disable/...} | {Error message/action}|
143
+ | Rule ID | Logic nghiệp vụ (rẽ nhánh / công thức / điều kiện) | Thông báo/kết quả nghiệp vụ khi lỗi |
144
+ |---------|---------------------------------------------------|-------------------------------------|
145
+ | BR-1 | {logic nghiệp vụ khi rule kích hoạt} | {vd: báo "Số không đủ"} |
146
+ | BR-2 | {logic nghiệp vụ khi rule kích hoạt} | {} |
134
147
 
135
148
  ---
136
149
 
137
150
  ## Phase 6: Acceptance Criteria
138
151
 
139
- > ✅ PO Confirmed: {Yes/No}
152
+ > ✅ PO xác nhận: {Có/Không}
140
153
 
141
- | AC ID | Description | Expected Behavior | Derived from |
154
+ | AC ID | Mô tả | Hành vi kỳ vọng | Bắt nguồn từ |
142
155
  |-------|------------------------|---------------------------|--------------|
143
- | AC-1 | {Criterion description} | {Expected behavior} | BR-{N} |
144
- | AC-2 | {Criterion description} | {Expected behavior} | BR-{N} |
156
+ | AC-1 | { tả tiêu chí} | {hành vi kỳ vọng} | BR-{N} |
157
+ | AC-2 | { tả tiêu chí} | {hành vi kỳ vọng} | BR-{N} |
145
158
 
146
159
  ---
147
160
 
148
- ## Phase 7: Validation Report
161
+ ## Phase 7: Báo cáo kiểm chứng (Validation Report)
149
162
 
150
- ### Coverage Matrix
151
- | Flow Action | Has Rule? | Has Logic? | Has AC? | Status |
152
- |-------------|-----------|------------|---------|--------|
153
- | {Action 1} | ✅/❌ | ✅/❌ | ✅/❌ | OK/GAP |
163
+ ### Ma trận độ phủ (Coverage Matrix)
164
+ | Hành động Flow | Rule? | Logic? | AC? | Status |
165
+ |----------------|----------|-----------|--------|--------|
166
+ | {Hành động 1} | ✅/❌ | ✅/❌ | ✅/❌ | OK/GAP |
154
167
 
155
- ### Conflicts Detected
156
- - {Conflict descriptionor "None"}
168
+ ### Xung đột phát hiện
169
+ - { tả xung đột hoặc "None"}
157
170
 
158
- ### Missing Items
159
- - {Missing rule/AC/logic — or "None"}
171
+ ### Mục còn thiếu
172
+ - {Rule/AC/logic còn thiếu hoặc "None"}
160
173
 
161
174
  ---
162
175
 
163
176
  <!--
164
177
  NEXT STEPS:
165
- When Product Definition is complete (Status: completed), run:
178
+ Khi Product Definition hoàn tất (Status: completed), chạy:
166
179
  /generate-prd {path-to-this-file} --jira {TICKET-ID}
167
- to generate a PRD from this Product Definition.
180
+ để sinh PRD từ Product Definition này.
168
181
  -->
@@ -25,7 +25,7 @@ project:
25
25
  # All paths are relative to workspace root.
26
26
  paths:
27
27
  # Feature-Package Layout:
28
- # specs/{domain}/{prd-slug}/prd.md — PRD document
28
+ # specs/{domain}/{prd-slug}/{TICKET-ID}-{prd-slug}.md — PRD document
29
29
  # specs/{domain}/{prd-slug}/bdd/ — BDD .feature files
30
30
  # specs/{domain}/{prd-slug}/tech-docs/ — Technical design docs
31
31
  # specs/{domain}/{prd-slug}/design-spec/ — Design specs (FE/App only)
@@ -39,7 +39,7 @@ paths:
39
39
  bdd_writing_guide: "specs/templates/bdd-writing-guide.md"
40
40
  trace_report: "specs/.trace/trace-report.md"
41
41
 
42
- # PRD template (PRDs are now at specs/{domain}/{prd-slug}/prd.md)
42
+ # PRD template (PRDs are at specs/{domain}/{prd-slug}/{TICKET-ID}-{prd-slug}.md)
43
43
  prd_template: "specs/templates/prd.template.md"
44
44
  refinement_dir: ".agent/review"
45
45
 
@@ -33,7 +33,7 @@ Discovery → PRD → BDD Spec → Tech Design → Code → Dev Self-Check
33
33
  | Phase | Ai | Lệnh chính | Output |
34
34
  |-------|-----|-----------|--------|
35
35
  | Discovery | PO + AI | `/define-product` | `specs/product-definition/{slug}.md` |
36
- | PRD | AI → SA/PO | `/generate-prd`, `/refine-prd`, `/review-context` | `specs/{domain}/{prd-slug}/prd.md` |
36
+ | PRD | AI → SA/PO | `/generate-prd`, `/refine-prd`, `/review-context` | `specs/{domain}/{prd-slug}/{TICKET-ID}-{prd-slug}.md` |
37
37
  | Design Spec *(FE/App)* | AI → Designer/PO | `/generate-design-spec` | `specs/{domain}/{prd-slug}/design-spec/...` |
38
38
  | BDD Spec | AI → SA/Dev | `/generate-bdd`, `/review-context` | `specs/{domain}/{prd-slug}/bdd/{UC-ID}.feature` |
39
39
  | Tech Design | AI → SA/Lead | `/generate-tech-docs`, `/review-tech-docs` | `tech-docs/{domain}/{UC-ID}-tech-design.md` |
@@ -42,16 +42,16 @@ Discovery → PRD → BDD → Tech Design → Code → Dev self-check:
42
42
 
43
43
  # PHASE 2 — PRD
44
44
  /generate-prd specs/product-definition/{slug}.md
45
- → specs/{domain}/{prd-slug}/prd.md
46
- /refine-prd specs/{domain}/{prd-slug}/prd.md # AI suggestions → Review Board
47
- /refine-prd --resume specs/{domain}/{prd-slug}/prd.md # apply + bump version
48
- /review-context specs/{domain}/{prd-slug}/prd.md # quality gate (P1–P4)
49
- /review-context --resume specs/{domain}/{prd-slug}/prd.md
45
+ → specs/{domain}/{prd-slug}/{TICKET-ID}-{prd-slug}.md
46
+ /refine-prd specs/{domain}/{prd-slug}/{TICKET-ID}-{prd-slug}.md # AI suggestions → Review Board
47
+ /refine-prd --resume specs/{domain}/{prd-slug}/{TICKET-ID}-{prd-slug}.md # apply + bump version
48
+ /review-context specs/{domain}/{prd-slug}/{TICKET-ID}-{prd-slug}.md # quality gate (P1–P4)
49
+ /review-context --resume specs/{domain}/{prd-slug}/{TICKET-ID}-{prd-slug}.md
50
50
  → ✅ APPROVED → tiếp Phase 3
51
51
 
52
52
  # PHASE 3 — SPEC & DESIGN
53
- # (FE/App only) /generate-design-spec specs/{domain}/{prd-slug}/prd.md → designer + PO sign-off
54
- /generate-bdd specs/{domain}/{prd-slug}/prd.md
53
+ # (FE/App only) /generate-design-spec specs/{domain}/{prd-slug}/{TICKET-ID}-{prd-slug}.md → designer + PO sign-off
54
+ /generate-bdd specs/{domain}/{prd-slug}/{TICKET-ID}-{prd-slug}.md
55
55
  → specs/{domain}/{prd-slug}/bdd/{UC-ID}.feature
56
56
  /review-context specs/{domain}/{prd-slug}/bdd/{UC-ID}.feature
57
57
  /review-context --resume specs/{domain}/{prd-slug}/bdd/{UC-ID}.feature # apply + bump bdd_version
@@ -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/prd.md ← @trace.domain: auth, @trace.status: approved
73
+ specs/auth/login/{TICKET-ID}-login.md ← @trace.domain: auth, @trace.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
 
@@ -20,7 +20,7 @@
20
20
  1. git submodule update --remote my-project-specs
21
21
  (lấy PRD + BDD mới nhất từ PO)
22
22
 
23
- 2. /review-context my-project-specs/specs/payment/checkout/prd.md
23
+ 2. /review-context my-project-specs/specs/payment/checkout/{TICKET-ID}-checkout.md
24
24
  → Kiểm tra @trace.status = approved (không code khi còn draft)
25
25
  → Đọc kỹ AC, UC, BR
26
26
 
@@ -109,7 +109,7 @@ PO notify: "FT-042 updated — BR7 thay đổi giới hạn từ 5tr → 10tr"
109
109
 
110
110
 
111
111
  Dev chạy:
112
- /review-context specs/payment/checkout/prd.md
112
+ /review-context specs/payment/checkout/{TICKET-ID}-checkout.md
113
113
  → Xem diff từ v1.0 sang v1.1 (agent highlight thay đổi)
114
114
 
115
115
 
@@ -185,7 +185,7 @@ Service : BE
185
185
  Severity : Major
186
186
 
187
187
  Spec context:
188
- PRD : specs/auth/login/prd.md (v1.0)
188
+ PRD : specs/auth/login/{TICKET-ID}-login.md (v1.0)
189
189
  BDD : free-trial-specs/specs/auth/login/bdd/system/FT-001-login.feature
190
190
  → Scenario: "Lock account after 5 failed attempts"
191
191
  Tech Doc : free-trial-specs/specs/auth/login/tech-docs/FT-001-auth-api.md
@@ -212,7 +212,7 @@ Code: ??? → kiểm tra tiếp
212
212
  Chạy:
213
213
  ```
214
214
  /fix-bug "BUG-20260605-003: FT-001-UC2-BR3 — account not locked after 5 failures
215
- PRD: specs/auth/login/prd.md
215
+ PRD: specs/auth/login/{TICKET-ID}-login.md
216
216
  BDD: free-trial-specs/specs/auth/login/bdd/system/FT-001-login.feature"
217
217
  ```
218
218
  Agent sẽ: đọc BDD scenario được chỉ định · tìm code implement scenario đó (theo `@trace.bdd`) · so sánh logic thực tế vs spec · propose fix có giải thích.
@@ -253,7 +253,7 @@ PO thông báo: "FT-042 Design Spec + BDD đã sẵn sàng"
253
253
  git submodule update --remote my-project-specs
254
254
 
255
255
  FE dev đọc:
256
- - my-project-specs/specs/payment/checkout/prd.md (business rules)
256
+ - my-project-specs/specs/payment/checkout/{TICKET-ID}-checkout.md (business rules)
257
257
  - my-project-specs/specs/payment/checkout/design-spec/FT-042-*.md (screens, components)
258
258
  - my-project-specs/specs/payment/checkout/bdd/web/FT-042-UC*.feature (BDD đã gen sẵn)
259
259
 
@@ -34,7 +34,7 @@ Trước khi thông báo dev team bắt đầu, kiểm tra:
34
34
  - [ ] Tất cả BDD files đã được review và không có `MISSING` trong Coverage Matrix
35
35
 
36
36
  **Git:**
37
- - [ ] Đã commit và push toàn bộ feature-package (`specs/{domain}/{prd-slug}/` — gồm `prd.md`, `design-spec/`, `bdd/`) lên spec repo
37
+ - [ ] Đã commit và push toàn bộ feature-package (`specs/{domain}/{prd-slug}/` — gồm `{TICKET-ID}-{prd-slug}.md`, `design-spec/`, `bdd/`) lên spec repo
38
38
  - [ ] Thông báo dev team domain name và BDD path để họ cập nhật `git submodule update --remote`
39
39
 
40
40
  ---
@@ -20,11 +20,11 @@ Output: `specs/product-definition/FEAT-01-login.md`
20
20
  ```
21
21
  Agent tự động: đọc product definition · expand thành PRD đầy đủ với UC, AC, BR · nhắc nếu bạn viết UI details · kiểm tra terminology với business-dictionary.
22
22
 
23
- Output: `specs/auth/FEAT-01-login/prd.md`
23
+ Output: `specs/auth/FEAT-01-login/FEAT-01-login.md`
24
24
 
25
25
  **Bước 3 — Review nội dung:**
26
26
  ```
27
- /refine-prd specs/auth/FEAT-01-login/prd.md
27
+ /refine-prd specs/auth/FEAT-01-login/FEAT-01-login.md
28
28
  ```
29
29
  Agent fan-out 4 lens (QA/DEV/SA/PO) chạy song song, rồi chạy completeness-critic loop cho đến khi một vòng không tìm ra finding mới, cuối cùng dedup + resolve conflict. Findings đầy đủ trong 1 lần chạy.
30
30
 
@@ -33,12 +33,12 @@ Mở findings file, xem xét từng finding: `accepted` → apply · `modified`
33
33
  > **Finding khó hiểu? Bấm 💬 Giải thích.** Nếu một finding mô tả nặng tính kỹ thuật, dùng nút **💬 Giải thích** trên Review Board (extension Spec Driven Docs Tools). Claude sẽ giải thích lại bằng ngôn ngữ no-tech + đề xuất phương án cụ thể (cover cả edge case) ngay trong terminal, và **chờ bạn confirm trước khi apply** vào PRD — tránh refine nhiều vòng. Prompt sửa được qua setting `reviewBoard.clarifyPrompt` (không cần cài lại extension).
34
34
 
35
35
  ```
36
- /review-context --resume specs/auth/FEAT-01-login/prd.md
36
+ /review-context --resume specs/auth/FEAT-01-login/FEAT-01-login.md
37
37
  ```
38
38
 
39
39
  **Bước 4 — Final check:**
40
40
  ```
41
- /review-context specs/auth/FEAT-01-login/prd.md
41
+ /review-context specs/auth/FEAT-01-login/FEAT-01-login.md
42
42
  ```
43
43
  Kiểm tra: `@trace.status`, `@trace.domain`, completeness.
44
44
 
@@ -51,7 +51,7 @@ Kiểm tra: `@trace.status`, `@trace.domain`, completeness.
51
51
 
52
52
  **Bước 6 — Tạo Design Spec (FE/App):**
53
53
  ```
54
- /generate-design-spec specs/auth/FEAT-01-login/prd.md
54
+ /generate-design-spec specs/auth/FEAT-01-login/FEAT-01-login.md
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
 
@@ -59,7 +59,7 @@ Sau khi Designer review + confirm đủ Figma node-id links → `@trace.status:
59
59
 
60
60
  **Bước 7 — Generate BDD:**
61
61
  ```
62
- /generate-bdd specs/auth/FEAT-01-login/prd.md
62
+ /generate-bdd specs/auth/FEAT-01-login/FEAT-01-login.md
63
63
  ```
64
64
  Agent hỏi: **"Platform? (1) web (2) app (3) system"**
65
65
  - Chọn `web` → `specs/auth/FEAT-01-login/bdd/web/FEAT-01-UC1-login-web.feature`
@@ -111,7 +111,7 @@ git push
111
111
 
112
112
  **Bước 1 — Design Spec:**
113
113
  ```
114
- /generate-design-spec specs/auth/FEAT-01-login/prd.md
114
+ /generate-design-spec specs/auth/FEAT-01-login/FEAT-01-login.md
115
115
  ```
116
116
  Output: `specs/auth/FEAT-01-login/design-spec/FEAT-01-design-spec-web.md`
117
117
 
@@ -119,7 +119,7 @@ Mỗi screen cần Figma link node-id. Screen thiếu → flag ❌ Missing, BLOC
119
119
 
120
120
  **Bước 2 — Generate BDD:**
121
121
  ```
122
- /generate-bdd specs/auth/FEAT-01-login/prd.md
122
+ /generate-bdd specs/auth/FEAT-01-login/FEAT-01-login.md
123
123
  ```
124
124
 
125
125
  | Lần | Platform | Output |
@@ -147,12 +147,12 @@ cat .agent/review/FEAT-01-login-prd-review-context-findings.yaml
147
147
 
148
148
  **Bước 3 — Apply:**
149
149
  ```
150
- /review-context --resume specs/auth/FEAT-01-login/prd.md
150
+ /review-context --resume specs/auth/FEAT-01-login/FEAT-01-login.md
151
151
  ```
152
152
 
153
153
  **Bước 4 — Re-review:**
154
154
  ```
155
- /review-context specs/auth/FEAT-01-login/prd.md
155
+ /review-context specs/auth/FEAT-01-login/FEAT-01-login.md
156
156
  ```
157
157
  Lặp lại cho đến khi `recommendation: APPROVED`.
158
158
 
@@ -167,12 +167,12 @@ Lặp lại cho đến khi `recommendation: APPROVED`.
167
167
 
168
168
  **Bước 2 — Sửa nội dung:**
169
169
  ```
170
- /refine-prd specs/auth/FEAT-01-login/prd.md "Thêm yêu cầu: hỗ trợ đăng nhập bằng OTP"
170
+ /refine-prd specs/auth/FEAT-01-login/FEAT-01-login.md "Thêm yêu cầu: hỗ trợ đăng nhập bằng OTP"
171
171
  ```
172
172
 
173
173
  **Bước 3 — Review lại:**
174
174
  ```
175
- /review-context specs/auth/FEAT-01-login/prd.md
175
+ /review-context specs/auth/FEAT-01-login/FEAT-01-login.md
176
176
  /review-context --resume (nếu cần fix)
177
177
  ```
178
178
 
@@ -183,7 +183,7 @@ Lặp lại cho đến khi `recommendation: APPROVED`.
183
183
  # major bump (2.0) nếu thay đổi cơ bản
184
184
  ```
185
185
  ```bash
186
- git add specs/auth/FEAT-01-login/prd.md
186
+ git add specs/auth/FEAT-01-login/FEAT-01-login.md
187
187
  git commit -m "feat(auth): update FEAT-01 PRD v1.1 — add OTP login AC"
188
188
  git push
189
189
  ```
@@ -239,7 +239,7 @@ services:
239
239
  2. Quyết định PRD nào đúng.
240
240
  3. Sửa file:
241
241
  ```
242
- /review-context --resume specs/auth/FEAT-01-login/prd.md
242
+ /review-context --resume specs/auth/FEAT-01-login/FEAT-01-login.md
243
243
  # với finding P3: modified: "session timeout cập nhật thành 2 giờ theo FEAT-05"
244
244
  ```
245
245
  4. Cả 2 PRD phải nhất quán trước khi dev team generate BDD.
@@ -268,20 +268,20 @@ git push
268
268
  ```
269
269
  specs/
270
270
  ├── auth/
271
- │ ├── FEAT-01-login/prd.md (approved)
272
- │ └── FEAT-08-sso/prd.md (draft)
271
+ │ ├── FEAT-01-login/FEAT-01-login.md (approved)
272
+ │ └── FEAT-08-sso/FEAT-08-sso.md (draft)
273
273
  ├── payment/
274
- │ ├── FEAT-03-checkout/prd.md (approved)
275
- │ └── FEAT-11-refund/prd.md (draft)
274
+ │ ├── FEAT-03-checkout/FEAT-03-checkout.md (approved)
275
+ │ └── FEAT-11-refund/FEAT-11-refund.md (draft)
276
276
  └── loyalty/
277
- └── FEAT-06-points/prd.md (in-review)
277
+ └── FEAT-06-points/FEAT-06-points.md (in-review)
278
278
  ```
279
279
 
280
280
  **Gợi ý:** Hoàn thiện 1 PRD đến `approved` trước khi bắt đầu PRD tiếp theo. Chỉ PRD `approved` mới được dev team sử dụng.
281
281
 
282
282
  ```bash
283
283
  # Xem nhanh tất cả PRDs và status:
284
- grep -r "@trace.status" specs/ --include="prd.md"
284
+ grep -r "@trace.status" specs/ --include="*.md"
285
285
  ```
286
286
 
287
287
  ---
@@ -297,7 +297,7 @@ grep -r "@trace.status" specs/ --include="prd.md"
297
297
  ```
298
298
 
299
299
  ```
300
- /review-context specs/auth/FEAT-01-login/prd.md
300
+ /review-context specs/auth/FEAT-01-login/FEAT-01-login.md
301
301
  → Phải thấy recommendation: APPROVED và 0 critical findings
302
302
  ```
303
303
 
@@ -306,13 +306,13 @@ grep -r "@trace.status" specs/ --include="prd.md"
306
306
  [FEAT-01] PRD Login đã approved — sẵn sàng implement
307
307
 
308
308
  Domain: auth
309
- File: my-project-specs/specs/auth/FEAT-01-login/prd.md
309
+ File: my-project-specs/specs/auth/FEAT-01-login/FEAT-01-login.md
310
310
  Version: 1.0
311
311
  Design Spec (Web): my-project-specs/specs/auth/FEAT-01-login/design-spec/FEAT-01-design-spec-web.md
312
312
 
313
313
  Lệnh để bắt đầu:
314
314
  git submodule update --remote my-project-specs
315
- /review-context my-project-specs/specs/auth/FEAT-01-login/prd.md
315
+ /review-context my-project-specs/specs/auth/FEAT-01-login/FEAT-01-login.md
316
316
  ```
317
317
 
318
318
  ---
@@ -45,7 +45,7 @@ Service : BE / Web / App
45
45
  Severity : Critical / Major / Minor
46
46
 
47
47
  Spec context:
48
- PRD : specs/{domain}/{prd-slug}/prd.md (v{x.x})
48
+ PRD : specs/{domain}/{prd-slug}/{TICKET-ID}-{prd-slug}.md (v{x.x})
49
49
  BDD : {bdd path} → Scenario: "{scenario title}"
50
50
  Tech Doc : {tech_docs path}
51
51
 
@@ -77,7 +77,7 @@ Service : BE
77
77
  Severity : Major
78
78
 
79
79
  Spec context:
80
- PRD : specs/auth/FT-001-login/prd.md (v1.0)
80
+ PRD : specs/auth/FT-001-login/FT-001-login.md (v1.0)
81
81
  BDD : free-trial-specs/specs/auth/FT-001-login/bdd/system/FT-001-login.feature
82
82
  → Scenario: "Lock account after 5 failed attempts"
83
83
  Tech Doc : free-trial-specs/specs/auth/FT-001-login/tech-docs/FT-001-auth-api.md
@@ -18,7 +18,7 @@ Sau khi chạy `/generate-spec-manifest`, tra manifest để lấy paths:
18
18
  ```yaml
19
19
  # spec-manifest.yaml
20
20
  FT-001:
21
- prd: "my-project-specs/specs/auth/FT-001-login/prd.md"
21
+ prd: "my-project-specs/specs/auth/FT-001-login/FT-001-login.md"
22
22
  bdd:
23
23
  be: "my-project-specs/specs/auth/FT-001-login/bdd/system/FT-001-UC1-login-system.feature"
24
24
  web: "my-project-specs/specs/auth/FT-001-login/bdd/web/FT-001-UC1-login-web.feature"
@@ -26,7 +26,7 @@ FT-001:
26
26
  be: "my-project-specs/specs/auth/FT-001-login/tech-docs/FT-001-auth-api.md"
27
27
  ```
28
28
 
29
- **Bước 1: Đọc PRD** tại `my-project-specs/specs/auth/FT-001-login/prd.md`
29
+ **Bước 1: Đọc PRD** tại `my-project-specs/specs/auth/FT-001-login/FT-001-login.md`
30
30
  *(nằm trong spec submodule — shared repo của PO)*
31
31
 
32
32
  ```markdown
@@ -16,7 +16,7 @@ git pull && git submodule update --remote --recursive
16
16
  # 3. Kiểm tra status
17
17
  # FT-042:
18
18
  # status: approved ← ✅ có thể test
19
- # prd: "specs/payment/FT-042-checkout/prd.md"
19
+ # prd: "specs/payment/FT-042-checkout/FT-042-checkout.md"
20
20
  # bdd:
21
21
  # be: "free-trial-specs/specs/payment/FT-042-checkout/bdd/system/FT-042-UC1-checkout-system.feature"
22
22
  # web: "free-trial-specs/specs/payment/FT-042-checkout/bdd/web/FT-042-UC1-checkout-web.feature"
@@ -4,14 +4,14 @@
4
4
 
5
5
  ## Spec-Manifest Là Gì Và Tại Sao Cần
6
6
 
7
- Trong umbrella repo (có `spec_source`), **mọi spec đều nằm trong spec submodule** — gom theo feature-package: mỗi PRD có một thư mục `specs/{domain}/{prd-slug}/` chứa tất cả artifact (`prd.md`, `bdd/{platform}/`, `tech-docs/`, `design-spec/`), trải trên nhiều domain:
7
+ Trong umbrella repo (có `spec_source`), **mọi spec đều nằm trong spec submodule** — gom theo feature-package: mỗi PRD có một thư mục `specs/{domain}/{prd-slug}/` chứa tất cả artifact (`{TICKET-ID}-{prd-slug}.md`, `bdd/{platform}/`, `tech-docs/`, `design-spec/`), trải trên nhiều domain:
8
8
 
9
9
  ```
10
10
  free-trial-umbrella/ ← umbrella (Claude Code mở ở đây)
11
11
  ├── free-trial-specs/ ← SPEC submodule — TẤT CẢ spec ở đây
12
12
  │ └── specs/
13
13
  │ └── auth/FT-001-login/ ← feature-package (1 PRD = 1 thư mục)
14
- │ ├── prd.md ← PRD
14
+ │ ├── {TICKET-ID}-{prd-slug}.md ← PRD
15
15
  │ ├── design-spec/... ← Design Spec
16
16
  │ ├── bdd/system/... ← BDD System (BE)
17
17
  │ ├── bdd/web/... ← BDD Web (FE)
@@ -30,7 +30,7 @@ features:
30
30
  FT-001:
31
31
  domain: auth
32
32
  status: approved
33
- prd: "specs/auth/FT-001-login/prd.md"
33
+ prd: "specs/auth/FT-001-login/FT-001-login.md"
34
34
  pdd: "specs/product-definition/auth/FT-001-def.md"
35
35
  tech_docs:
36
36
  be: "free-trial-specs/specs/auth/FT-001-login/tech-docs/FT-001-UC1-auth-api.md"
@@ -16,7 +16,7 @@ git pull && git submodule update --remote --recursive
16
16
  Lookup FT-042 trong spec-manifest.yaml
17
17
  → status: approved? ✅ (nếu draft → dừng, báo PO)
18
18
  → ghi lại paths (tất cả đều nằm trong submodule):
19
- prd: {spec_source}/specs/{domain}/{prd-slug}/prd.md
19
+ prd: {spec_source}/specs/{domain}/{prd-slug}/{TICKET-ID}-{prd-slug}.md
20
20
  bdd.system: {spec_source}/specs/{domain}/{prd-slug}/bdd/system/FT-042-*.feature
21
21
  bdd.web: {spec_source}/specs/{domain}/{prd-slug}/bdd/web/FT-042-*.feature
22
22
  tech_docs.be: {spec_source}/specs/{domain}/{prd-slug}/tech-docs/FT-042-*.md