@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,13 +1,13 @@
1
- # /generate-spec-manifest — Generate Spec Manifest for External Agents
1
+ # /generate-spec-manifest — Sinh Spec Manifest cho External Agent
2
2
 
3
- Scans all spec files and writes a `spec-manifest.yaml` at the project root.
4
- This file is for **external agents only** (e.g. tester's agent) — it is not committed to git.
3
+ Quét tất cả file spec ghi một `spec-manifest.yaml` project root.
4
+ File này dành cho **external agent** (vd agent của tester) — không commit vào git.
5
5
 
6
6
  ## Gate
7
7
 
8
8
  {{include:steps/gate.md}}
9
9
 
10
- *Note: For this command, there is no target file — it scans the entire project. Ignore `$ARGUMENTS` unless a domain filter is passed.*
10
+ *Lưu ý: Với lệnh này, không target file — quét cả dự án. Bỏ qua `$ARGUMENTS` trừ khi truyền domain filter.*
11
11
 
12
12
  ## Context
13
13
 
@@ -17,79 +17,79 @@ This file is for **external agents only** (e.g. tester's agent) — it is not co
17
17
 
18
18
  ## Process
19
19
 
20
- ### Step 1 — Determine scan roots
20
+ ### Step 1 — Xác định scan root
21
21
 
22
- Read `project-context.yaml` to determine mode and paths:
22
+ Đọc `project-context.yaml` để xác định mode path:
23
23
 
24
24
  **Umbrella mode** (`setup.mode: umbrella`):
25
25
  ```
26
- spec_root = {setup.spec_source} ← PO's spec submodule
27
- prd_glob = {spec_root}/specs/**/prd.md
26
+ spec_root = {setup.spec_source} ← spec submodule của PO
27
+ prd_glob = {spec_root}/specs/*/*/*.md ← file .md ở gốc feature folder = PRD ({TICKET-ID}-{prd-slug}.md)
28
28
  pdd_glob = {spec_root}/specs/product-definition/**/*.md
29
- services = {services} ← map of domain → paths
29
+ services = {services} ← map domain → paths
30
30
  ```
31
31
 
32
- **Single-service mode** (no `setup.mode`):
32
+ **Single-service mode** (không `setup.mode`):
33
33
  ```
34
34
  spec_root = .
35
- prd_glob = {paths.specs_dir}/**/prd.md
35
+ prd_glob = {paths.specs_dir}/*/*/*.md ← file .md ở gốc feature folder = PRD ({TICKET-ID}-{prd-slug}.md)
36
36
  pdd_glob = {paths.product_definitions_dir}/**/*.md
37
37
  services = { default: { specs_dir: {paths.specs_dir}, tech_docs_dir: {paths.tech_docs_dir} } }
38
38
  ```
39
39
 
40
- If a domain filter was passed in `$ARGUMENTS` → only scan PRDs matching that domain.
40
+ Nếu truyền domain filter trong `$ARGUMENTS` → chỉ quét PRD khớp domain đó.
41
41
 
42
42
  ---
43
43
 
44
- ### Step 2 — Scan PRD files
44
+ ### Step 2 — Quét file PRD
45
45
 
46
- For each `.md` file matched by `prd_glob`:
46
+ Với mỗi file `.md` khớp `prd_glob`:
47
47
 
48
- 1. Read the file metadata table:
49
- - `TICKET-ID` from `| **PRD ID** |`
50
- - `domain` from `| **Domain** |`
51
- - `status` from `| **Status** |`
52
- - `version` from `| **Version** |`
53
- 2. Also read frontmatter `@trace.domain` if present (use this over metadata table domain if both exist)
54
- 3. Record: `{ ticket_id, domain, status, version, prd_path }` — path relative to manifest root
48
+ 1. Đọc bảng metadata của file:
49
+ - `TICKET-ID` từ `| **PRD ID** |`
50
+ - `domain` từ `| **Domain** |`
51
+ - `status` từ `| **Status** |`
52
+ - `version` từ `| **Version** |`
53
+ 2. Cũng đọc frontmatter `@trace.domain` nếu (dùng cái này thay domain bảng metadata nếu cả hai tồn tại)
54
+ 3. Ghi: `{ ticket_id, domain, status, version, prd_path }` — path tương đối với manifest root
55
55
 
56
- Skip files where `TICKET-ID` cannot be determined.
56
+ Skip file không xác định được `TICKET-ID`.
57
57
 
58
58
  ---
59
59
 
60
- ### Step 3 — Match PDD files
60
+ ### Step 3 — Khớp file PDD
61
61
 
62
- For each TICKET-ID found in Step 2:
62
+ Với mỗi TICKET-ID tìm thấy Step 2:
63
63
 
64
- Search `pdd_glob` for a file whose name contains the TICKET-ID (e.g. `FT-001-*.md`).
65
- - Foundrecord `pdd_path` (relative to manifest root)
66
- - Not foundrecord `pdd: null`
64
+ Tìm `pdd_glob` một file tên chứa TICKET-ID (vd `FT-001-*.md`).
65
+ - Tìm thấy ghi `pdd_path` (tương đối với manifest root)
66
+ - Không thấyghi `pdd: null`
67
67
 
68
68
  ---
69
69
 
70
- ### Step 4 — Match BDD and Tech-Doc files per service
70
+ ### Step 4 — Khớp file BDD Tech-Doc theo từng service
71
71
 
72
- For each TICKET-ID, for each service in `services` map:
72
+ Với mỗi TICKET-ID, với mỗi service trong map `services`:
73
73
 
74
74
  **BDD:**
75
75
  - Glob `{service.specs_dir}/**/{TICKET-ID}*.feature`
76
- - Also check files containing `@trace.prd: {TICKET-ID}` in frontmatter if glob returns nothing
77
- - Foundrecord path under `bdd.{service_key}`
78
- - Not foundomit key (do not write `null` for services with no BDD yet)
76
+ - Cũng kiểm tra file chứa `@trace.prd: {TICKET-ID}` trong frontmatter nếu glob không trả gì
77
+ - Tìm thấy ghi path dưới `bdd.{service_key}`
78
+ - Không thấybỏ key (đừng ghi `null` cho service chưa BDD)
79
79
 
80
80
  **Tech-docs:**
81
81
  - Glob `{service.tech_docs_dir}/**/{TICKET-ID}*.md`
82
- - Also check files containing `@trace.prd: {TICKET-ID}` if glob returns nothing
83
- - Foundrecord path under `tech_docs.{service_key}`
84
- - Not foundomit key
82
+ - Cũng kiểm tra file chứa `@trace.prd: {TICKET-ID}` nếu glob không trả gì
83
+ - Tìm thấy ghi path dưới `tech_docs.{service_key}`
84
+ - Không thấybỏ key
85
85
 
86
- All paths relative to manifest root (umbrella root or project root).
86
+ Mọi path tương đối với manifest root (umbrella root hoặc project root).
87
87
 
88
88
  ---
89
89
 
90
- ### Step 5 — Write spec-manifest.yaml
90
+ ### Step 5 — Ghi spec-manifest.yaml
91
91
 
92
- Write to `{manifest_root}/spec-manifest.yaml` (overwrite if exists).
92
+ Ghi vào `{manifest_root}/spec-manifest.yaml` (ghi đè nếu tồn tại).
93
93
 
94
94
  Format:
95
95
 
@@ -115,24 +115,24 @@ features:
115
115
  {service_key}: "{path}" # only include services where file was found
116
116
  ```
117
117
 
118
- Sort features by TICKET-ID alphabetically.
119
- Omit `tech_docs` block entirely if no tech-doc found for any service.
120
- Omit `bdd` block entirely if no BDD found for any service.
118
+ Sort features theo TICKET-ID alphabet.
119
+ Bỏ hẳn block `tech_docs` nếu không tìm thấy tech-doc cho service nào.
120
+ Bỏ hẳn block `bdd` nếu không tìm thấy BDD cho service nào.
121
121
 
122
122
  ---
123
123
 
124
- ### Step 6 — Ensure .gitignore
124
+ ### Step 6 — Đảm bảo .gitignore
125
125
 
126
- Check `{manifest_root}/.gitignore`:
127
- - If `spec-manifest.yaml` is already listedno action
128
- - If not → append the following to `.gitignore`:
126
+ Kiểm tra `{manifest_root}/.gitignore`:
127
+ - Nếu `spec-manifest.yaml` đã được liệt không làm gì
128
+ - Nếu chưa → append vào `.gitignore`:
129
129
 
130
130
  ```
131
131
  # Auto-generated — do not commit
132
132
  spec-manifest.yaml
133
133
  ```
134
134
 
135
- Print: `✅ spec-manifest.yaml added to .gitignore`
135
+ In: `✅ spec-manifest.yaml added to .gitignore`
136
136
 
137
137
  ---
138
138
 
@@ -141,7 +141,7 @@ Print: `✅ spec-manifest.yaml added to .gitignore`
141
141
  {{include:steps/report-footer.md}}
142
142
 
143
143
  ```
144
- /generate-spec-manifest Complete
144
+ /generate-spec-manifest Hoàn tất
145
145
  ---
146
146
  Status : ✅ Complete
147
147
  Output : spec-manifest.yaml ({N} features)
@@ -149,16 +149,16 @@ Mode : {umbrella | single}
149
149
  .gitignore : ✅ spec-manifest.yaml excluded
150
150
 
151
151
  Summary:
152
- {N} PRDs scanned ({A} approved, {D} draft)
153
- {N} PDDs matched
154
- {N} BDD files matched (across {S} services)
155
- {N} Tech-doc files matched (across {S} services)
156
-
157
- ⚠️ {N} PRDs with no matching BDD:
158
- - {TICKET-ID} ({domain}) — run /generate-bdd first
159
- ⚠️ {N} PRDs with no matching tech-docs:
160
- - {TICKET-ID} ({domain}) — run /generate-tech-docs first
161
-
162
- Next : Share spec-manifest.yaml path with tester agent
163
- Regenerate anytime: /generate-spec-manifest
152
+ {N} PRD scanned ({A} approved, {D} draft)
153
+ {N} PDD matched
154
+ {N} BDD file matched (across {S} services)
155
+ {N} Tech-doc file matched (across {S} services)
156
+
157
+ ⚠️ {N} PRD không BDD khớp:
158
+ - {TICKET-ID} ({domain}) — chạy /generate-bdd trước
159
+ ⚠️ {N} PRD không tech-docs khớp:
160
+ - {TICKET-ID} ({domain}) — chạy /generate-tech-docs trước
161
+
162
+ Next : Chia sẻ path spec-manifest.yaml với tester agent
163
+ Sinh lại bất cứ lúc nào: /generate-spec-manifest
164
164
  ```