@edupia-tutor/spec-driven-docs 0.14.0 → 0.14.1
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/commands/debug.md +435 -435
- package/commands/debug.tmpl +111 -111
- package/commands/define-product.md +330 -327
- package/commands/define-product.tmpl +50 -47
- package/commands/dev-gen-test.md +364 -364
- package/commands/dev-gen-test.tmpl +63 -63
- package/commands/dev-run-test.md +375 -375
- package/commands/dev-run-test.tmpl +74 -74
- package/commands/dev-smoke-test.md +340 -340
- package/commands/dev-smoke-test.tmpl +60 -60
- package/commands/fix-bug.md +402 -402
- package/commands/fix-bug.tmpl +78 -78
- package/commands/generate-bdd.md +512 -512
- package/commands/generate-bdd.tmpl +211 -211
- package/commands/generate-code.md +480 -482
- package/commands/generate-code.tmpl +179 -181
- package/commands/generate-design-spec.md +495 -495
- package/commands/generate-design-spec.tmpl +219 -219
- package/commands/generate-prd.md +445 -396
- package/commands/generate-prd.tmpl +45 -198
- package/commands/generate-spec-manifest.md +337 -337
- package/commands/generate-spec-manifest.tmpl +57 -57
- package/commands/generate-tech-docs.md +364 -364
- package/commands/generate-tech-docs.tmpl +84 -84
- package/commands/learn.md +346 -346
- package/commands/learn.tmpl +22 -22
- package/commands/map-testids.md +321 -321
- package/commands/map-testids.tmpl +41 -41
- package/commands/propose-scenario.md +334 -334
- package/commands/propose-scenario.tmpl +54 -54
- package/commands/qc-analyze.md +322 -323
- package/commands/qc-analyze.tmpl +42 -43
- package/commands/qc-design-test.md +303 -303
- package/commands/qc-design-test.tmpl +23 -23
- package/commands/qc-plan.md +296 -296
- package/commands/qc-plan.tmpl +16 -16
- package/commands/qc-report.md +301 -301
- package/commands/qc-report.tmpl +21 -21
- package/commands/qc-review.md +297 -297
- package/commands/qc-review.tmpl +17 -17
- package/commands/qc-run-test.md +336 -336
- package/commands/qc-run-test.tmpl +35 -35
- package/commands/refine-prd.md +426 -428
- package/commands/refine-prd.tmpl +61 -61
- package/commands/report-bug.md +350 -350
- package/commands/report-bug.tmpl +70 -70
- package/commands/review-code.md +363 -363
- package/commands/review-code.tmpl +39 -39
- package/commands/review-context.md +577 -579
- package/commands/review-context.tmpl +212 -212
- package/commands/review-tech-docs.md +426 -426
- package/commands/review-tech-docs.tmpl +146 -146
- package/commands/setup-ai-first.md +237 -237
- package/commands/setup-ai-first.tmpl +131 -131
- 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 +379 -379
- package/commands/validate-traces.tmpl +99 -99
- package/core/FRAMEWORK_VERSION +1 -1
- package/core/commands/debug.md +435 -435
- package/core/commands/define-product.md +330 -327
- package/core/commands/dev-gen-test.md +364 -364
- package/core/commands/dev-run-test.md +375 -375
- package/core/commands/dev-smoke-test.md +340 -340
- package/core/commands/fix-bug.md +402 -402
- package/core/commands/generate-bdd.md +512 -512
- package/core/commands/generate-code.md +480 -482
- package/core/commands/generate-design-spec.md +495 -495
- package/core/commands/generate-prd.md +445 -396
- package/core/commands/generate-spec-manifest.md +337 -337
- package/core/commands/generate-tech-docs.md +364 -364
- package/core/commands/learn.md +346 -346
- package/core/commands/map-testids.md +321 -321
- package/core/commands/propose-scenario.md +334 -334
- package/core/commands/qc-analyze.md +322 -323
- package/core/commands/qc-design-test.md +303 -303
- package/core/commands/qc-plan.md +296 -296
- package/core/commands/qc-report.md +301 -301
- package/core/commands/qc-review.md +297 -297
- package/core/commands/qc-run-test.md +336 -336
- package/core/commands/refine-prd.md +426 -428
- package/core/commands/report-bug.md +350 -350
- package/core/commands/review-code.md +363 -363
- package/core/commands/review-context.md +577 -579
- package/core/commands/review-tech-docs.md +426 -426
- package/core/commands/setup-ai-first.md +237 -237
- package/core/commands/sync.md +145 -145
- package/core/commands/update-framework.md +88 -88
- package/core/commands/validate-traces.md +379 -379
- package/core/skills/code/SKILL.md +388 -388
- package/core/skills/debug/SKILL.md +390 -390
- package/core/skills/design-spec/SKILL.md +316 -316
- package/core/skills/discovery/SKILL.md +7 -547
- package/core/skills/prd/SKILL.md +298 -394
- package/core/skills/setup-ai-first/SKILL.md +79 -79
- package/core/skills/spec/SKILL.md +176 -176
- package/core/skills/test/SKILL.md +602 -602
- package/core/steps/capture-lesson.md +44 -44
- package/core/steps/context-loader.md +174 -174
- 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 +106 -231
- package/core/templates/product-definition.template.md +101 -88
- package/docs/04-operations/publishing.md +20 -3
- package/package.json +1 -1
- package/skills/code/SKILL.md +388 -388
- package/skills/code/SKILL.tmpl +56 -56
- package/skills/debug/SKILL.md +390 -390
- package/skills/debug/SKILL.tmpl +60 -60
- package/skills/design-spec/SKILL.md +316 -316
- package/skills/design-spec/SKILL.tmpl +36 -36
- 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 +79 -79
- package/skills/setup-ai-first/SKILL.tmpl +27 -27
- package/skills/spec/SKILL.md +176 -176
- package/skills/spec/SKILL.tmpl +18 -18
- package/skills/test/SKILL.md +602 -602
- package/skills/test/SKILL.tmpl +44 -44
- package/steps/capture-lesson.md +44 -44
- package/steps/context-loader.md +174 -174
- 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 +106 -231
- package/templates/product-definition.template.md +101 -88
package/commands/refine-prd.tmpl
CHANGED
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
# /refine-prd —
|
|
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
|
-
*
|
|
6
|
+
*Lưu ý: Với lệnh này, target file ở Bước 1 là một file PRD (`prd.md`) 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
|
|
13
|
+
## Quy trình Review
|
|
14
14
|
{{include:steps/review-fanout.md}}
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## Phân tích — 4 lăng kính (fan out cả bốn, rồi hội tụ)
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Chạy review qua **Quy trình Review** ở trên (`steps/review-fanout.md`).
|
|
21
21
|
|
|
22
|
-
**DIMENSIONS** =
|
|
23
|
-
|
|
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
|
|
26
|
-
- **DEV
|
|
27
|
-
- **SA
|
|
28
|
-
- **PO
|
|
25
|
+
- **Lăng kính QA**: AC có 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 rõ chưa? Business rule có mơ hồ không? Cross-service deps mô tả đủ chưa? Có 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? Mô 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
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
Vòng lặp completeness-critic (Phase 2) là 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
|
|
34
|
+
## File Output
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
- PRD
|
|
38
|
-
-
|
|
36
|
+
Suy ra tên file output từ PRD slug:
|
|
37
|
+
- File PRD: `{paths.specs_dir}/payment/create-invoice/prd.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
|
-
|
|
40
|
+
Ghi `{paths.refinement_dir}/{prd-slug}-findings.yaml`:
|
|
41
41
|
|
|
42
42
|
```yaml
|
|
43
43
|
prd_source: "{paths.specs_dir}/{domain}/{prd-slug}/prd.md"
|
|
@@ -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: "§
|
|
52
|
-
uc_id: "{TICKET-ID}-UC{N}" # UC
|
|
53
|
-
quote: "{
|
|
54
|
-
finding: "{
|
|
55
|
-
suggestion: "{
|
|
56
|
-
auto_fixable: false # true = AI
|
|
51
|
+
section: "§2. Acceptance Criteria" # nhãn heading/section dạng người đọc
|
|
52
|
+
uc_id: "{TICKET-ID}-UC{N}" # UC mà 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: "{mô 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
|
-
> **
|
|
67
|
-
>
|
|
68
|
-
>
|
|
69
|
-
> `uc_id`
|
|
70
|
-
> finding
|
|
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; nó được so khớp với tài liệu để định vị dòng. Đặt
|
|
69
|
+
> `uc_id` là 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 và 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
|
|
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:
|
|
81
|
-
→ /review-context {prd-file} ←
|
|
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 —
|
|
87
|
+
## Resume Mode — Áp dụng Findings & Bump Version
|
|
88
88
|
|
|
89
|
-
*
|
|
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 —
|
|
91
|
+
### Phase 1 — Đọc các finding được chấp nhận
|
|
92
92
|
|
|
93
|
-
1.
|
|
94
|
-
2.
|
|
95
|
-
3.
|
|
93
|
+
1. Đọc `{paths.refinement_dir}/{prd-slug}-findings.yaml`.
|
|
94
|
+
2. Gom tất cả finding có `status: "accepted"` hoặc `status: "modified"`.
|
|
95
|
+
3. Nếu không có finding nào được chấp nhận → báo "No accepted findings. PRD unchanged." và dừng.
|
|
96
96
|
|
|
97
|
-
### Phase 2 —
|
|
97
|
+
### Phase 2 — Áp dụng thay đổi vào PRD
|
|
98
98
|
|
|
99
|
-
|
|
100
|
-
-
|
|
101
|
-
-
|
|
102
|
-
-
|
|
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 —
|
|
104
|
+
### Phase 2.5 — Cập nhật file findings
|
|
105
105
|
|
|
106
|
-
|
|
107
|
-
-
|
|
106
|
+
Với mỗi finding đã áp dụng (status là `accepted` hoặc `modified`):
|
|
107
|
+
- Đặt `status: "applied"` trong `{paths.refinement_dir}/{prd-slug}-findings.yaml`.
|
|
108
108
|
|
|
109
|
-
|
|
109
|
+
Cập nhật `summary.status: "applied"` trong file findings.
|
|
110
110
|
|
|
111
|
-
### Phase 3 — Bump version &
|
|
111
|
+
### Phase 3 — Bump version & ghi entry changelog
|
|
112
112
|
|
|
113
|
-
1.
|
|
114
|
-
2.
|
|
115
|
-
- **major** (X.0 →
|
|
116
|
-
- **minor** (x.Y → x.Y+1):
|
|
117
|
-
3.
|
|
118
|
-
4.
|
|
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
|
|
122
|
-
5.
|
|
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} | {
|
|
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
|
|
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
|
|
138
|
-
/review-context {prd-file} ←
|
|
137
|
+
⚠️ BDD có 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
|
```
|