@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,14 +1,14 @@
|
|
|
1
1
|
# {TICKET-ID} Product Definition — {Feature Name}
|
|
2
2
|
|
|
3
3
|
<!--
|
|
4
|
-
|
|
5
|
-
AI Agent
|
|
6
|
-
Output
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
4
|
+
Template này được dùng bởi workflow /define-product.
|
|
5
|
+
AI Agent điền từng section qua Q&A theo từng phase với PO.
|
|
6
|
+
Output là input có cấu trúc cho /generate-prd.
|
|
7
|
+
|
|
8
|
+
QUY TẮC:
|
|
9
|
+
- Mỗi section tương ứng với 1 phase trong workflow
|
|
10
|
+
- Section chưa đủ → giữ placeholder, KHÔNG được sang phase tiếp theo
|
|
11
|
+
- Trạng thái xác nhận của PO được ghi trong mỗi section
|
|
12
12
|
-->
|
|
13
13
|
|
|
14
14
|
---
|
|
@@ -18,151 +18,164 @@
|
|
|
18
18
|
| Field | Value |
|
|
19
19
|
|--------------------|--------------------------------|
|
|
20
20
|
| **Ticket** | {TICKET-ID} |
|
|
21
|
-
| **Feature** | {
|
|
21
|
+
| **Feature** | {tên tính năng} |
|
|
22
22
|
| **Domain** | {domain} |
|
|
23
|
-
| **PO** | {PO
|
|
23
|
+
| **PO** | {tên PO} |
|
|
24
24
|
| **Created** | {YYYY-MM-DD} |
|
|
25
25
|
| **Status** | in-progress / completed |
|
|
26
|
-
| **Completed Phase**| {
|
|
26
|
+
| **Completed Phase**| {số phase hoàn thành gần nhất} |
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
30
|
-
## Phase 0: Knowledge Sync
|
|
30
|
+
## Phase 0: Đồng bộ tri thức (Knowledge Sync)
|
|
31
31
|
|
|
32
|
-
> AI
|
|
32
|
+
> ⚙️ AI tự thu thập — đây là **bối cảnh hệ thống**, KHÔNG phải yêu cầu nghiệp vụ do PO viết. Mục đích: chuẩn hoá thuật ngữ và nhận biết phần đã có để tái sử dụng. Không cần input từ PO.
|
|
33
33
|
|
|
34
|
-
###
|
|
35
|
-
- {
|
|
36
|
-
- {
|
|
34
|
+
### Khái niệm / dữ liệu nghiệp vụ liên quan
|
|
35
|
+
- {Khái niệm 1} — {mô tả ngắn}
|
|
36
|
+
- {Khái niệm 2} — {mô tả ngắn}
|
|
37
37
|
|
|
38
|
-
###
|
|
39
|
-
- {
|
|
40
|
-
- {
|
|
38
|
+
### Phần hệ thống / feature liên quan
|
|
39
|
+
- {Phần 1}
|
|
40
|
+
- {Phần 2}
|
|
41
41
|
|
|
42
|
-
###
|
|
43
|
-
- {Rule/logic
|
|
42
|
+
### Rule / Logic có sẵn
|
|
43
|
+
- {Rule/logic từ các PRD có sẵn hoặc domain knowledge}
|
|
44
44
|
|
|
45
|
-
###
|
|
46
|
-
|
|
|
47
|
-
|
|
48
|
-
| {
|
|
45
|
+
### Chuẩn hoá thuật ngữ
|
|
46
|
+
| Thuật ngữ trong input PO | Thuật ngữ chuẩn (business-dictionary) |
|
|
47
|
+
|--------------------------|---------------------------------------|
|
|
48
|
+
| {thuật ngữ gốc} | {thuật ngữ chuẩn} |
|
|
49
49
|
|
|
50
50
|
---
|
|
51
51
|
|
|
52
|
-
## Phase 1: Feature Definition
|
|
52
|
+
## Phase 1: Định nghĩa tính năng (Feature Definition)
|
|
53
53
|
|
|
54
|
-
> ✅ PO
|
|
54
|
+
> ✅ PO xác nhận: {Có/Không}
|
|
55
55
|
|
|
56
|
-
### Context
|
|
57
|
-
{
|
|
56
|
+
### Bối cảnh (Context)
|
|
57
|
+
{Bối cảnh nghiệp vụ dẫn đến tính năng này}
|
|
58
58
|
|
|
59
|
-
### Problem Statement
|
|
60
|
-
{
|
|
59
|
+
### Tuyên bố vấn đề (Problem Statement)
|
|
60
|
+
{Vấn đề cần giải quyết}
|
|
61
61
|
|
|
62
|
-
### Goal
|
|
63
|
-
{
|
|
62
|
+
### Mục tiêu (Goal)
|
|
63
|
+
{Mục tiêu của tính năng}
|
|
64
64
|
|
|
65
|
-
###
|
|
66
|
-
| Actor |
|
|
67
|
-
|
|
68
|
-
| {Actor} | {
|
|
65
|
+
### Actor
|
|
66
|
+
| Actor | Vai trò | Chính/Phụ |
|
|
67
|
+
|----------|--------------------|-----------|
|
|
68
|
+
| {Actor} | {mô tả vai trò} | Primary |
|
|
69
69
|
|
|
70
|
-
###
|
|
71
|
-
- {
|
|
72
|
-
- {
|
|
70
|
+
### Phạm vi (In Scope)
|
|
71
|
+
- {Chức năng 1}
|
|
72
|
+
- {Chức năng 2}
|
|
73
|
+
|
|
74
|
+
### Ngoài phạm vi (Out of Scope)
|
|
75
|
+
- {Hạng mục KHÔNG làm trong ticket này — kèm lý do / để dành pha sau}
|
|
73
76
|
|
|
74
77
|
### User Story
|
|
75
|
-
- **As a** {
|
|
76
|
-
- **I want to** {
|
|
77
|
-
-
|
|
78
|
+
- **Là một (As a)** {vai trò}
|
|
79
|
+
- **Tôi muốn (I want to)** {mục tiêu}
|
|
80
|
+
- **Để (So that)** {giá trị nghiệp vụ}
|
|
81
|
+
|
|
82
|
+
### Phụ thuộc liên service *(mức nghiệp vụ)*
|
|
83
|
+
|
|
84
|
+
> Feature này cần **dữ liệu/năng lực** gì từ feature/team khác — KHÔNG mô tả API/event/callback (đó là kỹ thuật, thuộc Tech-docs).
|
|
85
|
+
|
|
86
|
+
- {Cần {dữ liệu/năng lực} từ {feature/team} — vì {lý do nghiệp vụ}} — hoặc "Không có"
|
|
78
87
|
|
|
79
88
|
---
|
|
80
89
|
|
|
81
|
-
## Phase 2: User Flow
|
|
90
|
+
## Phase 2: Định nghĩa User Flow
|
|
91
|
+
|
|
92
|
+
> ✅ PO xác nhận: {Có/Không}
|
|
82
93
|
|
|
83
|
-
|
|
94
|
+
### Điểm vào (Entry Point)
|
|
95
|
+
{Người dùng bắt đầu tương tác với tính năng như thế nào}
|
|
84
96
|
|
|
85
|
-
###
|
|
86
|
-
|
|
97
|
+
### Các bước của Flow
|
|
98
|
+
| Bước | Hành động | Trạng thái/Kết quả nghiệp vụ | Ghi chú |
|
|
99
|
+
|------|-----------------|------------------------------|------------|
|
|
100
|
+
| 1 | {hành động} | {trạng thái/kết quả nghiệp vụ} | {ghi chú} |
|
|
101
|
+
| 2 | {hành động} | {trạng thái/kết quả nghiệp vụ} | {ghi chú} |
|
|
87
102
|
|
|
88
|
-
###
|
|
89
|
-
|
|
90
|
-
|------|-----------------|------------------|-------------|
|
|
91
|
-
| 1 | {User action} | {Screen/State} | {Notes} |
|
|
92
|
-
| 2 | {User action} | {Screen/State} | {Notes} |
|
|
103
|
+
### Điểm ra (Exit Point)
|
|
104
|
+
{Kết quả cuối khi flow hoàn thành}
|
|
93
105
|
|
|
94
|
-
###
|
|
95
|
-
|
|
106
|
+
### Edge Cases / Luồng lỗi & ngoại lệ
|
|
107
|
+
> Các kịch bản thất bại nghiệp vụ ngoài happy path — input thiếu, điều kiện không thoả, thao tác đồng thời, phụ thuộc không sẵn sàng.
|
|
108
|
+
- {Kịch bản: khi {điều kiện bất thường} → {kết quả nghiệp vụ kỳ vọng}}
|
|
96
109
|
|
|
97
110
|
---
|
|
98
111
|
|
|
99
|
-
## Phase 3: Clarification Log
|
|
112
|
+
## Phase 3: Nhật ký làm rõ (Clarification Log)
|
|
100
113
|
|
|
101
|
-
>
|
|
114
|
+
> Ghi lại mọi câu hỏi và câu trả lời qua các vòng.
|
|
102
115
|
|
|
103
|
-
###
|
|
104
|
-
| # |
|
|
116
|
+
### Vòng {N}
|
|
117
|
+
| # | Nhóm | Câu hỏi | PO trả lời |
|
|
105
118
|
|---|----------|------------|------------|
|
|
106
|
-
| 1 | Context | {
|
|
107
|
-
| 2 | Flow | {
|
|
108
|
-
| 3 | Logic | {
|
|
119
|
+
| 1 | Context | {câu hỏi} | {trả lời} |
|
|
120
|
+
| 2 | Flow | {câu hỏi} | {trả lời} |
|
|
121
|
+
| 3 | Logic | {câu hỏi} | {trả lời} |
|
|
109
122
|
|
|
110
|
-
###
|
|
111
|
-
- {
|
|
123
|
+
### Mục chưa giải quyết
|
|
124
|
+
- {Mục chưa giải quyết — nếu còn tồn đọng, KHÔNG được sang Phase 4}
|
|
112
125
|
|
|
113
126
|
---
|
|
114
127
|
|
|
115
128
|
## Phase 4: Business Rules
|
|
116
129
|
|
|
117
|
-
> ✅ PO
|
|
130
|
+
> ✅ PO xác nhận: {Có/Không}
|
|
118
131
|
|
|
119
|
-
| Rule ID |
|
|
120
|
-
|
|
121
|
-
| BR-1 | {
|
|
122
|
-
| BR-2 | {
|
|
132
|
+
| Rule ID | Hành động/Trigger | Quy tắc | Điều kiện |
|
|
133
|
+
|---------|---------------------|---------------------|------------------------|
|
|
134
|
+
| BR-1 | {hành động từ flow} | {business rule} | {điều kiện áp dụng} |
|
|
135
|
+
| BR-2 | {hành động từ flow} | {business rule} | {điều kiện áp dụng} |
|
|
123
136
|
|
|
124
137
|
---
|
|
125
138
|
|
|
126
139
|
## Phase 5: Business Logic
|
|
127
140
|
|
|
128
|
-
> ✅ PO
|
|
141
|
+
> ✅ PO xác nhận: {Có/Không}
|
|
129
142
|
|
|
130
|
-
| Rule ID |
|
|
131
|
-
|
|
132
|
-
| BR-1 | {
|
|
133
|
-
| BR-2 | {
|
|
143
|
+
| Rule ID | Logic nghiệp vụ (rẽ nhánh / công thức / điều kiện) | Thông báo/kết quả nghiệp vụ khi lỗi |
|
|
144
|
+
|---------|---------------------------------------------------|-------------------------------------|
|
|
145
|
+
| BR-1 | {logic nghiệp vụ khi rule kích hoạt} | {vd: báo "Số dư không đủ"} |
|
|
146
|
+
| BR-2 | {logic nghiệp vụ khi rule kích hoạt} | {…} |
|
|
134
147
|
|
|
135
148
|
---
|
|
136
149
|
|
|
137
150
|
## Phase 6: Acceptance Criteria
|
|
138
151
|
|
|
139
|
-
> ✅ PO
|
|
152
|
+
> ✅ PO xác nhận: {Có/Không}
|
|
140
153
|
|
|
141
|
-
| AC ID |
|
|
154
|
+
| AC ID | Mô tả | Hành vi kỳ vọng | Bắt nguồn từ |
|
|
142
155
|
|-------|------------------------|---------------------------|--------------|
|
|
143
|
-
| AC-1 | {
|
|
144
|
-
| AC-2 | {
|
|
156
|
+
| AC-1 | {mô tả tiêu chí} | {hành vi kỳ vọng} | BR-{N} |
|
|
157
|
+
| AC-2 | {mô tả tiêu chí} | {hành vi kỳ vọng} | BR-{N} |
|
|
145
158
|
|
|
146
159
|
---
|
|
147
160
|
|
|
148
|
-
## Phase 7: Validation Report
|
|
161
|
+
## Phase 7: Báo cáo kiểm chứng (Validation Report)
|
|
149
162
|
|
|
150
|
-
### Coverage Matrix
|
|
151
|
-
| Flow
|
|
152
|
-
|
|
153
|
-
| {
|
|
163
|
+
### Ma trận độ phủ (Coverage Matrix)
|
|
164
|
+
| Hành động Flow | Có Rule? | Có Logic? | Có AC? | Status |
|
|
165
|
+
|----------------|----------|-----------|--------|--------|
|
|
166
|
+
| {Hành động 1} | ✅/❌ | ✅/❌ | ✅/❌ | OK/GAP |
|
|
154
167
|
|
|
155
|
-
###
|
|
156
|
-
- {
|
|
168
|
+
### Xung đột phát hiện
|
|
169
|
+
- {Mô tả xung đột — hoặc "None"}
|
|
157
170
|
|
|
158
|
-
###
|
|
159
|
-
- {
|
|
171
|
+
### Mục còn thiếu
|
|
172
|
+
- {Rule/AC/logic còn thiếu — hoặc "None"}
|
|
160
173
|
|
|
161
174
|
---
|
|
162
175
|
|
|
163
176
|
<!--
|
|
164
177
|
NEXT STEPS:
|
|
165
|
-
|
|
178
|
+
Khi Product Definition hoàn tất (Status: completed), chạy:
|
|
166
179
|
/generate-prd {path-to-this-file} --jira {TICKET-ID}
|
|
167
|
-
|
|
180
|
+
để sinh PRD từ Product Definition này.
|
|
168
181
|
-->
|
|
@@ -25,7 +25,7 @@ project:
|
|
|
25
25
|
# All paths are relative to workspace root.
|
|
26
26
|
paths:
|
|
27
27
|
# Feature-Package Layout:
|
|
28
|
-
# specs/{domain}/{prd-slug}/prd.md
|
|
28
|
+
# specs/{domain}/{prd-slug}/{TICKET-ID}-{prd-slug}.md — PRD document
|
|
29
29
|
# specs/{domain}/{prd-slug}/bdd/ — BDD .feature files
|
|
30
30
|
# specs/{domain}/{prd-slug}/tech-docs/ — Technical design docs
|
|
31
31
|
# specs/{domain}/{prd-slug}/design-spec/ — Design specs (FE/App only)
|
|
@@ -39,7 +39,7 @@ paths:
|
|
|
39
39
|
bdd_writing_guide: "specs/templates/bdd-writing-guide.md"
|
|
40
40
|
trace_report: "specs/.trace/trace-report.md"
|
|
41
41
|
|
|
42
|
-
# PRD template (PRDs are
|
|
42
|
+
# PRD template (PRDs are at specs/{domain}/{prd-slug}/{TICKET-ID}-{prd-slug}.md)
|
|
43
43
|
prd_template: "specs/templates/prd.template.md"
|
|
44
44
|
refinement_dir: ".agent/review"
|
|
45
45
|
|