@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
package/commands/report-bug.tmpl
CHANGED
|
@@ -1,109 +1,109 @@
|
|
|
1
|
-
# /report-bug — File
|
|
1
|
+
# /report-bug — File một Bug có trace-spec (cho Tester & QC)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
(`/qc-run-test` FAIL
|
|
5
|
-
`/qc-analyze`).
|
|
6
|
-
|
|
3
|
+
Dành cho **tester và QC** — gồm cả **product-gap** lòi ra từ pipeline `/qc-*`
|
|
4
|
+
(`/qc-run-test` FAIL phân loại product-gap, hoặc một spec-defect blocker `DOC_GAPS` từ
|
|
5
|
+
`/qc-analyze`). Sinh một bug report có cấu trúc với đầy đủ spec context, phân loại layer
|
|
6
|
+
khả nghi, và lưu lại để handoff cho team dev.
|
|
7
7
|
|
|
8
|
-
**READ-ONLY
|
|
9
|
-
|
|
8
|
+
**READ-ONLY trên spec và code.** Lệnh này không bao giờ sửa PRD, BDD, tech-docs, hay source.
|
|
9
|
+
Fix là việc của dev (`/fix-bug`); viết scenario là `/propose-scenario`.
|
|
10
10
|
|
|
11
|
-
Usage: `/report-bug {UC-ID
|
|
12
|
-
|
|
11
|
+
Usage: `/report-bug {UC-ID hoặc TICKET} {mô tả ngắn}`
|
|
12
|
+
Ví dụ: `/report-bug FT-001 tài khoản khoá sau 6 lần login fail, spec nói 5`
|
|
13
13
|
|
|
14
14
|
## Gate
|
|
15
15
|
{{include:steps/gate.md}}
|
|
16
16
|
|
|
17
|
-
*
|
|
17
|
+
*Lưu ý: Với lệnh này, target ở Bước 1 là một UC-ID / TICKET từ `$ARGUMENTS`. Phân giải file `.feature` khớp nếu có; nếu không, tiếp tục — bug vẫn file được.*
|
|
18
18
|
|
|
19
19
|
## Context
|
|
20
20
|
{{include:steps/context-loader.md}}
|
|
21
21
|
|
|
22
22
|
---
|
|
23
23
|
|
|
24
|
-
## Step 1 —
|
|
24
|
+
## Step 1 — Phân giải Spec Context
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
Định vị chuỗi spec cho UC/TICKET của bug. Ưu tiên `spec-manifest.yaml` (setup umbrella/tester) nếu có; else dùng `paths` đã phân giải.
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
- `prd_path` +
|
|
30
|
-
- `bdd_path` (
|
|
31
|
-
- `tech_doc_path` (
|
|
28
|
+
Thu thập và lưu:
|
|
29
|
+
- `prd_path` + `Version` hiện tại của PRD
|
|
30
|
+
- `bdd_path` (file `.feature` của UC này) + tiêu đề **scenario fail** cụ thể, nếu có cái khớp
|
|
31
|
+
- `tech_doc_path` (nếu có)
|
|
32
32
|
- `service` / domain
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
Nếu không có scenario `.feature` nào khớp behavior báo cáo → set `coverage_gap = true` (behavior chưa được BDD test).
|
|
35
35
|
|
|
36
|
-
## Step 2 —
|
|
36
|
+
## Step 2 — Thu thập chi tiết Bug
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
Nếu chưa có trong `$ARGUMENTS`, hỏi tester (một prompt gọn):
|
|
39
39
|
|
|
40
40
|
```
|
|
41
|
-
File
|
|
42
|
-
1.
|
|
43
|
-
2.
|
|
44
|
-
3. Expected (
|
|
41
|
+
File một bug — trả lời những gì bạn biết:
|
|
42
|
+
1. Xảy ra ở đâu? (endpoint / screen / flow)
|
|
43
|
+
2. Các bước tái hiện?
|
|
44
|
+
3. Expected (theo spec) vs Actual?
|
|
45
45
|
4. Error / log / status code?
|
|
46
46
|
5. Environment? (staging / prod / local)
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
## Step 3 —
|
|
49
|
+
## Step 3 — Xác định AC bị vi phạm
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
(
|
|
53
|
-
|
|
51
|
+
Đọc PRD acceptance criteria cho UC này. Khớp bug với **AC** cụ thể nó vi phạm
|
|
52
|
+
(vd `AC3: "5 lần login fail → khoá 30m"`). Trích nguyên văn. Nếu behavior không map AC nào →
|
|
53
|
+
ghi "No AC covers this" và coi như một PRD gap khả dĩ.
|
|
54
54
|
|
|
55
|
-
## Step 4 —
|
|
55
|
+
## Step 4 — Phân loại Layer khả nghi (BUG_FLOW)
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
Áp dụng bảng quyết định BUG_FLOW để gợi ý root cause khả năng ở đâu — cái này route bug:
|
|
58
58
|
|
|
59
|
-
|
|
|
59
|
+
| Nếu… | Layer khả nghi | Route tới |
|
|
60
60
|
|------|-------------|----------|
|
|
61
|
-
| Code
|
|
62
|
-
| BDD scenario
|
|
63
|
-
| PRD AC
|
|
64
|
-
| Behavior
|
|
61
|
+
| Code mâu thuẫn một BDD scenario | **Code bug** (Case 1) | Dev → `/fix-bug` |
|
|
62
|
+
| BDD scenario mâu thuẫn PRD AC | **BDD bug** (Case 2) | Dev/PO fix BDD |
|
|
63
|
+
| PRD AC mơ hồ / im lặng | **PRD ambiguity** (Case 3) | PO làm rõ PRD |
|
|
64
|
+
| Behavior đúng nhưng **không scenario nào phủ** | **BDD coverage gap** | Tester → `/propose-scenario` |
|
|
65
65
|
| UI ≠ Design Spec | **Design Spec bug** (Case 5) | Dev/Designer |
|
|
66
|
-
| Env / data
|
|
66
|
+
| Chỉ Env / data | **Environment** (Case 6) | DevOps |
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
Nêu phân loại như một gợi ý (dev confirm trong `/fix-bug`).
|
|
69
69
|
|
|
70
|
-
## Step 5 —
|
|
70
|
+
## Step 5 — Ghi Report
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
Gán `BUG-{today YYYYMMDD}-{NN}` (NN = sequence kế tiếp trong các report có sẵn).
|
|
73
|
+
Ghi vào `{paths.bug_reports_dir}/{BUG-ID}.md` (phân giải về `{spec_source}/feedback/bug-reports/` ở umbrella mode; tạo dir nếu cần) theo cấu trúc trong Output block, và cũng in nó ra để dán vào Jira/Slack.
|
|
74
74
|
|
|
75
|
-
## Step 5.5 — Backfill
|
|
75
|
+
## Step 5.5 — Backfill trace (link pending-view)
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
`{paths.trace_dir}/{domain}/{prd-slug}/{UC-ID}.tsv`,
|
|
79
|
-
|
|
77
|
+
Nếu Step 1 khớp một scenario fail cụ thể `{UC-ID}-SC{N}` **và** một trace row tồn tại trong
|
|
78
|
+
`{paths.trace_dir}/{domain}/{prd-slug}/{UC-ID}.tsv`, cập nhật **chỉ** row đó để view "waiting-on" của PO/PM trỏ
|
|
79
|
+
tới bug này — giữ nguyên mọi cột khác (gồm `qc_status`):
|
|
80
80
|
- `qc_blocked_by` = `{BUG-ID}`
|
|
81
|
-
- `qc_owner` = `dev`
|
|
81
|
+
- `qc_owner` = `dev` nếu layer khả nghi ∈ {Code, BDD, Design Spec, Env} · `po` nếu layer khả nghi = PRD ambiguity
|
|
82
82
|
|
|
83
|
-
Skip
|
|
84
|
-
|
|
83
|
+
Skip âm thầm nếu không SC nào khớp hoặc không có file/row trace (bug vẫn file được). Đây là
|
|
84
|
+
lần ghi duy nhất lệnh này làm tới operational state — nó vẫn **không bao giờ** sửa PRD/BDD/code.
|
|
85
85
|
|
|
86
|
-
## Step 6 — Handoff (
|
|
86
|
+
## Step 6 — Handoff (để PO/Dev thực sự thấy)
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
Report chỉ tới PO/Dev nếu được **commit và push lên spec repo dùng chung**. File local là dead drop.
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
- Umbrella mode →
|
|
92
|
-
- Single-service →
|
|
90
|
+
Xác định repo sở hữu `{paths.bug_reports_dir}`:
|
|
91
|
+
- Umbrella mode → spec submodule tại `{spec_source}`
|
|
92
|
+
- Single-service → repo hiện tại
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
Rồi commit + push **repo đó**:
|
|
95
95
|
|
|
96
96
|
```bash
|
|
97
|
-
cd {spec_source} # umbrella:
|
|
97
|
+
cd {spec_source} # umbrella: spec submodule; single-service: bỏ
|
|
98
98
|
git add feedback/bug-reports/{BUG-ID}.md
|
|
99
99
|
git commit -m "qa(bug): {BUG-ID} — {short description}"
|
|
100
|
-
git push # → PO/Dev
|
|
100
|
+
git push # → PO/Dev thấy nó ở lần /sync tiếp theo
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
-
-
|
|
104
|
-
-
|
|
103
|
+
- Nếu tester không có quyền push spec repo → mở PR / MR thay vì, hoặc đưa file cho người sở hữu. In fallback này.
|
|
104
|
+
- In chính xác các lệnh nếu bạn không tự chạy chúng.
|
|
105
105
|
|
|
106
|
-
> PO/Dev
|
|
106
|
+
> PO/Dev được thông báo qua routine bình thường: `/sync` liệt kê các bug report vừa pull về.
|
|
107
107
|
|
|
108
108
|
---
|
|
109
109
|
|
|
@@ -112,34 +112,34 @@ git push # → PO/Dev see it on their next /sync
|
|
|
112
112
|
{{include:steps/report-footer.md}}
|
|
113
113
|
|
|
114
114
|
```
|
|
115
|
-
🐞 {BUG-ID} → {paths.bug_reports_dir}/{BUG-ID}.md (
|
|
115
|
+
🐞 {BUG-ID} → {paths.bug_reports_dir}/{BUG-ID}.md (trong spec repo dùng chung)
|
|
116
116
|
|
|
117
117
|
Feature : {UC-ID} — {feature name} | Service: {service} | Severity: {Critical|Major|Minor}
|
|
118
|
-
State : 🟢 Open (lifecycle: Open → Fixed → Closed — set `Fixed`
|
|
118
|
+
State : 🟢 Open (lifecycle: Open → Fixed → Closed — set `Fixed` bởi /fix-bug, `Closed` sau khi /qc-run-test re-verify pass)
|
|
119
119
|
|
|
120
120
|
Spec context
|
|
121
121
|
PRD : {prd_path} (v{prd_version})
|
|
122
|
-
BDD : {bdd_path} → Scenario: "{scenario title}" {
|
|
122
|
+
BDD : {bdd_path} → Scenario: "{scenario title}" {hoặc: ⚠️ no scenario covers this}
|
|
123
123
|
Tech Doc : {tech_doc_path}
|
|
124
124
|
|
|
125
|
-
AC
|
|
125
|
+
AC bị vi phạm
|
|
126
126
|
{AC-N}: "{AC text}"
|
|
127
127
|
|
|
128
|
-
Expected (
|
|
129
|
-
Actual
|
|
130
|
-
Steps to reproduce
|
|
131
|
-
Environment
|
|
128
|
+
Expected (theo spec) : {expected}
|
|
129
|
+
Actual : {actual}
|
|
130
|
+
Steps to reproduce : {1..N}
|
|
131
|
+
Environment : {env}
|
|
132
132
|
|
|
133
|
-
|
|
133
|
+
Layer khả nghi : {Code | BDD | PRD | Design Spec | Env} → {route}
|
|
134
134
|
|
|
135
|
-
Handoff : {✅ committed + pushed to spec repo | ⚠️
|
|
135
|
+
Handoff : {✅ committed + pushed to spec repo | ⚠️ chạy git command ở trên / mở PR}
|
|
136
136
|
|
|
137
137
|
---
|
|
138
|
-
Status : ✅ Complete (read-only
|
|
138
|
+
Status : ✅ Complete (read-only trên specs/code — chỉ ghi file feedback)
|
|
139
139
|
Output Artifacts: created {paths.bug_reports_dir}/{BUG-ID}.md (pushed to shared spec repo)
|
|
140
140
|
Next :
|
|
141
|
-
- PO/Dev
|
|
142
|
-
- Code bug → dev
|
|
141
|
+
- PO/Dev sẽ thấy nó ở lần /sync tiếp theo
|
|
142
|
+
- Code bug → dev chạy /fix-bug {BUG-ID}
|
|
143
143
|
- PRD ambiguity → PO (BUG_FLOW Case 3)
|
|
144
144
|
- Coverage gap → /propose-scenario {UC-ID}
|
|
145
145
|
```
|