synapse-hub 2.2.4 → 2.4.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/agents/failure-analyst.md +11 -0
- package/.agents/agents/live-explorer.md +28 -0
- package/.agents/agents/orchestrator.md +23 -4
- package/.agents/agents/pom-crafter.md +15 -0
- package/.agents/agents/quality-gatekeeper.md +20 -4
- package/.agents/agents/test-runner.md +12 -0
- package/.agents/rules/communication-style.md +40 -0
- package/.agents/rules/context-engineering.md +23 -0
- package/.agents/rules/git-push-protocol.md +10 -16
- package/.agents/rules/graphify.md +14 -14
- package/.agents/rules/mandatory-playwright-live.md +29 -29
- package/.agents/rules/mobile_appium_rules.md +132 -0
- package/.agents/rules/performance_testing_rules.md +74 -0
- package/.agents/rules/systematic-debugging.md +6 -6
- package/.agents/skills/agent-orchestration-multi-agent-optimize/SKILL.md +64 -215
- package/.agents/skills/agent-orchestration-multi-agent-optimize/examples/swarm_workload_config.json +12 -0
- package/.agents/skills/antigravity-test-sentinel/SKILL.md +3 -3
- package/.agents/skills/antigravity-test-sentinel/examples/dod_gate_policy.json +11 -0
- package/.agents/skills/api-network-mocking-interception/SKILL.md +1 -1
- package/.agents/skills/api-network-mocking-interception/examples/network_route_stub.json +9 -0
- package/.agents/skills/api-spec-to-e2e-matrix/SKILL.md +9 -9
- package/.agents/skills/api-spec-to-e2e-matrix/examples/sample_openapi.json +19 -0
- package/.agents/skills/architecture-decision-records/SKILL.md +35 -412
- package/.agents/skills/architecture-decision-records/examples/0001-record-architecture-decisions.md +12 -0
- package/.agents/skills/auth-session-and-cookie-manager/SKILL.md +1 -1
- package/.agents/skills/auth-session-and-cookie-manager/examples/storage_state_sample.json +11 -0
- package/.agents/skills/backend-load-and-stress-patterns/SKILL.md +80 -186
- package/.agents/skills/backend-load-and-stress-patterns/examples/k6_load_test_sample.js +13 -0
- package/.agents/skills/bats-testing-patterns/SKILL.md +1 -1
- package/.agents/skills/bats-testing-patterns/examples/cli_runner_test.bats +6 -0
- package/.agents/skills/bats-testing-patterns/resources/implementation-playbook.md +614 -614
- package/.agents/skills/clean-pom-crafter/SKILL.md +21 -3
- package/.agents/skills/clean-pom-crafter/examples/standard_test_case.groovy +28 -28
- package/.agents/skills/clean-pom-crafter/references/pom_patterns.groovy +138 -138
- package/.agents/skills/code-refactoring-refactor-clean/SKILL.md +2 -2
- package/.agents/skills/code-refactoring-refactor-clean/examples/refactored_page_sample.groovy +9 -0
- package/.agents/skills/db-state-verifier-and-seeder/SKILL.md +5 -5
- package/.agents/skills/db-state-verifier-and-seeder/examples/db_fixture_seed.json +12 -0
- package/.agents/skills/e2e-testing-patterns/SKILL.md +1 -1
- package/.agents/skills/e2e-testing-patterns/examples/playwright_sharded_config.ts +12 -0
- package/.agents/skills/e2e-testing-patterns/resources/implementation-playbook.md +522 -522
- package/.agents/skills/failure-autopsy-and-healing/SKILL.md +17 -3
- package/.agents/skills/failure-autopsy-and-healing/examples/sample_junit_failure.xml +8 -0
- package/.agents/skills/failure-autopsy-and-healing/references/healing_matrix.md +64 -64
- package/.agents/skills/failure-autopsy-and-healing/references/qa_investigation_protocol.md +56 -56
- package/.agents/skills/failure-autopsy-and-healing/scripts/triage_failures.sh +98 -98
- package/.agents/skills/file-and-report-validator/SKILL.md +1 -1
- package/.agents/skills/file-and-report-validator/examples/sample_export_schema.json +14 -0
- package/.agents/skills/flaky-test-sentinel-and-quarantine/SKILL.md +3 -3
- package/.agents/skills/flaky-test-sentinel-and-quarantine/examples/quarantine_registry.json +11 -0
- package/.agents/skills/gherkin-to-suite/SKILL.md +103 -0
- package/.agents/skills/gherkin-to-suite/examples/checkout.feature +39 -0
- package/.agents/skills/gherkin-to-suite/examples/suite_report_sample.json +334 -0
- package/.agents/skills/github-actions-templates/SKILL.md +47 -304
- package/.agents/skills/github-actions-templates/examples/matrix_test_pipeline.yml +8 -0
- package/.agents/skills/graphify-impact-analyzer/SKILL.md +6 -6
- package/.agents/skills/graphify-impact-analyzer/examples/dependency_blast_radius.json +8 -0
- package/.agents/skills/katalon-cli-runner/SKILL.md +2 -2
- package/.agents/skills/katalon-cli-runner/examples/headless_kre_exec.sh +3 -0
- package/.agents/skills/katalon-cli-runner/references/groovy-patterns.md +209 -209
- package/.agents/skills/katalon-cli-runner/references/katalon-api.md +155 -155
- package/.agents/skills/katalon-cli-runner/references/runner_commands.md +67 -67
- package/.agents/skills/lam-script-generator/SKILL.md +42 -1
- package/.agents/skills/lam-script-generator/examples/user_story_sample.md +8 -0
- package/.agents/skills/lean-code-ladder/SKILL.md +83 -0
- package/.agents/skills/lean-code-ladder/examples/ladder_walkthrough.md +37 -0
- package/.agents/skills/meta-prompt-crafter/SKILL.md +107 -0
- package/.agents/skills/meta-prompt-crafter/examples/qa_prompt_template.md +35 -0
- package/.agents/skills/persistent-planning-files/SKILL.md +108 -0
- package/.agents/skills/persistent-planning-files/examples/task_plan_example.md +56 -0
- package/.agents/skills/playwright-live-interaction/SKILL.md +49 -1
- package/.agents/skills/playwright-live-interaction/examples/live_probe_script.js +5 -0
- package/.agents/skills/playwright-live-interaction/references/advanced_superpowers.md +160 -160
- package/.agents/skills/playwright-live-interaction/references/compact_accessibility_snapshots.md +75 -75
- package/.agents/skills/playwright-live-interaction/references/recipes.md +388 -388
- package/.agents/skills/playwright-live-interaction/references/swarm_orchestration.md +134 -134
- package/.agents/skills/playwright-webapp-testing/SKILL.md +93 -0
- package/.agents/skills/playwright-webapp-testing/examples/server_lifecycle_playwright.py +63 -0
- package/.agents/skills/rbt-manual-testing/SKILL.md +150 -0
- package/.agents/skills/rbt-manual-testing/examples/checkout_rbt_manual_suite.md +25 -0
- package/.agents/skills/security-dast-sentinel/SKILL.md +54 -135
- package/.agents/skills/security-dast-sentinel/examples/dast_scan_config.json +10 -0
- package/.agents/skills/self-healing-locator/SKILL.md +24 -10
- package/.agents/skills/self-healing-locator/examples/aom_diff_sample.json +16 -0
- package/.agents/skills/skillspector-security-guard/SKILL.md +32 -90
- package/.agents/skills/skillspector-security-guard/examples/safe_mcp_config.json +12 -0
- package/.agents/skills/surgical-coding-principles/SKILL.md +89 -0
- package/.agents/skills/surgical-coding-principles/examples/surgical_vs_scope_creep.md +46 -0
- package/.agents/skills/synthetic-test-data-generator/SKILL.md +3 -3
- package/.agents/skills/synthetic-test-data-generator/examples/idempotent_data_recipe.json +9 -0
- package/.agents/skills/systematic-debugging/SKILL.md +100 -0
- package/.agents/skills/systematic-debugging/examples/four_phase_case.md +44 -0
- package/.agents/skills/test-driven-development/SKILL.md +114 -0
- package/.agents/skills/test-driven-development/examples/red_green_refactor_qa.md +78 -0
- package/.agents/skills/token-and-context-optimizer/SKILL.md +1 -1
- package/.agents/skills/token-and-context-optimizer/examples/distilled_log_sample.txt +3 -0
- package/.agents/skills/verification-before-completion/SKILL.md +100 -0
- package/.agents/skills/verification-before-completion/examples/evidence_log_example.md +46 -0
- package/.agents/skills/visual-regression-sentinel/SKILL.md +21 -1
- package/.agents/skills/visual-regression-sentinel/examples/visual_mask_rules.json +9 -0
- package/.agents/skills/wcag-audit-patterns/SKILL.md +3 -3
- package/.agents/skills/wcag-audit-patterns/examples/wcag_compliance_checklist.json +10 -0
- package/.agents/skills/wcag-audit-patterns/resources/implementation-playbook.md +541 -541
- package/.agents/skills/web-vitals-and-performance-profiler/SKILL.md +1 -1
- package/.agents/skills/web-vitals-and-performance-profiler/examples/cwv_budget_policy.json +6 -0
- package/.agents/templates/completion_report.md +57 -57
- package/.agents/workflows/analyze_requirement_document.md +18 -0
- package/.agents/workflows/export_testcases_excel.md +32 -0
- package/.agents/workflows/generate_combinatorial_test_data.md +28 -0
- package/.agents/workflows/generate_cross_module_test_plan.md +37 -0
- package/.agents/workflows/generate_manual_testcases_rbt.md +56 -0
- package/.agents/workflows/generate_requirements_from_website.md +25 -0
- package/.agents/workflows/generate_testcases_from_requirements.md +21 -0
- package/.agents/workflows/graphify.md +10 -10
- package/.agents/workflows/verify.md +2 -2
- package/.cursor/rules/language.mdc +7 -7
- package/.cursor/rules/synapse-qa.mdc +23 -0
- package/.cursorrules +7 -0
- package/.pre-commit-hooks.yaml +14 -0
- package/.windsurfrules +7 -0
- package/AGENTS.md +54 -15
- package/CLAUDE.md +35 -12
- package/LICENSE +30 -0
- package/NOTICE +180 -0
- package/README.en.md +331 -0
- package/README.md +252 -515
- package/action.yml +51 -0
- package/benchmarks/qa_eval/README.md +71 -0
- package/benchmarks/qa_eval/build_dataset.py +677 -0
- package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-06_api_contract_drift.json +22 -0
- package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-07_api_contract_drift.json +22 -0
- package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-08_api_contract_drift.json +22 -0
- package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-09_api_contract_drift.json +22 -0
- package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-10_api_contract_drift.json +22 -0
- package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-21_fake_pass_tautology.json +21 -0
- package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-22_fake_pass_tautology.json +21 -0
- package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-23_fake_pass_tautology.json +21 -0
- package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-24_fake_pass_tautology.json +21 -0
- package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-25_fake_pass_tautology.json +21 -0
- package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-01_locator_drift.json +23 -0
- package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-02_locator_drift.json +23 -0
- package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-03_locator_drift.json +23 -0
- package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-04_locator_drift.json +23 -0
- package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-05_locator_drift.json +23 -0
- package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-16_stale_and_mutation.json +22 -0
- package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-17_stale_and_mutation.json +22 -0
- package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-18_stale_and_mutation.json +22 -0
- package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-19_stale_and_mutation.json +22 -0
- package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-20_stale_and_mutation.json +23 -0
- package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-11_timing_and_race.json +22 -0
- package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-12_timing_and_race.json +22 -0
- package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-13_timing_and_race.json +22 -0
- package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-14_timing_and_race.json +22 -0
- package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-15_timing_and_race.json +22 -0
- package/benchmarks/qa_eval/eval_runner.py +418 -0
- package/benchmarks/qa_eval/reports/AB_METHODOLOGY_REPORT.md +83 -0
- package/benchmarks/qa_eval/reports/BENCHMARK_REPORT.md +69 -0
- package/benchmarks/qa_eval/reports/eval_results.json +105 -0
- package/bin/agent-qa.js +16 -4
- package/docs/ARCHITECTURE.md +107 -0
- package/docs/CI_CD_INTEGRATION.md +94 -0
- package/docs/CLI_REFERENCE.md +157 -0
- package/docs/CONTRIBUTING.md +91 -0
- package/docs/PLUGIN_DEVELOPMENT_GUIDE.md +126 -0
- package/docs/TOKEN_QUOTA_PLAYBOOK.md +41 -0
- package/docs/adopted-ecosystem-tools.md +87 -0
- package/docs/schemas/synapse.config.schema.json +64 -0
- package/examples/cypress-ecommerce-suite/README.md +45 -0
- package/examples/cypress-ecommerce-suite/cypress/e2e/checkout.cy.js +17 -0
- package/examples/cypress-ecommerce-suite/cypress/pages/BasePage.js +29 -0
- package/examples/cypress-ecommerce-suite/cypress/pages/CartPage.js +51 -0
- package/examples/cypress-ecommerce-suite/cypress.config.js +13 -0
- package/examples/cypress-ecommerce-suite/package.json +13 -0
- package/examples/katalon-suite/Keywords/pages/BasePage.groovy +19 -0
- package/examples/katalon-suite/Keywords/pages/DashboardPage.groovy +29 -0
- package/examples/katalon-suite/Keywords/pages/LoginPage.groovy +45 -0
- package/examples/katalon-suite/Profiles/default.glbl +12 -0
- package/examples/katalon-suite/README.md +18 -0
- package/examples/katalon-suite/Scripts/Auth/TC_LoginSuccess/Script1234567890.groovy +12 -0
- package/examples/katalon-suite/Scripts/Dashboard/TC_ViewSummary/Script1234567891.groovy +15 -0
- package/examples/katalon-suite/katalon_suite.prj +21 -0
- package/examples/playwright-crm-suite/README.md +40 -0
- package/examples/playwright-crm-suite/package.json +14 -0
- package/examples/playwright-crm-suite/pages/BasePage.ts +37 -0
- package/examples/playwright-crm-suite/pages/CustomerPage.ts +57 -0
- package/examples/playwright-crm-suite/pages/LoginPage.ts +32 -0
- package/examples/playwright-crm-suite/playwright.config.ts +27 -0
- package/examples/playwright-crm-suite/tests/auth.spec.ts +22 -0
- package/examples/playwright-crm-suite/tests/customers.spec.ts +33 -0
- package/examples/plugins/sample-custom-plugin/README.md +14 -0
- package/examples/plugins/sample-custom-plugin/plugin.json +16 -0
- package/examples/plugins/sample-custom-plugin/skills/custom-security-headers-audit/SKILL.md +29 -0
- package/examples/plugins/sample-custom-plugin/skills/custom-security-headers-audit/examples/audit_fixture.json +8 -0
- package/examples/plugins/sample-custom-plugin/tools/custom_security_headers.py +125 -0
- package/examples/practices/README.md +22 -0
- package/examples/practices/requirements/crm/requirements_contracts.md +292 -0
- package/examples/practices/requirements/crm/requirements_customers.md +462 -0
- package/examples/practices/requirements/crm/requirements_login.md +202 -0
- package/examples/practices/requirements/crm/requirements_projects.md +396 -0
- package/examples/practices/requirements/crm/requirements_tasks.md +343 -0
- package/examples/practices/requirements/ecommerce/requirements_category_brand.txt +402 -0
- package/examples/practices/requirements/jira/KAN-5/KAN-1/2026-04-03_04-28-27.png +0 -0
- package/examples/practices/requirements/jira/KAN-5/KAN-1/KAN-1_requirement.md +52 -0
- package/examples/practices/requirements/jira/KAN-5/KAN-4/2026-04-03_04-28-19.png +0 -0
- package/examples/practices/requirements/jira/KAN-5/KAN-4/2026-04-03_04-28-57.png +0 -0
- package/examples/practices/requirements/jira/KAN-5/KAN-4/KAN-4_requirement.md +119 -0
- package/examples/practices/requirements/jira/KAN-5/KAN-5_overview.md +9 -0
- package/examples/practices/requirements/jira/KAN-5/KAN-6/2026-04-03_05-58-08.png +0 -0
- package/examples/practices/requirements/jira/KAN-5/KAN-6/2026-04-03_05-58-23.png +0 -0
- package/examples/practices/requirements/jira/KAN-5/KAN-6/KAN-6_requirement.md +32 -0
- package/examples/practices/testcases/api/book_management_api_test_cases.md +144 -0
- package/examples/practices/testcases/api/user_management_api_test_cases.md +139 -0
- package/examples/practices/testcases/crm/test_cases_crm_login.md +148 -0
- package/examples/practices/testcases/crm/test_cases_customers.md +156 -0
- package/examples/pytest-api-suite/README.md +45 -0
- package/examples/pytest-api-suite/conftest.py +31 -0
- package/examples/pytest-api-suite/pages/user_api_client.py +36 -0
- package/examples/pytest-api-suite/requirements.txt +2 -0
- package/examples/pytest-api-suite/tests/test_user_api.py +44 -0
- package/examples/selenium-suite/README.md +18 -0
- package/examples/selenium-suite/pages/base_page.py +27 -0
- package/examples/selenium-suite/pages/login_page.py +29 -0
- package/examples/selenium-suite/pages/order_page.py +25 -0
- package/examples/selenium-suite/pytest.ini +6 -0
- package/examples/selenium-suite/requirements.txt +2 -0
- package/examples/selenium-suite/tests/test_login.py +10 -0
- package/examples/selenium-suite/tests/test_order.py +10 -0
- package/package.json +27 -12
- package/scripts/generate_skill_examples.py +244 -0
- package/scripts/install.ps1 +112 -0
- package/scripts/install_global_plugin.ps1 +94 -0
- package/scripts/install_global_plugin.sh +49 -0
- package/scripts/lint_skills.ps1 +57 -0
- package/scripts/package_dist.py +323 -0
- package/scripts/setup.sh +59 -0
- package/scripts/update_hub.ps1 +19 -0
- package/scripts/update_hub.sh +15 -0
- package/skills_manifest.json +209 -6
- package/synapse.config.json +30 -0
- package/templates/PROJECT_AI_GUIDE_TEMPLATE.md +7 -7
- package/templates/PROJECT_STATE_TEMPLATE.md +1 -1
- package/templates/ai_bridges/CLAUDE.md +33 -16
- package/templates/ai_bridges/copilot-instructions.md +14 -21
- package/templates/ai_bridges/cursor_synapse_qa.mdc +17 -20
- package/templates/ai_bridges/windsurfrules +21 -21
- package/templates/ci/github-actions-synapse.yml +71 -4
- package/templates/welcome.html.tmpl +1674 -0
- package/tools/.infer_baseline.json +1102 -0
- package/tools/TOOLS_RUNBOOK.md +98 -131
- package/tools/__init__.py +26 -0
- package/tools/agent_canary.py +501 -501
- package/tools/analyze_project.py +31 -17
- package/tools/api_fuzzer.py +278 -6
- package/tools/author_integrity.py +6 -6
- package/tools/auto_heal.py +1 -1
- package/tools/browser_helpers.js +105 -7
- package/tools/bug_reporter.py +31 -1
- package/tools/bump_version.py +30 -3
- package/tools/cache_resolver.py +248 -14
- package/tools/check_env.py +55 -14
- package/tools/check_version_sync.py +171 -0
- package/tools/ci_healing_hook.py +1 -1
- package/tools/cli.py +454 -42
- package/tools/count_tokens.py +1257 -0
- package/tools/dashboard_generator.py +2638 -0
- package/tools/db_sandbox.py +198 -20
- package/tools/e2e_flow_prober.ps1 +12 -64
- package/tools/e2e_flow_prober.py +99 -0
- package/tools/e2e_flow_prober.sh +4 -0
- package/tools/flaky_detector.py +4 -3
- package/tools/generate_allure_report.ps1 +12 -29
- package/tools/generate_allure_report.py +77 -0
- package/tools/generate_allure_report.sh +4 -0
- package/tools/generate_jmx_plan.py +257 -58
- package/tools/generate_test_reports.ps1 +12 -134
- package/tools/generate_test_reports.py +133 -0
- package/tools/generate_test_reports.sh +4 -0
- package/tools/gherkin_suite.py +758 -0
- package/tools/git_pre_commit_guard.py +12 -6
- package/tools/goldfish_review.py +366 -0
- package/tools/heal_pr_automator.py +1 -1
- package/tools/heuristic_locator_matcher.py +170 -21
- package/tools/infer_linter.py +612 -70
- package/tools/lint_ai_docs.py +64 -0
- package/tools/matrix_sharder.py +1 -1
- package/tools/mcp_excel_server.ps1 +12 -250
- package/tools/mcp_excel_server.py +249 -0
- package/tools/mcp_excel_server.sh +4 -0
- package/tools/mcp_server.py +368 -144
- package/tools/md_to_xlsx.py +307 -0
- package/tools/micro_mutator.py +302 -69
- package/tools/omni_transpiler.py +2 -2
- package/tools/output_formatter.py +128 -0
- package/tools/pinpoint_failure.py +88 -88
- package/tools/project_state.py +2 -2
- package/tools/repo_map.py +1 -1
- package/tools/safety_firewall.py +196 -45
- package/tools/setup_project.py +295 -31
- package/tools/skillspector.py +31 -0
- package/tools/spec_drift_sentinel.py +439 -0
- package/tools/sync_agent_rules.py +248 -0
- package/tools/telemetry_correlator.py +45 -0
- package/tools/test_impact.py +51 -12
- package/tools/tms_sync_bridge.py +21 -5
- package/tools/universal_ir.py +3 -0
- package/tools/update_sentinel.py +87 -15
- package/tools/verify_all.ps1 +13 -0
- package/tools/verify_all.py +479 -85
- package/tools/visual_diff_canvas.py +1 -0
- package/tools/visual_som_helper.py +1 -1
- package/tools/watch_mode.py +305 -0
- package/tools/welcome_page.py +291 -0
|
@@ -1,41 +1,29 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: github-actions-templates
|
|
3
|
-
description: "Create production-ready GitHub Actions workflows for automated test suites and CI/CD."
|
|
3
|
+
description: "Create production-ready GitHub Actions workflows for automated test suites and CI/CD. Use when wiring test pipelines, matrix shards, or quality gates into GitHub Actions."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# GitHub Actions
|
|
6
|
+
# GitHub Actions CI/CD Patterns for Test Automation
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
> **Target:** Author secure, performant, and matrix-sharded GitHub Actions workflows for automated test execution, quality gate validation, and Allure reporting.
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
- The task is unrelated to github actions templates
|
|
13
|
-
- You need a different domain or tool outside this scope
|
|
14
|
-
|
|
15
|
-
## Instructions
|
|
16
|
-
|
|
17
|
-
- Clarify goals, constraints, and required inputs.
|
|
18
|
-
- Apply relevant best practices and validate outcomes.
|
|
19
|
-
- Provide actionable steps and verification.
|
|
20
|
-
|
|
21
|
-
## Purpose
|
|
10
|
+
---
|
|
22
11
|
|
|
23
|
-
|
|
12
|
+
## 1. When to Use
|
|
24
13
|
|
|
25
|
-
|
|
14
|
+
- Configuring continuous integration pipelines for Playwright, Katalon, Pytest, or Newman.
|
|
15
|
+
- Setting up multi-OS and multi-version test execution matrices.
|
|
16
|
+
- Integrating automated Quality Gate DoD (`tools/verify_all.py`).
|
|
17
|
+
- Generating and publishing automated test report artifacts.
|
|
26
18
|
|
|
27
|
-
|
|
28
|
-
- Build Docker images and push to registries
|
|
29
|
-
- Deploy to Kubernetes clusters
|
|
30
|
-
- Run security scans
|
|
31
|
-
- Implement matrix builds for multiple environments
|
|
19
|
+
---
|
|
32
20
|
|
|
33
|
-
##
|
|
21
|
+
## 2. Standard Enterprise Test Workflow Template
|
|
34
22
|
|
|
35
|
-
|
|
23
|
+
Create in `.github/workflows/e2e_tests.yml`:
|
|
36
24
|
|
|
37
25
|
```yaml
|
|
38
|
-
name: Test
|
|
26
|
+
name: Enterprise Automated E2E Test Suite
|
|
39
27
|
|
|
40
28
|
on:
|
|
41
29
|
push:
|
|
@@ -44,291 +32,46 @@ on:
|
|
|
44
32
|
branches: [ main ]
|
|
45
33
|
|
|
46
34
|
jobs:
|
|
47
|
-
test:
|
|
48
|
-
runs-on: ubuntu-latest
|
|
49
|
-
|
|
50
|
-
strategy:
|
|
51
|
-
matrix:
|
|
52
|
-
node-version: [18.x, 20.x]
|
|
53
|
-
|
|
54
|
-
steps:
|
|
55
|
-
- uses: actions/checkout@v4
|
|
56
|
-
|
|
57
|
-
- name: Use Node.js ${{ matrix.node-version }}
|
|
58
|
-
uses: actions/setup-node@v4
|
|
59
|
-
with:
|
|
60
|
-
node-version: ${{ matrix.node-version }}
|
|
61
|
-
cache: 'npm'
|
|
62
|
-
|
|
63
|
-
- name: Install dependencies
|
|
64
|
-
run: npm ci
|
|
65
|
-
|
|
66
|
-
- name: Run linter
|
|
67
|
-
run: npm run lint
|
|
68
|
-
|
|
69
|
-
- name: Run tests
|
|
70
|
-
run: npm test
|
|
71
|
-
|
|
72
|
-
- name: Upload coverage
|
|
73
|
-
uses: codecov/codecov-action@v3
|
|
74
|
-
with:
|
|
75
|
-
files: ./coverage/lcov.info
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
### Pattern 2: Build and Push Docker Image
|
|
80
|
-
|
|
81
|
-
```yaml
|
|
82
|
-
name: Build and Push
|
|
83
|
-
|
|
84
|
-
on:
|
|
85
|
-
push:
|
|
86
|
-
branches: [ main ]
|
|
87
|
-
tags: [ 'v*' ]
|
|
88
|
-
|
|
89
|
-
env:
|
|
90
|
-
REGISTRY: ghcr.io
|
|
91
|
-
IMAGE_NAME: ${{ github.repository }}
|
|
92
|
-
|
|
93
|
-
jobs:
|
|
94
|
-
build:
|
|
95
|
-
runs-on: ubuntu-latest
|
|
96
|
-
permissions:
|
|
97
|
-
contents: read
|
|
98
|
-
packages: write
|
|
99
|
-
|
|
100
|
-
steps:
|
|
101
|
-
- uses: actions/checkout@v4
|
|
102
|
-
|
|
103
|
-
- name: Log in to Container Registry
|
|
104
|
-
uses: docker/login-action@v3
|
|
105
|
-
with:
|
|
106
|
-
registry: ${{ env.REGISTRY }}
|
|
107
|
-
username: ${{ github.actor }}
|
|
108
|
-
password: ${{ secrets.GITHUB_TOKEN }}
|
|
109
|
-
|
|
110
|
-
- name: Extract metadata
|
|
111
|
-
id: meta
|
|
112
|
-
uses: docker/metadata-action@v5
|
|
113
|
-
with:
|
|
114
|
-
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
|
115
|
-
tags: |
|
|
116
|
-
type=ref,event=branch
|
|
117
|
-
type=ref,event=pr
|
|
118
|
-
type=semver,pattern={{version}}
|
|
119
|
-
type=semver,pattern={{major}}.{{minor}}
|
|
120
|
-
|
|
121
|
-
- name: Build and push
|
|
122
|
-
uses: docker/build-push-action@v5
|
|
123
|
-
with:
|
|
124
|
-
context: .
|
|
125
|
-
push: true
|
|
126
|
-
tags: ${{ steps.meta.outputs.tags }}
|
|
127
|
-
labels: ${{ steps.meta.outputs.labels }}
|
|
128
|
-
cache-from: type=gha
|
|
129
|
-
cache-to: type=gha,mode=max
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
### Pattern 3: Deploy to Kubernetes
|
|
134
|
-
|
|
135
|
-
```yaml
|
|
136
|
-
name: Deploy to Kubernetes
|
|
137
|
-
|
|
138
|
-
on:
|
|
139
|
-
push:
|
|
140
|
-
branches: [ main ]
|
|
141
|
-
|
|
142
|
-
jobs:
|
|
143
|
-
deploy:
|
|
35
|
+
test-matrix:
|
|
144
36
|
runs-on: ubuntu-latest
|
|
145
|
-
|
|
146
|
-
steps:
|
|
147
|
-
- uses: actions/checkout@v4
|
|
148
|
-
|
|
149
|
-
- name: Configure AWS credentials
|
|
150
|
-
uses: aws-actions/configure-aws-credentials@v4
|
|
151
|
-
with:
|
|
152
|
-
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
153
|
-
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
154
|
-
aws-region: us-west-2
|
|
155
|
-
|
|
156
|
-
- name: Update kubeconfig
|
|
157
|
-
run: |
|
|
158
|
-
aws eks update-kubeconfig --name production-cluster --region us-west-2
|
|
159
|
-
|
|
160
|
-
- name: Deploy to Kubernetes
|
|
161
|
-
run: |
|
|
162
|
-
kubectl apply -f k8s/
|
|
163
|
-
kubectl rollout status deployment/my-app -n production
|
|
164
|
-
kubectl get services -n production
|
|
165
|
-
|
|
166
|
-
- name: Verify deployment
|
|
167
|
-
run: |
|
|
168
|
-
kubectl get pods -n production
|
|
169
|
-
kubectl describe deployment my-app -n production
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### Pattern 4: Matrix Build
|
|
173
|
-
|
|
174
|
-
```yaml
|
|
175
|
-
name: Matrix Build
|
|
176
|
-
|
|
177
|
-
on: [push, pull_request]
|
|
178
|
-
|
|
179
|
-
jobs:
|
|
180
|
-
build:
|
|
181
|
-
runs-on: ${{ matrix.os }}
|
|
182
|
-
|
|
183
37
|
strategy:
|
|
38
|
+
fail-fast: false
|
|
184
39
|
matrix:
|
|
185
|
-
|
|
186
|
-
python-version: ['3.9', '3.10', '3.11', '3.12']
|
|
187
|
-
|
|
188
|
-
steps:
|
|
189
|
-
- uses: actions/checkout@v4
|
|
190
|
-
|
|
191
|
-
- name: Set up Python
|
|
192
|
-
uses: actions/setup-python@v5
|
|
193
|
-
with:
|
|
194
|
-
python-version: ${{ matrix.python-version }}
|
|
195
|
-
|
|
196
|
-
- name: Install dependencies
|
|
197
|
-
run: |
|
|
198
|
-
python -m pip install --upgrade pip
|
|
199
|
-
pip install -r requirements.txt
|
|
200
|
-
|
|
201
|
-
- name: Run tests
|
|
202
|
-
run: pytest
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
## Workflow Best Practices
|
|
207
|
-
|
|
208
|
-
1. **Use specific action versions** (@v4, not @latest)
|
|
209
|
-
2. **Cache dependencies** to speed up builds
|
|
210
|
-
3. **Use secrets** for sensitive data
|
|
211
|
-
4. **Implement status checks** on PRs
|
|
212
|
-
5. **Use matrix builds** for multi-version testing
|
|
213
|
-
6. **Set appropriate permissions**
|
|
214
|
-
7. **Use reusable workflows** for common patterns
|
|
215
|
-
8. **Implement approval gates** for production
|
|
216
|
-
9. **Add notification steps** for failures
|
|
217
|
-
10. **Use self-hosted runners** for sensitive workloads
|
|
218
|
-
|
|
219
|
-
## Reusable Workflows
|
|
220
|
-
|
|
221
|
-
```yaml
|
|
222
|
-
# .github/workflows/reusable-test.yml
|
|
223
|
-
name: Reusable Test Workflow
|
|
224
|
-
|
|
225
|
-
on:
|
|
226
|
-
workflow_call:
|
|
227
|
-
inputs:
|
|
228
|
-
node-version:
|
|
229
|
-
required: true
|
|
230
|
-
type: string
|
|
231
|
-
secrets:
|
|
232
|
-
NPM_TOKEN:
|
|
233
|
-
required: true
|
|
234
|
-
|
|
235
|
-
jobs:
|
|
236
|
-
test:
|
|
237
|
-
runs-on: ubuntu-latest
|
|
238
|
-
steps:
|
|
239
|
-
- uses: actions/checkout@v4
|
|
240
|
-
- uses: actions/setup-node@v4
|
|
241
|
-
with:
|
|
242
|
-
node-version: ${{ inputs.node-version }}
|
|
243
|
-
- run: npm ci
|
|
244
|
-
- run: npm test
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
**Use reusable workflow:**
|
|
248
|
-
```yaml
|
|
249
|
-
jobs:
|
|
250
|
-
call-test:
|
|
251
|
-
uses: ./.github/workflows/reusable-test.yml
|
|
252
|
-
with:
|
|
253
|
-
node-version: '20.x'
|
|
254
|
-
secrets:
|
|
255
|
-
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
## Security Scanning
|
|
259
|
-
|
|
260
|
-
```yaml
|
|
261
|
-
name: Security Scan
|
|
262
|
-
|
|
263
|
-
on:
|
|
264
|
-
push:
|
|
265
|
-
branches: [ main ]
|
|
266
|
-
pull_request:
|
|
267
|
-
branches: [ main ]
|
|
268
|
-
|
|
269
|
-
jobs:
|
|
270
|
-
security:
|
|
271
|
-
runs-on: ubuntu-latest
|
|
40
|
+
shard: [1/4, 2/4, 3/4, 4/4]
|
|
272
41
|
|
|
273
42
|
steps:
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
43
|
+
- name: Checkout Code
|
|
44
|
+
uses: actions/checkout@v4
|
|
45
|
+
|
|
46
|
+
- name: Setup Node.js
|
|
47
|
+
uses: actions/setup-node@v4
|
|
48
|
+
with:
|
|
49
|
+
node-version: 20
|
|
50
|
+
cache: 'npm'
|
|
51
|
+
|
|
52
|
+
- name: Install Dependencies
|
|
53
|
+
run: npm ci
|
|
54
|
+
|
|
55
|
+
- name: Install Playwright Browsers
|
|
56
|
+
run: npx playwright install --with-deps chromium
|
|
57
|
+
|
|
58
|
+
- name: Run Sharded Playwright Tests
|
|
59
|
+
run: npx playwright test --shard=${{ matrix.shard }}
|
|
60
|
+
|
|
61
|
+
- name: Upload Test Report & Screenshots
|
|
62
|
+
if: always()
|
|
63
|
+
uses: actions/upload-artifact@v4
|
|
64
|
+
with:
|
|
65
|
+
name: playwright-report-shard-${{ strategy.job-index }}
|
|
66
|
+
path: playwright-report/
|
|
67
|
+
retention-days: 14
|
|
293
68
|
```
|
|
294
69
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
```yaml
|
|
298
|
-
name: Deploy to Production
|
|
299
|
-
|
|
300
|
-
on:
|
|
301
|
-
push:
|
|
302
|
-
tags: [ 'v*' ]
|
|
303
|
-
|
|
304
|
-
jobs:
|
|
305
|
-
deploy:
|
|
306
|
-
runs-on: ubuntu-latest
|
|
307
|
-
environment:
|
|
308
|
-
name: production
|
|
309
|
-
url: https://app.example.com
|
|
310
|
-
|
|
311
|
-
steps:
|
|
312
|
-
- uses: actions/checkout@v4
|
|
313
|
-
|
|
314
|
-
- name: Deploy application
|
|
315
|
-
run: |
|
|
316
|
-
echo "Deploying to production..."
|
|
317
|
-
# Deployment commands here
|
|
318
|
-
|
|
319
|
-
- name: Notify Slack
|
|
320
|
-
if: success()
|
|
321
|
-
uses: slackapi/slack-github-action@v1
|
|
322
|
-
with:
|
|
323
|
-
webhook-url: ${{ secrets.SLACK_WEBHOOK }}
|
|
324
|
-
payload: |
|
|
325
|
-
{
|
|
326
|
-
"text": "Deployment to production completed successfully!"
|
|
327
|
-
}
|
|
328
|
-
```
|
|
70
|
+
---
|
|
329
71
|
|
|
330
|
-
##
|
|
72
|
+
## 3. Best Practices & Security Invariants
|
|
331
73
|
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
74
|
+
1. **Dependency Pinning:** Always pin third-party actions to full commit SHAs or major versions (`actions/checkout@v4`).
|
|
75
|
+
2. **Secret Masking:** Never hardcode credentials in workflow files; inject via `secrets.TEST_USER` and `secrets.TEST_PASS`.
|
|
76
|
+
3. **Artifact Retention:** Cap test video and screenshot artifacts to 7-14 days to prevent storage bloat.
|
|
77
|
+
4. **Concurrency Governance:** Cancel outdated in-flight runs on new PR commits using `concurrency: { group: ${{ github.ref }}, cancel-in-progress: true }`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: graphify-impact-analyzer
|
|
3
|
-
description: "Analyze code change blast radius and scope impacted test cases via AST."
|
|
3
|
+
description: "Analyze code change blast radius and scope impacted test cases via AST. Use when analyzing the blast radius of code changes via dependency graphs."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Graphify Impact Analyzer — AST Knowledge Graph Navigation & Zero-Waste Impact Analysis
|
|
@@ -30,7 +30,7 @@ Run impact analysis before dispatching test suites:
|
|
|
30
30
|
|
|
31
31
|
### 2.1. Check Impact of Modified Page Class
|
|
32
32
|
```bash
|
|
33
|
-
|
|
33
|
+
synapse impact -f Keywords/pages/CategoryPage.groovy
|
|
34
34
|
```
|
|
35
35
|
*Output:*
|
|
36
36
|
- Target File: `Keywords/pages/CategoryPage.groovy`
|
|
@@ -40,12 +40,12 @@ python3 tools/test_impact.py -f Keywords/pages/CategoryPage.groovy
|
|
|
40
40
|
|
|
41
41
|
### 2.2. Automatically Analyze Git Changes
|
|
42
42
|
```bash
|
|
43
|
-
|
|
43
|
+
synapse impact --git-diff
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
### 2.3. Output Machine-Readable JSON (For CI/CD Pipelines)
|
|
47
47
|
```bash
|
|
48
|
-
|
|
48
|
+
synapse impact --git-diff --json
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
---
|
|
@@ -71,6 +71,6 @@ python3 tools/test_impact.py --git-diff --json
|
|
|
71
71
|
|
|
72
72
|
## 5. Agent Operational Guardrails
|
|
73
73
|
|
|
74
|
-
1. **Before modifying any Page Class:** Run `
|
|
74
|
+
1. **Before modifying any Page Class:** Run `synapse impact -f <path>` to identify dependent Test Cases.
|
|
75
75
|
2. **After modifying code:** Run `graphify update .` to keep the knowledge graph synchronized.
|
|
76
|
-
3. **DoD Compliance:** Always verify that all changes pass `
|
|
76
|
+
3. **DoD Compliance:** Always verify that all changes pass `synapse verify`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: katalon-cli-runner
|
|
3
|
-
description: "Execute headless Katalon and Gradle test runners with automatic driver cleanup."
|
|
3
|
+
description: "Execute headless Katalon and Gradle test runners with automatic driver cleanup. Use when running Katalon suites headless or integrating KRE into CI/CD."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Katalon CLI & Enterprise Runner — Dual-Mode Execution Management
|
|
@@ -72,5 +72,5 @@ katalonc -noSplash -runMode=console \
|
|
|
72
72
|
3. **Compile Allure Report:** `allure generate ./allure-results -o ./Reports/allure-report --clean`.
|
|
73
73
|
4. If failures occur, immediately dispatch failure autopsy:
|
|
74
74
|
```bash
|
|
75
|
-
python3 tools/pinpoint_failure.py
|
|
75
|
+
python3 ~/.zcode/synapse-hub/tools/pinpoint_failure.py
|
|
76
76
|
```
|