@ngocsangairvds/vsaf 3.0.12 → 3.1.0
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/.claude/skills/graphify/SKILL.md +1 -1303
- package/.claude/skills/vsaf-build/SKILL.md +8 -12
- package/.claude/skills/vsaf-discover/SKILL.md +8 -20
- package/.claude/skills/vsaf-doc/SKILL.md +11 -68
- package/.claude/skills/vsaf-doc-prd/SKILL.md +57 -0
- package/.claude/skills/vsaf-doc-srs/SKILL.md +169 -0
- package/.claude/skills/vsaf-docs/SKILL.md +2 -20
- package/.claude/skills/vsaf-onboard/SKILL.md +4 -6
- package/.claude/skills/vsaf-plan/SKILL.md +8 -17
- package/.claude/skills/vsaf-ship/SKILL.md +5 -18
- package/.claude/skills/vsaf-sprint/SKILL.md +3 -12
- package/_bmad/bmm/1-analysis/bmad-document-project/templates/srs-feature-template.md +669 -0
- package/_bmad/bmm/1-analysis/bmad-document-project/templates/srs-system-template.md +430 -0
- package/assets/templates/CLAUDE.md +8 -29
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vsaf-build
|
|
3
|
-
description: Implement code theo SRS + testcase đã có. Dùng sau /vsaf-doc và /vsaf-test.
|
|
3
|
+
description: Implement code theo SRS + testcase đã có. Dùng sau /vsaf-doc-srs và /vsaf-test.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# VSAF Build
|
|
@@ -9,7 +9,7 @@ description: Implement code theo SRS + testcase đã có. Dùng sau /vsaf-doc v
|
|
|
9
9
|
Implement code đúng theo SRS và testcase, từng task một, với TDD — đảm bảo mỗi commit có tests pass.
|
|
10
10
|
|
|
11
11
|
## Điều kiện tiên quyết
|
|
12
|
-
- Đã chạy `/vsaf-doc` và có SRS được approve
|
|
12
|
+
- Đã chạy `/vsaf-doc-srs` và có SRS được approve
|
|
13
13
|
- Đã chạy `/vsaf-test` và có testcase docs (implementation readiness = PASS)
|
|
14
14
|
- User đã xác nhận phạm vi implement
|
|
15
15
|
|
|
@@ -32,21 +32,17 @@ Implement code đúng theo SRS và testcase, từng task một, với TDD — đ
|
|
|
32
32
|
✓ Superpowers available — sẽ sử dụng: execute-plan, test-driven-development, code-review
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
### Bước 1 —
|
|
36
|
-
- Gọi `mcp__mempalace__mempalace_search` với keyword là tên module/feature sắp implement
|
|
37
|
-
- Đảm bảo không có architectural decisions cũ xung đột với approach hiện tại
|
|
38
|
-
|
|
39
|
-
### Bước 2 — Đọc SRS + testcase
|
|
35
|
+
### Bước 1 — Đọc SRS + testcase
|
|
40
36
|
- Đọc file SRS trong `docs/project/srs/`
|
|
41
37
|
- Đọc file testcase trong `docs/project/testcases/`
|
|
42
38
|
- Xác nhận mapping FR/NFR -> testcase trước khi bắt đầu
|
|
43
39
|
|
|
44
|
-
### Bước
|
|
40
|
+
### Bước 2 — Sinh plan từ SRS (có/không Superpowers)
|
|
45
41
|
- **Nếu HAS_SUPERPOWERS**: dùng `superpowers:write-plan` để sinh atomic task list từ SRS + testcase
|
|
46
42
|
- **Nếu không**: tự tạo task list thủ công từ FR/NFR → testcase mapping
|
|
47
43
|
- Mỗi task phải có verification step rõ ràng
|
|
48
44
|
|
|
49
|
-
### Bước
|
|
45
|
+
### Bước 3 — Implement từng task (TDD)
|
|
50
46
|
- **Nếu HAS_SUPERPOWERS**: dùng `superpowers:execute-plan` — tự động chạy TDD cycles (RED → GREEN → REFACTOR) theo plan
|
|
51
47
|
- Superpowers sẽ gọi `superpowers:test-driven-development` cho mỗi task
|
|
52
48
|
- Nếu plan lớn (20+ tasks): dùng `superpowers:subagent-driven-development` để dispatch song song
|
|
@@ -57,7 +53,7 @@ Implement code đúng theo SRS và testcase, từng task một, với TDD — đ
|
|
|
57
53
|
- Sau mỗi task: chạy `mcp__gitnexus__detect_changes` để verify chỉ đúng files thay đổi
|
|
58
54
|
- Commit: `git commit -m "<type>: <task description>"`
|
|
59
55
|
|
|
60
|
-
### Bước
|
|
56
|
+
### Bước 3.5 — Checkpoint review (mỗi 3-5 tasks)
|
|
61
57
|
- Sau mỗi 3-5 tasks hoàn thành: dùng skill `bmad-checkpoint-preview`
|
|
62
58
|
- Mục đích: human-in-the-loop review — "walk me through changes so far"
|
|
63
59
|
- Checkpoint sẽ:
|
|
@@ -66,7 +62,7 @@ Implement code đúng theo SRS và testcase, từng task một, với TDD — đ
|
|
|
66
62
|
- Hỏi user: tiếp tục / điều chỉnh / dừng?
|
|
67
63
|
- **Bỏ qua checkpoint nếu**: plan < 5 tasks tổng (chỉ checkpoint cuối)
|
|
68
64
|
|
|
69
|
-
### Bước
|
|
65
|
+
### Bước 4 — Xử lý khi fail hoặc scope drift
|
|
70
66
|
- **Nếu HAS_SUPERPOWERS**: dùng `superpowers:systematic-debugging` — bắt buộc hypothesis → experiment → conclusion
|
|
71
67
|
- **Nếu không**: thử approach khác thủ công
|
|
72
68
|
- Fail 3 lần cùng 1 task: DỪNG, báo user, quay lại `/vsaf-plan`
|
|
@@ -74,7 +70,7 @@ Implement code đúng theo SRS và testcase, từng task một, với TDD — đ
|
|
|
74
70
|
- Dùng skill `bmad-correct-course` để đánh giá impact + đề xuất điều chỉnh
|
|
75
71
|
- DỪNG và trình bày cho user: tiếp tục với điều chỉnh / quay lại `/vsaf-plan` re-plan
|
|
76
72
|
|
|
77
|
-
### Bước
|
|
73
|
+
### Bước 5 — Output sau mỗi task
|
|
78
74
|
```
|
|
79
75
|
✓ Task [N]: [tên task]
|
|
80
76
|
- Files changed: [danh sách]
|
|
@@ -18,24 +18,19 @@ Hiểu rõ domain, market, user needs, và technical feasibility trước khi co
|
|
|
18
18
|
|
|
19
19
|
## Các bước thực hiện
|
|
20
20
|
|
|
21
|
-
### Bước 1 —
|
|
22
|
-
- Gọi `mcp__mempalace__mempalace_search` với keyword từ `$ARGUMENTS`
|
|
23
|
-
- Kiểm tra: đã có research cũ nào liên quan chưa?
|
|
24
|
-
- Nếu có: tóm tắt findings cũ, tránh lặp lại
|
|
25
|
-
|
|
26
|
-
### Bước 2 — Domain Research
|
|
21
|
+
### Bước 1 — Domain Research
|
|
27
22
|
- Dùng skill `bmad-domain-research` để deep dive domain/industry
|
|
28
23
|
- Output: terminology, business rules, regulatory constraints, domain patterns
|
|
29
24
|
- Lưu vào `docs/project/planning-artifacts/domain-research-[topic].md`
|
|
30
25
|
|
|
31
|
-
### Bước
|
|
26
|
+
### Bước 2 — Market Research
|
|
32
27
|
- Dùng skill `bmad-market-research` để phân tích:
|
|
33
28
|
- Competition landscape: ai đang làm gì, strengths/weaknesses
|
|
34
29
|
- Customer needs: pain points, underserved segments
|
|
35
30
|
- Market trends: hướng đi nào đang tăng trưởng
|
|
36
31
|
- Lưu vào `docs/project/planning-artifacts/market-research-[topic].md`
|
|
37
32
|
|
|
38
|
-
### Bước
|
|
33
|
+
### Bước 3 — Technical Feasibility
|
|
39
34
|
- Dùng skill `bmad-technical-research` để đánh giá:
|
|
40
35
|
- Tech stack options + trade-offs
|
|
41
36
|
- Integration constraints
|
|
@@ -43,18 +38,18 @@ Hiểu rõ domain, market, user needs, và technical feasibility trước khi co
|
|
|
43
38
|
- Build vs buy decisions
|
|
44
39
|
- Lưu vào `docs/project/planning-artifacts/tech-research-[topic].md`
|
|
45
40
|
|
|
46
|
-
### Bước
|
|
41
|
+
### Bước 4 — Product Brief
|
|
47
42
|
- Dùng skill `bmad-product-brief` để tổng hợp findings thành product brief
|
|
48
43
|
- Product brief = bản tóm tắt: vấn đề gì, cho ai, giải pháp gì, tại sao bây giờ
|
|
49
44
|
- Lưu vào `docs/project/planning-artifacts/product-brief-[name].md`
|
|
50
45
|
|
|
51
|
-
### Bước
|
|
46
|
+
### Bước 5 — PRFAQ Challenge (Working Backwards)
|
|
52
47
|
- Dùng skill `bmad-prfaq` để stress-test product concept
|
|
53
48
|
- Viết press release giả lập: nếu product thành công, bài báo sẽ nói gì?
|
|
54
49
|
- Viết FAQ: internal FAQ (team hỏi gì) + external FAQ (customer hỏi gì)
|
|
55
50
|
- Mục đích: phát hiện concept yếu **trước khi** đầu tư thời gian code
|
|
56
51
|
|
|
57
|
-
### Bước
|
|
52
|
+
### Bước 6 — Tạo PRD (Product Requirements Document)
|
|
58
53
|
- Dùng skill `bmad-agent-pm` (John) để dẫn dắt quá trình tạo PRD
|
|
59
54
|
- John sẽ gọi skill `bmad-create-prd` để sinh PRD chuẩn từ product brief
|
|
60
55
|
- PRD bao gồm: vision, goals, FRs, NFRs, epics, user stories, success metrics
|
|
@@ -62,21 +57,14 @@ Hiểu rõ domain, market, user needs, và technical feasibility trước khi co
|
|
|
62
57
|
- Nếu validate FAIL: John sẽ dùng `bmad-edit-prd` để fix issues ngay
|
|
63
58
|
- Lưu vào `docs/project/planning-artifacts/prd-[name].md`
|
|
64
59
|
|
|
65
|
-
### Bước
|
|
60
|
+
### Bước 7 — Multi-agent Review (Party Mode)
|
|
66
61
|
- Dùng skill `bmad-party-mode` để tổ chức roundtable:
|
|
67
62
|
- PM (John) trình bày PRD
|
|
68
63
|
- Analyst (Mary) challenge requirements
|
|
69
64
|
- Architect (Winston) challenge feasibility
|
|
70
65
|
- Ghi nhận consensus và open questions
|
|
71
66
|
|
|
72
|
-
### Bước
|
|
73
|
-
- Gọi `mcp__mempalace__mempalace_add_drawer` để lưu:
|
|
74
|
-
- Market insights
|
|
75
|
-
- Domain knowledge
|
|
76
|
-
- Product decisions + rationale
|
|
77
|
-
- Open questions chưa trả lời
|
|
78
|
-
|
|
79
|
-
### Bước 10 — Output cho user
|
|
67
|
+
### Bước 8 — Output cho user
|
|
80
68
|
```
|
|
81
69
|
## Discovery Complete: [product/domain]
|
|
82
70
|
|
|
@@ -1,79 +1,22 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vsaf-doc
|
|
3
|
-
description:
|
|
3
|
+
description: DEPRECATED — Đã được tách thành 2 lệnh riêng. Dùng /vsaf-doc-prd để viết PRD, sau đó /vsaf-doc-srs để viết SRS.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# VSAF Doc
|
|
6
|
+
# VSAF Doc — DEPRECATED
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
Chuyển kết quả plan thành tài liệu chính thức: SRS có traceability rõ ràng để làm testcase và implementation.
|
|
8
|
+
Skill này đã được tách thành 2 lệnh riêng biệt:
|
|
10
9
|
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
1. `/vsaf-doc-prd` — Viết PRD (Product Requirements Document) từ kết quả `/vsaf-plan`
|
|
11
|
+
2. `/vsaf-doc-srs` — Viết SRS (Software Requirements Specification) từ PRD đã có
|
|
13
12
|
|
|
14
|
-
##
|
|
13
|
+
## Quy trình mới
|
|
15
14
|
|
|
16
|
-
### Bước 0 — Xác định mode: Tạo mới hay Chỉnh sửa
|
|
17
|
-
- Kiểm tra xem đã có SRS/PRD trong `docs/project/srs/` cho feature này chưa
|
|
18
|
-
- **Nếu chưa có** → Mode: CREATE (tạo mới từ đầu)
|
|
19
|
-
- **Nếu đã có** → Mode: EDIT (chỉnh sửa dựa trên feedback/changes)
|
|
20
|
-
- Hỏi user: "SRS đã tồn tại. Bạn muốn tạo mới hoàn toàn hay chỉnh sửa?"
|
|
21
|
-
|
|
22
|
-
### Bước 1 — Search MemPalace
|
|
23
|
-
- Gọi `mcp__mempalace__mempalace_search` với keyword từ feature hiện tại
|
|
24
|
-
- Kiểm tra có decision cũ nào cần reference không?
|
|
25
|
-
|
|
26
|
-
### Bước 2 — Sinh hoặc Chỉnh sửa SRS
|
|
27
|
-
|
|
28
|
-
#### Mode CREATE:
|
|
29
|
-
- Viết tài liệu SRS từ output `/vsaf-plan`
|
|
30
|
-
- Nếu user muốn format PRD chuẩn: dùng skill `bmad-create-prd` để sinh PRD đầy đủ
|
|
31
|
-
- SRS/PRD phải bao gồm: scope, FRs, NFRs, assumptions, out-of-scope, acceptance criteria
|
|
32
|
-
- Thêm traceability ID cho FR/NFR để map sang testcase
|
|
33
|
-
- Lưu vào `docs/project/srs/[feature].md`
|
|
34
|
-
|
|
35
|
-
#### Mode EDIT:
|
|
36
|
-
- Dùng skill `bmad-edit-prd` để chỉnh sửa SRS/PRD đã có
|
|
37
|
-
- bmad-edit-prd sẽ: đọc SRS hiện tại, nhận changes từ user/plan, update in-place
|
|
38
|
-
- Giữ nguyên traceability IDs đã có — chỉ thêm/sửa/xoá sections cần thiết
|
|
39
|
-
- Đảm bảo: changes không break consistency với testcases đã sinh (nếu có)
|
|
40
|
-
- Nếu thay đổi lớn: cảnh báo user rằng testcases cần re-run `/vsaf-test`
|
|
41
|
-
|
|
42
|
-
### Bước 3 — Validate SRS (BMAD validate)
|
|
43
|
-
- Dùng skill `bmad-validate-prd` để validate SRS vừa sinh/sửa
|
|
44
|
-
- Kiểm tra: FRs đủ rõ ràng? NFRs đo lường được? Acceptance criteria kiểm chứng được?
|
|
45
|
-
- Nếu có issues: fix ngay trong SRS, không chờ đến build
|
|
46
|
-
- Nếu mode EDIT và validate FAIL: dùng `bmad-edit-prd` lần nữa để fix
|
|
47
|
-
- Ghi nhận validation result (PASS/FAIL + findings)
|
|
48
|
-
|
|
49
|
-
### Bước 4 — Chuẩn hoá implement notes
|
|
50
|
-
- Tạo implement notes bám SRS: module ảnh hưởng, ràng buộc kỹ thuật, rollout notes
|
|
51
|
-
- Không viết code trong bước này
|
|
52
|
-
|
|
53
|
-
### Bước 5 — Lưu architecture decision (MemPalace)
|
|
54
|
-
- Gọi `mcp__mempalace__mempalace_add_drawer` để lưu decision quan trọng
|
|
55
|
-
- Nội dung: approach được chọn, lý do, alternatives đã bỏ qua
|
|
56
|
-
|
|
57
|
-
### Bước 6 — Output cho user
|
|
58
15
|
```
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
-
|
|
63
|
-
- Mode: [CREATE / EDIT]
|
|
64
|
-
- Validation: [PASS / FAIL — chi tiết nếu fail]
|
|
65
|
-
- Testcases impact: [None / Need re-run /vsaf-test]
|
|
66
|
-
|
|
67
|
-
### Architecture Decision
|
|
68
|
-
- Đã lưu vào MemPalace
|
|
69
|
-
|
|
70
|
-
## Next step
|
|
71
|
-
Chạy /vsaf-test docs/project/srs/[feature].md để sinh testcase
|
|
72
|
-
[Nếu EDIT và testcases cũ bị ảnh hưởng]: Re-run /vsaf-test bắt buộc
|
|
16
|
+
/vsaf-plan <requirement> # scope + impact + approach
|
|
17
|
+
/vsaf-doc-prd # viết PRD từ approved scope
|
|
18
|
+
/vsaf-doc-srs # viết SRS từ PRD
|
|
19
|
+
/vsaf-test <path/to/srs> # sinh testcase từ SRS
|
|
73
20
|
```
|
|
74
21
|
|
|
75
|
-
|
|
76
|
-
- Không bắt đầu code trong bước này
|
|
77
|
-
- Nếu scope quá lớn (>3 modules): đề nghị split thành nhiều PRs
|
|
78
|
-
- Commit docs trước khi chuyển sang build: `git commit -m "docs: plan for <feature>"`
|
|
79
|
-
- Khi edit PRD: luôn check impact lên testcases đã sinh
|
|
22
|
+
Vui lòng dùng `/vsaf-doc-prd` hoặc `/vsaf-doc-srs` thay cho skill này.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vsaf-doc-prd
|
|
3
|
+
description: Viết tài liệu PRD (Product Requirements Document) từ kết quả /vsaf-plan. Dùng sau /vsaf-plan khi đã có scope và approach rõ ràng.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# VSAF Doc PRD
|
|
7
|
+
|
|
8
|
+
## Mục tiêu
|
|
9
|
+
Chuyển kết quả plan thành PRD chính thức: vision, goals, FRs, NFRs, epics, user stories, success metrics.
|
|
10
|
+
|
|
11
|
+
## Điều kiện tiên quyết
|
|
12
|
+
Phải đã chạy `/vsaf-plan` và có output trước khi chạy skill này.
|
|
13
|
+
|
|
14
|
+
## Các bước thực hiện
|
|
15
|
+
|
|
16
|
+
### Bước 0 — Xác định mode: Tạo mới hay Chỉnh sửa
|
|
17
|
+
- Kiểm tra xem đã có PRD trong `docs/project/planning-artifacts/` cho feature này chưa
|
|
18
|
+
- **Nếu chưa có** → Mode: CREATE (tạo mới từ đầu)
|
|
19
|
+
- **Nếu đã có** → Mode: EDIT (chỉnh sửa dựa trên feedback/changes)
|
|
20
|
+
- Hỏi user: "PRD đã tồn tại. Bạn muốn tạo mới hoàn toàn hay chỉnh sửa?"
|
|
21
|
+
|
|
22
|
+
### Bước 1 — Sinh hoặc Chỉnh sửa PRD
|
|
23
|
+
|
|
24
|
+
#### Mode CREATE:
|
|
25
|
+
- Dùng skill `bmad-agent-pm` (John) để dẫn dắt quá trình tạo PRD từ output `/vsaf-plan`
|
|
26
|
+
- John sẽ gọi skill `bmad-create-prd` để sinh PRD chuẩn
|
|
27
|
+
- PRD phải bao gồm: vision, goals, FRs, NFRs, epics, user stories, success metrics, scope, out-of-scope, assumptions
|
|
28
|
+
- Lưu vào `docs/project/planning-artifacts/prd-[feature].md`
|
|
29
|
+
|
|
30
|
+
#### Mode EDIT:
|
|
31
|
+
- Dùng skill `bmad-edit-prd` để chỉnh sửa PRD đã có
|
|
32
|
+
- Giữ nguyên structure và IDs đã có — chỉ thêm/sửa/xoá sections cần thiết
|
|
33
|
+
- Nếu thay đổi lớn: cảnh báo user rằng SRS và testcases cần re-run
|
|
34
|
+
|
|
35
|
+
### Bước 2 — Validate PRD (BMAD validate)
|
|
36
|
+
- Dùng skill `bmad-validate-prd` để validate PRD vừa sinh/sửa
|
|
37
|
+
- Kiểm tra: FRs đủ rõ ràng? NFRs đo lường được? Acceptance criteria kiểm chứng được?
|
|
38
|
+
- Nếu có issues: fix ngay trong PRD, không chờ đến build
|
|
39
|
+
- Ghi nhận validation result (PASS/FAIL + findings)
|
|
40
|
+
|
|
41
|
+
### Bước 3 — Output cho user
|
|
42
|
+
```
|
|
43
|
+
## PRD đã tạo/cập nhật
|
|
44
|
+
|
|
45
|
+
### File
|
|
46
|
+
- docs/project/planning-artifacts/prd-[feature].md
|
|
47
|
+
- Mode: [CREATE / EDIT]
|
|
48
|
+
- Validation: [PASS / FAIL — chi tiết nếu fail]
|
|
49
|
+
|
|
50
|
+
## Next step
|
|
51
|
+
Chạy /vsaf-doc-srs để viết tài liệu SRS từ PRD này
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Lưu ý
|
|
55
|
+
- Không bắt đầu code trong bước này
|
|
56
|
+
- Nếu scope quá lớn (>3 modules): đề nghị split thành nhiều PRs
|
|
57
|
+
- Commit docs trước khi chuyển sang SRS: `git commit -m "docs: prd for <feature>"`
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vsaf-doc-srs
|
|
3
|
+
description: Viết tài liệu SRS (Software Requirements Specification) từ PRD đã có. Dùng sau /vsaf-doc-prd. Theo workflow BA chuẩn với template SRS feature-level.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# VSAF Doc SRS
|
|
7
|
+
|
|
8
|
+
## Mục tiêu
|
|
9
|
+
Phân tích PRD và viết tài liệu SRS feature-level theo template chuẩn — đảm bảo truy xuất được từ PRD → Use Cases → Màn hình → Epic/Story.
|
|
10
|
+
|
|
11
|
+
**Your Role:** Business Analyst chuyên nghiệp — viết SRS theo quy trình chuẩn.
|
|
12
|
+
|
|
13
|
+
## Điều kiện tiên quyết
|
|
14
|
+
- Phải đã chạy `/vsaf-doc-prd` và có PRD được approve trước khi chạy skill này.
|
|
15
|
+
|
|
16
|
+
## Cấu hình
|
|
17
|
+
```yaml
|
|
18
|
+
outputDir: docs/project/srs
|
|
19
|
+
featureTemplate: _bmad/bmm/1-analysis/bmad-document-project/templates/srs-feature-template.md
|
|
20
|
+
systemTemplate: _bmad/bmm/1-analysis/bmad-document-project/templates/srs-system-template.md
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Các bước thực hiện
|
|
24
|
+
|
|
25
|
+
### Bước 0 — Kiểm tra đầu vào
|
|
26
|
+
|
|
27
|
+
Trước khi bắt đầu, kiểm tra xem user đã cung cấp đủ thông tin chưa:
|
|
28
|
+
|
|
29
|
+
**Yêu cầu bắt buộc:**
|
|
30
|
+
- [ ] Tài liệu PRD (file path hoặc nội dung) — thường ở `docs/project/planning-artifacts/prd-[feature].md`
|
|
31
|
+
- [ ] Figma link (URL figma.com/design/...) — nếu có
|
|
32
|
+
|
|
33
|
+
Nếu thiếu PRD, **dừng lại ngay** và yêu cầu user cung cấp:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Để viết tài liệu SRS, tôi cần bạn cung cấp:
|
|
37
|
+
|
|
38
|
+
❌ [liệt kê những gì còn thiếu]
|
|
39
|
+
|
|
40
|
+
Vui lòng cung cấp:
|
|
41
|
+
1. File PRD: đường dẫn file hoặc paste nội dung vào đây
|
|
42
|
+
2. Figma link (nếu có): URL dạng https://www.figma.com/design/...
|
|
43
|
+
3. Flow/Feature cần viết SRS (VD: FR-1, FR-2,...)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Chỉ tiếp tục khi đã có đủ PRD.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
### Bước 1 — Xác định mode: Tạo mới hay Chỉnh sửa
|
|
51
|
+
- Kiểm tra xem đã có SRS trong `docs/project/srs/` cho feature này chưa
|
|
52
|
+
- **Nếu chưa có** → Mode: CREATE
|
|
53
|
+
- **Nếu đã có** → Mode: EDIT
|
|
54
|
+
- Hỏi user: "SRS đã tồn tại. Bạn muốn tạo mới hoàn toàn hay chỉnh sửa?"
|
|
55
|
+
- Mode EDIT: dùng skill `bmad-edit-prd` để chỉnh sửa SRS đã có
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
### Bước 2 — Đọc & phân tích PRD
|
|
60
|
+
|
|
61
|
+
Đọc toàn bộ tài liệu PRD. Trích xuất và tổ chức thông tin theo cấu trúc:
|
|
62
|
+
|
|
63
|
+
**2.1 Mục tiêu dự án**
|
|
64
|
+
- Business objective, Problem statement, Success criteria
|
|
65
|
+
|
|
66
|
+
**2.2 Phạm vi (Scope)**
|
|
67
|
+
- In-scope features / Sub-FRs, Out-of-scope, Các module/màn hình chính
|
|
68
|
+
|
|
69
|
+
**2.3 Actors & Use Cases**
|
|
70
|
+
- Danh sách các actor (vai trò người dùng), User stories / use cases đã đề cập
|
|
71
|
+
|
|
72
|
+
**2.4 Business Rules**
|
|
73
|
+
- Quy tắc nghiệp vụ quan trọng, Constraints & assumptions
|
|
74
|
+
|
|
75
|
+
**2.5 Non-functional Requirements**
|
|
76
|
+
- Performance, security, scalability, v.v. (nếu có)
|
|
77
|
+
|
|
78
|
+
Sau bước này, xuất ra **"Tóm tắt PRD"** để user xác nhận trước khi sang bước 3.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
### Bước 3 — So sánh PRD với Figma (nếu có Figma)
|
|
83
|
+
|
|
84
|
+
Nếu có Figma link, dùng Figma MCP tools để đọc design:
|
|
85
|
+
1. Gọi `get_figma_data` để lấy danh sách pages/frames
|
|
86
|
+
2. Download screenshots cho từng màn hình chính
|
|
87
|
+
|
|
88
|
+
So sánh và ghi nhận:
|
|
89
|
+
|
|
90
|
+
| Hạng mục | PRD nói | Figma thiết kế | Trạng thái |
|
|
91
|
+
|---|---|---|---|
|
|
92
|
+
| [Feature/Screen] | ... | ... | ✅ Khớp / ⚠️ Khác biệt / ❓ Chưa rõ |
|
|
93
|
+
|
|
94
|
+
**Phân tích gap:**
|
|
95
|
+
- **Gap 1 — Thiếu trong Figma:** Features có trong PRD nhưng không thấy trong design
|
|
96
|
+
- **Gap 2 — Thêm trong Figma:** UI elements trong Figma nhưng không đề cập trong PRD
|
|
97
|
+
- **Gap 3 — Mâu thuẫn:** Thông tin không nhất quán giữa hai nguồn
|
|
98
|
+
|
|
99
|
+
Nếu không có Figma: ghi rõ "Chưa có Figma design — cần UX team cung cấp" tại mục 2 của SRS.
|
|
100
|
+
|
|
101
|
+
Sau bước này, xuất ra **"Báo cáo Gap Analysis"** và hỏi user có muốn clarify gap nào trước khi viết SRS không.
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
### Bước 4 — Viết tài liệu SRS theo Feature Template
|
|
106
|
+
|
|
107
|
+
Đọc template tại `_bmad/bmm/1-analysis/bmad-document-project/templates/srs-feature-template.md` và viết SRS **đúng theo cấu trúc template**, bao gồm đầy đủ 12 sections (0–11):
|
|
108
|
+
|
|
109
|
+
0. **Preamble** — Thông tin tài liệu, bảng ghi nhận thay đổi, bảng phê duyệt
|
|
110
|
+
1. **Introduction** — Mục tiêu, phạm vi, tài liệu tham chiếu
|
|
111
|
+
2. **Business Context** — Business objective, actors, use cases tổng quan
|
|
112
|
+
3. **System Overview** — High-Level Activity Diagram + Architecture
|
|
113
|
+
4. **Data Model** — Entity tables, ER diagram, Kafka Events, API Endpoints
|
|
114
|
+
5. **Functional Requirements** — Đặc tả Use Cases chi tiết. Mỗi UC gồm:
|
|
115
|
+
- **Màn hình** — Bảng chi tiết controls từng màn hình thuộc UC
|
|
116
|
+
- **Luồng nghiệp vụ** — Sequence diagram (PlantUML) + Activity diagram (PlantUML, nếu cần)
|
|
117
|
+
- Màn hình dùng chung: đặt bảng đầy đủ tại UC đầu tiên, UC sau ghi tham chiếu
|
|
118
|
+
6. **State & Behavioral Models** — State diagrams (Mermaid stateDiagram-v2), entity lifecycle
|
|
119
|
+
7. **Business Rules & Validation** — BR table + Validation Rules + Error Codes
|
|
120
|
+
8. **NFR** — Non-functional requirements đặc thù cho flow
|
|
121
|
+
9. **Constraints** — Constraints, assumptions, dependencies, transition requirements
|
|
122
|
+
10. **RTM** — Ma trận truy xuất: PRD FR → UC → Màn hình → Epic/Story → BR → AC → Test Case
|
|
123
|
+
11. **Appendix** — Figma Mapping tables, Screen List, Chức năng ảnh hưởng, Gap Analysis
|
|
124
|
+
|
|
125
|
+
**Quy tắc viết:**
|
|
126
|
+
- Viết bằng **tiếng Việt** trừ khi user yêu cầu tiếng Anh
|
|
127
|
+
- Giữ nguyên business rules từ PRD, không tự ý thay đổi logic nghiệp vụ
|
|
128
|
+
- Mỗi Use Case phải có: Precondition, Main flow, Alternative flow, Exception flow, Postcondition
|
|
129
|
+
- Activity/Flow diagrams dùng Mermaid `flowchart TD`; State diagrams dùng `stateDiagram-v2`; ER dùng `erDiagram`
|
|
130
|
+
- Nếu thông tin chưa đủ → ghi `{{Cần bổ sung}}` và liệt kê ở phần Gap Analysis
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
### Bước 5 — Validate SRS (BMAD validate)
|
|
135
|
+
- Dùng skill `bmad-validate-prd` để validate SRS vừa sinh/sửa
|
|
136
|
+
- Kiểm tra: FRs đủ rõ ràng? NFRs đo lường được? Acceptance criteria kiểm chứng được?
|
|
137
|
+
- Nếu có issues: fix ngay trong SRS, không chờ đến build
|
|
138
|
+
- Ghi nhận validation result (PASS/FAIL + findings)
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
### Bước 6 — Lưu file SRS
|
|
143
|
+
Lưu tài liệu SRS vào: `docs/project/srs/SRS-[tên-dự-án]-[FR-ID]-[tên-feature]-v1.0.md`
|
|
144
|
+
|
|
145
|
+
### Bước 7 — Output cho user
|
|
146
|
+
```
|
|
147
|
+
## SRS đã tạo/cập nhật
|
|
148
|
+
|
|
149
|
+
### File
|
|
150
|
+
- docs/project/srs/SRS-[tên-dự-án]-[FR-ID]-[tên-feature]-v1.0.md
|
|
151
|
+
- Mode: [CREATE / EDIT]
|
|
152
|
+
- Use Cases viết: [N]
|
|
153
|
+
- Validation: [PASS / FAIL — chi tiết nếu fail]
|
|
154
|
+
|
|
155
|
+
### Gaps cần confirm
|
|
156
|
+
- [Danh sách gaps quan trọng cần team confirm]
|
|
157
|
+
|
|
158
|
+
### Phần chưa hoàn thiện
|
|
159
|
+
- [Các phần SRS còn {{...}} cần bổ sung thêm]
|
|
160
|
+
|
|
161
|
+
## Next step
|
|
162
|
+
Chạy /vsaf-test docs/project/srs/SRS-[...].md để sinh testcase
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## Lưu ý
|
|
166
|
+
- Không bắt đầu code trong bước này
|
|
167
|
+
- Nếu scope quá lớn (>3 modules): đề nghị split thành nhiều PRs
|
|
168
|
+
- Commit docs: `git commit -m "docs: srs for <feature>"`
|
|
169
|
+
- Nếu mode EDIT và testcases cũ bị ảnh hưởng: cảnh báo user re-run `/vsaf-test`
|
|
@@ -6,14 +6,13 @@ description: Documentation & knowledge sync — cập nhật docs, sinh project
|
|
|
6
6
|
# VSAF Docs
|
|
7
7
|
|
|
8
8
|
## Mục tiêu
|
|
9
|
-
Đảm bảo documentation luôn cập nhật
|
|
9
|
+
Đảm bảo documentation luôn cập nhật và AI agents có đủ context.
|
|
10
10
|
|
|
11
11
|
## Input
|
|
12
12
|
`$ARGUMENTS` — scope cần document:
|
|
13
13
|
- *(không có argument)* — full documentation refresh
|
|
14
14
|
- `<module>` — document module cụ thể
|
|
15
15
|
- `context` — chỉ sinh project-context.md
|
|
16
|
-
- `wiki` — chỉ build wiki
|
|
17
16
|
|
|
18
17
|
## Khi nào dùng
|
|
19
18
|
- Sau mỗi sprint (batch update)
|
|
@@ -25,7 +24,6 @@ description: Documentation & knowledge sync — cập nhật docs, sinh project
|
|
|
25
24
|
|
|
26
25
|
### Bước 1 — Scan current state
|
|
27
26
|
- Dùng `mcp__gitnexus__query` để scan codebase hiện tại
|
|
28
|
-
- Dùng `mcp__mempalace__mempalace_search` với "decision", "architecture", "pattern"
|
|
29
27
|
- So sánh: docs hiện tại vs code hiện tại — tìm docs lạc hậu
|
|
30
28
|
|
|
31
29
|
### Bước 2 — Generate project documentation
|
|
@@ -57,18 +55,7 @@ description: Documentation & knowledge sync — cập nhật docs, sinh project
|
|
|
57
55
|
- Dùng skill `bmad-index-docs` cho mỗi folder trong `docs/`
|
|
58
56
|
- Sinh/cập nhật `index.md` — mục lục tất cả files + mô tả ngắn
|
|
59
57
|
|
|
60
|
-
### Bước 8 —
|
|
61
|
-
- Chạy `/graphify . --wiki` để build agent-crawlable wiki từ codebase
|
|
62
|
-
- Output: `graphify-out/` — index.md + article per community
|
|
63
|
-
- Wiki này giúp AI agents navigate codebase nhanh hơn
|
|
64
|
-
|
|
65
|
-
### Bước 9 — Sync to MemPalace
|
|
66
|
-
- Gọi `mcp__mempalace__mempalace_diary_write` ghi nhận:
|
|
67
|
-
- Docs nào đã cập nhật
|
|
68
|
-
- Stale docs nào đã xoá/replace
|
|
69
|
-
- New patterns/conventions đã document
|
|
70
|
-
|
|
71
|
-
### Bước 10 — Output cho user
|
|
58
|
+
### Bước 8 — Output cho user
|
|
72
59
|
```
|
|
73
60
|
## Documentation Sync Complete
|
|
74
61
|
|
|
@@ -77,16 +64,12 @@ description: Documentation & knowledge sync — cập nhật docs, sinh project
|
|
|
77
64
|
- Project context: project-context.md [created/updated]
|
|
78
65
|
- Distilled docs: [N files compressed]
|
|
79
66
|
- Doc indexes: [N index.md files]
|
|
80
|
-
- Knowledge wiki: graphify-out/ [rebuilt]
|
|
81
67
|
|
|
82
68
|
### Quality checks
|
|
83
69
|
- Prose review: PASS
|
|
84
70
|
- Structure review: PASS
|
|
85
71
|
- Stale docs found: [N — list]
|
|
86
72
|
|
|
87
|
-
### Knowledge saved
|
|
88
|
-
- MemPalace diary: ✓
|
|
89
|
-
|
|
90
73
|
### Next step
|
|
91
74
|
Documentation is current. Continue with /vsaf-plan or /vsaf-sprint.
|
|
92
75
|
```
|
|
@@ -96,4 +79,3 @@ Documentation is current. Continue with /vsaf-plan or /vsaf-sprint.
|
|
|
96
79
|
- Chạy ít nhất 1 lần mỗi sprint hoặc sau mỗi major ship
|
|
97
80
|
- Commit tất cả docs: `git commit -m "docs: sync documentation [sprint N]"`
|
|
98
81
|
- Nếu docs >1000 lines: luôn tạo distilled version
|
|
99
|
-
|
|
@@ -16,11 +16,10 @@ Xây dựng full mental model về dự án trước khi chạm vào bất kỳ
|
|
|
16
16
|
- Nếu cần drill-down symbol cụ thể: dùng `mcp__gitnexus__context` với param `name` là tên symbol đó
|
|
17
17
|
- Tóm tắt: execution flows quan trọng, symbols có nhiều dependencies nhất
|
|
18
18
|
|
|
19
|
-
### Bước 2 —
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
- Tóm tắt: các quyết định kiến trúc quan trọng team đã đưa ra
|
|
19
|
+
### Bước 2 — Đọc tài liệu dự án
|
|
20
|
+
- Đọc `docs/project/planning-artifacts/` để tìm PRD, ADR, architecture docs
|
|
21
|
+
- Đọc `docs/project/srs/` để tìm SRS đã có
|
|
22
|
+
- Tóm tắt: các quyết định kiến trúc quan trọng đã document
|
|
24
23
|
|
|
25
24
|
### Bước 3 — Output cho user
|
|
26
25
|
Trình bày tóm tắt theo format:
|
|
@@ -44,5 +43,4 @@ Trình bày tóm tắt theo format:
|
|
|
44
43
|
|
|
45
44
|
## Lưu ý
|
|
46
45
|
- KHÔNG sửa bất kỳ file nào trong bước này
|
|
47
|
-
- Nếu bộ nhớ MemPalace trống: thông báo user chạy `vsaf mine` để populate
|
|
48
46
|
- Sau khi hoàn thành: gợi ý user dùng `/vsaf-plan <feature>` để bắt đầu task
|
|
@@ -13,46 +13,37 @@ Hiểu đầy đủ yêu cầu, phân tích impact, và xác định chiến lư
|
|
|
13
13
|
|
|
14
14
|
## Các bước thực hiện
|
|
15
15
|
|
|
16
|
-
### Bước 1 —
|
|
17
|
-
- Gọi `mcp__mempalace__mempalace_search` với keyword từ `$ARGUMENTS`
|
|
18
|
-
- Tìm kiếm: past decisions, architectural patterns, previous attempts
|
|
19
|
-
- Tóm tắt: có decision nào liên quan không?
|
|
20
|
-
|
|
21
|
-
### Bước 2 — Clarify scope (BMAD analyst)
|
|
16
|
+
### Bước 1 — Clarify scope (BMAD analyst)
|
|
22
17
|
- Dùng skill `bmad-agent-analyst` để phân tích yêu cầu
|
|
23
18
|
- Xác định: FRs, NFRs, edge cases, assumptions, out-of-scope
|
|
24
19
|
- DỪNG và hỏi user nếu còn điểm chưa rõ
|
|
25
20
|
|
|
26
|
-
### Bước
|
|
21
|
+
### Bước 2 — Impact analysis (GitNexus)
|
|
27
22
|
- Dùng `mcp__gitnexus__impact` với target là module/symbol liên quan
|
|
28
23
|
- Dùng `mcp__gitnexus__query` để tìm code liên quan
|
|
29
24
|
- Báo cáo blast radius: bao nhiêu module bị ảnh hưởng, risk level
|
|
30
25
|
- Nếu risk HIGH/CRITICAL: DỪNG, báo user trước khi tiếp tục
|
|
31
26
|
|
|
32
|
-
### Bước
|
|
33
|
-
- Nếu cần trace path giữa 2 services: dùng `/graphify path ServiceA ServiceB`
|
|
34
|
-
- Xác định: integration points, shared dependencies
|
|
35
|
-
|
|
36
|
-
### Bước 5 — Architecture decision (BMAD architect)
|
|
27
|
+
### Bước 3 — Architecture decision (BMAD architect)
|
|
37
28
|
- Dùng skill `bmad-agent-architect` để đề xuất architecture approach
|
|
38
29
|
- So sánh alternatives, chọn approach phù hợp nhất
|
|
39
30
|
- **Nếu risk HIGH hoặc > 3 modules**: dùng skill `bmad-create-architecture` để tạo ADR (Architecture Decision Record) chính thức
|
|
40
31
|
- Lưu vào `docs/project/planning-artifacts/adr-[feature].md`
|
|
41
32
|
|
|
42
|
-
### Bước
|
|
33
|
+
### Bước 4 — Brainstorm (BMAD Brainstorming)
|
|
43
34
|
- Dùng skill `bmad-brainstorming` để explore alternatives và uncover hidden risks
|
|
44
35
|
- Facilitator sẽ dẫn dắt session với các kỹ thuật sáng tạo đa dạng
|
|
45
36
|
- Đặt câu hỏi: "What if...", "What could go wrong...", "What are we missing?"
|
|
46
37
|
- Mục tiêu: tối thiểu 20 ý tưởng/alternatives trước khi tổ chức lại
|
|
47
38
|
- bmad-brainstorming sẽ load config từ `_bmad/bmm/config.yaml`
|
|
48
39
|
|
|
49
|
-
### Bước
|
|
40
|
+
### Bước 5 — Challenge approach (BMAD Advanced Elicitation)
|
|
50
41
|
- Dùng skill `bmad-advanced-elicitation` để challenge approach đã chọn
|
|
51
42
|
- Chạy **pre-mortem**: "Giả sử approach này fail sau 3 tháng — vì sao?"
|
|
52
43
|
- Chạy **red team**: tìm điểm yếu, attack vectors, failure modes
|
|
53
|
-
- Nếu phát hiện risk nghiêm trọng: quay lại Bước
|
|
44
|
+
- Nếu phát hiện risk nghiêm trọng: quay lại Bước 3 để điều chỉnh approach
|
|
54
45
|
|
|
55
|
-
### Bước
|
|
46
|
+
### Bước 6 — Output cho user
|
|
56
47
|
Trình bày kết quả theo format:
|
|
57
48
|
|
|
58
49
|
```
|
|
@@ -80,7 +71,7 @@ Trình bày kết quả theo format:
|
|
|
80
71
|
[Đã tạo / Không cần (risk LOW)]
|
|
81
72
|
|
|
82
73
|
## Next step
|
|
83
|
-
Chạy /vsaf-doc để viết tài liệu
|
|
74
|
+
Chạy /vsaf-doc-prd để viết tài liệu PRD
|
|
84
75
|
```
|
|
85
76
|
|
|
86
77
|
## Lưu ý
|