@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,46 +1,46 @@
1
- # /refine-prd — Analyze PRD Through 4 Review Lenses
1
+ # /refine-prd — Phân tích PRD qua 4 lăng kính review
2
2
 
3
3
  ## Gate
4
4
  {{include:steps/gate.md}}
5
5
 
6
- *Note: For this command, the target file in Step 1 is a PRD file (`prd.md`) under `{paths.specs_dir}/{domain}/{prd-slug}/`. Read the full PRD after resolving the file.*
6
+ *Lưu ý: Với lệnh này, target file Bước 1 một file PRD (`{TICKET-ID}-{prd-slug}.md` — file `.md` duy nhất ở gốc feature folder) dưới `{paths.specs_dir}/{domain}/{prd-slug}/`. Đọc toàn bộ PRD sau khi phân giải file.*
7
7
 
8
8
  ## Context
9
9
  {{include:steps/context-loader.md}}
10
10
 
11
11
  ---
12
12
 
13
- ## Review Procedure
13
+ ## Quy trình Review
14
14
  {{include:steps/review-fanout.md}}
15
15
 
16
16
  ---
17
17
 
18
- ## Analyze — 4 Lenses (fan out over all four, then converge)
18
+ ## Phân tích — 4 lăng kính (fan out cả bốn, rồi hội tụ)
19
19
 
20
- Run the review through the **Review Procedure** above (`steps/review-fanout.md`).
20
+ Chạy review qua **Quy trình Review** trên (`steps/review-fanout.md`).
21
21
 
22
- **DIMENSIONS** = the 4 lenses below — fan out one sub-agent per lens, each scanning the
23
- full PRD through its single lens:
22
+ **DIMENSIONS** = 4 lăng kính dưới đây — fan out một sub-agent cho mỗi lăng kính, mỗi cái quét
23
+ toàn bộ PRD qua đúng lăng kính của nó:
24
24
 
25
- - **QA Lens**: Are ACs testable? Edge cases specified? Boundary conditions defined?
26
- - **DEV Lens**: Are API inputs/outputs clear? Business rules unambiguous? Cross-service deps fully described? Any technical risk?
27
- - **SA Lens**: Fits existing architecture? Security/auth implications? Data modeling clear?
28
- - **PO Lens**: Scope bounded? Priorities clear? Success metrics defined? Scope creep risk?
25
+ - **Lăng kính QA**: AC testable không? Edge case đã nêu? Điều kiện biên đã định nghĩa?
26
+ - **Lăng kính DEV**: Input/output API chưa? Business rule có mơ hồ không? Cross-service deps tả đủ chưa? rủi ro kỹ thuật nào?
27
+ - **Lăng kính SA**: Khớp kiến trúc hiện tại? Hệ luỵ security/auth? hình dữ liệu rõ chưa?
28
+ - **Lăng kính PO**: Scope đã khoanh vùng? Priority rõ chưa? Success metric đã định nghĩa? Rủi ro scope creep?
29
29
 
30
- The completeness-critic loop (Phase 2) is what guarantees the findings file is complete
31
- in one run — re-running `/refine-prd` should surface **0 new** findings. Map each
32
- dimension into the `lens` field of the schema below.
30
+ Vòng lặp completeness-critic (Phase 2) cái đảm bảo file findings đầy đủ trong một lần chạy
31
+ chạy lại `/refine-prd` sẽ lòi ra **0 finding mới**. Map mỗi dimension vào field `lens`
32
+ của schema dưới đây.
33
33
 
34
- ## Output File
34
+ ## File Output
35
35
 
36
- Derive the output filename from the PRD slug:
37
- - PRD file: `{paths.specs_dir}/payment/create-invoice/prd.md` → output: `{paths.refinement_dir}/create-invoice-findings.yaml`
38
- - Rule: take the PRD's parent folder name (the prd-slug), append `-findings.yaml`
36
+ Suy ra tên file output từ PRD slug:
37
+ - File PRD: `{paths.specs_dir}/payment/create-invoice/PAY01-create-invoice.md` → output: `{paths.refinement_dir}/create-invoice-findings.yaml`
38
+ - Quy tắc: lấy tên folder cha của PRD (prd-slug), thêm hậu tố `-findings.yaml`
39
39
 
40
- Write `{paths.refinement_dir}/{prd-slug}-findings.yaml`:
40
+ Ghi `{paths.refinement_dir}/{prd-slug}-findings.yaml`:
41
41
 
42
42
  ```yaml
43
- prd_source: "{paths.specs_dir}/{domain}/{prd-slug}/prd.md"
43
+ prd_source: "{paths.specs_dir}/{domain}/{prd-slug}/{TICKET-ID}-{prd-slug}.md"
44
44
  generated_at: "{ISO datetime}"
45
45
  status: "pending_review"
46
46
 
@@ -48,12 +48,12 @@ findings:
48
48
  - id: "F001"
49
49
  lens: "QA" # QA | DEV | SA | PO
50
50
  severity: "major" # critical | major | minor
51
- section: "§6. Acceptance Criteria" # human-readable heading/section label
52
- uc_id: "{TICKET-ID}-UC{N}" # UC this finding belongs to; "" if PRD-global (scope, metrics, problem statement)
53
- quote: "{verbatim snippet copied EXACTLY from the PRD at the issue location, ≤120 chars}"
54
- finding: "{description of gap or issue}"
55
- suggestion: "{specific actionable improvement}"
56
- auto_fixable: false # true = AI applies in --resume; false = human must write decision in note
51
+ section: "§2. Acceptance Criteria" # nhãn heading/section dạng người đọc
52
+ uc_id: "{TICKET-ID}-UC{N}" # UC finding thuộc về; "" nếu PRD-global (scope, metrics, problem statement)
53
+ quote: "{trích đoạn nguyên văn copy CHÍNH XÁC từ PRD tại vị trí lỗi, ≤120 ký tự}"
54
+ finding: "{ tả gap hoặc vấn đề}"
55
+ suggestion: "{đề xuất cải thiện cụ thể, hành động được}"
56
+ auto_fixable: false # true = AI áp dụng khi --resume; false = người phải ghi quyết định trong note
57
57
  status: "pending" # pending | accepted | rejected | needs_discussion
58
58
 
59
59
  summary:
@@ -63,78 +63,78 @@ summary:
63
63
  recommendation: "APPROVED_WITH_MINOR_CHANGES | NEEDS_REVISION | BLOCKED"
64
64
  ```
65
65
 
66
- > **Locator fields (`quote` + `uc_id`) — required for Review Board source-jump.**
67
- > For every finding, copy a short **verbatim** `quote` straight from the PRD at the exact spot the
68
- > issue occursdo NOT paraphrase; it is matched against the document to locate the line. Set
69
- > `uc_id` to the owning Use Case (or `""` for PRD-global findings). These let a reviewer click a
70
- > finding in the Review Board and jump straight to the precise location in the source PRD.
66
+ > **Field định vị (`quote` + `uc_id`) — bắt buộc cho source-jump của Review Board.**
67
+ > Với mỗi finding, copy một đoạn `quote` **nguyên văn** thẳng từ PRD tại đúng chỗ
68
+ > lỗi xảy ra KHÔNG diễn giải lại; được so khớp với tài liệu để định vị dòng. Đặt
69
+ > `uc_id` Use Case sở hữu (hoặc `""` cho finding PRD-global). Hai field này cho phép reviewer click một
70
+ > finding trong Review Board nhảy thẳng tới đúng vị trí trong PRD nguồn.
71
71
 
72
72
  ## Report
73
73
 
74
74
  {{include:steps/report-footer.md}}
75
75
 
76
76
  ```
77
- /refine-prd Complete — {PRD name}
77
+ /refine-prd Hoàn tất — {PRD name}
78
78
  Findings: {total} | 🔴 Critical: {N} | 🟡 Major: {N} | 🟢 Minor: {N}
79
79
  Review: {paths.refinement_dir}/{prd-slug}-findings.yaml
80
- Next: Open in Review Board (right-click file) → Update PRD
81
- → /review-context {prd-file} ← verify PRD quality before generating BDD
80
+ Next: Mở trong Review Board (chuột phải vào file) → Cập nhật PRD
81
+ → /review-context {prd-file} ← kiểm tra chất lượng PRD trước khi sinh BDD
82
82
  → /generate-bdd {prd-file}
83
83
  ```
84
84
 
85
85
  ---
86
86
 
87
- ## Resume Mode — Apply Findings & Bump Version
87
+ ## Resume Mode — Áp dụng Findings & Bump Version
88
88
 
89
- *Triggered when `$ARGUMENTS` contains `--resume` (called by Review Board "Apply to PRD" button).*
89
+ *Kích hoạt khi `$ARGUMENTS` chứa `--resume` (gọi bởi nút "Apply to PRD" của Review Board).*
90
90
 
91
- ### Phase 1 — Read accepted findings
91
+ ### Phase 1 — Đọc các finding được chấp nhận
92
92
 
93
- 1. Read `{paths.refinement_dir}/{prd-slug}-findings.yaml`.
94
- 2. Collect all findings where `status: "accepted"` or `status: "modified"`.
95
- 3. If no accepted findingsreport "No accepted findings. PRD unchanged." and stop.
93
+ 1. Đọc `{paths.refinement_dir}/{prd-slug}-findings.yaml`.
94
+ 2. Gom tất cả finding `status: "accepted"` hoặc `status: "modified"`.
95
+ 3. Nếu không finding nào được chấp nhận báo "No accepted findings. PRD unchanged." dừng.
96
96
 
97
- ### Phase 2 — Apply changes to PRD
97
+ ### Phase 2 — Áp dụng thay đổi vào PRD
98
98
 
99
- For each accepted finding, in order of severity (critical → major → minor):
100
- - Navigate to the PRD section indicated by `finding.section`.
101
- - Apply `finding.suggestion`. For `status: "modified"` findings, the human has already edited `finding.suggestion` in the Review Board — that edited value IS the fix to apply.
102
- - Do not alter any sections not referenced by an accepted finding.
99
+ Với mỗi finding được chấp nhận, theo thứ tự severity (critical → major → minor):
100
+ - Đi tới section PRD được chỉ định bởi `finding.section`.
101
+ - Áp dụng `finding.suggestion`. Với finding `status: "modified"`, người đã sửa sẵn `finding.suggestion` trong Review Board — giá trị đã sửa đó CHÍNH LÀ bản fix cần áp dụng.
102
+ - Không thay đổi bất kỳ section nào không được tham chiếu bởi một finding được chấp nhận.
103
103
 
104
- ### Phase 2.5 — Update findings file
104
+ ### Phase 2.5 — Cập nhật file findings
105
105
 
106
- For each finding that was applied (status was `accepted` or `modified`):
107
- - Set `status: "applied"` in `{paths.refinement_dir}/{prd-slug}-findings.yaml`.
106
+ Với mỗi finding đã áp dụng (status `accepted` hoặc `modified`):
107
+ - Đặt `status: "applied"` trong `{paths.refinement_dir}/{prd-slug}-findings.yaml`.
108
108
 
109
- Update `summary.status: "applied"` in the findings file.
109
+ Cập nhật `summary.status: "applied"` trong file findings.
110
110
 
111
- ### Phase 3 — Bump version & write changelog entry
111
+ ### Phase 3 — Bump version & ghi entry changelog
112
112
 
113
- 1. Read current `| **Version** |` value from PRD metadata table.
114
- 2. Determine bump type from the set of accepted findings:
115
- - **major** (X.0 → next X+1.0): new or removed Use Case, restructured scope, breaking BR change.
116
- - **minor** (x.Y → x.Y+1): clarification, new edge case, AC/BR wording refinement.
117
- 3. Compute new version string.
118
- 4. Update PRD metadata:
113
+ 1. Đọc giá trị `| **Version** |` hiện tại từ bảng metadata của PRD.
114
+ 2. Xác định loại bump từ tập finding được chấp nhận:
115
+ - **major** (X.0 → X+1.0 kế tiếp): thêm/xoá Use Case, tái cấu trúc scope, thay đổi BR breaking.
116
+ - **minor** (x.Y → x.Y+1): làm rõ, thêm edge case, tinh chỉnh wording AC/BR.
117
+ 3. Tính chuỗi version mới.
118
+ 4. Cập nhật metadata PRD:
119
119
  - `| **Version** | {new_version} |`
120
120
  - `| **Updated** | {today YYYY-MM-DD} |`
121
- - `| **Status** | draft |` ← reset to draft, must be re-approved
122
- 5. Prepend a new row to `## Changelog` at the bottom of the PRD:
121
+ - `| **Status** | draft |` ← reset về draft, phải được duyệt lại
122
+ 5. Thêm một row mới lên đầu `## Changelog` cuối PRD:
123
123
  ```
124
- | {new_version} | {today} | {concise summary of all applied changes} |
124
+ | {new_version} | {today} | {tóm tắt súc tích mọi thay đổi đã áp dụng} |
125
125
  ```
126
126
 
127
127
  ### Phase 4 — Report
128
128
 
129
129
  ```
130
- /refine-prd Applied — {PRD name}
130
+ /refine-prd Đã áp dụng — {PRD name}
131
131
  Version : {old_version} → {new_version}
132
132
  Applied : {N} findings ({critical} critical, {major} major, {minor} minor)
133
133
  Changes :
134
134
  - {change 1}
135
135
  - {change 2}
136
136
 
137
- ⚠️ BDD may be outdated. Run:
138
- /review-context {prd-file} ← verify PRD quality first
137
+ ⚠️ BDD thể đã lỗi thời. Chạy:
138
+ /review-context {prd-file} ← kiểm tra chất lượng PRD trước
139
139
  → /generate-bdd {prd-file}
140
140
  ```