@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.
@@ -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. Tự động search MemPalace trước khi code.
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 — Search MemPalace trước khi code (bắt buộc)
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 3 — Sinh plan từ SRS (có/không Superpowers)
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 4 — Implement từng task (TDD)
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 4.5 — Checkpoint review (mỗi 3-5 tasks)
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 5 — Xử lý khi fail hoặc scope drift
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 6 — Output sau mỗi task
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 — Search MemPalace
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 3 — Market Research
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 4 — Technical Feasibility
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 5 — Product Brief
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 6 — PRFAQ Challenge (Working Backwards)
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 7 — Tạo PRD (Product Requirements Document)
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 8 — Multi-agent Review (Party Mode)
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 9Lưu insights vào MemPalace
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 8Output 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: Viết tài liệu plan cho feature đã được phân tích. Dùng sau /vsaf-plan, khi đã có scope và approach rõ ràng, cần chuyển thành tài liệu có cấu trúc với task list atomic.
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
- ## Mục tiêu
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
- ## Điều kiện tiên quyết
12
- Phải đã chạy `/vsaf-plan` output trước khi chạy skill này.
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
- ## Các bước thực hiện
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
- ## Tài liệu đã tạo/cập nhật
60
-
61
- ### SRS
62
- - docs/project/srs/[feature].md
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
- ## Lưu ý
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, AI agents có đủ context, và knowledge không bị mất giữa các session/sprint.
9
+ Đảm bảo documentation luôn cập nhật 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 — Build knowledge graph wiki
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 — Decisions (MemPalace)
20
- - Gọi `mcp__mempalace__mempalace_search` với query "architecture"
21
- - Gọi `mcp__mempalace__mempalace_search` với query "decision"
22
- - Gọi `mcp__mempalace__mempalace_search` với query "pattern"
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 — Search MemPalace (bắt buộc)
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 3 — Impact analysis (GitNexus)
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 4Trace dependencies (Graphify)
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 3Architecture 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 6 — Brainstorm (BMAD Brainstorming)
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 7 — Challenge approach (BMAD Advanced Elicitation)
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 5 để điều chỉnh approach
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 8 — Output cho user
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 plan
74
+ Chạy /vsaf-doc-prd để viết tài liệu PRD
84
75
  ```
85
76
 
86
77
  ## Lưu ý