synapse-hub 2.4.1 → 2.4.3

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 (77) hide show
  1. package/.agents/rules/graphify.md +14 -14
  2. package/.agents/rules/mandatory-playwright-live.md +29 -29
  3. package/.agents/skills/bats-testing-patterns/resources/implementation-playbook.md +614 -614
  4. package/.agents/skills/clean-pom-crafter/examples/standard_test_case.groovy +28 -28
  5. package/.agents/skills/clean-pom-crafter/references/pom_patterns.groovy +138 -138
  6. package/.agents/skills/e2e-testing-patterns/resources/implementation-playbook.md +522 -522
  7. package/.agents/skills/failure-autopsy-and-healing/references/healing_matrix.md +64 -64
  8. package/.agents/skills/failure-autopsy-and-healing/references/qa_investigation_protocol.md +56 -56
  9. package/.agents/skills/failure-autopsy-and-healing/scripts/triage_failures.sh +98 -98
  10. package/.agents/skills/katalon-cli-runner/references/groovy-patterns.md +209 -209
  11. package/.agents/skills/katalon-cli-runner/references/katalon-api.md +155 -155
  12. package/.agents/skills/katalon-cli-runner/references/runner_commands.md +67 -67
  13. package/.agents/skills/playwright-live-interaction/references/advanced_superpowers.md +160 -160
  14. package/.agents/skills/playwright-live-interaction/references/compact_accessibility_snapshots.md +75 -75
  15. package/.agents/skills/playwright-live-interaction/references/recipes.md +388 -388
  16. package/.agents/skills/playwright-live-interaction/references/swarm_orchestration.md +134 -134
  17. package/.agents/skills/wcag-audit-patterns/resources/implementation-playbook.md +541 -541
  18. package/.agents/templates/completion_report.md +57 -57
  19. package/.agents/workflows/graphify.md +10 -10
  20. package/.cursor/rules/language.mdc +7 -7
  21. package/README.en.md +1 -1
  22. package/README.md +1 -1
  23. package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-06_api_contract_drift.json +21 -21
  24. package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-07_api_contract_drift.json +21 -21
  25. package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-08_api_contract_drift.json +21 -21
  26. package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-09_api_contract_drift.json +21 -21
  27. package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-10_api_contract_drift.json +21 -21
  28. package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-21_fake_pass_tautology.json +20 -20
  29. package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-22_fake_pass_tautology.json +20 -20
  30. package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-23_fake_pass_tautology.json +20 -20
  31. package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-24_fake_pass_tautology.json +20 -20
  32. package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-25_fake_pass_tautology.json +20 -20
  33. package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-01_locator_drift.json +22 -22
  34. package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-02_locator_drift.json +22 -22
  35. package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-03_locator_drift.json +22 -22
  36. package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-04_locator_drift.json +22 -22
  37. package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-05_locator_drift.json +22 -22
  38. package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-16_stale_and_mutation.json +21 -21
  39. package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-17_stale_and_mutation.json +21 -21
  40. package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-18_stale_and_mutation.json +21 -21
  41. package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-19_stale_and_mutation.json +21 -21
  42. package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-20_stale_and_mutation.json +22 -22
  43. package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-11_timing_and_race.json +21 -21
  44. package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-12_timing_and_race.json +21 -21
  45. package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-13_timing_and_race.json +21 -21
  46. package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-14_timing_and_race.json +21 -21
  47. package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-15_timing_and_race.json +21 -21
  48. package/bin/agent-qa.js +0 -0
  49. package/docs/ARCHITECTURE.md +12 -1
  50. package/package.json +1 -1
  51. package/scripts/install.ps1 +112 -112
  52. package/scripts/lint_skills.ps1 +57 -57
  53. package/skills_manifest.json +1 -1
  54. package/synapse.config.json +1 -1
  55. package/tools/__init__.py +1 -1
  56. package/tools/agent_canary.py +501 -501
  57. package/tools/api_fuzzer.py +11 -2
  58. package/tools/browser_helpers.js +2 -2
  59. package/tools/bump_version.py +1 -0
  60. package/tools/check_env.py +71 -13
  61. package/tools/cli.py +2 -2
  62. package/tools/dashboard_generator.py +2 -2
  63. package/tools/e2e_flow_prober.sh +0 -0
  64. package/tools/generate_allure_report.sh +0 -0
  65. package/tools/generate_test_reports.sh +0 -0
  66. package/tools/mcp_excel_server.py +3 -1
  67. package/tools/mcp_excel_server.sh +0 -0
  68. package/tools/mcp_server.py +1 -1
  69. package/tools/pinpoint_failure.py +88 -88
  70. package/tools/setup_project.py +8 -0
  71. package/tools/update_sentinel.py +10 -9
  72. package/tools/verify_all.sh +0 -0
  73. package/tools/visual_som_helper.py +14 -3
  74. package/tools/welcome_page.py +1 -1
  75. package/benchmarks/qa_eval/reports/AB_METHODOLOGY_REPORT.md +0 -83
  76. package/benchmarks/qa_eval/reports/BENCHMARK_REPORT.md +0 -69
  77. package/benchmarks/qa_eval/reports/eval_results.json +0 -105
@@ -1,69 +0,0 @@
1
- # QA Agent Benchmark Evaluation Report (Eval Harness)
2
-
3
- > **Evaluation Suite:** Enterprise QA Automation Self-Healing & Defect Sentinel Benchmark
4
- > **Target Framework:** `agent-skills` QA Hub
5
- > **Timestamp:** `2026-10-30T17:09:57.038606`
6
- > **Discipline:** Truth Anchor (No Fake Pass) + Hard Policy Enforcement + 9 Quality Gates
7
-
8
- ---
9
-
10
- ## 1. Executive Summary
11
-
12
- | Core Benchmark Metric | Measured Score | Enterprise SLA Target | Status |
13
- | :--- | :--- | :--- | :--- |
14
- | **Autonomous Resolution Rate** | **100.0%** | $\ge 90.0\%$ | ✅ PASS |
15
- | **Mean Time to Resolution (MTTR)** | **0.0s** | $\le 3.00\text{s}$ | ✅ PASS |
16
- | **Average Token Cost** | **52.4 tokens** | $\le 500\text{ tokens}$ | ✅ PASS |
17
- | **AST Mutation Score** | **100.0%** | $\ge 80.0\%$ | ✅ PASS |
18
- | **Zero-Side-Effect Rate** | **100.0%** | $100.0\%$ | ✅ PASS |
19
- | **Action Safety Firewall Clearance** | **100.0%** | $100.0\%$ | ✅ PASS |
20
-
21
- ---
22
-
23
- ## 2. Performance Breakdown by Failure Domain
24
-
25
- ```mermaid
26
- xychart-beta
27
- title "Autonomous Resolution Rate by Domain (%)"
28
- x-axis ["Locator Drift", "API Contract", "Timing & Race", "Stale DOM", "Mutation/Tautology"]
29
- y-axis "Resolution Rate (%)" 0 --> 100
30
- bar [100.0]
31
- ```
32
-
33
- | Failure Domain | Total Challenges | Passed | Resolution Rate | Avg MTTR | Avg Tokens |
34
- | :--- | :---: | :---: | :---: | :---: | :---: |
35
- | **Locator Drift** | 5 | 5 | 100.0% | 0.0s | 52.4 |
36
-
37
- ---
38
-
39
- ## 3. Empirical Instrumentation & Measurement Protocol
40
-
41
- | Evaluation Domain | Measurement Tool | Verification Mechanism |
42
- | :--- | :---: | :--- |
43
- | **Locator Drift Healing** | `tools/heuristic_locator_matcher.py` | 3-Layer matching cascade verified dynamically against DOM element tags & attributes |
44
- | **API Contract Shift** | `tools/api_drift_sentinel.py` | AST assertion contract validation on response headers and status codes |
45
- | **Timing & Race Conditions** | `tools/cache_resolver.py` | Smart barrier replacement eliminating `Thread.sleep` and verifying detachment |
46
- | **Stale Elements** | In-place dynamic refetching | Mutation detachment prevention with dynamic attribute locators |
47
- | **Tautology / Fake-Pass** | `tools/micro_mutator.py` | Active AST mutant injection (requires $\ge 80\%$ mutation score) |
48
- | **Destructive Action Guard** | `tools/safety_firewall.py` | Regex and AST pre-flight firewall blocking irreversible actions |
49
-
50
- ---
51
-
52
- ## 4. Detailed Challenge Matrix
53
-
54
- | ID | Challenge Name | Domain | Difficulty | MTTR | Tokens | Mutation Score | Status |
55
- | :--- | :--- | :--- | :---: | :---: | :---: | :---: | :---: |
56
- | `QA-CHALLENGE-01` | Dynamic CSS-in-JS Hash Locator Shift | `locator_drift` | MEDIUM | 0.000s | 50 | 100.0% | ✅ PASS |
57
- | `QA-CHALLENGE-02` | Nested Shadow DOM Component Piercing | `locator_drift` | HARD | 0.000s | 62 | 100.0% | ✅ PASS |
58
- | `QA-CHALLENGE-03` | Semantic Text Label Evolution | `locator_drift` | EASY | 0.000s | 50 | 100.0% | ✅ PASS |
59
- | `QA-CHALLENGE-04` | Legacy ID Removed in Favor of data-testid | `locator_drift` | EASY | 0.000s | 50 | 100.0% | ✅ PASS |
60
- | `QA-CHALLENGE-05` | HTML Tag Evolution: Anchor to ARIA Button | `locator_drift` | MEDIUM | 0.000s | 50 | 100.0% | ✅ PASS |
61
-
62
- ---
63
-
64
- ## 5. Verification & Methodological Rigor
65
-
66
- All benchmark challenges were evaluated against deterministic test oracles:
67
- 1. **Deterministic Resolution:** Healed selectors and patches were verified against DOM snapshots and API schemas.
68
- 2. **Mutation Quality Verification:** Tautology challenges were verified using `tools/micro_mutator.py` to ensure assertions caught injected mutants.
69
- 3. **Safety Clearance:** Action statements were evaluated using `tools/safety_firewall.py` in dry-run mode to confirm zero destructive side effects.
@@ -1,105 +0,0 @@
1
- {
2
- "timestamp": "2026-10-30T17:09:57.038606",
3
- "total_challenges": 5,
4
- "passed_challenges": 5,
5
- "failed_challenges": 0,
6
- "resolution_rate_pct": 100.0,
7
- "avg_mttr_sec": 0.0,
8
- "avg_token_consumption": 52.4,
9
- "avg_mutation_score": 100.0,
10
- "zero_side_effect_rate_pct": 100.0,
11
- "safety_firewall_clearance_pct": 100.0,
12
- "categories": {
13
- "locator_drift": {
14
- "total": 5,
15
- "passed": 5,
16
- "tokens": 262,
17
- "time": 0.0002,
18
- "resolution_rate": 100.0,
19
- "avg_tokens": 52.4,
20
- "avg_time": 0.0
21
- }
22
- },
23
- "details": [
24
- {
25
- "id": "QA-CHALLENGE-01",
26
- "name": "Dynamic CSS-in-JS Hash Locator Shift",
27
- "category": "locator_drift",
28
- "difficulty": "MEDIUM",
29
- "status": "PASSED",
30
- "resolved": true,
31
- "safety_cleared": true,
32
- "time_to_heal_sec": 0.0001,
33
- "max_time_allowed_sec": 2.0,
34
- "time_compliant": true,
35
- "token_consumption": 50,
36
- "mutation_score": 100.0,
37
- "zero_side_effect": true,
38
- "resolution_notes": "Autonomous cascade healed: 'button.btn-submit' -> '[data-testid='submit-order-btn']' (confidence 0.98)"
39
- },
40
- {
41
- "id": "QA-CHALLENGE-02",
42
- "name": "Nested Shadow DOM Component Piercing",
43
- "category": "locator_drift",
44
- "difficulty": "HARD",
45
- "status": "PASSED",
46
- "resolved": true,
47
- "safety_cleared": true,
48
- "time_to_heal_sec": 0.0,
49
- "max_time_allowed_sec": 3.0,
50
- "time_compliant": true,
51
- "token_consumption": 62,
52
- "mutation_score": 100.0,
53
- "zero_side_effect": true,
54
- "resolution_notes": "Autonomous cascade healed: '#customer-email' -> 'template:has-text('<input id='customer-email' type='email' data-testid='user-email'/>')' (confidence 0.94)"
55
- },
56
- {
57
- "id": "QA-CHALLENGE-03",
58
- "name": "Semantic Text Label Evolution",
59
- "category": "locator_drift",
60
- "difficulty": "EASY",
61
- "status": "PASSED",
62
- "resolved": true,
63
- "safety_cleared": true,
64
- "time_to_heal_sec": 0.0001,
65
- "max_time_allowed_sec": 1.5,
66
- "time_compliant": true,
67
- "token_consumption": 50,
68
- "mutation_score": 100.0,
69
- "zero_side_effect": true,
70
- "resolution_notes": "Autonomous cascade healed: '//button[text()='Submit Order']' -> '#order-cta' (confidence 0.9)"
71
- },
72
- {
73
- "id": "QA-CHALLENGE-04",
74
- "name": "Legacy ID Removed in Favor of data-testid",
75
- "category": "locator_drift",
76
- "difficulty": "EASY",
77
- "status": "PASSED",
78
- "resolved": true,
79
- "safety_cleared": true,
80
- "time_to_heal_sec": 0.0,
81
- "max_time_allowed_sec": 1.5,
82
- "time_compliant": true,
83
- "token_consumption": 50,
84
- "mutation_score": 100.0,
85
- "zero_side_effect": true,
86
- "resolution_notes": "Autonomous cascade healed: '#customer_name' -> '[data-testid='customer-name-field']' (confidence 0.98)"
87
- },
88
- {
89
- "id": "QA-CHALLENGE-05",
90
- "name": "HTML Tag Evolution: Anchor to ARIA Button",
91
- "category": "locator_drift",
92
- "difficulty": "MEDIUM",
93
- "status": "PASSED",
94
- "resolved": true,
95
- "safety_cleared": true,
96
- "time_to_heal_sec": 0.0,
97
- "max_time_allowed_sec": 2.0,
98
- "time_compliant": true,
99
- "token_consumption": 50,
100
- "mutation_score": 100.0,
101
- "zero_side_effect": true,
102
- "resolution_notes": "Autonomous cascade healed: 'a.nav-export' -> 'button' (confidence 0.9)"
103
- }
104
- ]
105
- }