@ngocsangairvds/vsaf 4.1.25 → 4.1.26

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.
@@ -0,0 +1,430 @@
1
+ # Software Requirements Specification (SRS)
2
+ ## {{TÊN HỆ THỐNG}}
3
+
4
+ | Thông tin | Chi tiết |
5
+ |---|---|
6
+ | **Dự án** | {{Tên dự án đầy đủ}} |
7
+ | **Phiên bản** | {{X.Y}} |
8
+ | **Trạng thái** | Draft |
9
+ | **Ngày tạo** | {{YYYY-MM-DD}} |
10
+ | **Người soạn** | {{Tên / Team}} |
11
+ | **Nguồn** | {{Danh sách tài liệu nguồn: PRD, Architecture, BRD, Epics,...}} |
12
+
13
+ ### Lịch sử phiên bản
14
+
15
+ | Phiên bản | Ngày | Người thực hiện | Nội dung thay đổi |
16
+ |---|---|---|---|
17
+ | {{X.Y}} | {{YYYY-MM-DD}} | {{Tên}} | {{Mô tả thay đổi}} |
18
+
19
+ ### Bảng phê duyệt
20
+
21
+ | Vai trò | Họ tên | Chữ ký | Ngày |
22
+ |---|---|---|---|
23
+ | BA Lead | | | |
24
+ | Product Owner | | | |
25
+ | CTO / Tech Lead | | | |
26
+ | Legal / Compliance | | | |
27
+ | UX Lead | | | |
28
+
29
+ ---
30
+
31
+ ## 1. Giới thiệu
32
+
33
+ ### 1.1 Mục đích tài liệu
34
+
35
+ {{Mô tả mục đích SRS — tài liệu này phục vụ ai, dùng để làm gì}}
36
+
37
+ Tài liệu phục vụ:
38
+ - Làm cơ sở cho thiết kế kỹ thuật (Architecture, SDD)
39
+ - Cơ sở viết test plan và test cases
40
+ - Xác nhận scope và chức năng với stakeholders
41
+ - {{Thêm mục đích khác nếu cần}}
42
+
43
+ ### 1.2 Đối tượng đọc
44
+
45
+ | Đối tượng | Mục đích sử dụng |
46
+ |---|---|
47
+ | BA Team | Tài liệu gốc để phát triển và kiểm soát thay đổi |
48
+ | Dev Team | Hiểu yêu cầu để thiết kế và lập trình |
49
+ | Test Lead | Cơ sở viết test plan và test case |
50
+ | Product Owner | Xác nhận scope, phân kỳ |
51
+ | {{Thêm đối tượng khác}} | {{Mục đích}} |
52
+
53
+ ### 1.3 Phạm vi hệ thống
54
+
55
+ **In-scope (MVP — Phase 1):**
56
+ - {{Module/Feature 1}} (FR range)
57
+ - {{Module/Feature 2}} (FR range)
58
+ - ...
59
+
60
+ **Out-of-scope (Phase 2/3):**
61
+ - {{Feature}} — Phase X
62
+ - ...
63
+
64
+ ### 1.4 Định nghĩa & Từ viết tắt
65
+
66
+ | Thuật ngữ / Viết tắt | Giải thích |
67
+ |---|---|
68
+ | SRS | Software Requirements Specification |
69
+ | UC | Use Case |
70
+ | FR | Functional Requirement |
71
+ | NFR | Non-Functional Requirement |
72
+ | BR | Business Rule |
73
+ | RTM | Requirements Traceability Matrix |
74
+ | {{Thêm thuật ngữ domain}} | {{Giải thích}} |
75
+
76
+ ### 1.5 Tài liệu tham chiếu
77
+
78
+ | Tài liệu | Phiên bản | Vị trí |
79
+ |---|---|---|
80
+ | {{Tên tài liệu}} | {{vX.Y}} | {{Đường dẫn}} |
81
+ | ... | | |
82
+
83
+ ---
84
+
85
+ ## 2. Tổng quan hệ thống
86
+
87
+ ### 2.1 Mô tả sản phẩm
88
+
89
+ {{Mô tả tổng quan hệ thống: giải quyết vấn đề gì, mô hình hoạt động, MVP scope}}
90
+
91
+ ### 2.2 Sơ đồ ngữ cảnh hệ thống (System Context Diagram)
92
+
93
+ ```mermaid
94
+ graph LR
95
+ actor1([Actor 1]) --> system[Hệ thống]
96
+ actor2([Actor 2]) --> system
97
+ system --> ext1[External System 1]
98
+ system --> ext2[External System 2]
99
+ ```
100
+
101
+ ### 2.3 Môi trường vận hành
102
+
103
+ | Hạng mục | Chi tiết |
104
+ |---|---|
105
+ | Nền tảng | {{Web / Mobile / WebView / API}} |
106
+ | Trình duyệt hỗ trợ | {{Chrome X+, Safari X+,...}} |
107
+ | Hạ tầng | {{Cloud provider, deployment model}} |
108
+ | Backend | {{Tech stack}} |
109
+ | Database | {{DB technologies}} |
110
+ | Message Broker | {{Nếu có}} |
111
+ | API Gateway | {{Nếu có}} |
112
+ | Auth | {{Auth solution}} |
113
+
114
+ ### 2.4 Actors và đặc điểm người dùng
115
+
116
+ | Actor | Mô tả | Tần suất | Kênh | Mức kỹ thuật |
117
+ |---|---|---|---|---|
118
+ | **{{Persona 1}}** | {{Mô tả}} | {{Tần suất}} | {{Kênh}} | {{Mức}} |
119
+ | **{{Persona 2}}** | {{Mô tả}} | {{Tần suất}} | {{Kênh}} | {{Mức}} |
120
+
121
+ ### 2.5 Module Map
122
+
123
+ ```mermaid
124
+ graph LR
125
+ actor1([Actor]) --> m1[Module 1]
126
+ actor1 --> m2[Module 2]
127
+ actor2([Actor 2]) --> m3[Module 3]
128
+ ```
129
+
130
+ | Module | Flows | FRs | Priority |
131
+ |---|---|---|---|
132
+ | **{{M1: Tên module}}** | Flow XX | FR range | Must Have / Should Have |
133
+ | **{{M2: Tên module}}** | Flow XX | FR range | Must Have / Should Have |
134
+
135
+ ### 2.6 Kiến trúc tích hợp
136
+
137
+ | Hệ thống bên ngoài | Loại | Mục đích | Giao thức | Chiều | SLA |
138
+ |---|---|---|---|---|---|
139
+ | {{Tên hệ thống}} | Partner / Third-party | {{Mục đích}} | {{REST/SOAP/File}} | Inbound / Outbound / Bidirectional | {{SLA}} |
140
+
141
+ ### 2.7 Giả định và phụ thuộc cấp hệ thống
142
+
143
+ **Giả định:**
144
+ - A1: {{Giả định 1}}
145
+ - A2: {{Giả định 2}}
146
+
147
+ **Phụ thuộc:**
148
+ - D1: {{Phụ thuộc 1 — hậu quả nếu không có}}
149
+ - D2: {{Phụ thuộc 2 — hậu quả nếu không có}}
150
+
151
+ ---
152
+
153
+ ## 3. Yêu cầu chức năng (Functional Requirements)
154
+
155
+ > **ID scheme:** `UC-[MODULE]-[NNN]` | **Business Rule:** `BR-[NNN]` | **Thông báo:** `MSG-[NNN]`
156
+
157
+ ### 3.X Module X — {{Tên Module}} (Flow XX)
158
+
159
+ > **Tài liệu chi tiết:** Xem `srs/SRS-{{code}}-FlowXX-vX.Y.md` (nếu có SRS feature-level riêng)
160
+
161
+ **Tóm tắt UCs:**
162
+
163
+ | UC ID | Tên | Actor | Priority | FRs |
164
+ |---|---|---|---|---|
165
+ | UC-MX-001 | {{Tên UC}} | {{Actor}} | Must Have | {{FR range}} |
166
+
167
+ ---
168
+
169
+ #### UC-MX-001: {{Tên Use Case}}
170
+
171
+ | Thông tin | Chi tiết |
172
+ |---|---|
173
+ | **ID** | UC-MX-001 |
174
+ | **Tên** | {{Tên UC}} |
175
+ | **Mô tả** | {{Mô tả ngắn gọn}} |
176
+ | **Ưu tiên** | Must Have / Should Have / Could Have |
177
+ | **Trạng thái** | Draft |
178
+ | **Nguồn** | {{PRD vX FR range}} |
179
+ | **Actor** | {{Actor chính}} |
180
+ | **Kênh** | {{Kênh sử dụng}} |
181
+ | **Đường dẫn chức năng** | {{Navigation path}} |
182
+ | **Trigger** | {{Sự kiện kích hoạt}} |
183
+ | **Tần suất sử dụng** | {{Tần suất}} |
184
+ | **Điều kiện tiên quyết** | {{Preconditions}} |
185
+
186
+ **Luồng chính (Main Flow):**
187
+ 1. {{Bước 1}}
188
+ 2. {{Bước 2}}
189
+ 3. ...
190
+
191
+ > Khi UC ≥5 bước hoặc ≥2 lần rẽ nhánh, **bắt buộc** kèm sequence diagram và/hoặc activity diagram (PlantUML). Xem mẫu trong `srs-feature-template.md` §3.1, §3.2.
192
+
193
+ **Luồng thay thế:**
194
+ - **Alt-1 — {{Tên}}:** {{Mô tả}}
195
+ - **Alt-2 — {{Tên}}:** {{Mô tả}}
196
+
197
+ **Luồng ngoại lệ:**
198
+ - **Exc-1 — {{Tên}}:** {{Mô tả}}
199
+
200
+ **Hậu điều kiện:**
201
+ - Thành công: {{Kết quả khi thành công}}
202
+ - Thất bại: {{Kết quả khi thất bại}}
203
+
204
+ **Yêu cầu dữ liệu:**
205
+
206
+ | Trường | Kiểu | Bắt buộc | Validation | Ghi chú |
207
+ |---|---|---|---|---|
208
+ | {{field_name}} | {{String/Integer/Enum/Date/...}} | Có/Không | {{Rule}} | {{Ghi chú}} |
209
+
210
+ **Business Rules:**
211
+
212
+ | Mã | Nội dung | Tham chiếu |
213
+ |---|---|---|
214
+ | BR-XXX | {{Nội dung rule}} | {{PRD/FR/NFR reference}} |
215
+
216
+ **Các thông báo hệ thống:**
217
+
218
+ | Mã | Loại | Nội dung | Điều kiện |
219
+ |---|---|---|---|
220
+ | MSG-XXX | Success/Error/Info/Push | {{Nội dung thông báo}} | {{Điều kiện hiển thị}} |
221
+
222
+ **Phương pháp kiểm thử:** {{Manual / API test / E2E automation / Integration test / Load test}}
223
+
224
+ ---
225
+
226
+ > **Lặp lại section 3.X cho mỗi Module. Lặp lại UC block cho mỗi Use Case trong module.**
227
+
228
+ ---
229
+
230
+ ## 4. Yêu cầu phi chức năng (Non-Functional Requirements)
231
+
232
+ ### 4.1 Hiệu năng (Performance)
233
+
234
+ | ID | Yêu cầu | Tiêu chí chấp nhận |
235
+ |---|---|---|
236
+ | NFR-PERF-001 | {{Yêu cầu}} | {{p95 / p99 / SLA}} |
237
+
238
+ ### 4.2 Bảo mật (Security)
239
+
240
+ | ID | Yêu cầu | Tiêu chí chấp nhận |
241
+ |---|---|---|
242
+ | NFR-SEC-001 | {{Yêu cầu}} | {{Tiêu chí}} |
243
+
244
+ ### 4.3 Khả dụng & Độ tin cậy (Availability)
245
+
246
+ | ID | Yêu cầu | Tiêu chí chấp nhận |
247
+ |---|---|---|
248
+ | NFR-AVAIL-001 | {{Yêu cầu}} | {{% uptime}} |
249
+ | NFR-REL-001 | RPO | {{< X minutes}} |
250
+ | NFR-REL-002 | RTO | {{< X hours}} |
251
+
252
+ ### 4.4 Khả dụng với người dùng (Usability)
253
+
254
+ | ID | Yêu cầu | Tiêu chí chấp nhận |
255
+ |---|---|---|
256
+ | NFR-USAB-001 | {{Accessibility — WCAG level}} | {{VD: WCAG 2.1 Level AA cho contrast, font size}} |
257
+ | NFR-USAB-002 | {{Learnability — thời gian onboarding}} | {{VD: User hoàn thành task chính trong ≤X phút lần đầu}} |
258
+ | NFR-USAB-003 | {{Error recovery — khả năng phục hồi}} | {{VD: Mọi lỗi có hướng dẫn sửa, undo trong ≤X bước}} |
259
+ | NFR-USAB-004 | {{Đa ngôn ngữ / Localization}} | {{VD: Hỗ trợ vi-VN, en-US}} |
260
+
261
+ ### 4.5 Khả năng mở rộng (Scalability)
262
+
263
+ | ID | Yêu cầu | MVP | Year 1 |
264
+ |---|---|---|---|
265
+ | NFR-SCALE-001 | {{Yêu cầu}} | {{MVP target}} | {{Year 1 target}} |
266
+
267
+ ### 4.7 Tuân thủ quy định (Compliance)
268
+
269
+ | ID | Yêu cầu | Quy định | Tiêu chí |
270
+ |---|---|---|---|
271
+ | NFR-COMP-001 | {{Yêu cầu}} | {{Tên quy định}} | {{Tiêu chí}} |
272
+
273
+ ### 4.8 Audit & Ghi log
274
+
275
+ | ID | Yêu cầu | Tiêu chí |
276
+ |---|---|---|
277
+ | NFR-AUDIT-001 | {{Scope}} | {{Chi tiết}} |
278
+ | NFR-AUDIT-002 | Retention | {{>= X years}} |
279
+
280
+ ### 4.9 Monitoring & Alerting
281
+
282
+ | ID | Yêu cầu | Tiêu chí |
283
+ |---|---|---|
284
+ | NFR-MON-001 | {{Dashboard / metric}} | {{Chi tiết}} |
285
+
286
+ ### 4.10 Khả năng bảo trì (Maintainability)
287
+
288
+ | ID | Yêu cầu | Tiêu chí chấp nhận |
289
+ |---|---|---|
290
+ | NFR-MAINT-001 | {{Code quality / test coverage}} | {{VD: Unit test coverage ≥X%, SonarQube quality gate pass}} |
291
+ | NFR-MAINT-002 | {{Documentation}} | {{VD: API docs auto-generated (OpenAPI 3.x), architecture docs up-to-date}} |
292
+ | NFR-MAINT-003 | {{Modular design}} | {{VD: Microservices loosely coupled, thay thế 1 service không ảnh hưởng service khác}} |
293
+
294
+ ### 4.11 Khả năng di chuyển (Portability)
295
+
296
+ | ID | Yêu cầu | Tiêu chí chấp nhận |
297
+ |---|---|---|
298
+ | NFR-PORT-001 | {{Platform independence}} | {{VD: Containerized (Docker/K8s), không vendor-locked}} |
299
+ | NFR-PORT-002 | {{Database portability}} | {{VD: Dùng standard SQL, tránh vendor-specific extensions}} |
300
+ | NFR-PORT-003 | {{Multi-channel support}} | {{VD: API-first, hỗ trợ embed vào host app khác ngoài channel hiện tại}} |
301
+
302
+ ---
303
+
304
+ ## 5. Ràng buộc, Giả định & Phụ thuộc
305
+
306
+ ### 5.1 Ràng buộc kỹ thuật
307
+
308
+ - {{Ràng buộc tech stack}}
309
+ - {{Ràng buộc deployment}}
310
+ - {{Ràng buộc infra}}
311
+
312
+ ### 5.2 Ràng buộc quy định pháp lý
313
+
314
+ - {{Ràng buộc pháp lý 1}}
315
+ - {{Ràng buộc pháp lý 2}}
316
+
317
+ ### 5.3 Yêu cầu chuyển đổi (Transition Requirements)
318
+
319
+ > *(ISO 29148 §6.4 + BABOK v3 §7.4.3 — bắt buộc khi hệ thống thay thế/migrate từ hệ thống cũ)*
320
+
321
+ | # | Yêu cầu | Mô tả | Owner | Timeline |
322
+ |---|---|---|---|---|
323
+ | TR-001 | {{Data migration}} | {{VD: Migrate X records từ hệ thống cũ, mapping rules, validation}} | {{Team}} | {{Sprint/Phase}} |
324
+ | TR-002 | {{Parallel-run}} | {{VD: Chạy song song old/new system trong X tuần, so sánh output}} | {{Team}} | {{Period}} |
325
+ | TR-003 | {{Rollback plan}} | {{VD: Nếu migration fail, rollback trong ≤X giờ, data intact}} | {{Team}} | {{Trigger}} |
326
+ | TR-004 | {{User training / communication}} | {{VD: Training cho X users trước go-live, hướng dẫn sử dụng}} | {{Team}} | {{Before go-live}} |
327
+
328
+ > Nếu không có migration/chuyển đổi, ghi rõ: "Không áp dụng — hệ thống mới hoàn toàn."
329
+
330
+ ### 5.4 Rủi ro ảnh hưởng đến yêu cầu
331
+
332
+ | Rủi ro | Mức độ | Ảnh hưởng | Biện pháp |
333
+ |---|---|---|---|
334
+ | {{Rủi ro}} | Cao/Trung bình/Thấp | {{Module/Feature bị ảnh hưởng}} | {{Mitigation}} |
335
+
336
+ ---
337
+
338
+ ## 6. Ma trận truy xuất yêu cầu (RTM)
339
+
340
+ | PRD FR | UC ID | Module | Màn hình | Epic/Story |
341
+ |---|---|---|---|---|
342
+ | {{FR ID}} | {{UC ID}} | {{Module}} | {{Screen name}} | {{Epic/Story ref}} |
343
+
344
+ ---
345
+
346
+ ## 7. Phụ lục
347
+
348
+ ### A. Danh sách màn hình (Screen Inventory)
349
+
350
+ | Màn hình | Module | Figma/Screenshot | UC liên quan |
351
+ |---|---|---|---|
352
+ | {{Tên màn hình}} | {{Module}} | {{Đường dẫn}} | {{UC ID}} |
353
+
354
+ ### B. Business Rules Index
355
+
356
+ | Mã | Nội dung | Module | UC |
357
+ |---|---|---|---|
358
+ | BR-XXX→YYY | {{Nhóm rule}} | {{Module}} | {{UC ID}} |
359
+
360
+ ### C. Open Issues
361
+
362
+ | # | Vấn đề | Module | Người phụ trách | Hạn | Trạng thái |
363
+ |---|---|---|---|---|---|
364
+ | OI-X | {{Vấn đề}} | {{Module}} | {{Người}} | {{Deadline}} | Open |
365
+
366
+ ### D. Danh sách thông báo hệ thống (Message Catalog)
367
+
368
+ | Mã | Loại | Nội dung | UC |
369
+ |---|---|---|---|
370
+ | MSG-XXX | Success/Error/Info/Push | {{Nội dung}} | {{UC ID}} |
371
+
372
+ ### E. Data Dictionary
373
+
374
+ > *(ISO 29148 §6.4.3.8 Logical database requirements + BABOK v3 §7.1 Data Models)*
375
+
376
+ | Thực thể | Thuộc tính | Kiểu dữ liệu | Ràng buộc | Bắt buộc | Mô tả | Hệ thống nguồn |
377
+ |---|---|---|---|---|---|---|
378
+ | {{Entity}} | {{field_name}} | {{String/Integer/Date/Enum/UUID}} | {{FK, Unique, Check,...}} | Có/Không | {{Mô tả nghiệp vụ}} | {{NTBH / Insurer / Channel}} |
379
+
380
+ ### F. CRUD Matrix
381
+
382
+ | Use Case | {{Entity 1}} | {{Entity 2}} | {{Entity 3}} | {{Entity 4}} |
383
+ |---|---|---|---|---|
384
+ | UC-MX-001 | C | R | — | — |
385
+ | UC-MX-002 | R | U | C | — |
386
+ | UC-MX-003 | — | R | R | D |
387
+
388
+ > C=Create, R=Read, U=Update, D=Delete, —=Không tác động
389
+
390
+ ### G. State Diagrams — Entity Lifecycle
391
+
392
+ > *(BABOK v3 §7.1 State Diagrams — bắt buộc cho entities có ≥3 trạng thái)*
393
+
394
+ **{{Entity name}} Lifecycle:**
395
+
396
+ ```mermaid
397
+ stateDiagram-v2
398
+ [*] --> {{State1}}: {{Trigger}}
399
+ {{State1}} --> {{State2}}: {{Event/Action}}
400
+ {{State2}} --> {{State3}}: {{Event/Action}}
401
+ {{State2}} --> {{State4}}: {{Event/Action}}
402
+ {{State3}} --> [*]
403
+ {{State4}} --> [*]
404
+ ```
405
+
406
+ | Trạng thái | Mô tả | Trigger chuyển trạng thái | Ai thực hiện |
407
+ |---|---|---|---|
408
+ | {{State1}} | {{Mô tả}} | {{Event}} | {{Actor/System}} |
409
+ | {{State2}} | {{Mô tả}} | {{Event}} | {{Actor/System}} |
410
+
411
+ > Lặp lại cho mỗi entity có lifecycle phức tạp (VD: Policy, Claim, Transaction, Order, Payment).
412
+
413
+ ### H. Verification Summary
414
+
415
+ > *(ISO 29148 §6.4.4 — cross-reference giữa requirements và phương pháp kiểm thử)*
416
+
417
+ | Module | UC ID | Phương pháp kiểm thử | Test Coverage | Ghi chú |
418
+ |---|---|---|---|---|
419
+ | {{Module}} | UC-MX-001 | {{Manual / API / E2E / Integration / Load / Security}} | {{Unit + Integration + E2E}} | {{Ghi chú đặc biệt}} |
420
+ | {{Module}} | UC-MX-002 | {{...}} | {{...}} | |
421
+
422
+ **Tổng hợp per module:**
423
+
424
+ | Module | Tổng UC | Manual | API Test | E2E | Integration | Load | Security |
425
+ |---|---|---|---|---|---|---|---|
426
+ | {{M1}} | {{X}} | {{X}} | {{X}} | {{X}} | {{X}} | {{X}} | {{X}} |
427
+
428
+ ---
429
+
430
+ *Tài liệu cần review bởi: {{Danh sách reviewer roles}} trước khi baseline.*
@@ -0,0 +1,139 @@
1
+ ---
2
+ outputDir: '.vsaf/docs/features/{feature-name}'
3
+ featureTemplate: './srs-feature-template.md'
4
+ ---
5
+
6
+ # BA Write SRS Workflow
7
+
8
+ **Goal:** Phân tích yêu cầu và viết tài liệu SRS (Software Requirements Specification) feature-level theo template chuẩn Confluence.
9
+
10
+ **Your Role:** Business Analyst chuyên nghiệp — viết SRS theo quy trình chuẩn, đảm bảo truy xuất được từ PRD/BRD → Use Cases → Màn hình → Epic/Story.
11
+
12
+ ## WORKFLOW
13
+
14
+ ### Bước 0 — Kiểm tra đầu vào
15
+
16
+ Tự động đọc input artifacts từ VSAF pipeline:
17
+
18
+ **Input bắt buộc:**
19
+ - [ ] `.vsaf/docs/features/{feature-name}/02-prd.md` — PRD từ Phase 2
20
+ - [ ] `.vsaf/docs/features/{feature-name}/03-adr.md` — Architecture từ Phase 3
21
+
22
+ **Input tùy chọn:**
23
+ - [ ] `.vsaf/docs/features/{feature-name}/04-epics.md` — Epic breakdown
24
+ - [ ] Figma link — lấy từ `CONTEXT.md` field `figma_url` nếu có
25
+ - [ ] BRD file — nếu project có BRD trong `.vsaf/docs/`
26
+
27
+ Nếu thiếu 02-prd.md hoặc 03-adr.md, **dừng lại ngay**:
28
+
29
+ ```
30
+ Thiếu input artifacts cho Phase 4 SRS:
31
+
32
+ ❌ [liệt kê file thiếu]
33
+
34
+ Vui lòng chạy Phase 2 (PRD) và Phase 3 (Architecture) trước.
35
+ ```
36
+
37
+ Chỉ tiếp tục khi đã có đủ PRD + ADR.
38
+
39
+ ---
40
+
41
+ ### Bước 1 — Đọc & phân tích PRD/BRD
42
+
43
+ Đọc toàn bộ tài liệu PRD từ `02-prd.md` và Architecture từ `03-adr.md`. Nếu có `04-epics.md`, đọc thêm epic breakdown. Trích xuất và tổ chức thông tin theo cấu trúc:
44
+
45
+ **1.1 Mục tiêu dự án**
46
+ - Business objective
47
+ - Problem statement
48
+ - Success criteria
49
+
50
+ **1.2 Phạm vi (Scope)**
51
+ - In-scope features / Sub-FRs
52
+ - Out-of-scope
53
+ - Các module/màn hình chính
54
+
55
+ **1.3 Actors & Use Cases**
56
+ - Danh sách các actor (vai trò người dùng)
57
+ - User stories / use cases đã đề cập
58
+
59
+ **1.4 Business Rules**
60
+ - Quy tắc nghiệp vụ quan trọng
61
+ - Constraints & assumptions
62
+
63
+ **1.5 Non-functional Requirements**
64
+ - Performance, security, scalability, v.v. (nếu có)
65
+
66
+ Sau bước này, xuất ra **"Tóm tắt PRD/BRD"** để user xác nhận trước khi sang bước 2.
67
+
68
+ ---
69
+
70
+ ### Bước 2 — So sánh PRD/BRD với Figma (nếu có Figma)
71
+
72
+ Nếu có Figma link, dùng Figma MCP tools để đọc design:
73
+ 1. Gọi `get_figma_data` để lấy danh sách pages/frames
74
+ 2. Download screenshots cho từng màn hình chính
75
+
76
+ So sánh và ghi nhận:
77
+
78
+ | Hạng mục | PRD/BRD nói | Figma thiết kế | Trạng thái |
79
+ |---|---|---|---|
80
+ | [Feature/Screen] | ... | ... | ✅ Khớp / ⚠️ Khác biệt / ❓ Chưa rõ |
81
+
82
+ **Phân tích gap:**
83
+ - **Gap 1 — Thiếu trong Figma:** Features có trong PRD nhưng không thấy trong design
84
+ - **Gap 2 — Thêm trong Figma:** UI elements trong Figma nhưng không đề cập trong PRD
85
+ - **Gap 3 — Mâu thuẫn:** Thông tin không nhất quán giữa hai nguồn
86
+
87
+ 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.
88
+
89
+ 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.
90
+
91
+ ---
92
+
93
+ ### Bước 3 — Viết tài liệu SRS theo Feature Template
94
+
95
+ Đọc template tại `./srs-feature-template.md` và viết SRS **đúng theo cấu trúc template**, bao gồm đầy đủ 10 phần:
96
+
97
+ 1. **Mô tả chung** — Bảng tổng quan, Use Cases, Định nghĩa, Tài liệu tham chiếu
98
+ 2. **Đặc tả Use Cases** — Viết tuần tự theo từng UC. Mỗi UC gồm:
99
+ - **Màn hình** — Bảng chi tiết controls từng màn hình thuộc UC
100
+ - **Luồng nghiệp vụ** — Sequence diagram (PlantUML) + Activity diagram (PlantUML, nếu cần) + Bảng mô tả luồng
101
+ - Màn hình dùng chung: đặt bảng đầy đủ tại UC đầu tiên, UC sau ghi tham chiếu
102
+ - Nếu feature có nhiều UC liên kết chặt: thêm Activity Diagram tổng quan ở đầu mục 2
103
+ 3. **Bảng/Thực thể liên quan** — ER diagram + mô tả entity
104
+ 4. **Danh sách mã lỗi** — Error codes mapping với bước trong flow
105
+ 5. **Chức năng ảnh hưởng** — Cross-flow impact
106
+ 6. **Business Rules tổng hợp** — Tổng hợp BR với mã duy nhất
107
+ 7. **Yêu cầu phi chức năng** — NFR đặc thù cho flow
108
+ 8. **Ràng buộc, Giả định & Phụ thuộc** — Constraints, assumptions, dependencies, transition requirements
109
+ 9. **State Diagrams** — Entity lifecycle (Mermaid stateDiagram-v2)
110
+ 10. **Ma trận truy xuất (Mini-RTM)** — PRD FR → UC → Màn hình → Epic/Story
111
+
112
+ **Quy tắc viết:**
113
+ - Viết bằng **tiếng Việt** trừ khi user yêu cầu tiếng Anh
114
+ - Giữ nguyên business rules từ PRD/BRD, không tự ý thay đổi logic nghiệp vụ
115
+ - Mỗi Use Case phải có: Precondition, Main flow, Alternative flow, Exception flow, Postcondition
116
+ - Activity/Flow diagrams phải dùng Mermaid `flowchart TD`; State diagrams dùng `stateDiagram-v2`; ER dùng `erDiagram` — theo template
117
+ - Nếu thông tin chưa đủ → ghi `{{Cần bổ sung}}` và liệt kê ở phần Gap Analysis
118
+
119
+ ---
120
+
121
+ ### Bước 4 — Lưu file SRS
122
+
123
+ Lưu tài liệu SRS vào: `.vsaf/docs/features/{feature-name}/05-srs.md`
124
+
125
+ Thông báo cho user:
126
+ - Đường dẫn file đã lưu
127
+ - Số lượng use cases đã viết
128
+ - Danh sách gaps quan trọng cần team confirm
129
+ - Các phần SRS còn `{{...}}` cần bổ sung thêm
130
+
131
+ ---
132
+
133
+ ## Lưu ý quan trọng
134
+
135
+ - Luôn viết bằng **tiếng Việt** trừ khi user yêu cầu tiếng Anh
136
+ - Với mỗi gap phát hiện, đề xuất cách xử lý thay vì bỏ qua
137
+ - Nếu Figma có nhiều pages, hỏi user muốn focus vào page/flow nào trước
138
+ - Giữ nguyên business rules từ PRD/BRD, không tự ý thay đổi logic nghiệp vụ
139
+ - Template phải tuân thủ **đúng format** tại `./srs-feature-template.md` — không được thay đổi cấu trúc section
@@ -60,3 +60,7 @@ bundled:
60
60
  - zoom-out
61
61
  - tdd
62
62
  - improve-codebase-architecture
63
+
64
+ # SRS writing + validation (replaces BMAD analyst + edge case hunter in Phase 4)
65
+ - ba-write-srs
66
+ - ba-validate-srs