synapse-hub 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/rules/communication-style.md +4 -0
- package/.agents/rules/context-engineering.md +1 -0
- package/.agents/rules/git-push-protocol.md +17 -0
- package/.agents/skills/agentless-qa-repair/examples/three_phase_repair_workflow.md +40 -0
- package/.agents/skills/antigravity-test-sentinel/examples/sprint_dod_enforcement.md +47 -0
- package/.agents/skills/auth-session-and-cookie-manager/examples/multi_role_auth_matrix.md +70 -0
- package/.agents/skills/code-refactoring-refactor-clean/examples/refactored_playwright_pom.ts +52 -0
- package/.agents/skills/failure-autopsy-and-healing/examples/closed_loop_healing_walkthrough.md +48 -0
- package/.agents/skills/lean-impact-scoreboard/examples/sample_scoreboard.md +1 -1
- package/.agents/skills/mipro-prompt-compiler/examples/dspy_assertion_optimizer_case.md +46 -0
- package/.agents/skills/persistent-planning-files/SKILL.md +1 -1
- package/.agents/skills/qa-aci-interface/examples/surgical_code_window_walkthrough.md +40 -0
- package/.agents/skills/review-spec/examples/pocock_grilling_decision_rubric.md +40 -0
- package/.agents/skills/skillspector-security-guard/examples/audit_threat_vectors_report.json +35 -0
- package/.agents/skills/surgical-coding-principles/SKILL.md +1 -1
- package/.agents/skills/tot-exploratory-testing/examples/payment_gateway_tot_tree.json +62 -0
- package/.agents/skills/verification-before-completion/SKILL.md +2 -2
- package/.agents/skills/verification-before-completion/examples/evidence_log_example.md +2 -2
- package/.agents/skills/web-agent-gym-benchmarking/examples/enterprise_tasks_suite.json +38 -0
- package/.agents/skills/web-vitals-and-performance-profiler/examples/playwright_cwv_profiler_fixture.ts +61 -0
- package/AGENTS.md +6 -4
- package/CLAUDE.md +1 -0
- package/README.en.md +8 -8
- package/README.md +3 -3
- package/action.yml +1 -1
- package/bin/agent-qa.js +2 -2
- package/docs/ARCHITECTURE.en.md +192 -0
- package/docs/ARCHITECTURE.md +127 -126
- package/docs/CI_CD_INTEGRATION.en.md +96 -0
- package/docs/CI_CD_INTEGRATION.md +24 -22
- package/docs/CLI_REFERENCE.en.md +174 -0
- package/docs/CLI_REFERENCE.md +120 -115
- package/docs/CONTRIBUTING.en.md +49 -0
- package/docs/CONTRIBUTING.md +25 -67
- package/docs/QUALITY_GATES.en.md +115 -0
- package/docs/QUALITY_GATES.md +82 -80
- package/docs/research/agent_skill_training_analysis.md +1 -1
- package/package.json +1 -1
- package/skills_manifest.json +1 -1
- package/synapse.config.json +1 -1
- package/templates/ai_bridges/CLAUDE.md +1 -0
- package/tools/__init__.py +1 -1
- package/tools/auto_heal_reflexion.py +8 -0
- package/tools/browser_helpers.js +2 -2
- package/tools/bump_version.py +15 -14
- package/tools/check_version_sync.py +24 -7
- package/tools/cli.py +3 -3
- package/tools/contract_validator.py +141 -0
- package/tools/dashboard_generator.py +11 -11
- package/tools/db_sandbox.py +22 -9
- package/tools/generate_allure_report.py +1 -1
- package/tools/infer_linter.py +135 -21
- package/tools/mcp_excel_server.py +1 -1
- package/tools/mcp_server.py +7 -4
- package/tools/micro_mutator.py +21 -3
- package/tools/reversible_sandbox.py +2 -2
- package/tools/senior_code_review.py +2 -1
- package/tools/skill_vault.py +82 -3
- package/tools/skillspector.py +5 -1
- package/tools/sync_agent_rules.py +1 -0
- package/tools/test_impact.py +2 -1
- package/tools/update_sentinel.py +3 -3
- package/tools/verify_all.py +2 -2
- package/tools/visual_diff_canvas.py +3 -2
- package/tools/welcome_page.py +1 -1
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -1,192 +1,193 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Kiến Trúc & Nguyên Lý Thiết Kế Synapse-Hub
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
[🇻🇳 Tiếng Việt](ARCHITECTURE.md) | [🇬🇧 English Edition](ARCHITECTURE.en.md)
|
|
4
|
+
|
|
5
|
+
> **Phạm vi:** Enterprise Multi-Agent QA Hub
|
|
6
|
+
> **Version:** `3.0.1` | **Trạng thái:** Hoạt động / Tiêu chuẩn Sản xuất
|
|
7
|
+
> **Tác giả:** Thế Vị (@TeeVee998) | **Giấy phép:** MIT License
|
|
5
8
|
|
|
6
9
|
---
|
|
7
10
|
|
|
8
|
-
## 1. Hub & Spoke
|
|
11
|
+
## 1. Mô Hình Kiến Trúc Hub & Spoke
|
|
9
12
|
|
|
10
|
-
|
|
13
|
+
Kho lưu trữ `agent-skills` hoạt động theo mô hình **Hub & Spoke**: trong đó Hub là **bộ não trung tâm** chứa toàn bộ kỹ năng, quy tắc kiến trúc và công cụ cho AI, hoàn toàn tách biệt khỏi các repository dự án kiểm thử thực tế (**Spokes**).
|
|
11
14
|
|
|
12
15
|
```mermaid
|
|
13
16
|
flowchart TD
|
|
14
|
-
subgraph Hub["
|
|
17
|
+
subgraph Hub["Synapse Hub (Bộ Não Trung Tâm)"]
|
|
15
18
|
Catalog["51 Standardized Skills (.agents/skills)"]
|
|
16
|
-
Rules["
|
|
17
|
-
Tools["Zero-Token
|
|
18
|
-
Swarm["6
|
|
19
|
+
Rules["Bộ Quy Tắc Cốt Lõi (.agents/rules)"]
|
|
20
|
+
Tools["Bộ Công Cụ Python Zero-Token (tools/)"]
|
|
21
|
+
Swarm["6 Subagent Chuyên Biệt (.agents/agents)"]
|
|
19
22
|
end
|
|
20
23
|
|
|
21
|
-
subgraph Spokes["
|
|
22
|
-
Repo1["
|
|
23
|
-
Repo2["
|
|
24
|
-
Repo3["
|
|
24
|
+
subgraph Spokes["Dự Án Test Thực Tế (Spokes)"]
|
|
25
|
+
Repo1["Dự Án A (Playwright / TS)"]
|
|
26
|
+
Repo2["Dự Án B (Katalon / Groovy)"]
|
|
27
|
+
Repo3["Dự Án C (Python / Pytest)"]
|
|
25
28
|
end
|
|
26
29
|
|
|
27
|
-
Hub -->|
|
|
28
|
-
Hub -->|
|
|
29
|
-
Hub -->|
|
|
30
|
+
Hub -->|Cung cấp kỹ năng & linter| Repo1
|
|
31
|
+
Hub -->|Cung cấp kỹ năng & linter| Repo2
|
|
32
|
+
Hub -->|Cung cấp kỹ năng & linter| Repo3
|
|
30
33
|
```
|
|
31
34
|
|
|
32
|
-
###
|
|
33
|
-
1. **Zero Context Contagion:**
|
|
34
|
-
2. **
|
|
35
|
-
3. **
|
|
35
|
+
### Lợi Thế Thực Tế Của Kiến Trúc Này:
|
|
36
|
+
1. **Không Làm Rác Repo Dự Án (Zero Context Contagion):** Repository của dự án test luôn tinh gọn, chỉ chứa test case và Page Object của nghiệp vụ. Toàn bộ prompt, rule và cấu hình AI cồng kềnh đều nằm riêng ở Hub.
|
|
37
|
+
2. **Nâng Cấp Tức Thì Không Cần Sửa Code:** Khi cập nhật thuật toán tự sửa locator, bộ nén log hay luật lint mới ở Hub, tất cả các dự án con đều hưởng lợi ngay lập tức.
|
|
38
|
+
3. **Cách Ly Bản Quyền & Bảo Mật Tuyệt Đối:** Dự án test đẩy thẳng lên Git công ty (GitLab, GitHub, Bitbucket nội bộ), còn kỹ năng và công cụ dùng chung nằm tại Hub. Không cần cấu hình dual-remote hay script đẩy code phức tạp.
|
|
36
39
|
|
|
37
40
|
---
|
|
38
41
|
|
|
39
|
-
## 2.
|
|
42
|
+
## 2. 4 Phân Tầng Kỹ Năng Trong Hub (4-Tier Skill Stratification)
|
|
40
43
|
|
|
41
|
-
|
|
44
|
+
51 kỹ năng QA trong Hub được phân chia thành 4 tầng rõ rệt:
|
|
42
45
|
|
|
43
46
|
```mermaid
|
|
44
47
|
flowchart LR
|
|
45
|
-
T1["
|
|
46
|
-
T2 --> T3["
|
|
47
|
-
T3 --> T4["
|
|
48
|
+
T1["Tầng 1: Tự Động Hóa Cốt Lõi<br/>Clean POM, Live DOM, Tự Sửa Locator"] --> T2["Tầng 2: Tiêu Chuẩn Doanh Nghiệp<br/>WCAG, Visual Test, Core Web Vitals"]
|
|
49
|
+
T2 --> T3["Tầng 3: Kỹ Nghệ Ngữ Cảnh AI<br/>Nén Token, Bản Đồ Code AST"]
|
|
50
|
+
T3 --> T4["Tầng 4: Kiến Trúc & CI/CD<br/>ADR, Chia Shard CI, GitHub Actions"]
|
|
48
51
|
```
|
|
49
52
|
|
|
50
|
-
1. **
|
|
51
|
-
-
|
|
52
|
-
2. **
|
|
53
|
-
-
|
|
54
|
-
3. **
|
|
55
|
-
-
|
|
56
|
-
4. **
|
|
57
|
-
-
|
|
53
|
+
1. **Tầng 1 — Tự Động Hóa Cốt Lõi & Tự Sửa Lỗi (Core Automation & Self-Healing):**
|
|
54
|
+
- Sinh script tự động, chuẩn hóa Clean POM phẳng, tương tác trực tiếp trên live DOM qua Playwright MCP và tự phục hồi locator khi giao diện thay đổi.
|
|
55
|
+
2. **Tầng 2 — Kiểm Soát Chất Lượng Nâng Cao (Enterprise Quality Sentinel):**
|
|
56
|
+
- Kiểm toán khả năng tiếp cận (WCAG 2.2), đo chỉ số Core Web Vitals, so sánh hình ảnh giao diện (Visual Regression) và tự tạo dữ liệu test không lo trùng lặp.
|
|
57
|
+
3. **Tầng 3 — Tối Ưu Ngữ Cảnh Cho AI (AI Context Engineering & Diagnostics):**
|
|
58
|
+
- Chống tràn ngữ cảnh, nén token tối đa, và điều hướng đồ thị tri thức mã nguồn (AST repo map) để AI không bao giờ đọc cả file hàng nghìn dòng.
|
|
59
|
+
4. **Tầng 4 — Kiến Trúc & Tích Hợp CI/CD (Architecture & Delivery):**
|
|
60
|
+
- Lưu trữ quyết định kiến trúc (ADR), dọn dẹp nợ kỹ thuật (technical debt), và thiết lập pipeline chạy test song song trên GitHub Actions/GitLab CI.
|
|
58
61
|
|
|
59
62
|
---
|
|
60
63
|
|
|
61
|
-
## 3.
|
|
64
|
+
## 3. Quy Chuẩn Kiến Trúc Clean POM Phẳng (Flat Clean POM)
|
|
62
65
|
|
|
63
|
-
|
|
66
|
+
Toàn bộ script kiểm thử do AI viết hoặc refactor đều phải tuân thủ nghiêm ngặt mô hình Clean POM:
|
|
64
67
|
|
|
65
|
-
- **
|
|
66
|
-
- **
|
|
67
|
-
- **
|
|
68
|
-
- **
|
|
68
|
+
- **Quy tắc 1 — Không Để Selector Trong Test Script:** File test (`tests/` hoặc `Scripts/`) chỉ gọi các hàm nghiệp vụ trên Page Class. Tuyệt đối cấm đặt XPath, CSS selector hoặc `findTestObject` bên trong file test.
|
|
69
|
+
- **Quy tắc 2 — Đơn Kế Thừa Từ `BasePage`:** Tất cả Page Class đều kế thừa từ `BasePage`, tận dụng sẵn cơ chế smart wait động, bộ sinh mã ngẫu nhiên và trình phát sự kiện an toàn.
|
|
70
|
+
- **Quy tắc 3 — Dữ Liệu Test Luôn Động & Độc Lập (Idempotent):** Mọi bản ghi tạo mới trong test phải kèm tiền tố sinh ngẫu nhiên từ `BasePage.uniqueCode("AUTO_")` để khi chạy song song nhiều luồng không bao giờ bị đụng độ khóa chính DB.
|
|
71
|
+
- **Quy tắc 4 — Tự Sửa Tại Chỗ (In-Place Self-Healing):** Khi UI ứng dụng đổi locator, hệ thống chỉ sửa đúng Page Class bị ảnh hưởng; các kịch bản test giữ nguyên 100%.
|
|
69
72
|
|
|
70
73
|
---
|
|
71
74
|
|
|
72
|
-
## 4.
|
|
75
|
+
## 4. 10 Cổng Chất Lượng Bắt Buộc Khi Hoàn Thành (10 DoD Quality Gates)
|
|
73
76
|
|
|
74
|
-
|
|
77
|
+
Trước khi commit code hoặc merge Pull Request, toàn bộ mã kiểm thử bắt buộc phải vượt qua 10 Cổng Kiểm Định (`tools/verify_all.py`):
|
|
75
78
|
|
|
76
|
-
|
|
|
79
|
+
| Cổng | Tên Cổng | Công Cụ Kiểm Tra | Tiêu Chuẩn Vượt Qua (DoD) |
|
|
77
80
|
| :---: | :--- | :--- | :--- |
|
|
78
|
-
| **Gate 0** | **
|
|
79
|
-
| **Gate 1** | **UTF-8 No BOM
|
|
80
|
-
| **Gate 2** |
|
|
81
|
-
| **Gate 3** | **Clean POM
|
|
82
|
-
| **Gate 4** | **AI
|
|
83
|
-
| **Gate 5** | **
|
|
84
|
-
| **Gate 6** | **Credential
|
|
85
|
-
| **Gate 7** | **
|
|
86
|
-
| **Gate 8** |
|
|
87
|
-
| **Gate 9** |
|
|
81
|
+
| **Gate 0** | **Bảo Toàn Tác Quyền & MIT Provenance** | `author_integrity.py` | Bảo toàn giấy phép MIT và quyền tác giả gốc của Thế Vị (@TeeVee998). |
|
|
82
|
+
| **Gate 1** | **Chuẩn Mã Hóa UTF-8 No BOM** | `verify_all.py` | 100% file không chứa ký tự BOM rác (`0xEF, 0xBB, 0xBF`), không vỡ font trên Linux/CI. |
|
|
83
|
+
| **Gate 2** | **Đường Dẫn Linh Hoạt (Path Portability)** | `verify_all.py` | Cấm hardcode đường dẫn máy cá nhân (`/Users/...`, `C:\...`); bắt buộc dùng path tương đối. |
|
|
84
|
+
| **Gate 3** | **Kiến Trúc Clean POM Phẳng** | `verify_all.py` | 100% selector nằm trong Page Class; cấm triệt để selector thô trong file test. |
|
|
85
|
+
| **Gate 4** | **Chống AI Bịa Đặt (Anti-Drift Linter)** | `lint_ai_docs.py` | Đối chiếu tài liệu với AST thực tế; cấm AI nhắc tới PageClass hay hàm không tồn tại. |
|
|
86
|
+
| **Gate 5** | **Chặn File Rác Lọt Vào Git** | `verify_all.py` | Cấm commit file tạm, file dump bộ nhớ hay log rác (`*.tmp`, `.ruff_cache`, heap dump). |
|
|
87
|
+
| **Gate 6** | **Bảo Mật Credential & Secret** | `verify_all.py` | Quét regex phát hiện và chặn đứng mật khẩu, API key, token nhạy cảm bị hardcode. |
|
|
88
|
+
| **Gate 7** | **Bắt Lỗi Tĩnh & Test Pass Ảo** | `infer_linter.py` | Chặn test 0 câu assert, try-catch nuốt lỗi (`pass`), dùng sleep cố định hoặc thiếu `await`. |
|
|
89
|
+
| **Gate 8** | **Đo Độ Nhạy Của Câu Lệnh Assert** | `micro_mutator.py` | Đột biến cú pháp AST; yêu cầu điểm diệt mutant $\ge 80\%$ (chống assert hời hợt). |
|
|
90
|
+
| **Gate 9** | **Điều Phối Kỹ Năng Tránh Trùng Lặp** | `skill_collision_guard.py` | Đảm bảo mô tả của các kỹ năng không đè phạm vi của nhau (cosine similarity $< 0.75$). |
|
|
88
91
|
|
|
89
92
|
---
|
|
90
93
|
|
|
91
|
-
## 5.
|
|
94
|
+
## 5. Ranh Giới Kỹ Thuật & Những Gì Hệ Thống Không Làm (Non-Goals)
|
|
92
95
|
|
|
93
|
-
|
|
94
|
-
- **
|
|
95
|
-
- **
|
|
96
|
-
- **
|
|
97
|
-
- **
|
|
96
|
+
Để giữ cho hệ thống luôn nhẹ và chạy nhanh, Synapse Hub xác định rõ ranh giới:
|
|
97
|
+
- **Không Tạo Test Runner Mới:** Tận dụng trực tiếp các runner tiêu chuẩn (Playwright, Pytest, Katalon/Gradle, Cypress, Newman, JMeter).
|
|
98
|
+
- **Không Can Thiệp Source Code Ứng Dụng:** Chỉ hoạt động trong phạm vi code test, Page Class, mock data và các cổng kiểm định.
|
|
99
|
+
- **Hub Hoàn Toàn Phi Trạng Thái (Stateless):** Không lưu mật khẩu hay dữ liệu nghiệp vụ của công ty vào git.
|
|
100
|
+
- **Hỗ Trợ Đa Ngôn Ngữ Qua Universal IR:** Dùng lớp biểu diễn trung gian Universal IR để kết nối mượt mà giữa TypeScript, Python, Groovy và Java.
|
|
98
101
|
|
|
99
|
-
|
|
102
|
+
Hệ thống điều phối 6 subagent chuyên biệt với quyền hạn công cụ rõ ràng:
|
|
100
103
|
|
|
101
|
-
| Subagent
|
|
104
|
+
| Vai Trò Subagent | Trọng Tâm Nhiệm Vụ | Kỹ Năng Cho Phép | Công Cụ Thực Thi |
|
|
102
105
|
| :--- | :--- | :--- | :--- |
|
|
103
|
-
| **`orchestrator`** |
|
|
104
|
-
| **`pom-crafter`** |
|
|
105
|
-
| **`live-explorer`** |
|
|
106
|
-
| **`test-runner`** |
|
|
107
|
-
| **`failure-analyst`**|
|
|
108
|
-
| **`quality-gatekeeper`**| 10
|
|
109
|
-
|
|
110
|
-
### 5.1
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
- `cli.py`:
|
|
114
|
-
- `output_formatter.py`:
|
|
115
|
-
- `welcome_page.py`:
|
|
116
|
-
- `bump_version.py`:
|
|
117
|
-
- `sync_agent_rules.py`:
|
|
118
|
-
- `md_to_xlsx.py`:
|
|
119
|
-
- `mcp_excel_server.py`:
|
|
106
|
+
| **`orchestrator`** | Nhận yêu cầu, phân tích bài toán & điều phối | `agent-orchestration-multi-agent-optimize`, `graphify-impact-analyzer`, `architecture-decision-records`, `token-and-context-optimizer`, `actor-qa-swarm`, `event-stream-qa-orchestrator`, `qa-memory-os`, `tot-exploratory-testing`, `review-spec` | `verify_all.py`, `test_impact.py`, `setup_project.py`, `interview_story.py`, `dspy_qa_signatures.py`, `autogen_qa_broker.py`, `qa_event_stream.py`, `test_memory_os.py`, `tot_exploratory_tester.py`, `watch_mode.py`, `dashboard_generator.py` |
|
|
107
|
+
| **`pom-crafter`** | Thiết kế Page Class & sinh test theo Clean POM | `clean-pom-crafter`, `lam-script-generator`, `synthetic-test-data-generator`, `api-spec-to-e2e-matrix`, `gherkin-to-suite`, `mipro-prompt-compiler`, `qa-aci-interface` | `lookup_xpath.py`, `repo_map.py`, `generate_tc_from_story.py`, `skill_vault.py`, `gherkin_suite.py`, `swe_qa_aci.py`, `mipro_assertion_tuner.py`, `api_fuzzer.py`, `export_postman_collection.py` |
|
|
108
|
+
| **`live-explorer`** | Dò trực tiếp phần tử DOM & AOM (<200ms) | `playwright-live-interaction`, `self-healing-locator`, `visual-regression-sentinel`, `api-network-mocking-interception` | `browser_helpers.js`, `e2e_flow_prober.ps1`, `safety_firewall.py` |
|
|
109
|
+
| **`test-runner`** | Chạy test headless qua CLI và tích hợp CI | `katalon-cli-runner`, `e2e-testing-patterns`, `flaky-test-sentinel-and-quarantine`, `backend-load-and-stress-patterns`, `github-actions-templates` | `matrix_sharder.py`, `distill_log.py`, `pinpoint_failure.py`, `flaky_detector.py`, `reversible_sandbox.py`, `generate_jmx_plan.py`, `jtl_analyzer.py`, `newman_analyzer.py`, `traffic_session_converter.py`, `db_sandbox.py` |
|
|
110
|
+
| **`failure-analyst`**| Khám nghiệm lỗi qua log, ảnh chụp & JUnit XML | `failure-autopsy-and-healing`, `self-healing-locator`, `file-and-report-validator`, `systematic-debugging`, `agentless-qa-repair` | `auto_heal.py`, `heal_pr_automator.py`, `pinpoint_failure.py`, `cache_resolver.py`, `auto_heal_reflexion.py`, `agentless_patcher.py`, `heuristic_locator_matcher.py`, `telemetry_correlator.py` |
|
|
111
|
+
| **`quality-gatekeeper`**| Gác 10 Cổng DoD & triệt tiêu test pass ảo | `antigravity-test-sentinel`, `code-refactoring-refactor-clean`, `wcag-audit-patterns`, `web-vitals-and-performance-profiler`, `security-dast-sentinel`, `lean-impact-scoreboard`, `web-agent-gym-benchmarking` | `verify_all.py`, `infer_linter.py`, `micro_mutator.py`, `trace_data_flow.py`, `skill_collision_guard.py`, `textgrad_mutation_optimizer.py`, `skillspector.py`, `author_integrity.py`, `browsergym_eval.py` |
|
|
112
|
+
|
|
113
|
+
### 5.1 Các Tiện Ích Dùng Trực Tiếp (Không Cần Phân Quyền Subagent)
|
|
114
|
+
|
|
115
|
+
7 công cụ hạ tầng dưới đây có thể gọi trực tiếp từ dòng lệnh:
|
|
116
|
+
- `cli.py`: Điểm điều phối lệnh trung tâm (`synapse-hub` / `agent-qa`).
|
|
117
|
+
- `output_formatter.py`: Định dạng màu sắc ANSI và bảng biểu trên terminal.
|
|
118
|
+
- `welcome_page.py`: Khởi tạo trang hướng dẫn trực quan dạng HTML (`agent-qa welcome`).
|
|
119
|
+
- `bump_version.py`: Bộ nâng số phiên bản semver đồng loạt trên toàn bộ repo (`agent-qa bump`).
|
|
120
|
+
- `sync_agent_rules.py`: Đồng bộ rules sang các trợ lý AI (Cursor, Claude Code, Copilot, Windsurf).
|
|
121
|
+
- `md_to_xlsx.py`: Tiện ích chuyển đổi Markdown thành file Excel (`agent-qa md-to-xlsx`).
|
|
122
|
+
- `mcp_excel_server.py`: MCP Server thao tác với bảng tính Excel ngoại tuyến.
|
|
120
123
|
|
|
121
124
|
---
|
|
122
125
|
|
|
123
|
-
## 6.
|
|
126
|
+
## 6. Quy Ước Đặt Tên & Phân Phối Gói
|
|
124
127
|
|
|
125
|
-
|
|
126
|
-
- **
|
|
127
|
-
- **NPM
|
|
128
|
-
- **Python
|
|
129
|
-
- **MCP Server
|
|
130
|
-
-
|
|
128
|
+
Để thuận tiện khi sử dụng trên nhiều nền tảng:
|
|
129
|
+
- **Tên Dự Án / Hệ Sinh Thái:** Synapse Hub (`Synapse-Hub` trên GitHub)
|
|
130
|
+
- **Gói NPM & Plugin Antigravity:** `synapse-hub` (trên NPM Registry và Antigravity Marketplace)
|
|
131
|
+
- **Gói Python & Universal CLI:** `agent-qa` (gói PyPI cung cấp binary lệnh `agent-qa`)
|
|
132
|
+
- **Dịch Vụ MCP Server:** `enterprise-agent-qa` (MCP server cho QA) và `synapse-mcp-excel` (server công cụ Excel)
|
|
133
|
+
- **Định Danh Kỹ Năng:** `enterprise-agent-skills-hub` (trong `skills_manifest.json`) và `agentskills.json` (chuẩn AgentSkills v1)
|
|
131
134
|
|
|
132
135
|
---
|
|
133
136
|
|
|
134
|
-
## 7.
|
|
137
|
+
## 7. Cơ Chế Tự Học & Tiến Hóa Của AI Agent
|
|
135
138
|
|
|
136
|
-
|
|
139
|
+
Không chỉ dừng lại ở các prompt tĩnh, Synapse Hub tích hợp 6 cơ chế hiện đại giúp AI tự học và cải thiện qua từng lần chạy:
|
|
137
140
|
|
|
138
141
|
```mermaid
|
|
139
142
|
flowchart TD
|
|
140
|
-
subgraph SelfEvolution["
|
|
141
|
-
Vault["<b>Voyager Lifelong Vault</b><br/>(skill_vault.py)<br/>•
|
|
142
|
-
Reflexion["<b>
|
|
143
|
-
DSPy["<b>
|
|
144
|
-
TextGrad["<b>
|
|
145
|
-
Reversible["<b>
|
|
146
|
-
Bench["<b
|
|
143
|
+
subgraph SelfEvolution["Cơ Chế Tự Học & Tiến Hóa Của Agent"]
|
|
144
|
+
Vault["<b>Voyager Lifelong Vault</b><br/>(skill_vault.py)<br/>• Lưu PageClass chuẩn vào SQLite<br/>• Không bắt AI phải suy đoán lại từ đầu"]
|
|
145
|
+
Reflexion["<b>Vòng Lặp Tự Phản Tư (Reflexion)</b><br/>(auto_heal_reflexion.py)<br/>• Thử nghiệm và rút kinh nghiệm K=3 lần<br/>• Tự sửa locator mà không làm bẩn git"]
|
|
146
|
+
DSPy["<b>Biên Dịch Signature (DSPy)</b><br/>(dspy_qa_signatures.py)<br/>• Định kiểu dữ liệu chặt chẽ cho prompt<br/>• Bỏ hẳn thói quen prompt engineering mò mẫm"]
|
|
147
|
+
TextGrad["<b>Tối Ưu Assert Bằng Hàm Loss (TextGrad)</b><br/>(textgrad_mutation_optimizer.py)<br/>• Dùng mutant còn sống làm hàm mất mát<br/>• Tinh chỉnh câu lệnh assert đến khi đạt ≥ 80%"]
|
|
148
|
+
Reversible["<b>Sandbox Tự Thu Dọn Dữ Liệu (GoEx)</b><br/>(reversible_sandbox.py)<br/>• Ngăn xếp hoàn tác (rollback) dạng LIFO<br/>• Chạy test xong không để lại rác trong DB"]
|
|
149
|
+
Bench["<b>Đánh Giá Năng Lực Gọi Tool (Gorilla BFCL)</b><br/>(synapse_qa_bench.py)<br/>• Đo độ chính xác khi chọn và gọi tool<br/>• Ngăn AI bị suy giảm phong độ khi cập nhật"]
|
|
147
150
|
end
|
|
148
151
|
|
|
149
152
|
Vault --> DSPy --> TextGrad --> Reversible --> Reflexion --> Bench
|
|
150
153
|
```
|
|
151
154
|
|
|
152
|
-
1. **
|
|
153
|
-
2. **
|
|
154
|
-
3. **
|
|
155
|
-
4. **
|
|
156
|
-
5. **
|
|
157
|
-
6.
|
|
155
|
+
1. **Bộ Nhớ Tích Lũy Kỹ Năng (`skill_vault.py`):** Học theo dự án Voyager, lưu các hàm Page Object và mẫu tương tác chuẩn vào SQLite. AI càng chạy nhiều thì càng thông minh và ít phải hỏi lại.
|
|
156
|
+
2. **Thử Nghiệm & Tự Rút Kinh Nghiệm (`auto_heal_reflexion.py`):** Áp dụng mô hình Reflexion của Noah Shinn, cho phép AI chạy thử nghiệm tối đa $K=3$ lần, đọc stacktrace lỗi và tự suy luận để đổi cách bắt locator chuẩn xác hơn.
|
|
157
|
+
3. **Biên Dịch Signature Có Kiểu Dữ Liệu (`dspy_qa_signatures.py`):** Áp dụng nguyên lý Stanford DSPy, chuẩn hóa đầu vào và đầu ra của prompt theo cấu trúc rõ ràng thay vì ghép nối chuỗi tự do.
|
|
158
|
+
4. **Tối Ưu Hóa Assert Theo Hàm Loss (`textgrad_mutation_optimizer.py`):** Coi các đột biến cú pháp (mutant) chưa bị bắt như một hàm loss, lặp lại việc siết chặt assertion cho tới khi bắt hết mọi trường hợp lỗi tiềm ẩn.
|
|
159
|
+
5. **Sandbox Tự Hoàn Tác Trạng Thái (`reversible_sandbox.py`):** Giống cơ chế GoEx, ghi nhận mọi thay đổi trên ổ đĩa và cơ sở dữ liệu để rollback sạch sẽ sau khi chạy test khám phá.
|
|
160
|
+
6. **Đo Lường Độ Chuẩn Xác Khi Gọi Tool (`synapse_qa_bench.py`):** Áp dụng thang đo chuẩn Berkeley Function-Calling Leaderboard (BFCL) để đánh giá khả năng chọn đúng công cụ và thực thi chính xác của các subagent.
|
|
158
161
|
|
|
159
162
|
---
|
|
160
163
|
|
|
161
|
-
## 8.
|
|
164
|
+
## 8. So Sánh Với Các Giải Pháp Hiện Nay
|
|
162
165
|
|
|
163
|
-
|
|
|
166
|
+
| Tiêu Chí Đánh Giá | ESLint Playwright | Stryker Mutator | Allure Report | Healenium | Synapse Hub 🧠 |
|
|
164
167
|
| :--- | :---: | :---: | :---: | :---: | :---: |
|
|
165
|
-
| **
|
|
166
|
-
| **
|
|
167
|
-
| **
|
|
168
|
-
| **
|
|
169
|
-
| **Locator
|
|
170
|
-
| **
|
|
171
|
-
| **Clean POM
|
|
168
|
+
| **Ngôn Ngữ & Framework Hỗ Trợ** | Chỉ JS / TS | JS / TS, C#, Scala | Mọi ngôn ngữ (chỉ đọc XML) | Java / Python / C# (Selenium) | **Đa ngôn ngữ** (TS/JS, Python, Groovy, Java) |
|
|
169
|
+
| **Tích Hợp Sâu Vào Ngữ Cảnh AI** | ❌ (Chỉ chạy lint IDE/CLI) | ❌ (Tool độc lập) | ❌ (Chỉ hiển thị sau test) | ❌ (Cần proxy JVM riêng) | ✅ **Nguyên bản** (Rules, MCP, AST Map, 6 Subagent) |
|
|
170
|
+
| **Diệt Trừ Test Pass Ảo Do AI Sinh** | ⚠️ Chỉ bắt lỗi cú pháp | ❌ (Chỉ đột biến app code) | ❌ | ❌ | ✅ **Chuyên dụng** (Bắt 0 assert, nuốt ngoại lệ, tautology) |
|
|
171
|
+
| **Tốc Độ Kiểm Thử Đột Biến** | Không có | ⏱️ Vài phút đến vài giờ | Không có | Không có | ⚡ **Cực nhanh (~0.1s)** bằng quét nhạy cảm assert tĩnh (Heuristic) |
|
|
172
|
+
| **Tự Sửa Locator Khi UI Đổi** | ❌ | ❌ | ❌ | ⚠️ Cần server JVM + Docker | ⚡ **Siêu nhẹ (< 500 token)** qua diff cây AOM trực tiếp |
|
|
173
|
+
| **Cô Đọng Log & Tiết Kiệm Token** | ❌ | ❌ | ❌ | ❌ | ✅ **Cắt giảm 95%** log thừa (`distill_log.py`, `repo_map.py`) |
|
|
174
|
+
| **Bảo Vệ Kiến Trúc Clean POM** | ❌ | ❌ | ❌ | ❌ | ✅ **Bắt buộc tuân thủ**, cấm selector trong test script |
|
|
172
175
|
|
|
173
176
|
---
|
|
174
177
|
|
|
175
|
-
## 9.
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
1. **
|
|
180
|
-
`tools/micro_mutator.py`
|
|
181
|
-
2. **
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
-
|
|
191
|
-
- Python >= 3.9 (Python 3.10+ recommended; fully tested on 3.10, 3.11, 3.12, 3.13, 3.15).
|
|
192
|
-
- Headless browser: Playwright Chromium required for live DOM/AOM probing and self-healing locators.
|
|
178
|
+
## 9. Những Điểm Hạn Chế Cần Lưu Ý & Kết Quả Đánh Giá Thực Nghiệm
|
|
179
|
+
|
|
180
|
+
Để giữ nguyên tắc trung thực tuyệt đối (**Truth Anchor**), Synapse Hub công khai mọi giới hạn kỹ thuật:
|
|
181
|
+
|
|
182
|
+
1. **Quét Nhạy Cảm Assert Tĩnh (Heuristic) vs Đột Biến Runtime:**
|
|
183
|
+
`tools/micro_mutator.py` ở chế độ tĩnh sử dụng phân tích độ nhạy assert heuristic (~0.1s) để phát hiện nhanh nhánh rẽ thiếu assert hoặc assertion lỏng lẻo. Đây là cơ chế ước tính độ phủ ngữ nghĩa (reachability & dataflow heuristic), **không phải** công cụ mutation testing thực thi mã cấp trình biên dịch (như Stryker hay mutmut). Để có điểm mutation thực tế không bị thổi phồng, cần chạy chế độ Dynamic (`--test-cmd`) để thực thi test suite trực tiếp trên từng mutant.
|
|
184
|
+
2. **Kết Quả Benchmark Thực Nghiệm (Self-Reported Baseline):**
|
|
185
|
+
Các chỉ số 25/25 bài toán (100.0%) và 76.2 token / lỗi là kết quả đo lường nội bộ do tác giả thực hiện trên bộ benchmark curated nội bộ (`benchmarks/qa_eval`), chưa qua kiểm chứng độc lập của bên thứ ba (third-party double-blind benchmark). Khi áp dụng vào dự án thực tế với kiến trúc phức tạp, các chỉ số có thể thay đổi tùy thuộc vào độ bao phủ của bộ test.
|
|
186
|
+
3. **Cơ Chế Pin Version Hub-Spoke (Chống Lỗi Lan Truyền):**
|
|
187
|
+
Khi tích hợp Synapse Hub vào các dự án Spoke, khuyến nghị bắt buộc pin phiên bản qua Git Submodule commit cụ thể hoặc git release tag (`git checkout v3.0.0`), tránh kéo trực tiếp nhánh `main` tự động để không làm ảnh hưởng pipeline của các Spoke khi Hub có cập nhật chưa kiểm duyệt.
|
|
188
|
+
4. **Test Framework Được Hỗ Trợ Tốt Nhất:**
|
|
189
|
+
Tối ưu tốt nhất cho **Playwright, Pytest, Katalon Studio/Groovy, và Cypress**. Hỗ trợ Selenium WebDriver thông qua chuẩn kiến trúc Clean POM, smart wait và chuyển ngữ Universal IR.
|
|
190
|
+
5. **Yêu Cầu Môi Trường:**
|
|
191
|
+
- Node.js >= 18.0.0 (khuyên dùng Node 20 hoặc 22 LTS).
|
|
192
|
+
- Python >= 3.10 (đã kiểm thử đầy đủ trên 3.10, 3.11, 3.12, 3.13, 3.15).
|
|
193
|
+
- Trình duyệt headless: Cần cài đặt Playwright Chromium để dùng tính năng dò phần tử DOM và tự sửa locator.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# CI/CD Integration Guide — Synapse-Hub Enterprise QA
|
|
2
|
+
|
|
3
|
+
[🇻🇳 Tiếng Việt](CI_CD_INTEGRATION.md) | [🇬🇧 English Edition](CI_CD_INTEGRATION.en.md)
|
|
4
|
+
|
|
5
|
+
This guide explains how to integrate Synapse-Hub quality gates (`verify_all.py`, `infer_linter`, AST mutator, Clean POM checks) directly into target project CI/CD pipelines without local filesystem dependencies.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Zero-Install NPX Integration (Recommended)
|
|
10
|
+
|
|
11
|
+
Since `synapse-hub` is distributed via NPM Registry and GitHub Packages, target CI pipelines do not need to clone the hub repository manually. `npx` dynamically fetches and executes the CLI engine.
|
|
12
|
+
|
|
13
|
+
### GitHub Actions Workflow (`.github/workflows/synapse_qa.yml`)
|
|
14
|
+
|
|
15
|
+
```yaml
|
|
16
|
+
name: Synapse QA Quality Gate
|
|
17
|
+
|
|
18
|
+
on:
|
|
19
|
+
push:
|
|
20
|
+
branches: [ main, develop, master ]
|
|
21
|
+
pull_request:
|
|
22
|
+
branches: [ main, develop, master ]
|
|
23
|
+
|
|
24
|
+
jobs:
|
|
25
|
+
quality-gate:
|
|
26
|
+
name: 10 Quality Gates DoD Verification
|
|
27
|
+
runs-on: ubuntu-latest
|
|
28
|
+
steps:
|
|
29
|
+
- name: Checkout Project Source
|
|
30
|
+
uses: actions/checkout@v4
|
|
31
|
+
|
|
32
|
+
- name: Setup Node.js & Python
|
|
33
|
+
uses: actions/setup-node@v4
|
|
34
|
+
with:
|
|
35
|
+
node-version: 20
|
|
36
|
+
- uses: actions/setup-python@v5
|
|
37
|
+
with:
|
|
38
|
+
python-version: '3.12'
|
|
39
|
+
|
|
40
|
+
- name: Verify 10 Quality Gates
|
|
41
|
+
run: npx synapse-hub verify
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### GitLab CI (`.gitlab-ci.yml`)
|
|
45
|
+
|
|
46
|
+
```yaml
|
|
47
|
+
synapse-qa-gate:
|
|
48
|
+
stage: test
|
|
49
|
+
image: node:20-bookworm
|
|
50
|
+
before_script:
|
|
51
|
+
- apt-get update && apt-get install -y python3 python3-pip
|
|
52
|
+
script:
|
|
53
|
+
- npx synapse-hub verify
|
|
54
|
+
rules:
|
|
55
|
+
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
|
56
|
+
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 2. Git Submodule Integration (For Air-Gapped / Private SCM)
|
|
62
|
+
|
|
63
|
+
If your enterprise network restricts public NPM registry access, mount `Synapse-Hub` as a Git Submodule inside the target repository:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Add submodule into target project
|
|
67
|
+
git submodule add https://github.com/TeeVee998/Synapse-Hub.git .synapse-hub
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
In your CI pipeline:
|
|
71
|
+
```bash
|
|
72
|
+
git submodule update --init --recursive
|
|
73
|
+
python .synapse-hub/tools/verify_all.py
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 3. Python Git / Pip Package Integration
|
|
79
|
+
|
|
80
|
+
Target runners with Python 3.9+ can install `synapse-hub` directly from git:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
pip install git+https://github.com/TeeVee998/Synapse-Hub.git
|
|
84
|
+
agent-qa verify
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## 4. Available CI Subcommands
|
|
90
|
+
|
|
91
|
+
| Command | Purpose | SLA / Exit Code |
|
|
92
|
+
| :--- | :--- | :--- |
|
|
93
|
+
| `npx synapse-hub verify` | Executes all 10 Quality Gates DoD | Exits `0` if all PASS; non-zero if any FAIL. |
|
|
94
|
+
| `npx synapse-hub lint` | Meta Infer-style static defect and fake-pass scan | Fails if 0-assert tests or empty catches exist. |
|
|
95
|
+
| `npx synapse-hub mutate --min-score 80` | Syntactic Micro-Mutation verification | Fails if test assertion score < 80%. |
|
|
96
|
+
| `npx synapse-hub analyze` | Comprehensive 5-in-1 health audit | Outputs health score and JSON/Markdown artifacts. |
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
# CI/CD
|
|
1
|
+
# Hướng Dẫn Tích Hợp CI/CD — Synapse-Hub Enterprise QA
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[🇻🇳 Tiếng Việt](CI_CD_INTEGRATION.md) | [🇬🇧 English Edition](CI_CD_INTEGRATION.en.md)
|
|
4
|
+
|
|
5
|
+
Tài liệu này hướng dẫn cách đưa các cổng kiểm định chất lượng của Synapse Hub (`verify_all.py`, `infer_linter`, bộ micro-mutation và kiểm tra Clean POM) trực tiếp vào đường ống CI/CD của dự án test mà không phụ thuộc vào môi trường máy cá nhân.
|
|
4
6
|
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
## 1.
|
|
9
|
+
## 1. Tích Hợp Chạy Ngay Qua Lệnh NPX (Khuyên Dùng)
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
Do `synapse-hub` được phát hành sẵn trên NPM Registry và GitHub Packages, pipeline CI của dự án không cần clone repo Hub về máy. Lệnh `npx` sẽ tự động tải và kích hoạt CLI tức thì.
|
|
10
12
|
|
|
11
|
-
### GitHub Actions
|
|
13
|
+
### Đường Ống GitHub Actions (`.github/workflows/synapse_qa.yml`)
|
|
12
14
|
|
|
13
15
|
```yaml
|
|
14
16
|
name: Synapse QA Quality Gate
|
|
@@ -21,13 +23,13 @@ on:
|
|
|
21
23
|
|
|
22
24
|
jobs:
|
|
23
25
|
quality-gate:
|
|
24
|
-
name:
|
|
26
|
+
name: Kiểm Định 10 Cổng Chất Lượng DoD
|
|
25
27
|
runs-on: ubuntu-latest
|
|
26
28
|
steps:
|
|
27
|
-
- name: Checkout
|
|
29
|
+
- name: Checkout Mã Nguồn Dự Án
|
|
28
30
|
uses: actions/checkout@v4
|
|
29
31
|
|
|
30
|
-
- name:
|
|
32
|
+
- name: Cài Đặt Node.js & Python
|
|
31
33
|
uses: actions/setup-node@v4
|
|
32
34
|
with:
|
|
33
35
|
node-version: 20
|
|
@@ -35,11 +37,11 @@ jobs:
|
|
|
35
37
|
with:
|
|
36
38
|
python-version: '3.12'
|
|
37
39
|
|
|
38
|
-
- name:
|
|
40
|
+
- name: Chạy Kiểm Định 10 Cổng Chất Lượng
|
|
39
41
|
run: npx synapse-hub verify
|
|
40
42
|
```
|
|
41
43
|
|
|
42
|
-
### GitLab CI (`.gitlab-ci.yml`)
|
|
44
|
+
### Đường Ống GitLab CI (`.gitlab-ci.yml`)
|
|
43
45
|
|
|
44
46
|
```yaml
|
|
45
47
|
synapse-qa-gate:
|
|
@@ -56,16 +58,16 @@ synapse-qa-gate:
|
|
|
56
58
|
|
|
57
59
|
---
|
|
58
60
|
|
|
59
|
-
## 2. Git Submodule
|
|
61
|
+
## 2. Tích Hợp Dạng Git Submodule (Dành Cho Mạng Nội Bộ / Không Có Internet)
|
|
60
62
|
|
|
61
|
-
|
|
63
|
+
Nếu hệ thống mạng nội bộ công ty bị chặn truy cập ra ngoài internet hoặc NPM registry công khai, bạn có thể gắn `Synapse-Hub` như một Git Submodule bên trong repo của dự án test:
|
|
62
64
|
|
|
63
65
|
```bash
|
|
64
|
-
#
|
|
66
|
+
# Thêm submodule vào thư mục dự án test
|
|
65
67
|
git submodule add https://github.com/TeeVee998/Synapse-Hub.git .synapse-hub
|
|
66
68
|
```
|
|
67
69
|
|
|
68
|
-
|
|
70
|
+
Trong file cấu hình pipeline CI:
|
|
69
71
|
```bash
|
|
70
72
|
git submodule update --init --recursive
|
|
71
73
|
python .synapse-hub/tools/verify_all.py
|
|
@@ -73,9 +75,9 @@ python .synapse-hub/tools/verify_all.py
|
|
|
73
75
|
|
|
74
76
|
---
|
|
75
77
|
|
|
76
|
-
## 3.
|
|
78
|
+
## 3. Cài Đặt Trực Tiếp Bằng Pip Từ Git
|
|
77
79
|
|
|
78
|
-
|
|
80
|
+
Với các runner CI đã có sẵn môi trường Python 3.10+, bạn có thể cài đặt `synapse-hub` trực tiếp từ Git repository:
|
|
79
81
|
|
|
80
82
|
```bash
|
|
81
83
|
pip install git+https://github.com/TeeVee998/Synapse-Hub.git
|
|
@@ -84,11 +86,11 @@ agent-qa verify
|
|
|
84
86
|
|
|
85
87
|
---
|
|
86
88
|
|
|
87
|
-
## 4.
|
|
89
|
+
## 4. Các Lệnh Thường Dùng Trên CI
|
|
88
90
|
|
|
89
|
-
|
|
|
91
|
+
| Lệnh Thực Thi | Mục Đích | Điều Kiện Vượt Qua / Mã Thoát |
|
|
90
92
|
| :--- | :--- | :--- |
|
|
91
|
-
| `npx synapse-hub verify` |
|
|
92
|
-
| `npx synapse-hub lint` | Meta Infer-style
|
|
93
|
-
| `npx synapse-hub mutate --min-score 80` |
|
|
94
|
-
| `npx synapse-hub analyze` |
|
|
93
|
+
| `npx synapse-hub verify` | Chạy toàn diện 10 Cổng Chất Lượng DoD | Trả về `0` nếu toàn bộ PASS; báo lỗi khác 0 nếu có bất kỳ cổng nào FAIL. |
|
|
94
|
+
| `npx synapse-hub lint` | Bắt lỗi tĩnh Meta Infer-style và test pass ảo | Fail ngay nếu có test 0 câu assert hoặc try-catch nuốt lỗi. |
|
|
95
|
+
| `npx synapse-hub mutate --min-score 80` | Kiểm tra độ nhạy của các câu assert bằng Micro-Mutation | Fail nếu điểm diệt đột biến của test < 80%. |
|
|
96
|
+
| `npx synapse-hub analyze` | Báo cáo kiểm toán sức khỏe dự án 5-trong-1 | Xuất điểm đánh giá và file báo cáo JSON/Markdown cho team. |
|