synapse-hub 2.2.4 → 2.4.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 (311) hide show
  1. package/.agents/agents/failure-analyst.md +11 -0
  2. package/.agents/agents/live-explorer.md +28 -0
  3. package/.agents/agents/orchestrator.md +20 -4
  4. package/.agents/agents/pom-crafter.md +12 -0
  5. package/.agents/agents/quality-gatekeeper.md +19 -4
  6. package/.agents/agents/test-runner.md +11 -0
  7. package/.agents/rules/communication-style.md +40 -0
  8. package/.agents/rules/context-engineering.md +23 -0
  9. package/.agents/rules/git-push-protocol.md +10 -16
  10. package/.agents/rules/graphify.md +14 -14
  11. package/.agents/rules/mandatory-playwright-live.md +29 -29
  12. package/.agents/rules/mobile_appium_rules.md +132 -0
  13. package/.agents/rules/performance_testing_rules.md +74 -0
  14. package/.agents/rules/systematic-debugging.md +6 -6
  15. package/.agents/skills/agent-orchestration-multi-agent-optimize/SKILL.md +64 -215
  16. package/.agents/skills/agent-orchestration-multi-agent-optimize/examples/swarm_workload_config.json +12 -0
  17. package/.agents/skills/antigravity-test-sentinel/SKILL.md +3 -3
  18. package/.agents/skills/antigravity-test-sentinel/examples/dod_gate_policy.json +11 -0
  19. package/.agents/skills/api-network-mocking-interception/SKILL.md +1 -1
  20. package/.agents/skills/api-network-mocking-interception/examples/network_route_stub.json +9 -0
  21. package/.agents/skills/api-spec-to-e2e-matrix/SKILL.md +9 -9
  22. package/.agents/skills/api-spec-to-e2e-matrix/examples/sample_openapi.json +19 -0
  23. package/.agents/skills/architecture-decision-records/SKILL.md +35 -412
  24. package/.agents/skills/architecture-decision-records/examples/0001-record-architecture-decisions.md +12 -0
  25. package/.agents/skills/auth-session-and-cookie-manager/SKILL.md +1 -1
  26. package/.agents/skills/auth-session-and-cookie-manager/examples/storage_state_sample.json +11 -0
  27. package/.agents/skills/backend-load-and-stress-patterns/SKILL.md +80 -186
  28. package/.agents/skills/backend-load-and-stress-patterns/examples/k6_load_test_sample.js +13 -0
  29. package/.agents/skills/bats-testing-patterns/SKILL.md +1 -1
  30. package/.agents/skills/bats-testing-patterns/examples/cli_runner_test.bats +6 -0
  31. package/.agents/skills/bats-testing-patterns/resources/implementation-playbook.md +614 -614
  32. package/.agents/skills/clean-pom-crafter/SKILL.md +21 -3
  33. package/.agents/skills/clean-pom-crafter/examples/standard_test_case.groovy +28 -28
  34. package/.agents/skills/clean-pom-crafter/references/pom_patterns.groovy +138 -138
  35. package/.agents/skills/code-refactoring-refactor-clean/SKILL.md +2 -2
  36. package/.agents/skills/code-refactoring-refactor-clean/examples/refactored_page_sample.groovy +9 -0
  37. package/.agents/skills/db-state-verifier-and-seeder/SKILL.md +5 -5
  38. package/.agents/skills/db-state-verifier-and-seeder/examples/db_fixture_seed.json +12 -0
  39. package/.agents/skills/e2e-testing-patterns/SKILL.md +1 -1
  40. package/.agents/skills/e2e-testing-patterns/examples/playwright_sharded_config.ts +12 -0
  41. package/.agents/skills/e2e-testing-patterns/resources/implementation-playbook.md +522 -522
  42. package/.agents/skills/failure-autopsy-and-healing/SKILL.md +17 -3
  43. package/.agents/skills/failure-autopsy-and-healing/examples/sample_junit_failure.xml +8 -0
  44. package/.agents/skills/failure-autopsy-and-healing/references/healing_matrix.md +64 -64
  45. package/.agents/skills/failure-autopsy-and-healing/references/qa_investigation_protocol.md +56 -56
  46. package/.agents/skills/failure-autopsy-and-healing/scripts/triage_failures.sh +98 -98
  47. package/.agents/skills/file-and-report-validator/SKILL.md +1 -1
  48. package/.agents/skills/file-and-report-validator/examples/sample_export_schema.json +14 -0
  49. package/.agents/skills/flaky-test-sentinel-and-quarantine/SKILL.md +3 -3
  50. package/.agents/skills/flaky-test-sentinel-and-quarantine/examples/quarantine_registry.json +11 -0
  51. package/.agents/skills/gherkin-to-suite/SKILL.md +103 -0
  52. package/.agents/skills/gherkin-to-suite/examples/checkout.feature +39 -0
  53. package/.agents/skills/gherkin-to-suite/examples/suite_report_sample.json +334 -0
  54. package/.agents/skills/github-actions-templates/SKILL.md +47 -304
  55. package/.agents/skills/github-actions-templates/examples/matrix_test_pipeline.yml +8 -0
  56. package/.agents/skills/graphify-impact-analyzer/SKILL.md +6 -6
  57. package/.agents/skills/graphify-impact-analyzer/examples/dependency_blast_radius.json +8 -0
  58. package/.agents/skills/katalon-cli-runner/SKILL.md +2 -2
  59. package/.agents/skills/katalon-cli-runner/examples/headless_kre_exec.sh +3 -0
  60. package/.agents/skills/katalon-cli-runner/references/groovy-patterns.md +209 -209
  61. package/.agents/skills/katalon-cli-runner/references/katalon-api.md +155 -155
  62. package/.agents/skills/katalon-cli-runner/references/runner_commands.md +67 -67
  63. package/.agents/skills/lam-script-generator/SKILL.md +42 -1
  64. package/.agents/skills/lam-script-generator/examples/user_story_sample.md +8 -0
  65. package/.agents/skills/lean-code-ladder/SKILL.md +83 -0
  66. package/.agents/skills/lean-code-ladder/examples/ladder_walkthrough.md +37 -0
  67. package/.agents/skills/meta-prompt-crafter/SKILL.md +107 -0
  68. package/.agents/skills/meta-prompt-crafter/examples/qa_prompt_template.md +35 -0
  69. package/.agents/skills/persistent-planning-files/SKILL.md +108 -0
  70. package/.agents/skills/persistent-planning-files/examples/task_plan_example.md +56 -0
  71. package/.agents/skills/playwright-live-interaction/SKILL.md +49 -1
  72. package/.agents/skills/playwright-live-interaction/examples/live_probe_script.js +5 -0
  73. package/.agents/skills/playwright-live-interaction/references/advanced_superpowers.md +160 -160
  74. package/.agents/skills/playwright-live-interaction/references/compact_accessibility_snapshots.md +75 -75
  75. package/.agents/skills/playwright-live-interaction/references/recipes.md +388 -388
  76. package/.agents/skills/playwright-live-interaction/references/swarm_orchestration.md +134 -134
  77. package/.agents/skills/playwright-webapp-testing/SKILL.md +93 -0
  78. package/.agents/skills/playwright-webapp-testing/examples/server_lifecycle_playwright.py +63 -0
  79. package/.agents/skills/rbt-manual-testing/SKILL.md +150 -0
  80. package/.agents/skills/rbt-manual-testing/examples/checkout_rbt_manual_suite.md +25 -0
  81. package/.agents/skills/security-dast-sentinel/SKILL.md +54 -135
  82. package/.agents/skills/security-dast-sentinel/examples/dast_scan_config.json +10 -0
  83. package/.agents/skills/self-healing-locator/SKILL.md +24 -10
  84. package/.agents/skills/self-healing-locator/examples/aom_diff_sample.json +16 -0
  85. package/.agents/skills/skillspector-security-guard/SKILL.md +32 -90
  86. package/.agents/skills/skillspector-security-guard/examples/safe_mcp_config.json +12 -0
  87. package/.agents/skills/surgical-coding-principles/SKILL.md +89 -0
  88. package/.agents/skills/surgical-coding-principles/examples/surgical_vs_scope_creep.md +46 -0
  89. package/.agents/skills/synthetic-test-data-generator/SKILL.md +3 -3
  90. package/.agents/skills/synthetic-test-data-generator/examples/idempotent_data_recipe.json +9 -0
  91. package/.agents/skills/systematic-debugging/SKILL.md +100 -0
  92. package/.agents/skills/systematic-debugging/examples/four_phase_case.md +44 -0
  93. package/.agents/skills/test-driven-development/SKILL.md +114 -0
  94. package/.agents/skills/test-driven-development/examples/red_green_refactor_qa.md +78 -0
  95. package/.agents/skills/token-and-context-optimizer/SKILL.md +1 -1
  96. package/.agents/skills/token-and-context-optimizer/examples/distilled_log_sample.txt +3 -0
  97. package/.agents/skills/verification-before-completion/SKILL.md +100 -0
  98. package/.agents/skills/verification-before-completion/examples/evidence_log_example.md +46 -0
  99. package/.agents/skills/visual-regression-sentinel/SKILL.md +21 -1
  100. package/.agents/skills/visual-regression-sentinel/examples/visual_mask_rules.json +9 -0
  101. package/.agents/skills/wcag-audit-patterns/SKILL.md +3 -3
  102. package/.agents/skills/wcag-audit-patterns/examples/wcag_compliance_checklist.json +10 -0
  103. package/.agents/skills/wcag-audit-patterns/resources/implementation-playbook.md +541 -541
  104. package/.agents/skills/web-vitals-and-performance-profiler/SKILL.md +1 -1
  105. package/.agents/skills/web-vitals-and-performance-profiler/examples/cwv_budget_policy.json +6 -0
  106. package/.agents/templates/completion_report.md +57 -57
  107. package/.agents/workflows/analyze_requirement_document.md +18 -0
  108. package/.agents/workflows/export_testcases_excel.md +32 -0
  109. package/.agents/workflows/generate_combinatorial_test_data.md +28 -0
  110. package/.agents/workflows/generate_cross_module_test_plan.md +37 -0
  111. package/.agents/workflows/generate_manual_testcases_rbt.md +56 -0
  112. package/.agents/workflows/generate_requirements_from_website.md +25 -0
  113. package/.agents/workflows/generate_testcases_from_requirements.md +21 -0
  114. package/.agents/workflows/graphify.md +10 -10
  115. package/.agents/workflows/verify.md +2 -2
  116. package/.cursor/rules/language.mdc +7 -7
  117. package/.cursor/rules/synapse-qa.mdc +23 -0
  118. package/.cursorrules +7 -0
  119. package/.pre-commit-hooks.yaml +14 -0
  120. package/.windsurfrules +7 -0
  121. package/AGENTS.md +54 -15
  122. package/CLAUDE.md +35 -12
  123. package/LICENSE +30 -0
  124. package/NOTICE +180 -0
  125. package/README.en.md +325 -0
  126. package/README.md +247 -516
  127. package/action.yml +51 -0
  128. package/benchmarks/qa_eval/README.md +71 -0
  129. package/benchmarks/qa_eval/build_dataset.py +677 -0
  130. package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-06_api_contract_drift.json +22 -0
  131. package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-07_api_contract_drift.json +22 -0
  132. package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-08_api_contract_drift.json +22 -0
  133. package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-09_api_contract_drift.json +22 -0
  134. package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-10_api_contract_drift.json +22 -0
  135. package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-21_fake_pass_tautology.json +21 -0
  136. package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-22_fake_pass_tautology.json +21 -0
  137. package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-23_fake_pass_tautology.json +21 -0
  138. package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-24_fake_pass_tautology.json +21 -0
  139. package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-25_fake_pass_tautology.json +21 -0
  140. package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-01_locator_drift.json +23 -0
  141. package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-02_locator_drift.json +23 -0
  142. package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-03_locator_drift.json +23 -0
  143. package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-04_locator_drift.json +23 -0
  144. package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-05_locator_drift.json +23 -0
  145. package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-16_stale_and_mutation.json +22 -0
  146. package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-17_stale_and_mutation.json +22 -0
  147. package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-18_stale_and_mutation.json +22 -0
  148. package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-19_stale_and_mutation.json +22 -0
  149. package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-20_stale_and_mutation.json +23 -0
  150. package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-11_timing_and_race.json +22 -0
  151. package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-12_timing_and_race.json +22 -0
  152. package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-13_timing_and_race.json +22 -0
  153. package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-14_timing_and_race.json +22 -0
  154. package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-15_timing_and_race.json +22 -0
  155. package/benchmarks/qa_eval/eval_runner.py +418 -0
  156. package/benchmarks/qa_eval/reports/AB_METHODOLOGY_REPORT.md +83 -0
  157. package/benchmarks/qa_eval/reports/BENCHMARK_REPORT.md +69 -0
  158. package/benchmarks/qa_eval/reports/eval_results.json +105 -0
  159. package/bin/agent-qa.js +10 -3
  160. package/docs/ARCHITECTURE.md +107 -0
  161. package/docs/CI_CD_INTEGRATION.md +94 -0
  162. package/docs/CLI_REFERENCE.md +157 -0
  163. package/docs/CONTRIBUTING.md +91 -0
  164. package/docs/PLUGIN_DEVELOPMENT_GUIDE.md +126 -0
  165. package/docs/TOKEN_QUOTA_PLAYBOOK.md +41 -0
  166. package/docs/adopted-ecosystem-tools.md +87 -0
  167. package/docs/schemas/synapse.config.schema.json +64 -0
  168. package/examples/cypress-ecommerce-suite/README.md +45 -0
  169. package/examples/cypress-ecommerce-suite/cypress/e2e/checkout.cy.js +17 -0
  170. package/examples/cypress-ecommerce-suite/cypress/pages/BasePage.js +29 -0
  171. package/examples/cypress-ecommerce-suite/cypress/pages/CartPage.js +51 -0
  172. package/examples/cypress-ecommerce-suite/cypress.config.js +13 -0
  173. package/examples/cypress-ecommerce-suite/package.json +13 -0
  174. package/examples/katalon-suite/Keywords/pages/BasePage.groovy +19 -0
  175. package/examples/katalon-suite/Keywords/pages/DashboardPage.groovy +29 -0
  176. package/examples/katalon-suite/Keywords/pages/LoginPage.groovy +45 -0
  177. package/examples/katalon-suite/Profiles/default.glbl +12 -0
  178. package/examples/katalon-suite/README.md +18 -0
  179. package/examples/katalon-suite/Scripts/Auth/TC_LoginSuccess/Script1234567890.groovy +12 -0
  180. package/examples/katalon-suite/Scripts/Dashboard/TC_ViewSummary/Script1234567891.groovy +15 -0
  181. package/examples/katalon-suite/katalon_suite.prj +21 -0
  182. package/examples/playwright-crm-suite/README.md +40 -0
  183. package/examples/playwright-crm-suite/package.json +14 -0
  184. package/examples/playwright-crm-suite/pages/BasePage.ts +37 -0
  185. package/examples/playwright-crm-suite/pages/CustomerPage.ts +57 -0
  186. package/examples/playwright-crm-suite/pages/LoginPage.ts +32 -0
  187. package/examples/playwright-crm-suite/playwright.config.ts +27 -0
  188. package/examples/playwright-crm-suite/tests/auth.spec.ts +22 -0
  189. package/examples/playwright-crm-suite/tests/customers.spec.ts +33 -0
  190. package/examples/plugins/sample-custom-plugin/README.md +14 -0
  191. package/examples/plugins/sample-custom-plugin/plugin.json +16 -0
  192. package/examples/plugins/sample-custom-plugin/skills/custom-security-headers-audit/SKILL.md +29 -0
  193. package/examples/plugins/sample-custom-plugin/skills/custom-security-headers-audit/examples/audit_fixture.json +8 -0
  194. package/examples/plugins/sample-custom-plugin/tools/custom_security_headers.py +125 -0
  195. package/examples/practices/README.md +22 -0
  196. package/examples/practices/requirements/crm/requirements_contracts.md +292 -0
  197. package/examples/practices/requirements/crm/requirements_customers.md +462 -0
  198. package/examples/practices/requirements/crm/requirements_login.md +202 -0
  199. package/examples/practices/requirements/crm/requirements_projects.md +396 -0
  200. package/examples/practices/requirements/crm/requirements_tasks.md +343 -0
  201. package/examples/practices/requirements/ecommerce/requirements_category_brand.txt +402 -0
  202. package/examples/practices/requirements/jira/KAN-5/KAN-1/2026-04-03_04-28-27.png +0 -0
  203. package/examples/practices/requirements/jira/KAN-5/KAN-1/KAN-1_requirement.md +52 -0
  204. package/examples/practices/requirements/jira/KAN-5/KAN-4/2026-04-03_04-28-19.png +0 -0
  205. package/examples/practices/requirements/jira/KAN-5/KAN-4/2026-04-03_04-28-57.png +0 -0
  206. package/examples/practices/requirements/jira/KAN-5/KAN-4/KAN-4_requirement.md +119 -0
  207. package/examples/practices/requirements/jira/KAN-5/KAN-5_overview.md +9 -0
  208. package/examples/practices/requirements/jira/KAN-5/KAN-6/2026-04-03_05-58-08.png +0 -0
  209. package/examples/practices/requirements/jira/KAN-5/KAN-6/2026-04-03_05-58-23.png +0 -0
  210. package/examples/practices/requirements/jira/KAN-5/KAN-6/KAN-6_requirement.md +32 -0
  211. package/examples/practices/testcases/api/book_management_api_test_cases.md +144 -0
  212. package/examples/practices/testcases/api/user_management_api_test_cases.md +139 -0
  213. package/examples/practices/testcases/crm/test_cases_crm_login.md +148 -0
  214. package/examples/practices/testcases/crm/test_cases_customers.md +156 -0
  215. package/examples/pytest-api-suite/README.md +45 -0
  216. package/examples/pytest-api-suite/conftest.py +31 -0
  217. package/examples/pytest-api-suite/pages/user_api_client.py +36 -0
  218. package/examples/pytest-api-suite/requirements.txt +2 -0
  219. package/examples/pytest-api-suite/tests/test_user_api.py +44 -0
  220. package/examples/selenium-suite/README.md +18 -0
  221. package/examples/selenium-suite/pages/base_page.py +27 -0
  222. package/examples/selenium-suite/pages/login_page.py +29 -0
  223. package/examples/selenium-suite/pages/order_page.py +25 -0
  224. package/examples/selenium-suite/pytest.ini +6 -0
  225. package/examples/selenium-suite/requirements.txt +2 -0
  226. package/examples/selenium-suite/tests/test_login.py +10 -0
  227. package/examples/selenium-suite/tests/test_order.py +10 -0
  228. package/package.json +22 -7
  229. package/scripts/generate_skill_examples.py +244 -0
  230. package/scripts/install.ps1 +112 -0
  231. package/scripts/install_global_plugin.ps1 +94 -0
  232. package/scripts/install_global_plugin.sh +49 -0
  233. package/scripts/lint_skills.ps1 +57 -0
  234. package/scripts/package_dist.py +323 -0
  235. package/scripts/setup.sh +59 -0
  236. package/scripts/update_hub.ps1 +19 -0
  237. package/scripts/update_hub.sh +15 -0
  238. package/skills_manifest.json +209 -6
  239. package/synapse.config.json +30 -0
  240. package/templates/PROJECT_AI_GUIDE_TEMPLATE.md +7 -7
  241. package/templates/PROJECT_STATE_TEMPLATE.md +1 -1
  242. package/templates/ai_bridges/CLAUDE.md +33 -16
  243. package/templates/ai_bridges/copilot-instructions.md +14 -21
  244. package/templates/ai_bridges/cursor_synapse_qa.mdc +17 -20
  245. package/templates/ai_bridges/windsurfrules +21 -21
  246. package/templates/ci/github-actions-synapse.yml +71 -4
  247. package/templates/welcome.html.tmpl +1674 -0
  248. package/tools/.infer_baseline.json +1102 -0
  249. package/tools/TOOLS_RUNBOOK.md +92 -130
  250. package/tools/__init__.py +26 -0
  251. package/tools/agent_canary.py +501 -501
  252. package/tools/analyze_project.py +31 -17
  253. package/tools/api_fuzzer.py +278 -6
  254. package/tools/author_integrity.py +6 -6
  255. package/tools/auto_heal.py +1 -1
  256. package/tools/browser_helpers.js +105 -7
  257. package/tools/bug_reporter.py +31 -1
  258. package/tools/bump_version.py +23 -3
  259. package/tools/cache_resolver.py +248 -14
  260. package/tools/check_env.py +55 -14
  261. package/tools/check_version_sync.py +153 -0
  262. package/tools/ci_healing_hook.py +1 -1
  263. package/tools/cli.py +263 -13
  264. package/tools/count_tokens.py +1257 -0
  265. package/tools/dashboard_generator.py +2638 -0
  266. package/tools/db_sandbox.py +198 -20
  267. package/tools/e2e_flow_prober.ps1 +12 -64
  268. package/tools/e2e_flow_prober.py +99 -0
  269. package/tools/e2e_flow_prober.sh +4 -0
  270. package/tools/flaky_detector.py +4 -3
  271. package/tools/generate_allure_report.ps1 +12 -29
  272. package/tools/generate_allure_report.py +77 -0
  273. package/tools/generate_allure_report.sh +4 -0
  274. package/tools/generate_jmx_plan.py +257 -58
  275. package/tools/generate_test_reports.ps1 +12 -134
  276. package/tools/generate_test_reports.py +133 -0
  277. package/tools/generate_test_reports.sh +4 -0
  278. package/tools/gherkin_suite.py +758 -0
  279. package/tools/git_pre_commit_guard.py +12 -6
  280. package/tools/goldfish_review.py +366 -0
  281. package/tools/heal_pr_automator.py +1 -1
  282. package/tools/heuristic_locator_matcher.py +170 -21
  283. package/tools/infer_linter.py +612 -70
  284. package/tools/lint_ai_docs.py +64 -0
  285. package/tools/matrix_sharder.py +1 -1
  286. package/tools/mcp_excel_server.ps1 +12 -250
  287. package/tools/mcp_excel_server.py +249 -0
  288. package/tools/mcp_excel_server.sh +4 -0
  289. package/tools/mcp_server.py +368 -144
  290. package/tools/md_to_xlsx.py +307 -0
  291. package/tools/micro_mutator.py +300 -69
  292. package/tools/omni_transpiler.py +2 -2
  293. package/tools/output_formatter.py +128 -0
  294. package/tools/pinpoint_failure.py +88 -88
  295. package/tools/project_state.py +2 -2
  296. package/tools/repo_map.py +1 -1
  297. package/tools/safety_firewall.py +196 -45
  298. package/tools/setup_project.py +294 -30
  299. package/tools/spec_drift_sentinel.py +439 -0
  300. package/tools/sync_agent_rules.py +248 -0
  301. package/tools/telemetry_correlator.py +45 -0
  302. package/tools/test_impact.py +51 -12
  303. package/tools/tms_sync_bridge.py +21 -5
  304. package/tools/universal_ir.py +3 -0
  305. package/tools/update_sentinel.py +87 -15
  306. package/tools/verify_all.ps1 +13 -0
  307. package/tools/verify_all.py +463 -79
  308. package/tools/visual_diff_canvas.py +1 -0
  309. package/tools/visual_som_helper.py +1 -1
  310. package/tools/watch_mode.py +305 -0
  311. package/tools/welcome_page.py +291 -0
@@ -0,0 +1,105 @@
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
+ }
package/bin/agent-qa.js CHANGED
@@ -10,7 +10,7 @@
10
10
  * Provides cross-platform zero-install execution via `npx synapse-hub <command>`.
11
11
  */
12
12
 
13
- const { spawn, execSync } = require('child_process');
13
+ const { spawn, execFileSync } = require('child_process');
14
14
  const path = require('path');
15
15
  const fs = require('fs');
16
16
 
@@ -35,7 +35,7 @@ function resolvePython() {
35
35
 
36
36
  for (const cmd of candidates) {
37
37
  try {
38
- const output = execSync(`${cmd} --version`, { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
38
+ const output = execFileSync(cmd, ['--version'], { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
39
39
  const match = output.match(/Python\s+(\d+)\.(\d+)/i);
40
40
  if (match) {
41
41
  const major = parseInt(match[1], 10);
@@ -55,6 +55,9 @@ function main() {
55
55
  const python = resolvePython();
56
56
 
57
57
  if (!python) {
58
+ if (process.argv.includes('--first-run')) {
59
+ process.exit(0);
60
+ }
58
61
  console.error(`\n${BOLD}${RED}[ERROR] Python 3.9+ is required to execute synapse-hub tools.${RESET}`);
59
62
  console.error(`Neither ${CYAN}python3${RESET} nor ${CYAN}python${RESET} (>= 3.9) was found on your PATH.`);
60
63
  console.error(`👉 Please install Python from: ${BOLD}https://www.python.org/downloads/${RESET}\n`);
@@ -91,4 +94,8 @@ function main() {
91
94
  process.on('SIGTERM', () => child.kill('SIGTERM'));
92
95
  }
93
96
 
94
- main();
97
+ if (require.main === module) {
98
+ main();
99
+ } else {
100
+ module.exports = { resolvePython };
101
+ }
@@ -0,0 +1,107 @@
1
+ # Agent-Skills Architecture & Design Principles
2
+
3
+ > **Scope:** Enterprise Multi-Agent QA Hub
4
+ > **Version:** `2.3.0` | **Status:** Active / Production Standard
5
+
6
+ ---
7
+
8
+ ## 1. Hub & Spoke Operating Model
9
+
10
+ The `agent-skills` repository functions as a centralized **Intelligence Core (Hub)** decoupled from target test repositories (**Spokes**).
11
+
12
+ ```mermaid
13
+ flowchart TD
14
+ subgraph Hub["Agent-Skills Hub (Intelligence Core)"]
15
+ Catalog["38 Standardized Skills (.agents/skills)"]
16
+ Rules["Core Architectural Rules (.agents/rules)"]
17
+ Tools["Zero-Token Python Engine (tools/)"]
18
+ Swarm["6 Specialized Subagents (.agents/agents)"]
19
+ end
20
+
21
+ subgraph Spokes["Target Repositories (Test Suites)"]
22
+ Repo1["Project A (Playwright / TS)"]
23
+ Repo2["Project B (Katalon / Groovy)"]
24
+ Repo3["Project C (Python / Pytest)"]
25
+ end
26
+
27
+ Hub -->|Mounted as Skill Provider| Repo1
28
+ Hub -->|Mounted as Skill Provider| Repo2
29
+ Hub -->|Mounted as Skill Provider| Repo3
30
+ ```
31
+
32
+ ### Architectural Benefits:
33
+ 1. **Zero Context Contagion:** Target project repositories stay clean and focused strictly on test cases and Page Classes, without polluting git trees with heavy AI agent instructions.
34
+ 2. **Instant Upgradability:** Improvements to self-healing algorithms, token compressors, and lint rules propagate globally to all target projects instantly.
35
+ 3. **Intellectual Property Isolation by Architecture:** Because `agent-skills` is a decoupled, standalone repository, target projects remain 100% clean without requiring complex dual-remote mirroring or `smart_push` scripts. Developers and agents push directly to company SCM for target projects, and to the central hub for skills.
36
+
37
+ ---
38
+
39
+ ## 2. Four-Tier Skill Stratification
40
+
41
+ The 37 skills in the hub are structured into four progressive operational tiers:
42
+
43
+ ```mermaid
44
+ flowchart LR
45
+ T1["Tier 1: Core Automation<br/>POM, Live Probing, Repair"] --> T2["Tier 2: Enterprise Quality<br/>WCAG, Visual, Vitals"]
46
+ T2 --> T3["Tier 3: Context & AI Performance<br/>Token Optimization, Graphify"]
47
+ T3 --> T4["Tier 4: Architecture & CI/CD<br/>ADR, Sharding, GitHub Actions"]
48
+ ```
49
+
50
+ 1. **Tier 1 — Core Automation & Self-Healing:**
51
+ - Script generation, Clean POM flat architecture, live DOM probing via Playwright MCP, and in-place locator healing.
52
+ 2. **Tier 2 — Enterprise Quality Sentinel:**
53
+ - Accessibility audits (WCAG 2.2), Core Web Vitals profiling, visual regression comparisons, and synthetic data generation.
54
+ 3. **Tier 3 — AI Context Engineering & Diagnostics:**
55
+ - Attention-pattern protection, context degradation countermeasures, token optimization, and AST knowledge graph navigation.
56
+ 4. **Tier 4 — Architecture, CI/CD & Delivery:**
57
+ - Architecture Decision Records (ADRs), code refactoring and technical debt remediation, and containerized GitHub Actions CI/CD pipelines.
58
+
59
+ ---
60
+
61
+ ## 3. Flat Clean POM Architecture Pattern
62
+
63
+ Test automation scripts orchestrated through this Hub enforce strict Clean POM boundaries:
64
+
65
+ - **Rule 1 — Zero Selectors in Scripts:** Test scripts (`Scripts/` or `tests/`) must NEVER contain raw XPaths, CSS selectors, or `findTestObject` calls.
66
+ - **Rule 2 — Single Inheritance:** All Page Classes inherit from `BasePage`, which standardizes smart waits, dynamic identifiers, and synthetic event dispatchers.
67
+ - **Rule 3 — Dynamic Test Data Idempotency:** Every data entity must use dynamic prefixes generated via `BasePage.uniqueCode("PREFIX_")` to eliminate database key collisions during parallel execution.
68
+ - **Rule 4 — In-Place Self-Healing:** If an element changes or breaks, only the affected Page Class is updated; test scripts remain untouched.
69
+
70
+ ---
71
+
72
+ ## 4. The 9 Quality Gates Definition-of-Done (DoD)
73
+
74
+ All automated test code authored, modified, or refactored by AI agents must pass through the deterministic 9 Quality Gates pipeline (`tools/verify_all.py`) prior to committing or merging:
75
+
76
+ | Gate | Title | Verifier Tool | Strict Acceptance Criteria |
77
+ | :---: | :--- | :--- | :--- |
78
+ | **Gate 0** | **Author Attribution & MIT Provenance** | `author_integrity.py` | Validates immutable MIT license and attribution to original author Thế Vị (@TeeVee998). |
79
+ | **Gate 1** | **UTF-8 No BOM Clean Encoding** | `verify_all.py` | Scans 100% of repository files; zero BOM bytes (`0xEF, 0xBB, 0xBF`) and zero mojibake errors. |
80
+ | **Gate 2** | **Path Portability** | `verify_all.py` | Rejects workstation-specific absolute paths (`/Users/...`, `C:\...`); mandates root-relative resolution. |
81
+ | **Gate 3** | **Clean POM Flat Architecture** | `verify_all.py` | Enforces 100% locator encapsulation in Page Classes; strictly prohibits raw XPaths in test scripts. |
82
+ | **Gate 4** | **AI Docs Anti-Drift** | `lint_ai_docs.py` | Reconciles real AST classes against `PROJECT_AI_GUIDE.md`; eliminates hallucinated PageClasses. |
83
+ | **Gate 5** | **Temporary File Blacklist** | `verify_all.py` | Ensures zero build debris, memory dumps, or temporary sandbox databases leak into version control. |
84
+ | **Gate 6** | **Credential Security** | `verify_all.py` | AST regex scan blocking hardcoded passwords, private keys, and secret tokens in code. |
85
+ | **Gate 7** | **Static Defect & Fake-Pass Sentinel** | `infer_linter.py` | Detects 0-assertion tests, swallowed exception blocks (`except: pass`), hard sleeps, and unawaited promises. |
86
+ | **Gate 8** | **Assertion Sensitivity Sentinel** | `micro_mutator.py` | Syntactic micro-mutations linked via variable dataflow; requires Sensitivity Score $\ge 80\%$. |
87
+
88
+ ---
89
+
90
+ ## 5. Architectural Boundaries & Non-Goals
91
+
92
+ To maintain a lightweight, deterministic, and highly portable architecture, Synapse Hub establishes explicit boundaries:
93
+ - **No Proprietary Test Runner:** Does not implement a replacement runner engine. Bridges natively with standard runners (Playwright, Pytest, Katalon/Gradle, Newman, JMeter).
94
+ - **Zero AUT Source Code Modifications:** Operates exclusively within test specifications, Page Object models, mock definitions, and verification gates.
95
+ - **Decoupled Stateless Hub:** Never writes persistent user credentials or proprietary corporate data to git.
96
+ - **Target Language Agnostic:** Leverages Universal Intermediate Representation (Universal IR) to bridge TypeScript, Python, Groovy, and Java seamlessly.
97
+
98
+ The Hub equips 6 specialized subagents with scoped tool and skill permissions:
99
+
100
+ | Subagent Role | Primary Focus | Allowed Skills | Execution Tools |
101
+ | :--- | :--- | :--- | :--- |
102
+ | **`orchestrator`** | Task decomposition & governance | `agent-orchestration-multi-agent-optimize`, `graphify-impact-analyzer`, `architecture-decision-records`, `token-and-context-optimizer` | `verify_all.py`, `test_impact.py`, `setup_project.py` |
103
+ | **`pom-crafter`** | Clean POM design & test generation | `clean-pom-crafter`, `lam-script-generator`, `synthetic-test-data-generator`, `api-spec-to-e2e-matrix` | `lookup_xpath.py`, `repo_map.py`, `generate_tc_from_story.py` |
104
+ | **`live-explorer`** | Live DOM & AOM exploration (<200ms) | `playwright-live-interaction`, `self-healing-locator`, `visual-regression-sentinel`, `api-network-mocking-interception` | `browser_helpers.js`, `e2e_flow_prober.ps1`, `safety_firewall.py` |
105
+ | **`test-runner`** | Headless CLI test execution & 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` |
106
+ | **`failure-analyst`**| Visual & XML error autopsy | `failure-autopsy-and-healing`, `self-healing-locator`, `file-and-report-validator` | `auto_heal.py`, `heal_pr_automator.py`, `pinpoint_failure.py`, `cache_resolver.py` |
107
+ | **`quality-gatekeeper`**| 9 Gates DoD & Fake-Pass Sentinel | `antigravity-test-sentinel`, `code-refactoring-refactor-clean`, `wcag-audit-patterns`, `web-vitals-and-performance-profiler`, `security-dast-sentinel` | `verify_all.py`, `infer_linter.py`, `micro_mutator.py`, `trace_data_flow.py` |
@@ -0,0 +1,94 @@
1
+ # CI/CD Integration Guide — Synapse-Hub Enterprise QA
2
+
3
+ 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.
4
+
5
+ ---
6
+
7
+ ## 1. Zero-Install NPX Integration (Recommended)
8
+
9
+ 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.
10
+
11
+ ### GitHub Actions Workflow (`.github/workflows/synapse_qa.yml`)
12
+
13
+ ```yaml
14
+ name: Synapse QA Quality Gate
15
+
16
+ on:
17
+ push:
18
+ branches: [ main, develop, master ]
19
+ pull_request:
20
+ branches: [ main, develop, master ]
21
+
22
+ jobs:
23
+ quality-gate:
24
+ name: 9 Quality Gates DoD Verification
25
+ runs-on: ubuntu-latest
26
+ steps:
27
+ - name: Checkout Project Source
28
+ uses: actions/checkout@v4
29
+
30
+ - name: Setup Node.js & Python
31
+ uses: actions/setup-node@v4
32
+ with:
33
+ node-version: 20
34
+ - uses: actions/setup-python@v5
35
+ with:
36
+ python-version: '3.12'
37
+
38
+ - name: Verify 9 Quality Gates
39
+ run: npx synapse-hub verify
40
+ ```
41
+
42
+ ### GitLab CI (`.gitlab-ci.yml`)
43
+
44
+ ```yaml
45
+ synapse-qa-gate:
46
+ stage: test
47
+ image: node:20-bookworm
48
+ before_script:
49
+ - apt-get update && apt-get install -y python3 python3-pip
50
+ script:
51
+ - npx synapse-hub verify
52
+ rules:
53
+ - if: $CI_PIPELINE_SOURCE == "merge_request_event"
54
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
55
+ ```
56
+
57
+ ---
58
+
59
+ ## 2. Git Submodule Integration (For Air-Gapped / Private SCM)
60
+
61
+ If your enterprise network restricts public NPM registry access, mount `Synapse-Hub` as a Git Submodule inside the target repository:
62
+
63
+ ```bash
64
+ # Add submodule into target project
65
+ git submodule add https://github.com/TeeVee998/Synapse-Hub.git .synapse-hub
66
+ ```
67
+
68
+ In your CI pipeline:
69
+ ```bash
70
+ git submodule update --init --recursive
71
+ python .synapse-hub/tools/verify_all.py
72
+ ```
73
+
74
+ ---
75
+
76
+ ## 3. Python Git / Pip Package Integration
77
+
78
+ Target runners with Python 3.9+ can install `synapse-hub` directly from git:
79
+
80
+ ```bash
81
+ pip install git+https://github.com/TeeVee998/Synapse-Hub.git
82
+ agent-qa verify
83
+ ```
84
+
85
+ ---
86
+
87
+ ## 4. Available CI Subcommands
88
+
89
+ | Command | Purpose | SLA / Exit Code |
90
+ | :--- | :--- | :--- |
91
+ | `npx synapse-hub verify` | Executes all 9 Quality Gates DoD | Exits `0` if all PASS; non-zero if any FAIL. |
92
+ | `npx synapse-hub lint` | Meta Infer-style static defect and fake-pass scan | Fails if 0-assert tests or empty catches exist. |
93
+ | `npx synapse-hub mutate --min-score 80` | Syntactic Micro-Mutation verification | Fails if test assertion score < 80%. |
94
+ | `npx synapse-hub analyze` | Comprehensive 5-in-1 health audit | Outputs health score and JSON/Markdown artifacts. |
@@ -0,0 +1,157 @@
1
+ # Agent-QA CLI & Tools Reference Manual
2
+
3
+ The `agent-skills` Hub provides a unified CLI utility `agent-qa` (and direct python scripts in `tools/`) to execute quality gates, linting, impact analysis, and log distillation.
4
+
5
+ ---
6
+
7
+ ## 1. Unified CLI Entrypoint (`agent-qa`)
8
+
9
+ When installed via `pip install -e .`, the `agent-qa` command is globally accessible:
10
+
11
+ ```bash
12
+ agent-qa <command> [options]
13
+ ```
14
+
15
+ ### Supported Commands (51 Subcommands)
16
+
17
+ #### A. Core Quality & DoD Gates
18
+ | Command | Subsystem | Description | Example |
19
+ | :--- | :--- | :--- | :--- |
20
+ | `verify` | Quality Sentinel | Executes all 9 Quality Gates DoD validation | `synapse-hub verify` |
21
+ | `lint` | Static Analysis | Polyglot heuristic & static AST defect scanner with baseline & suppression | `synapse-hub lint ./tests` |
22
+ | `mutate` | Mutation Sentinel | Syntactic micro-mutator checking assertion sensitivity | `synapse-hub mutate ./tests --min-score 80` |
23
+ | `watch` | HUD Sentinel | Incremental live file watcher for real-time quality feedback | `synapse-hub watch` |
24
+ | `wcag-audit` | Accessibility | WCAG 2.2 accessibility conformance and contrast auditor | `synapse-hub wcag-audit ./reports/WELCOME.html` |
25
+ | `trace-data-flow` | Data Flow | Taint analysis tracing test data lifecycles to detect DB leaks | `synapse-hub trace-data-flow ./tests` |
26
+ | `verify-author` | Provenance Guard | Validates canonical author attribution watermark | `synapse-hub verify-author` |
27
+
28
+ #### B. Diagnostics, Onboarding & Visual Landing
29
+ | Command | Subsystem | Description | Example |
30
+ | :--- | :--- | :--- | :--- |
31
+ | `doctor` | Environment Audit | 1-click diagnostic for Node.js, Python, Chrome, Git | `synapse-hub doctor` |
32
+ | `welcome` | Visual Landing | Launches interactive bilingual landing page in browser | `synapse-hub welcome` |
33
+ | `setup` | Project Setup | Bootstraps project, generates AI Guide & AI Bridges | `synapse-hub setup --local-only` |
34
+ | `uninstall` | Clean Removal | Cleanly removes AI Bridges, hooks, and local configurations | `synapse-hub uninstall` |
35
+ | `sync-rules` | AI Bridge Sync | Synchronizes AGENTS.md rules across all IDE assistants | `synapse-hub sync-rules` |
36
+ | `version` | Hub Metadata | Displays installed Hub version and catalog summary | `synapse-hub version` |
37
+ | `update` | Auto-Update | 1-click upgrade engine syncing latest upstream changes | `synapse-hub update` |
38
+ | `clean` | Artifact Janitor | Cleans up temporary artifacts, cache files, and logs | `synapse-hub clean` |
39
+
40
+ #### C. Self-Healing, Triage & Token Optimization
41
+ | Command | Subsystem | Description | Example |
42
+ | :--- | :--- | :--- | :--- |
43
+ | `heal` | Semantic Memory | Queries zero-token semantic error memory cache | `synapse-hub heal query "StaleElement"` |
44
+ | `auto-heal` | Closed-Loop | Autonomous test healing engine parsing JUnit failures | `synapse-hub auto-heal` |
45
+ | `heal-pr` | PR Automator | Creates automated Git branch and PR with healing patch | `synapse-hub heal-pr --branch heal/fix-login` |
46
+ | `distill` | Token Optimizer | Filters verbose CLI/Gradle/CI logs by 95% | `synapse-hub distill build.log` |
47
+ | `pinpoint-failure` | Failure Autopsy | Parses JUnit XML reports and locates exact failing lines in 0.1s | `synapse-hub pinpoint-failure report.xml` |
48
+ | `flaky` | Quarantine | Detects non-deterministic flaky tests and manages quarantine | `synapse-hub flaky --detect` |
49
+ | `lookup-tc` | TC Index | Searches test cases by ID, tag, priority, or flow name | `synapse-hub lookup-tc TC-101` |
50
+ | `lookup-xpath` | Selector Cache | Queries cached resilient XPath & AOM element locators | `synapse-hub lookup-xpath "Submit"` |
51
+ | `impact` | AST Knowledge | Analyzes blast radius of git code changes | `synapse-hub impact --git-diff` |
52
+ | `canary` | Resilience Arena | Injects failure vectors to test autonomous recovery MTTR | `synapse-hub canary --run` |
53
+ | `report-bug` | Bug Triage | Generates structured Markdown/Jira defect reports from RCA | `synapse-hub report-bug --junit report.xml` |
54
+ | `ci-hook` | CI Integration | CI/CD hook executing automated triage on build failure | `synapse-hub ci-hook --log ci.log` |
55
+ | `tokens` | Token Counter | Measures prompt tokens across files and subagent contexts | `synapse-hub tokens path/to/prompt.md` |
56
+
57
+ #### D. API, Performance & Security Testing
58
+ | Command | Subsystem | Description | Example |
59
+ | :--- | :--- | :--- | :--- |
60
+ | `fuzz-api` | Security Fuzzer | Non-production API security, boundary, and chaos fuzzer | `synapse-hub fuzz-api --spec openapi.json` |
61
+ | `contract-drift` | Drift Sentinel | Detects breaking changes and schema drift in API specs | `synapse-hub contract-drift --baseline v1.json --current v2.json` |
62
+ | `generate-jmx` | Load Testing | Compiles User Story / API specs into Apache JMeter JMX plan | `synapse-hub generate-jmx --threads 50` |
63
+ | `analyze-jtl` | Load Analysis | Parses JMeter JTL execution logs and asserts SLA thresholds | `synapse-hub analyze-jtl results.jtl` |
64
+ | `analyze-newman` | Postman Audit | Analyzes Newman execution JSON reports for API quality | `synapse-hub analyze-newman newman_run.json` |
65
+ | `export-postman` | Collection Gen | Exports API specification into Postman Collection v2.1 | `synapse-hub export-postman --spec swagger.json` |
66
+ | `mock-shield` | Route Mocking | Generates Playwright network route mocks from API specs | `synapse-hub mock-shield --spec openapi.json` |
67
+ | `skillspector` | AI Security | Audits AI Agent skills and MCP configs for prompt injection | `synapse-hub skillspector --dir .agents/skills` |
68
+ | `safety-check` | Firewall Guard | Dry-run code snippet analysis for destructive UI actions | `synapse-hub safety-check --snippet "btn.click()"` |
69
+
70
+ #### E. Code Generation, Transpilation & Formatting
71
+ | Command | Subsystem | Description | Example |
72
+ | :--- | :--- | :--- | :--- |
73
+ | `generate-tc` | Story Compiler | Compiles natural language user stories into Clean POM test cases | `synapse-hub generate-tc story.md` |
74
+ | `export-excel` | Excel Reporter | Converts Markdown test cases to standard 12-column Excel | `synapse-hub export-excel` |
75
+ | `gherkin` | BDD Compiler | Compiles Gherkin .feature specs into executable suites | `synapse-hub gherkin specs/checkout.feature` |
76
+ | `transpile` | Omni Transpiler | Transpiles test code between Playwright, Pytest, Katalon | `synapse-hub transpile tests/spec.ts --to pytest` |
77
+ | `omni-scan` | Engine Scanner | Scans polyglot repositories for test framework presence | `synapse-hub omni-scan` |
78
+ | `shard` | Matrix Sharder | Partitions test suites across parallel CI runners | `synapse-hub shard ./tests --runners 4` |
79
+ | `visual-mask` | Visual Sentinel | Computes anti-flake coordinate masks for visual testing | `synapse-hub visual-mask screenshot.png` |
80
+ | `som` | Vision Testing | Visual Set-of-Marks helper for interactive elements | `synapse-hub som screen.png` |
81
+ | `decouple-config`| Config Isolator | Decouples environment variables and credentials from code | `synapse-hub decouple-config config.groovy` |
82
+ | `correlate-telemetry` | Correlator | Correlates browser traces, HTTP logs, and server logs | `synapse-hub correlate-telemetry --trace trace.zip` |
83
+ | `dashboard` | Project HUD | Generates standalone HTML5 executive health dashboard | `synapse-hub dashboard` |
84
+ | `analyze` | Health Audit | Comprehensive 5-in-1 repository health and DoD audit | `synapse-hub analyze` |
85
+ | `mcp-serve` | MCP Server | Launches Model Context Protocol (MCP) server over stdio | `synapse-hub mcp-serve` |
86
+
87
+ ---
88
+
89
+ ## 2. Direct Python Scripts Runbook
90
+
91
+ If running without global package installation, tools can be executed directly via Python:
92
+
93
+ ### 2.1. Verify 9 Quality Gates (Gate 0 - Gate 8)
94
+ ```bash
95
+ # Auto-detect mode (default: detects Hub vs Target Test Project)
96
+ python tools/verify_all.py
97
+
98
+ # Explicit mode selection
99
+ python tools/verify_all.py --mode hub # QA Hub integrity validation
100
+ python tools/verify_all.py --mode target # Target automation suite validation
101
+ ```
102
+ - **Operational Modes:**
103
+ - `--mode hub`: Validates QA Hub assets, skills, tools integrity, zero BOM, path portability, and universal credential security across repository files without requiring target test scripts.
104
+ - `--mode target`: Enforces target automation suite standards including Clean POM across test scripts and credential encryption.
105
+ - **Gate 0:** Author Attribution & Provenance Guard (preserves MIT author notice).
106
+ - **Gate 1:** 100% UTF-8 No BOM check across all scripts, markdown, and config files.
107
+ - **Gate 2:** Path Portability (zero absolute host/machine directory paths).
108
+ - **Gate 3:** Clean POM & Flat Architecture (zero raw XPaths/CSS in test scripts).
109
+ - **Gate 4:** AI Docs & Artifacts Anti-Drift check (zero hallucinated tools/classes).
110
+ - **Gate 5:** Temporary file and properties artifact cleanup.
111
+ - **Gate 6:** Credential Security & Secret Scanner (zero hardcoded plaintext passwords or API tokens).
112
+ - **Gate 7:** Static Defect & AST Fake-Pass Sentinel.
113
+ - **Gate 8:** Syntactic Micro-Mutation Sentinel (Requires Mutation Score >= 80%).
114
+
115
+ ### 2.2. AST Fake-Pass Sentinel
116
+ ```bash
117
+ python tools/infer_linter.py
118
+ ```
119
+
120
+ ### 2.3. Semantic Memory Cache & Negative Feedback Blacklist
121
+ ```bash
122
+ # Initialize database with seed solutions and forbidden anti-patches
123
+ python tools/cache_resolver.py init
124
+
125
+ # Query pre-tested patches AND retrieve blacklisted anti-patches (0 tokens)
126
+ python tools/cache_resolver.py query --error "ElementClickInterceptedException"
127
+
128
+ # Learn a verified working solution (Positive Memory)
129
+ python tools/cache_resolver.py learn --error "Timeout" --cause "Slow API" --patch "waitForNetworkIdle()" --symptom "Spinner"
130
+
131
+ # Record a failed bug fix attempt into blacklist (Negative Memory)
132
+ python tools/cache_resolver.py record-failed --error "StaleElement" --patch "sleep(5000)" --reason "Still fails under network latency"
133
+ ```
134
+
135
+ ### 2.4. Log Distiller
136
+ ```bash
137
+ python tools/distill_log.py execution.log
138
+ ```
139
+
140
+ ---
141
+
142
+ ## 3. Standard Exit Code Specification & Terminal Environment
143
+
144
+ Synapse Hub adheres to deterministic, standardized UNIX exit codes across all CLI tools:
145
+
146
+ | Exit Code | Constant Name | Description | Typical Remediation |
147
+ | :---: | :--- | :--- | :--- |
148
+ | **`0`** | `EXIT_SUCCESS` | Operation passed; all Quality Gates satisfied; 0 critical defects. | Proceed to next pipeline stage or commit. |
149
+ | **`1`** | `EXIT_FAILURE` | Quality Gate rejection; test execution failure; linter defect found. | Review failing check details; fix unasserted or swallowed code. |
150
+ | **`2`** | `EXIT_USAGE_ERROR` | Invalid CLI arguments; unknown subcommand; syntax error. | Check command syntax via `--help`. |
151
+ | **`3`** | `EXIT_SECURITY_BLOCK` | Destructive action blocked by safety firewall; secret token leak; MIT license modified. | Review security violation; set `ALLOW_DESTRUCTIVE=1` if intentional. |
152
+ | **`4`** | `EXIT_ENVIRONMENT_ERROR` | Incompatible runtime; missing required tool (e.g. Python < 3.9). | Install recommended runtime (Python 3.10+, Node 20+). |
153
+
154
+ ### Terminal Environment Standards:
155
+ - **`NO_COLOR` Support:** In accordance with [no-color.org](https://no-color.org), setting the `NO_COLOR` environment variable automatically suppresses all ANSI color escape sequences.
156
+ - **`--quiet` / `-q` Flag:** Pass `-q` or `--quiet` to suppress informational banners and output only critical verdicts or machine-readable results.
157
+ - **Machine-Readable Formats:** Use `--format json`, `--format sarif`, or `--format junit` for clean, parseable pipeline outputs.
@@ -0,0 +1,91 @@
1
+ # Hướng Dẫn Đóng Góp / Contributing to Synapse-Hub
2
+
3
+ [🇻🇳 Tiếng Việt](#-hướng-dẫn-đóng-góp-tiếng-việt) | [🇬🇧 English Edition](#-english-edition)
4
+
5
+ ---
6
+
7
+ ## 🇻🇳 Hướng Dẫn Đóng Góp (Tiếng Việt)
8
+
9
+ Chúng tôi rất hoan nghênh các đóng góp từ cộng đồng nhằm mở rộng kỹ năng (Skills), công cụ (Tools) và các quy chuẩn kiểm thử trong hệ sinh thái **Synapse-Hub**. Mọi đóng góp đều cần tuân thủ triệt để nguyên tắc **Truth Anchor** (chống pass ảo, trung thực kỹ thuật) và **Tiết kiệm Token**.
10
+
11
+ ### 1. Quy Chuẩn Viết Kỹ Năng Mới (Skill Standards)
12
+
13
+ Mỗi kỹ năng nằm trong thư mục `.agents/skills/<tên-kỹ-năng>/` và cần đáp ứng:
14
+
15
+ 1. **Cấu trúc tệp `SKILL.md`:**
16
+ - Bắt buộc có phần mở đầu YAML frontmatter chuẩn xác chứa `name` và `description`.
17
+ - `name` phải trùng khớp 100% với tên thư mục (dạng `kebab-case`).
18
+ - `description` mô tả rõ ràng phạm vi kích hoạt, phân biệt rành mạch với các kỹ năng lân cận để tránh xung đột prompt.
19
+ 2. **Ngắn Gọn & Tiết Kiệm Token:**
20
+ - Hướng dẫn kỹ thuật viết bằng tiếng Anh ngắn gọn, chuẩn xác để tối ưu hóa lượng token ngữ cảnh cho AI.
21
+ - Áp dụng nguyên lý nạp thông tin lũy tiến (Progressive Disclosure): giữ `SKILL.md` trong khoảng 40 đến 150 dòng; các đoạn code mẫu chi tiết đưa vào `examples/` hoặc `references/`.
22
+ 3. **Không Ràng Buộc Vào Dự Án Cụ Thể (Decoupled):**
23
+ - Tuyệt đối không gán cứng tên dự án riêng tư, domain bí mật, mật khẩu hay endpoint nội bộ.
24
+ - Luôn sử dụng định danh mẫu: `https://staging.example.com`, `auto_user_123`.
25
+
26
+ ### 2. Quy Trình Kiểm Thử Trước Khi Mở Pull Request
27
+
28
+ Trước khi gửi PR hoặc đẩy code lên nhánh `develop`:
29
+
30
+ ```bash
31
+ # 1. Chạy toàn bộ 170+ bài kiểm thử đơn vị
32
+ python3 -m unittest discover tests
33
+
34
+ # 2. Kiểm định toàn vẹn 9 Cổng Chất Lượng DoD
35
+ python3 tools/verify_all.py
36
+
37
+ # 3. Kiểm tra tính toàn vẹn của tài liệu và công cụ
38
+ python3 tools/lint_ai_docs.py
39
+ ```
40
+
41
+ ### 3. Nguyên Tắc Phát Triển Công Cụ (Tools)
42
+
43
+ Mọi công cụ tiện ích trong `tools/` cần tuân thủ:
44
+ 1. **Ưu Tiên Thư Viện Chuẩn Python (Standard Library):** Hạn chế tối đa thư viện bên ngoài để công cụ chạy được ngay trên máy sạch và CI mà không cần cài đặt phức tạp.
45
+ 2. **Tốc Độ Xử Lý Siêu Tốc:** Các phép quét AST và regex phải hoàn tất dưới 500ms.
46
+ 3. **Không Ghi Rác Vào Repo:** Khi viết test, bắt buộc sử dụng thư mục tạm `tempfile.TemporaryDirectory()`, không để lại file rác trong repo.
47
+ 4. **Thông Báo Lỗi Thân Thiện:** Luôn cung cấp gợi ý sửa lỗi rõ ràng (`Fix Hint`) thay vì chỉ in ra stacktrace thô.
48
+
49
+ ---
50
+
51
+ ## 🇬🇧 English Edition
52
+
53
+ We welcome contributions to expand and refine skills, tools, and rules in the **Synapse-Hub** ecosystem. All contributions must adhere to our **Truth Anchor** (no fake passes) and **Token-Efficiency** standards.
54
+
55
+ ### 1. Skill Authoring Standards
56
+
57
+ Every skill resides in `.agents/skills/<skill-name>/` and must satisfy:
58
+
59
+ 1. **`SKILL.md` Structure:**
60
+ - Must contain valid YAML frontmatter with `name` and `description`.
61
+ - `name` must exactly match the directory name in kebab-case.
62
+ - `description` must clearly articulate the triggering scope and disambiguate itself from adjacent skills.
63
+ 2. **Conciseness & Token Budget:**
64
+ - Write instructions in concise technical English to minimize LLM token consumption.
65
+ - Use progressive disclosure: keep `SKILL.md` between 40 and 150 lines, and offload deep code patterns to `references/` or `examples/`.
66
+ 3. **Zero Project Coupling:**
67
+ - Never hardcode specific project names, proprietary URLs, test credentials, or internal namespaces.
68
+ - Always use generic placeholders: `<project_namespace>`, `https://app.example.com`, `APP_PASSWORD`.
69
+
70
+ ### 2. Integrity Verification Workflow
71
+
72
+ Before submitting a pull request or committing changes:
73
+
74
+ ```bash
75
+ # 1. Run unit test suite (170+ tests)
76
+ python3 -m unittest discover tests
77
+
78
+ # 2. Verify all 9 DoD Quality Gates
79
+ python3 tools/verify_all.py
80
+
81
+ # 3. Test documentation and entity references integrity
82
+ python3 tools/lint_ai_docs.py
83
+ ```
84
+
85
+ ### 3. Tool Development Guidelines
86
+
87
+ All helper scripts in `tools/` must:
88
+ 1. **Rely on Standard Libraries:** Minimize third-party package dependencies so tools execute seamlessly across clean host machines and CI pipelines.
89
+ 2. **Be Fast & Non-Blocking:** AST scans and regex lookups must complete in under 500ms.
90
+ 3. **Zero Test File Pollution:** Tests must use `tempfile.TemporaryDirectory()` and never write temporary test artifacts to the repository tree.
91
+ 4. **Handle Errors Gracefully:** Provide clear remedies and pointers rather than dumping raw stack traces.