@relipa/ai-flow-kit 0.1.2 → 0.1.4-beta.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.
Files changed (94) hide show
  1. package/README.md +139 -0
  2. package/bin/aiflow.js +89 -2
  3. package/custom/harness/playwright/.env.example +10 -0
  4. package/custom/harness/playwright/playwright.config.ts +34 -0
  5. package/custom/harness/playwright/tests/e2e/auth.setup.ts +25 -0
  6. package/custom/harness/playwright/tests/e2e/fixtures/test.ts +6 -0
  7. package/custom/harness/playwright/tests/e2e/pages/BasePage.ts +9 -0
  8. package/custom/harness/playwright/tests/e2e/support/auth.ts +5 -0
  9. package/custom/mcp-presets/playwright.json +8 -0
  10. package/custom/rules/test-patterns.md +70 -0
  11. package/custom/skills/automation-testing/SKILL.md +239 -0
  12. package/custom/skills/automation-testing/templates/BasePage.ts +29 -0
  13. package/custom/skills/automation-testing/templates/PageObject.example.ts +29 -0
  14. package/custom/skills/automation-testing/templates/playwright.config.ts +39 -0
  15. package/custom/skills/automation-testing/templates/spec.example.ts +29 -0
  16. package/custom/skills/ba-skills/skill-ba-phan-tich-ban-dau-v1.md +44 -0
  17. package/custom/skills/ba-skills/skill-ba-prototype-v1.md +35 -0
  18. package/custom/skills/ba-skills/skill-ba-qa-template-v1.md +21 -0
  19. package/custom/skills/ba-skills/skill-ba-qa-v1.md +35 -0
  20. package/custom/skills/ba-skills/skill-ba-template-phan-tich-ban-dau-v1.md +30 -0
  21. package/custom/skills/ba-skills/skill-ba-template-uc-v1.md +83 -0
  22. package/custom/skills/ba-skills/skill-ba-ve-luong-mermaid-v1.md +35 -0
  23. package/custom/skills/ba-skills/skill-ba-viet-spec-uc-v1.md +38 -0
  24. package/custom/skills/ba-skills/skill-ba-xay-dung-business-rules-v1.md +39 -0
  25. package/custom/skills/coverage-check/SKILL.md +202 -0
  26. package/custom/skills/evidence-aggregation/SKILL.md +246 -0
  27. package/custom/skills/execute-flow/SKILL.md +499 -0
  28. package/custom/skills/execute-flow/templates/playwright.config.ts +39 -0
  29. package/custom/skills/gate-review/SKILL.md +195 -0
  30. package/custom/skills/generate-test-report/SKILL.md +99 -0
  31. package/custom/skills/generate-test-report/templates/test-report.md +58 -0
  32. package/custom/skills/generate-testcase/SKILL.md +350 -0
  33. package/custom/skills/generate-testcase/templates/testcase.md +88 -0
  34. package/custom/skills/log-bug/SKILL.md +131 -0
  35. package/custom/skills/pr-impact-analysis/SKILL.md +180 -0
  36. package/custom/skills/retest-orchestration/SKILL.md +191 -0
  37. package/custom/skills/script-sync/SKILL.md +208 -0
  38. package/custom/skills/test-analysis/SKILL.md +300 -0
  39. package/custom/skills/test-skills/categories/00-core/00.01.requirement-analysis.md +111 -0
  40. package/custom/skills/test-skills/categories/00-core/00.02.risk-analysis.md +24 -0
  41. package/custom/skills/test-skills/categories/00-core/00.03.test-scenario-builder.md +90 -0
  42. package/custom/skills/test-skills/categories/00-core/00.04.testcase-review.md +68 -0
  43. package/custom/skills/test-skills/categories/01-test-design/01.01.boundary-value-analysis.md +30 -0
  44. package/custom/skills/test-skills/categories/01-test-design/01.02.equivalence.partitioning.md +27 -0
  45. package/custom/skills/test-skills/categories/01-test-design/01.03.decision-table.md +26 -0
  46. package/custom/skills/test-skills/categories/01-test-design/01.04.state.transition.md +26 -0
  47. package/custom/skills/test-skills/categories/01-test-design/01.05.pairwise.md +25 -0
  48. package/custom/skills/test-skills/categories/01-test-design/01.06.error-guessing.md +28 -0
  49. package/custom/skills/test-skills/categories/02-ui-testing/02.01.UI-layout.md +29 -0
  50. package/custom/skills/test-skills/categories/02-ui-testing/02.02.form-validation.md +57 -0
  51. package/custom/skills/test-skills/categories/02-ui-testing/02.03.navigation.md +27 -0
  52. package/custom/skills/test-skills/categories/02-ui-testing/02.04.localization.md +27 -0
  53. package/custom/skills/test-skills/categories/02-ui-testing/02.05.accessibility.md +27 -0
  54. package/custom/skills/test-skills/categories/03-business-testing/03.01.CRUD-testing.md +51 -0
  55. package/custom/skills/test-skills/categories/03-business-testing/03.02.workflow-testing.md +44 -0
  56. package/custom/skills/test-skills/categories/03-business-testing/03.03.permission-testing.md +41 -0
  57. package/custom/skills/test-skills/categories/03-business-testing/03.04.dependency-validation.md +40 -0
  58. package/custom/skills/test-skills/categories/03-business-testing/03.05.notification-testing.md +43 -0
  59. package/custom/skills/test-skills/categories/03-business-testing/03.06.calculation.testing.md +44 -0
  60. package/custom/skills/test-skills/categories/04-data-testing/04.01.database-testing.md +43 -0
  61. package/custom/skills/test-skills/categories/04-data-testing/04.02.import-export-testing.md +43 -0
  62. package/custom/skills/test-skills/categories/04-data-testing/04.03.data-mapping.md +39 -0
  63. package/custom/skills/test-skills/categories/04-data-testing/04.04.duplicate-handling.md +39 -0
  64. package/custom/skills/test-skills/categories/04-data-testing/04.05.migration.md +42 -0
  65. package/custom/skills/test-skills/categories/05-integration/05.01.API-testing.md +37 -0
  66. package/custom/skills/test-skills/categories/05-integration/05.02.third-party-integration.md +36 -0
  67. package/custom/skills/test-skills/categories/05-integration/05.03.batch-processing.md +38 -0
  68. package/custom/skills/test-skills/categories/05-integration/05.04.file-upload-download.md +40 -0
  69. package/custom/skills/test-skills/categories/08-domain-skills/CMS.md +34 -0
  70. package/custom/skills/test-skills/categories/08-domain-skills/Ecommerce.md +35 -0
  71. package/custom/skills/test-skills/categories/99-review/99.01.coverage-review.md +35 -0
  72. package/custom/skills/test-skills/categories/99-review/99.02.knowledge-learning.md +34 -0
  73. package/custom/skills/test-skills/categories/99-review/99.03.repository-update.md +33 -0
  74. package/custom/skills/test-skills/categories/99-review/99.04.change-history.md +38 -0
  75. package/custom/skills/test-skills/rules/Directory_and_Naming_Convention.md +257 -0
  76. package/custom/skills/test-skills/rules/QA_Writing_Standards.md +49 -0
  77. package/custom/skills/test-skills/template/template_testcase.md +92 -0
  78. package/custom/templates/shared/create-spec-workflow.md +441 -0
  79. package/custom/templates/shared/create-testcase-workflow.md +470 -0
  80. package/custom/templates/shared/gate-workflow.md +421 -11
  81. package/docs/common/CHANGELOG.md +52 -0
  82. package/docs/common/QUICK_START.md +30 -0
  83. package/docs/common/cli-reference.md +48 -7
  84. package/package.json +2 -2
  85. package/scripts/create-score-excel.js +37 -14
  86. package/scripts/detect.js +10 -0
  87. package/scripts/guide.js +9 -0
  88. package/scripts/init.js +48 -1
  89. package/scripts/prompt.js +36 -0
  90. package/scripts/review.js +91 -0
  91. package/scripts/scaffold-playwright.js +106 -0
  92. package/scripts/task.js +21 -7
  93. package/scripts/update.js +127 -124
  94. package/scripts/use.js +36 -12
@@ -0,0 +1,195 @@
1
+ ---
2
+ name: gate-review
3
+ description: Generate a checkbox review file for a gate output and verify it when APPROVED is received. Called at every gate pause point in both dev and tester workflows.
4
+ keywords: gate review, checkbox, review file, approved, mandatory review
5
+ ---
6
+
7
+ # Gate Review — Mandatory Checkbox Protocol
8
+
9
+ > **Purpose:** Prevent blind approval. Every gate output gets a review file with one checkbox per key section. Developer checks off items in VSCode. APPROVED is only accepted after all items are checked.
10
+
11
+ ---
12
+
13
+ ## When to invoke this skill
14
+
15
+ This skill is invoked in **two modes** at every gate pause point:
16
+
17
+ | Mode | When | What AI does |
18
+ |------|------|-------------|
19
+ | `generate` | Immediately after AI finishes gate output | Write `.aiflow/review/gate-N-[ticket].md` |
20
+ | `verify` | When developer types `APPROVED` | Run `ak review check`, interpret result, proceed or block |
21
+
22
+ ---
23
+
24
+ ## File Naming Rules
25
+
26
+ **Standard gates (Dev and Tester):**
27
+
28
+ ```
29
+ .aiflow/review/gate-[N]-[ticket-id].md
30
+ ```
31
+
32
+ **Tester Gate 2 sub-phases only:**
33
+
34
+ Tester Gate 2 produces multiple review files — one per sub-phase. Use a letter suffix instead of the base gate number alone:
35
+
36
+ ```
37
+ .aiflow/review/gate-2a-[ticket-id].md ← first sub-phase
38
+ .aiflow/review/gate-2b-[ticket-id].md ← second sub-phase
39
+ .aiflow/review/gate-2c-[ticket-id].md ← third sub-phase
40
+ (and so on)
41
+ ```
42
+
43
+ > **IMPORTANT:** Do NOT use `gate-2-[ticket].md` for Tester Gate 2 sub-phases. Always use the lettered form (`gate-2a`, `gate-2b`, etc.) so each sub-phase has its own distinct review file and the `ak review check` command can target the correct file.
44
+
45
+ ---
46
+
47
+ ## Mode 1: GENERATE — Write Review File
48
+
49
+ ### Step 1: Extract checklist items from gate output
50
+
51
+ Read the output you just created. For each **top-level section** in the output, create one checklist item — a one-line summary of what that section contains. The summary must be specific enough to identify the content without opening the output file.
52
+
53
+ **Extraction rules:**
54
+ - One item per top-level section (H2 heading or named block)
55
+ - Format: `**[Section name]**: [one-line summary of actual content]`
56
+ - Maximum 12 items per gate. If more than 12 sections, group related ones.
57
+ - The summary is the actual content, not a description of the category. ✅ "Scope: Auth module + User management (payment OUT of scope)" not ❌ "Scope: the scope section"
58
+
59
+ **Examples by gate:**
60
+
61
+ Dev Gate 1 (requirement.md has 4 sections → 4 items):
62
+ ```
63
+ - [ ] **Requirements Summary**: Add batch export endpoint returning signed S3 URL, triggered by POST /exports
64
+ - [ ] **Proposed Solution**: New ExportService + S3Adapter; reuse existing AuthMiddleware for permissions
65
+ - [ ] **Impact Analysis**: Medium — touches ExportController, UserService (permission check added)
66
+ - [ ] **Effort Estimate**: M (3–4 days)
67
+ ```
68
+
69
+ Tester Gate 1 (test-analysis.md):
70
+ ```
71
+ - [ ] **Scope**: Auth module + User management only; payment and notifications OUT of scope
72
+ - [ ] **Functional Analysis**: Login, logout, session management, password reset, role-based access (3 roles)
73
+ - [ ] **Risk Areas**: High — session token handling; Medium — email format validation
74
+ - [ ] **Test Approach**: 60% automation (Playwright), 40% manual; ~18 TCs estimated
75
+ - [ ] **Effort Estimate**: M (2–3 days)
76
+ ```
77
+
78
+ ### Step 2: Write the review file
79
+
80
+ **File path:** `.aiflow/review/gate-[N]-[ticket-id].md`
81
+
82
+ For Tester Gate 2 sub-phases, use the lettered form: `.aiflow/review/gate-2a-[ticket-id].md`, `.aiflow/review/gate-2b-[ticket-id].md`, etc.
83
+
84
+ Where `[ticket-id]` comes from `.aiflow/context/current.json` → `ticketId` field. If ticketId is unavailable, use `unknown`.
85
+
86
+ **File template:**
87
+
88
+ ```markdown
89
+ # Gate [N] Review — [TICKET-ID]
90
+ > Status: PENDING | Generated: YYYY-MM-DD
91
+
92
+ ## How to review
93
+ - Toggle `[ ]` → `[x]` for each item you have read and agree with
94
+ - Add a comment under any item you want changed: `<!-- your comment here -->`
95
+ - Type `APPROVED` in chat when done
96
+
97
+ ---
98
+
99
+ ## Checklist
100
+
101
+ - [ ] **[Section]**: [one-line summary]
102
+ - [ ] **[Section]**: [one-line summary]
103
+ (... one per section, max 12)
104
+
105
+ ---
106
+
107
+ ## Review Notes
108
+ <!-- Optional: overall notes -->
109
+ ```
110
+
111
+ ### Step 3: Display gate pause message
112
+
113
+ After writing the file, display in chat:
114
+
115
+ ```
116
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
117
+ ⏸️ GATE [N] PAUSED — REVIEW REQUIRED
118
+
119
+ 📋 Open in VSCode: [.aiflow/review/gate-[N]-[ticket-id].md](.aiflow/review/gate-[N]-[ticket-id].md)
120
+
121
+ • Toggle [ ] → [x] for each item you agree with
122
+ • Add <!-- comment --> under any item needing changes
123
+ • Type APPROVED when all items are addressed
124
+
125
+ ⚠️ APPROVED will not be accepted until all checkboxes are checked.
126
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
127
+ ```
128
+
129
+ ---
130
+
131
+ ## Mode 2: VERIFY — Check Review File on APPROVED
132
+
133
+ When the developer types `APPROVED`, run this before accepting:
134
+
135
+ ### Step 1: Run CLI check
136
+
137
+ ```bash
138
+ ak review check --gate [N] --ticket [ticket-id]
139
+ ```
140
+
141
+ For Tester Gate 2 sub-phases, pass the lettered gate identifier:
142
+
143
+ ```bash
144
+ ak review check --gate 2a --ticket [ticket-id]
145
+ ak review check --gate 2b --ticket [ticket-id]
146
+ ```
147
+
148
+ ### Step 2: Interpret result
149
+
150
+ **Exit code 0 — all checked:**
151
+ - Gate proceeds normally
152
+ - Run telemetry: `ak gate [N] approved --ticket [ticket-id]`
153
+ - Continue to next gate
154
+
155
+ **Exit code 1 — file missing:**
156
+ ```
157
+ ✗ Review file not found for gate N, ticket PROJ-33
158
+ ```
159
+ AI response:
160
+ > "The review file wasn't found. Let me regenerate it."
161
+ Then re-run Mode 1 (generate) and display the gate pause message again.
162
+
163
+ **Exit code 1 — items with comments (need revision):**
164
+ ```
165
+ Items with comments (need AI revision):
166
+ • **Risk Areas**: High — session token handling
167
+ Comment: "Missing: SQL injection risk on login form"
168
+ ```
169
+ AI response:
170
+ 1. Read each comment
171
+ 2. Update the specific section in the gate output file
172
+ 3. Rewrite only the flagged items in the review file (keep already-checked `[x]` items as-is)
173
+ 4. Display updated gate pause message
174
+
175
+ **Exit code 1 — unchecked items, no comment:**
176
+ ```
177
+ Items unchecked (no comment):
178
+ • **Scope**: Auth module only
179
+ ```
180
+ AI response:
181
+ > "Item(s) are unchecked without a comment. Please either:
182
+ > - Check `[x]` if you agree with the content, or
183
+ > - Add `<!-- your comment -->` on the next line if you want changes."
184
+ Do NOT re-generate. Wait for developer to update the file.
185
+
186
+ ---
187
+
188
+ ## Mandatory Rules
189
+
190
+ - ❌ **NEVER** accept `APPROVED` without first running `ak review check`
191
+ - ❌ **NEVER** re-generate already-checked `[x]` items when doing a partial revision
192
+ - ✅ **ALWAYS** create `.aiflow/review/` directory if it doesn't exist (use `mkdir -p`)
193
+ - ✅ **ALWAYS** use the ticket ID from `.aiflow/context/current.json` in the file name
194
+ - ✅ **ALWAYS** keep review items specific to the actual content — not generic category names
195
+ - ✅ **ALWAYS** use lettered suffixes (`gate-2a`, `gate-2b`, …) for Tester Gate 2 sub-phases — never plain `gate-2`
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: generate-test-report
3
+ description: Use when TESTER needs to generate the final test summary report at Gate 4 after all test execution is complete. Aggregates results from evidence/ and bugs/ directories, verifies acceptance criteria coverage, and produces a Go/No-Go recommendation.
4
+ keywords: test report, summary, sign-off, go no-go, gate 4, evidence, bug summary, coverage
5
+ ---
6
+
7
+ # Generate Test Report — Gate 4
8
+
9
+ > **Phạm vi:** Gate 4 — Báo cáo & Sign-off trong workflow 4-gate (`docs/workflow.md`)
10
+ > **Chỉ chạy sau khi Gate 3 đã được TESTER gõ `APPROVED`.**
11
+
12
+ ---
13
+
14
+ ## Điều kiện vào Gate 4
15
+
16
+ - ✅ Gate 3 APPROVED — tất cả critical/high bugs đã resolved và re-tested
17
+ - ✅ Đã có đầy đủ: `evidence/`, `bugs/`, `test-plan/test-cases/`, `test-plan/checklist.md`
18
+ - ✅ `test-plan/impact-analysis.md` tồn tại (kể cả khi không có PR — file ghi "chưa có dev artifacts")
19
+
20
+ ---
21
+
22
+ ## Quy trình tạo Test Report
23
+
24
+ ### Bước 1 — Thu thập kết quả
25
+
26
+ Đọc toàn bộ:
27
+ - `evidence/*/result.md` → đếm Pass / Fail / Blocked per TC
28
+ - `bugs/BUG-*.md` → đếm bugs theo severity, trạng thái resolved/unresolved
29
+ - `test-plan/test-cases/*.md` → danh sách TC ID và module
30
+
31
+ Tổng hợp per module theo format template (R1/R2 tracking từ testcase files).
32
+
33
+ ### Bước 2 — Kiểm tra coverage
34
+
35
+ - So sánh TC đã thực thi với checklist `test-plan/checklist.md`
36
+ - Verify acceptance criteria từ `test-plan/test-analysis.md` (Gate 1) — từng item đã cover chưa?
37
+ - Tính % hoàn thành: `(Tổng passed / Total test cases) × 100`
38
+ - **Verify regression scope từ `test-plan/impact-analysis.md`**: đọc "Đề xuất Regression TCs" — những regression TCs đó đã được execute chưa? Nếu chưa → flag trong report (không block Go/No-Go nhưng phải ghi nhận rõ).
39
+
40
+ ### Bước 3 — Đánh giá Exit Criteria & Go/No-Go
41
+
42
+ | Điều kiện | Go | No-Go |
43
+ |---|---|---|
44
+ | Critical bugs | 0 unresolved | Còn ≥ 1 |
45
+ | High bugs | 0 unresolved hoặc có deferred plan | Còn unresolved không có plan |
46
+ | Coverage | ≥ 100% acceptance criteria covered | Còn AC chưa test |
47
+ | Pass rate | Đạt ngưỡng exit criteria | Dưới ngưỡng |
48
+
49
+ **Conditional Go:** Pass nhưng còn Medium/Low bugs chưa fix — ghi rõ điều kiện deferred.
50
+
51
+ ### Bước 4 — Viết Test Report
52
+
53
+ **Dùng template:** `templates/test-report.md`
54
+
55
+ Điền đầy đủ:
56
+ - **Project Information:** lấy từ ticket context
57
+ - **Test Execution Summary:** per module, R1/R2 stats, % hoàn thành
58
+ - **Bug Summary:** tổng hợp từ `bugs/`
59
+ - **Coverage:** acceptance criteria đã cover
60
+ - **Sign-off Decision:** Go / No-Go / Conditional Go + lý do cụ thể
61
+
62
+ Output: `test-plan/test-report.md`
63
+
64
+ ---
65
+
66
+ ## Gate 4 Display
67
+
68
+ ```
69
+ ⏸️ GATE 4: TEST REPORT READY
70
+
71
+ Overall: [Pass / Fail / Conditional]
72
+ Passed: [N/total] | Bugs unresolved: [N Critical / N High / N Medium / N Low]
73
+ Coverage: [N]% acceptance criteria covered
74
+
75
+ Recommendation: [Go / No-Go / Conditional go]
76
+ [Nếu Conditional: điều kiện cụ thể]
77
+
78
+ → Review: [test-plan/test-report.md](test-plan/test-report.md)
79
+ → Type APPROVED to sign off and submit to Backlog/Jira
80
+ → Type NO-GO: [reason] to reject release
81
+ ```
82
+
83
+ ---
84
+
85
+ ## Xử lý phản hồi của TESTER
86
+
87
+ **`APPROVED`** → Done. Hướng dẫn TESTER copy nội dung lên Backlog/Jira ticket.
88
+
89
+ **`NO-GO: [reason]`** → Ghi nhận lý do vào test-report.md. List những gì cần fix trước khi release.
90
+
91
+ ---
92
+
93
+ ## Mandatory Rules
94
+
95
+ - ❌ KHÔNG generate report khi còn critical bug chưa resolved
96
+ - ❌ KHÔNG tự quyết Go/No-Go thay TESTER — chỉ đưa ra recommendation
97
+ - ✅ PHẢI verify từng acceptance criteria từ Gate 1 trước khi kết luận coverage
98
+ - ✅ PHẢI trích dẫn TC ID cụ thể khi claim "requirement X đã covered"
99
+ - ✅ Bugs deferred PHẢI có justification rõ ràng trong report
@@ -0,0 +1,58 @@
1
+ # SUMMARY TEST REPORT
2
+
3
+ ## Project Information
4
+
5
+ | Property | Value | Property | Value |
6
+ | :--- | :--- | :--- | :--- |
7
+ | **Project Name** | [Project Name] | **Author/Created By** | [Author Name] |
8
+ | **Project Code** | [Project Code] | **Reviewer** | [Reviewer Name] |
9
+ | **Created At** | [Creation Date] | **Report Date** | [Report Date] |
10
+ | **Last updated at** | [Update Date] | | |
11
+
12
+ ---
13
+
14
+ ## Test Execution Summary
15
+
16
+ | No | Module Code | Written By | Created Date | R1 Passed | R1 Failed | R1 UnTest | R1 Pending | R2 Passed | R2 Failed | R2 UnTest | R2 Pending | Blocked | Total Test Cases | Tổng Passed | % Hoàn thành | Updated Date | Sprint | Creator | Reviewer / Approver |
17
+ |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
18
+ | 1 | [Module Code] | [Author] | [Date] | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0% | [Date] | [Sprint] | [Creator] | [Reviewer] |
19
+ | 2 | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
20
+
21
+ ---
22
+
23
+ ## Bug Summary
24
+
25
+ | Severity | Total | Resolved | Unresolved | Deferred |
26
+ |---|---|---|---|---|
27
+ | Critical | 0 | 0 | 0 | 0 |
28
+ | High | 0 | 0 | 0 | 0 |
29
+ | Medium | 0 | 0 | 0 | 0 |
30
+ | Low | 0 | 0 | 0 | 0 |
31
+ | **Total** | **0** | **0** | **0** | **0** |
32
+
33
+ **Deferred bugs justification:**
34
+ - [BUG-ID]: [Lý do defer và sprint xử lý]
35
+
36
+ ---
37
+
38
+ ## Acceptance Criteria Coverage
39
+
40
+ | # | Acceptance Criteria | TC IDs | Status |
41
+ |---|---|---|---|
42
+ | 1 | [AC từ Gate 1] | [TC_001, TC_002] | ✅ Covered |
43
+ | 2 | [AC từ Gate 1] | [TC_003] | ✅ Covered |
44
+ | 3 | [AC từ Gate 1] | - | ❌ Not covered |
45
+
46
+ **Coverage:** [N/N] acceptance criteria covered ([N]%)
47
+
48
+ ---
49
+
50
+ ## Sign-off Decision
51
+
52
+ | Item | Value |
53
+ |---|---|
54
+ | **Overall Result** | Pass / Fail / Conditional |
55
+ | **Recommendation** | Go / No-Go / Conditional Go |
56
+ | **Conditions** (nếu Conditional) | [Mô tả điều kiện cụ thể] |
57
+ | **Sign-off By** | [TESTER Name] |
58
+ | **Sign-off Date** | [Date] |