@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.
- package/bin/index.js +12 -1
- package/commands/debug.md +436 -436
- package/commands/debug.tmpl +111 -111
- package/commands/define-product.md +350 -345
- package/commands/define-product.tmpl +69 -64
- package/commands/dev-gen-test.md +365 -365
- package/commands/dev-gen-test.tmpl +63 -63
- package/commands/dev-run-test.md +376 -376
- package/commands/dev-run-test.tmpl +74 -74
- package/commands/dev-smoke-test.md +341 -341
- package/commands/dev-smoke-test.tmpl +60 -60
- package/commands/fix-bug.md +403 -403
- package/commands/fix-bug.tmpl +78 -78
- package/commands/generate-bdd.md +513 -513
- package/commands/generate-bdd.tmpl +211 -211
- package/commands/generate-code.md +481 -483
- package/commands/generate-code.tmpl +179 -181
- package/commands/generate-design-spec.md +497 -497
- package/commands/generate-design-spec.tmpl +220 -220
- package/commands/generate-prd.md +452 -400
- package/commands/generate-prd.tmpl +50 -200
- package/commands/generate-spec-manifest.md +340 -340
- package/commands/generate-spec-manifest.tmpl +59 -59
- package/commands/generate-tech-docs.md +365 -365
- package/commands/generate-tech-docs.tmpl +84 -84
- package/commands/learn.md +347 -347
- package/commands/learn.tmpl +22 -22
- package/commands/map-testids.md +322 -322
- package/commands/map-testids.tmpl +41 -41
- package/commands/propose-scenario.md +335 -335
- package/commands/propose-scenario.tmpl +54 -54
- package/commands/qc-analyze.md +323 -324
- package/commands/qc-analyze.tmpl +42 -43
- package/commands/qc-design-test.md +304 -304
- package/commands/qc-design-test.tmpl +23 -23
- package/commands/qc-plan.md +297 -297
- package/commands/qc-plan.tmpl +16 -16
- package/commands/qc-report.md +302 -302
- package/commands/qc-report.tmpl +21 -21
- package/commands/qc-review.md +298 -298
- package/commands/qc-review.tmpl +17 -17
- package/commands/qc-run-test.md +337 -337
- package/commands/qc-run-test.tmpl +35 -35
- package/commands/refine-prd.md +428 -430
- package/commands/refine-prd.tmpl +62 -62
- package/commands/report-bug.md +351 -351
- package/commands/report-bug.tmpl +70 -70
- package/commands/review-code.md +364 -364
- package/commands/review-code.tmpl +39 -39
- package/commands/review-context.md +578 -580
- package/commands/review-context.tmpl +212 -212
- package/commands/review-tech-docs.md +427 -427
- package/commands/review-tech-docs.tmpl +146 -146
- package/commands/setup-ai-first.md +239 -239
- package/commands/setup-ai-first.tmpl +133 -133
- package/commands/sync.md +145 -145
- package/commands/sync.tmpl +93 -93
- package/commands/update-framework.md +88 -88
- package/commands/update-framework.tmpl +36 -36
- package/commands/validate-traces.md +381 -381
- package/commands/validate-traces.tmpl +100 -100
- package/core/FRAMEWORK_VERSION +1 -1
- package/core/commands/debug.md +436 -436
- package/core/commands/define-product.md +350 -345
- package/core/commands/dev-gen-test.md +365 -365
- package/core/commands/dev-run-test.md +376 -376
- package/core/commands/dev-smoke-test.md +341 -341
- package/core/commands/fix-bug.md +403 -403
- package/core/commands/generate-bdd.md +513 -513
- package/core/commands/generate-code.md +481 -483
- package/core/commands/generate-design-spec.md +497 -497
- package/core/commands/generate-prd.md +452 -400
- package/core/commands/generate-spec-manifest.md +340 -340
- package/core/commands/generate-tech-docs.md +365 -365
- package/core/commands/learn.md +347 -347
- package/core/commands/map-testids.md +322 -322
- package/core/commands/propose-scenario.md +335 -335
- package/core/commands/qc-analyze.md +323 -324
- package/core/commands/qc-design-test.md +304 -304
- package/core/commands/qc-plan.md +297 -297
- package/core/commands/qc-report.md +302 -302
- package/core/commands/qc-review.md +298 -298
- package/core/commands/qc-run-test.md +337 -337
- package/core/commands/refine-prd.md +428 -430
- package/core/commands/report-bug.md +351 -351
- package/core/commands/review-code.md +364 -364
- package/core/commands/review-context.md +578 -580
- package/core/commands/review-tech-docs.md +427 -427
- package/core/commands/setup-ai-first.md +239 -239
- package/core/commands/sync.md +145 -145
- package/core/commands/update-framework.md +88 -88
- package/core/commands/validate-traces.md +381 -381
- package/core/skills/code/SKILL.md +389 -389
- package/core/skills/debug/SKILL.md +391 -391
- package/core/skills/design-spec/SKILL.md +318 -318
- package/core/skills/discovery/SKILL.md +7 -547
- package/core/skills/prd/SKILL.md +298 -394
- package/core/skills/setup-ai-first/SKILL.md +80 -80
- package/core/skills/spec/SKILL.md +178 -178
- package/core/skills/test/SKILL.md +604 -604
- package/core/steps/capture-lesson.md +44 -44
- package/core/steps/context-loader.md +175 -175
- package/core/steps/gate.md +54 -54
- package/core/steps/report-footer.md +52 -52
- package/core/steps/review-fanout.md +85 -87
- package/core/steps/spawn-agent.md +45 -45
- package/core/steps/trace-mirror.md +21 -21
- package/core/templates/architecture.template.md +37 -37
- package/core/templates/design-spec.template.md +77 -77
- package/core/templates/platform-guide.template.md +47 -47
- package/core/templates/prd.template.md +107 -232
- package/core/templates/product-definition.template.md +101 -88
- package/core/templates/project-context.yaml +2 -2
- package/docs/01-getting-started/core-concepts.md +1 -1
- package/docs/01-getting-started/quickstart.md +7 -7
- package/docs/02-guides/developer/bdd-and-trace.md +1 -1
- package/docs/02-guides/developer/scenarios.md +5 -5
- package/docs/02-guides/product-owner/handoff-checklist.md +1 -1
- package/docs/02-guides/product-owner/scenarios.md +23 -23
- package/docs/02-guides/tester/bug-reporting.md +2 -2
- package/docs/02-guides/tester/reading-specs.md +2 -2
- package/docs/02-guides/tester/scenarios.md +1 -1
- package/docs/02-guides/tester/spec-manifest.md +3 -3
- package/docs/02-guides/tester/workflow.md +1 -1
- package/docs/03-concepts/architecture.md +3 -3
- package/docs/03-concepts/pipeline.md +3 -3
- package/docs/04-operations/publishing.md +20 -3
- package/docs/04-operations/sync-and-update.md +5 -5
- package/docs/05-reference/command-cheatsheet.md +2 -2
- package/docs/05-reference/commands.md +8 -8
- package/package.json +1 -1
- package/scripts/migrate-specs.js +5 -3
- package/scripts/rename-prd-files.js +174 -0
- package/skills/code/SKILL.md +389 -389
- package/skills/code/SKILL.tmpl +56 -56
- package/skills/debug/SKILL.md +391 -391
- package/skills/debug/SKILL.tmpl +60 -60
- package/skills/design-spec/SKILL.md +318 -318
- package/skills/design-spec/SKILL.tmpl +37 -37
- package/skills/discovery/SKILL.md +7 -547
- package/skills/discovery/SKILL.tmpl +7 -140
- package/skills/prd/SKILL.md +298 -394
- package/skills/prd/SKILL.tmpl +40 -151
- package/skills/setup-ai-first/SKILL.md +80 -80
- package/skills/setup-ai-first/SKILL.tmpl +28 -28
- package/skills/spec/SKILL.md +178 -178
- package/skills/spec/SKILL.tmpl +20 -20
- package/skills/test/SKILL.md +604 -604
- package/skills/test/SKILL.tmpl +44 -44
- package/steps/capture-lesson.md +44 -44
- package/steps/context-loader.md +175 -175
- package/steps/gate.md +54 -54
- package/steps/report-footer.md +52 -52
- package/steps/review-fanout.md +85 -87
- package/steps/spawn-agent.md +45 -45
- package/steps/trace-mirror.md +21 -21
- package/templates/architecture.template.md +37 -37
- package/templates/design-spec.template.md +77 -77
- package/templates/platform-guide.template.md +47 -47
- package/templates/prd.template.md +107 -232
- package/templates/product-definition.template.md +101 -88
- package/templates/project-context.yaml +2 -2
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
# /propose-scenario —
|
|
1
|
+
# /propose-scenario — Đề xuất một BDD Scenario mới (cho Tester & QC)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
PO/Dev
|
|
3
|
+
Dành cho **tester và QC** phát hiện edge case chưa được BDD hiện tại phủ (vd một gap missing-coverage
|
|
4
|
+
`DOC_GAPS` từ `/qc-analyze`). Draft một Gherkin scenario vào **khu proposal** để
|
|
5
|
+
PO/Dev review và promote.
|
|
6
6
|
|
|
7
|
-
**
|
|
8
|
-
|
|
7
|
+
**KHÔNG sửa file `.feature` canonical.** BDD do PO/Dev sở hữu — lệnh này chỉ ghi
|
|
8
|
+
một proposal. Promote vào BDD thật là hành động của PO/Dev.
|
|
9
9
|
|
|
10
|
-
Usage: `/propose-scenario {UC-ID} {edge case
|
|
11
|
-
|
|
10
|
+
Usage: `/propose-scenario {UC-ID} {mô tả edge case}`
|
|
11
|
+
Ví dụ: `/propose-scenario FT-001 login với email có space ở cuối vẫn nên thành công`
|
|
12
12
|
|
|
13
13
|
## Gate
|
|
14
14
|
{{include:steps/gate.md}}
|
|
15
15
|
|
|
16
|
-
*
|
|
16
|
+
*Lưu ý: Với lệnh này, target ở Bước 1 là một UC-ID từ `$ARGUMENTS`. Phân giải file `.feature` của nó (để lấy vocabulary + scenario có sẵn) và PRD của nó.*
|
|
17
17
|
|
|
18
18
|
## Context
|
|
19
19
|
{{include:steps/context-loader.md}}
|
|
20
20
|
|
|
21
21
|
---
|
|
22
22
|
|
|
23
|
-
## Step 1 —
|
|
23
|
+
## Step 1 — Phân giải UC + Platform
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
- `prd_path` +
|
|
27
|
-
- `bdd_path` + `active_platform` (web / app / system) —
|
|
28
|
-
-
|
|
25
|
+
Định vị (qua `spec-manifest.yaml` nếu có, else `paths`):
|
|
26
|
+
- `prd_path` + danh sách acceptance criteria của UC
|
|
27
|
+
- `bdd_path` + `active_platform` (web / app / system) — để khớp vocabulary scenario và tag `@trace`
|
|
28
|
+
- các tiêu đề scenario có sẵn của UC này (để tránh đề xuất trùng)
|
|
29
29
|
|
|
30
|
-
## Step 2 — Coverage
|
|
30
|
+
## Step 2 — Quyết định Coverage (CRITICAL)
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
Một BDD scenario phải trace tới một PRD acceptance criterion. Xác định case nào áp dụng:
|
|
33
33
|
|
|
34
|
-
**Case A — behavior
|
|
35
|
-
→
|
|
34
|
+
**Case A — behavior NẰM TRONG một AC có sẵn** (AC ngụ ý nó, BDD chỉ thiếu scenario):
|
|
35
|
+
→ Đây là coverage gap. Tiếp tục draft scenario (Step 3), map tới AC đó.
|
|
36
36
|
|
|
37
|
-
**Case B — behavior
|
|
38
|
-
→
|
|
39
|
-
PRD change request
|
|
37
|
+
**Case B — behavior KHÔNG nằm trong AC nào** (requirement thực sự mới):
|
|
38
|
+
→ **Đừng** draft BDD proposal (scenario sẽ không có gì để trace). Thay vào đó **ghi một
|
|
39
|
+
file PRD change request** để PO thực sự thấy nó trên `/sync` (đừng chỉ in ra):
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
`{spec_source}/feedback/prd-change-requests/`
|
|
41
|
+
Ghi vào `{paths.prd_change_requests_dir}/{UC-ID}-{slug}.md` (phân giải về
|
|
42
|
+
`{spec_source}/feedback/prd-change-requests/` ở umbrella mode; tạo dir nếu cần):
|
|
43
43
|
```
|
|
44
44
|
# PRD Change Request — {UC-ID}: {short title}
|
|
45
45
|
|
|
46
|
-
> ⚠️
|
|
46
|
+
> ⚠️ Requirement mới phát hiện trong test — KHÔNG được PRD AC nào phủ (không phải coverage gap).
|
|
47
47
|
| Field | Value |
|
|
48
48
|
|---|---|
|
|
49
49
|
| UC / Ticket | {UC-ID} |
|
|
50
50
|
| PRD | {prd_path} (v{prd_version}) |
|
|
51
|
-
| Source | {BUG-ID
|
|
51
|
+
| Source | {BUG-ID nếu có | quan sát của tester/QC} |
|
|
52
52
|
| Requested by | tester/QC |
|
|
53
53
|
| Status | Open |
|
|
54
54
|
|
|
55
55
|
**Requested behavior:** {description}
|
|
56
|
-
**Suggested AC (draft
|
|
57
|
-
**Route to PO:**
|
|
56
|
+
**Suggested AC (draft cho PO):** "{draft AC text}"
|
|
57
|
+
**Route to PO:** thêm/mở rộng một AC trong {prd_path} → `/refine-prd` → chạy lại `/generate-bdd` → dev `/generate-code`.
|
|
58
58
|
```
|
|
59
|
-
|
|
59
|
+
Rồi sang Step 5 (handoff áp dụng cho file này luôn). Skip Step 3–4 (không có BDD scenario cho Case B).
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
Nếu không chắc case nào → hiện danh sách AC và hỏi tester nó map tới AC nào, hoặc confirm nó là mới.
|
|
62
62
|
|
|
63
|
-
## Step 3 — Draft
|
|
63
|
+
## Step 3 — Draft Scenario (chỉ Case A)
|
|
64
64
|
|
|
65
|
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
65
|
+
Viết Gherkin nhất quán với convention của `/generate-bdd` cho `active_platform`:
|
|
66
|
+
- Dùng vocabulary platform (web: clicks/sees; app: taps/sees; system: business event)
|
|
67
|
+
- Gồm tag `@trace`: `@trace.uc={UC-ID}`, `@trace.ac={AC-N}`, cùng `@proposed @from-test`
|
|
68
|
+
- Một scenario tập trung; Given/When/Then cụ thể; không chi tiết implementation
|
|
69
69
|
|
|
70
|
-
## Step 4 —
|
|
70
|
+
## Step 4 — Ghi Proposal
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
(
|
|
72
|
+
Ghi vào `{paths.bdd_proposals_dir}/{UC-ID}-{slug}.md` (phân giải về `{spec_source}/feedback/bdd-proposals/` ở umbrella mode; tạo dir nếu cần).
|
|
73
|
+
KHÔNG đụng `.feature` canonical. Doc proposal chứa draft + metadata review
|
|
74
|
+
(xem Output). Nếu nguồn là một bug, tham chiếu `BUG-ID` của nó.
|
|
75
75
|
|
|
76
|
-
## Step 5 — Handoff (
|
|
76
|
+
## Step 5 — Handoff (để PO/Dev thực sự thấy)
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
Một proposal chỉ tới PO/Dev nếu được **commit và push lên spec repo dùng chung**.
|
|
79
79
|
|
|
80
80
|
```bash
|
|
81
|
-
cd {spec_source} # umbrella:
|
|
81
|
+
cd {spec_source} # umbrella: spec submodule; single-service: bỏ
|
|
82
82
|
git add feedback/bdd-proposals/{UC-ID}-{slug}.md
|
|
83
83
|
git commit -m "qa(proposal): {UC-ID} — {title}"
|
|
84
|
-
git push # → PO/Dev
|
|
84
|
+
git push # → PO/Dev thấy nó ở lần /sync tiếp theo
|
|
85
85
|
```
|
|
86
86
|
|
|
87
|
-
-
|
|
88
|
-
-
|
|
87
|
+
- Không có quyền push spec repo → mở PR / MR thay vì. In fallback này.
|
|
88
|
+
- Với **PRD change request** (Case B), commit file request thay vì:
|
|
89
89
|
```bash
|
|
90
90
|
cd {spec_source}
|
|
91
91
|
git add feedback/prd-change-requests/{UC-ID}-{slug}.md
|
|
@@ -93,7 +93,7 @@ git push # → PO/Dev see it on their next /sync
|
|
|
93
93
|
git push
|
|
94
94
|
```
|
|
95
95
|
|
|
96
|
-
> PO/Dev
|
|
96
|
+
> PO/Dev được thông báo qua routine bình thường: `/sync` liệt kê các proposal vừa pull về.
|
|
97
97
|
|
|
98
98
|
---
|
|
99
99
|
|
|
@@ -106,24 +106,24 @@ git push # → PO/Dev see it on their next /sync
|
|
|
106
106
|
|
|
107
107
|
UC : {UC-ID} ({active_platform})
|
|
108
108
|
Maps to AC : {AC-N} — "{AC text}"
|
|
109
|
-
Source : {BUG-ID
|
|
109
|
+
Source : {BUG-ID nếu có | quan sát tester}
|
|
110
110
|
|
|
111
|
-
|
|
111
|
+
Scenario đề xuất (DRAFT — chờ PO/Dev review):
|
|
112
112
|
@proposed @from-test @trace.uc={UC-ID} @trace.ac={AC-N}
|
|
113
113
|
Scenario: {title}
|
|
114
114
|
Given {…}
|
|
115
115
|
When {…}
|
|
116
116
|
Then {…}
|
|
117
117
|
|
|
118
|
-
|
|
119
|
-
[ ] AC mapping
|
|
120
|
-
[ ]
|
|
121
|
-
[ ]
|
|
118
|
+
Để PO/Dev promote:
|
|
119
|
+
[ ] AC mapping đúng? (hoặc cập nhật PRD nếu requirement thực sự mới)
|
|
120
|
+
[ ] Thêm scenario vào {bdd_path} (sửa, hoặc chạy lại /generate-bdd nếu PRD đổi)
|
|
121
|
+
[ ] Rồi: /generate-code {UC-ID} + /dev-gen-test {UC-ID}
|
|
122
122
|
|
|
123
|
-
Handoff : {✅ committed + pushed to spec repo | ⚠️
|
|
123
|
+
Handoff : {✅ committed + pushed to spec repo | ⚠️ chạy git command ở trên / mở PR}
|
|
124
124
|
|
|
125
125
|
---
|
|
126
|
-
Status : ✅ Complete (read-only
|
|
126
|
+
Status : ✅ Complete (read-only trên BDD canonical — chỉ proposal)
|
|
127
127
|
Output Artifacts: created {paths.bdd_proposals_dir}/{UC-ID}-{slug}.md (pushed to shared spec repo)
|
|
128
|
-
Next : PO/Dev
|
|
128
|
+
Next : PO/Dev thấy nó ở lần /sync tiếp theo → review & promote
|
|
129
129
|
```
|