@ngocsangairvds/vsaf 3.0.11 → 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,32 +9,66 @@ 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
13
- - Đã chạy `/vsaf-test` và có testcase docs
12
+ - Đã chạy `/vsaf-doc-srs` và có SRS được approve
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
 
16
16
  ## Các bước thực hiện
17
17
 
18
- ### Bước 1Search MemPalace trước khi code (bắt buộc)
19
- - Gọi `mcp__mempalace__mempalace_search` với keyword tên module/feature sắp implement
20
- - Đảm bảo không architectural decisions cũ xung đột với approach hiện tại
18
+ ### Bước 0Kiểm tra Superpowers (bắt buộc kiểm tra)
19
+ - Kiểm tra xem Superpowers plugin đã được cài trong Claude Code chưa
20
+ - Nếu **chưa cài** hiển thị:
21
+ ```
22
+ ⚠️ Superpowers chưa được cài đặt.
23
+ Superpowers giúp tăng chất lượng implement (TDD execution, plan execution, debugging, code review).
24
+ Để cài, chạy trong Claude Code:
25
+ /plugin install superpowers@claude-plugins-official
26
+ Sau đó restart Claude Code.
21
27
 
22
- ### Bước 2 Đọc SRS + testcase
28
+ Tiếp tục build không Superpowers (fallback mode).
29
+ ```
30
+ - Nếu **đã cài** → ghi nhận `HAS_SUPERPOWERS = true`, hiển thị:
31
+ ```
32
+ ✓ Superpowers available — sẽ sử dụng: execute-plan, test-driven-development, code-review
33
+ ```
34
+
35
+ ### Bước 1 — Đọc SRS + testcase
23
36
  - Đọc file SRS trong `docs/project/srs/`
24
37
  - Đọc file testcase trong `docs/project/testcases/`
25
38
  - Xác nhận mapping FR/NFR -> testcase trước khi bắt đầu
26
39
 
40
+ ### Bước 2 — Sinh plan từ SRS (có/không Superpowers)
41
+ - **Nếu HAS_SUPERPOWERS**: dùng `superpowers:write-plan` để sinh atomic task list từ SRS + testcase
42
+ - **Nếu không**: tự tạo task list thủ công từ FR/NFR → testcase mapping
43
+ - Mỗi task phải có verification step rõ ràng
44
+
27
45
  ### Bước 3 — Implement từng task (TDD)
28
- Với mỗi nhóm testcase:
29
- 1. **RED**: Viết test trước, chạy test phải fail
30
- 2. **GREEN**: Viết code tối thiểu để test pass
31
- 3. **REFACTOR**: Clean up code, giữ test vẫn pass
32
- 4. Chạy `mcp__gitnexus__detect_changes` để verify chỉ đúng files thay đổi
33
- 5. Commit: `git commit -m "<type>: <task description>"`
34
-
35
- ### Bước 4 Xử khi fail
36
- - Fail 1-2 lần: thử approach khác
46
+ - **Nếu HAS_SUPERPOWERS**: dùng `superpowers:execute-plan` — tự động chạy TDD cycles (RED → GREEN → REFACTOR) theo plan
47
+ - Superpowers sẽ gọi `superpowers:test-driven-development` cho mỗi task
48
+ - Nếu plan lớn (20+ tasks): dùng `superpowers:subagent-driven-development` để dispatch song song
49
+ - **Nếu không**: implement thủ công theo TDD:
50
+ 1. **RED**: Viết test trước, chạy test phải fail
51
+ 2. **GREEN**: Viết code tối thiểu để test pass
52
+ 3. **REFACTOR**: Clean up code, giữ test vẫn pass
53
+ - Sau mỗi task: chạy `mcp__gitnexus__detect_changes` để verify chỉ đúng files thay đổi
54
+ - Commit: `git commit -m "<type>: <task description>"`
55
+
56
+ ### Bước 3.5 — Checkpoint review (mỗi 3-5 tasks)
57
+ - Sau mỗi 3-5 tasks hoàn thành: dùng skill `bmad-checkpoint-preview`
58
+ - Mục đích: human-in-the-loop review — "walk me through changes so far"
59
+ - Checkpoint sẽ:
60
+ - Tóm tắt: đã làm gì, files nào thay đổi, tests status
61
+ - Highlight: điểm cần chú ý, potential issues
62
+ - Hỏi user: tiếp tục / điều chỉnh / dừng?
63
+ - **Bỏ qua checkpoint nếu**: plan < 5 tasks tổng (chỉ checkpoint cuối)
64
+
65
+ ### Bước 4 — Xử lý khi fail hoặc scope drift
66
+ - **Nếu HAS_SUPERPOWERS**: dùng `superpowers:systematic-debugging` — bắt buộc hypothesis → experiment → conclusion
67
+ - **Nếu không**: thử approach khác thủ công
37
68
  - Fail 3 lần cùng 1 task: DỪNG, báo user, quay lại `/vsaf-plan`
69
+ - **Nếu phát hiện scope drift** (feature cần thay đổi lớn so với SRS):
70
+ - Dùng skill `bmad-correct-course` để đánh giá impact + đề xuất điều chỉnh
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
38
72
 
39
73
  ### Bước 5 — Output sau mỗi task
40
74
  ```
@@ -42,6 +76,8 @@ Với mỗi nhóm testcase:
42
76
  - Files changed: [danh sách]
43
77
  - Tests: [X passed]
44
78
  - Commit: [hash]
79
+ - Superpowers: [used/not available]
80
+ - Checkpoint: [due at task N+X / completed]
45
81
  ```
46
82
 
47
83
  ## Lưu ý
@@ -0,0 +1,92 @@
1
+ ---
2
+ name: vsaf-discover
3
+ description: Product discovery — nghiên cứu domain, market, feasibility trước khi plan feature. Dùng khi bắt đầu dự án mới hoặc explore hướng phát triển sản phẩm.
4
+ ---
5
+
6
+ # VSAF Discover
7
+
8
+ ## Mục tiêu
9
+ Hiểu rõ domain, market, user needs, và technical feasibility trước khi commit vào bất kỳ feature nào. Đảm bảo build đúng thứ.
10
+
11
+ ## Input
12
+ `$ARGUMENTS` — mô tả product/domain cần khám phá (ví dụ: "nền tảng quản lý đơn hàng cho SME")
13
+
14
+ ## Khi nào dùng
15
+ - Bắt đầu dự án mới (chưa có PRD/SRS)
16
+ - Explore hướng phát triển sản phẩm mới
17
+ - Trước khi chạy `/vsaf-plan` cho feature lớn mà chưa hiểu rõ domain
18
+
19
+ ## Các bước thực hiện
20
+
21
+ ### Bước 1 — Domain Research
22
+ - Dùng skill `bmad-domain-research` để deep dive domain/industry
23
+ - Output: terminology, business rules, regulatory constraints, domain patterns
24
+ - Lưu vào `docs/project/planning-artifacts/domain-research-[topic].md`
25
+
26
+ ### Bước 2 — Market Research
27
+ - Dùng skill `bmad-market-research` để phân tích:
28
+ - Competition landscape: ai đang làm gì, strengths/weaknesses
29
+ - Customer needs: pain points, underserved segments
30
+ - Market trends: hướng đi nào đang tăng trưởng
31
+ - Lưu vào `docs/project/planning-artifacts/market-research-[topic].md`
32
+
33
+ ### Bước 3 — Technical Feasibility
34
+ - Dùng skill `bmad-technical-research` để đánh giá:
35
+ - Tech stack options + trade-offs
36
+ - Integration constraints
37
+ - Performance/scale requirements
38
+ - Build vs buy decisions
39
+ - Lưu vào `docs/project/planning-artifacts/tech-research-[topic].md`
40
+
41
+ ### Bước 4 — Product Brief
42
+ - Dùng skill `bmad-product-brief` để tổng hợp findings thành product brief
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ờ
44
+ - Lưu vào `docs/project/planning-artifacts/product-brief-[name].md`
45
+
46
+ ### Bước 5 — PRFAQ Challenge (Working Backwards)
47
+ - Dùng skill `bmad-prfaq` để stress-test product concept
48
+ - Viết press release giả lập: nếu product thành công, bài báo sẽ nói gì?
49
+ - Viết FAQ: internal FAQ (team hỏi gì) + external FAQ (customer hỏi gì)
50
+ - Mục đích: phát hiện concept yếu **trước khi** đầu tư thời gian code
51
+
52
+ ### Bước 6 — Tạo PRD (Product Requirements Document)
53
+ - Dùng skill `bmad-agent-pm` (John) để dẫn dắt quá trình tạo PRD
54
+ - John sẽ gọi skill `bmad-create-prd` để sinh PRD chuẩn từ product brief
55
+ - PRD bao gồm: vision, goals, FRs, NFRs, epics, user stories, success metrics
56
+ - Sau khi tạo xong: dùng skill `bmad-validate-prd` để validate PRD đạt chuẩn
57
+ - Nếu validate FAIL: John sẽ dùng `bmad-edit-prd` để fix issues ngay
58
+ - Lưu vào `docs/project/planning-artifacts/prd-[name].md`
59
+
60
+ ### Bước 7 — Multi-agent Review (Party Mode)
61
+ - Dùng skill `bmad-party-mode` để tổ chức roundtable:
62
+ - PM (John) trình bày PRD
63
+ - Analyst (Mary) challenge requirements
64
+ - Architect (Winston) challenge feasibility
65
+ - Ghi nhận consensus và open questions
66
+
67
+ ### Bước 8 — Output cho user
68
+ ```
69
+ ## Discovery Complete: [product/domain]
70
+
71
+ ### Research artifacts
72
+ - Domain research: docs/project/planning-artifacts/domain-research-[topic].md
73
+ - Market research: docs/project/planning-artifacts/market-research-[topic].md
74
+ - Tech research: docs/project/planning-artifacts/tech-research-[topic].md
75
+ - Product brief: docs/project/planning-artifacts/product-brief-[name].md
76
+ - PRD: docs/project/planning-artifacts/prd-[name].md
77
+
78
+ ### Key findings
79
+ - [3-5 bullet points tóm tắt]
80
+
81
+ ### Open questions
82
+ - [Những gì cần validate thêm]
83
+
84
+ ### Recommended next steps
85
+ - Chạy /vsaf-sprint để break PRD thành epics + stories
86
+ - Hoặc: chạy /vsaf-plan <first-feature> để bắt đầu feature đầu tiên
87
+ ```
88
+
89
+ ## Lưu ý
90
+ - Flow này **không sinh code** — chỉ research + document
91
+ - Nếu domain quá rộng: đề nghị focus vào 1 vertical/segment trước
92
+ - Commit docs sau mỗi bước: `git commit -m "docs: discovery [topic]"`
@@ -1,53 +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
15
-
16
- ### Bước 1 — Search MemPalace
17
- - Gọi `mcp__mempalace__mempalace_search` với keyword từ feature hiện tại
18
- - Kiểm tra có decision cũ nào cần reference không?
19
-
20
- ### Bước 2 — Sinh SRS
21
- - Viết tài liệu SRS từ output `/vsaf-plan`
22
- - SRS phải bao gồm: scope, FRs, NFRs, assumptions, out-of-scope, acceptance criteria
23
- - Thêm traceability ID cho FR/NFR để map sang testcase
24
- - Lưu vào `docs/project/srs/[feature].md`
25
-
26
- ### Bước 3 — Chuẩn hoá implement notes
27
- - Tạo implement notes bám SRS: module ảnh hưởng, ràng buộc kỹ thuật, rollout notes
28
- - Không viết code trong bước này
29
-
30
- ### Bước 4 — Lưu architecture decision (MemPalace)
31
- - Gọi `mcp__mempalace__mempalace_add_drawer` để lưu decision quan trọng
32
- - Nội dung: approach được chọn, lý do, alternatives đã bỏ qua
33
-
34
- ### Bước 5 — Output cho user
35
- Thông báo các file đã tạo:
13
+ ## Quy trình mới
36
14
 
37
15
  ```
38
- ## Tài liệu đã tạo
39
-
40
- ### SRS
41
- - docs/project/srs/[feature].md
42
-
43
- ### Architecture Decision
44
- - Đã lưu vào MemPalace
45
-
46
- ## Next step
47
- Chạy /vsaf-test docs/project/srs/[feature].md để sinh testcase
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
48
20
  ```
49
21
 
50
- ## Lưu ý
51
- - Không bắt đầu code trong bước này
52
- - Nếu scope quá lớn (>3 modules): đề nghị split thành nhiều PRs
53
- - Commit docs trước khi chuyển sang build: `git commit -m "docs: plan for <feature>"`
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`
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: vsaf-docs
3
+ description: Documentation & knowledge sync — cập nhật docs, sinh project context, build wiki. Dùng sau /vsaf-ship hoặc cuối sprint để đảm bảo knowledge không bị mất.
4
+ ---
5
+
6
+ # VSAF Docs
7
+
8
+ ## Mục tiêu
9
+ Đảm bảo documentation luôn cập nhật và AI agents có đủ context.
10
+
11
+ ## Input
12
+ `$ARGUMENTS` — scope cần document:
13
+ - *(không có argument)* — full documentation refresh
14
+ - `<module>` — document module cụ thể
15
+ - `context` — chỉ sinh project-context.md
16
+
17
+ ## Khi nào dùng
18
+ - Sau mỗi sprint (batch update)
19
+ - Sau ship feature lớn (>3 modules thay đổi)
20
+ - Khi onboard team member mới
21
+ - Khi AI agent gặp khó hiểu codebase
22
+
23
+ ## Các bước thực hiện
24
+
25
+ ### Bước 1 — Scan current state
26
+ - Dùng `mcp__gitnexus__query` để scan codebase hiện tại
27
+ - So sánh: docs hiện tại vs code hiện tại — tìm docs lạc hậu
28
+
29
+ ### Bước 2 — Generate project documentation
30
+ - Dùng skill `bmad-document-project` để sinh/cập nhật project docs
31
+ - Output: mô tả architecture, module breakdown, API endpoints, data flows
32
+ - Lưu vào `docs/project/`
33
+
34
+ ### Bước 3 — Generate project context for AI
35
+ - Dùng skill `bmad-generate-project-context` để tạo `project-context.md`
36
+ - File này = instructions cho AI agents: conventions, patterns, do/don't
37
+ - Lưu tại root project
38
+
39
+ ### Bước 4 — Tech writing review
40
+ - Dùng skill `bmad-agent-tech-writer` (Paige) để review docs vừa sinh
41
+ - Paige sẽ: fix unclear sections, add missing context, ensure consistency
42
+
43
+ ### Bước 5 — Editorial polish
44
+ - Dùng skill `bmad-editorial-review-prose` — clean up writing quality
45
+ - Fix: passive voice, jargon, ambiguity, grammar
46
+ - Dùng skill `bmad-editorial-review-structure` — improve doc organization
47
+ - Fix: duplicated content, poor ordering, missing sections
48
+
49
+ ### Bước 6 — Distill for LLM consumption
50
+ - Dùng skill `bmad-distillator` với docs dài (>500 lines)
51
+ - Tạo phiên bản compressed — giữ nguyên thông tin, giảm token count
52
+ - Lưu distilled version cạnh original: `[name].distilled.md`
53
+
54
+ ### Bước 7 — Index all docs
55
+ - Dùng skill `bmad-index-docs` cho mỗi folder trong `docs/`
56
+ - Sinh/cập nhật `index.md` — mục lục tất cả files + mô tả ngắn
57
+
58
+ ### Bước 8 — Output cho user
59
+ ```
60
+ ## Documentation Sync Complete
61
+
62
+ ### Updated
63
+ - Project docs: [N files updated]
64
+ - Project context: project-context.md [created/updated]
65
+ - Distilled docs: [N files compressed]
66
+ - Doc indexes: [N index.md files]
67
+
68
+ ### Quality checks
69
+ - Prose review: PASS
70
+ - Structure review: PASS
71
+ - Stale docs found: [N — list]
72
+
73
+ ### Next step
74
+ Documentation is current. Continue with /vsaf-plan or /vsaf-sprint.
75
+ ```
76
+
77
+ ## Lưu ý
78
+ - Flow này **không sửa code** — chỉ documentation
79
+ - Chạy ít nhất 1 lần mỗi sprint hoặc sau mỗi major ship
80
+ - Commit tất cả docs: `git commit -m "docs: sync documentation [sprint N]"`
81
+ - Nếu docs >1000 lines: luôn tạo distilled version
@@ -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,38 +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
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
31
+ - Lưu vào `docs/project/planning-artifacts/adr-[feature].md`
39
32
 
40
- ### Bước 6 — Brainstorm (BMAD Brainstorming)
33
+ ### Bước 4 — Brainstorm (BMAD Brainstorming)
41
34
  - Dùng skill `bmad-brainstorming` để explore alternatives và uncover hidden risks
42
35
  - Facilitator sẽ dẫn dắt session với các kỹ thuật sáng tạo đa dạng
43
36
  - Đặt câu hỏi: "What if...", "What could go wrong...", "What are we missing?"
44
37
  - Mục tiêu: tối thiểu 20 ý tưởng/alternatives trước khi tổ chức lại
45
38
  - bmad-brainstorming sẽ load config từ `_bmad/bmm/config.yaml`
46
39
 
47
- ### Bước 7Output cho user
40
+ ### Bước 5Challenge approach (BMAD Advanced Elicitation)
41
+ - Dùng skill `bmad-advanced-elicitation` để challenge approach đã chọn
42
+ - Chạy **pre-mortem**: "Giả sử approach này fail sau 3 tháng — vì sao?"
43
+ - Chạy **red team**: tìm điểm yếu, attack vectors, failure modes
44
+ - Nếu phát hiện risk nghiêm trọng: quay lại Bước 3 để điều chỉnh approach
45
+
46
+ ### Bước 6 — Output cho user
48
47
  Trình bày kết quả theo format:
49
48
 
50
49
  ```
@@ -62,11 +61,17 @@ Trình bày kết quả theo format:
62
61
  ## Approach được chọn
63
62
  [Mô tả architecture approach]
64
63
 
64
+ ## Pre-mortem findings
65
+ [Những risk đã identify và mitigation plan]
66
+
65
67
  ## Alternatives đã xem xét
66
68
  [Tại sao không chọn]
67
69
 
70
+ ## ADR
71
+ [Đã tạo / Không cần (risk LOW)]
72
+
68
73
  ## Next step
69
- Chạy /vsaf-doc để viết tài liệu plan
74
+ Chạy /vsaf-doc-prd để viết tài liệu PRD
70
75
  ```
71
76
 
72
77
  ## Lưu ý