Use when writing, debugging, or configuring PHPUnit functional tests for Oro Commerce 6.1 — anything extending WebTestCase: controllers, REST API, console commands (runCommand), datagrids (requestGrid), ACL/403/forbidden flows, PHP or YAML alice fixtures. Trigger on helpers (initClient, loadFixtures, getReference, generateBasicAuthHeader, generateApiAuthHeader, assertHtmlResponseStatusCodeEquals, assertJsonResponseStatusCodeEquals, getJsonResponseContent, getUrl), on annotations (@dbIsolationPerTest, @outputBuffering, @depends), on test-env setup (oro:install --env=test, install_options, .env-app.test.local, ORO_DB_DSN, --user-email ignored), and on transaction/isolation/state-bleed diagnostics between methods or fixtures. Also trigger on Basic vs API auth choice, X-WSSE in tests, admin@example.com defaults, LoadUser/LoadOrganization, @BundleName/...yml paths, EM clearing, InitialFixtureInterface, unit vs functional suite splits, and risky "test outputs content" warnings.
Use when running Oro Commerce 6.1 Behat tests in CI/CD — whether on Jenkins (Oro's canonical platform), GitLab CI (community territory, since Oro does not publicly support it per oroinc/platform#954), or any Docker-based pipeline. Covers compose fanout for Oro's service mesh, Chrome headless configuration, canonical formatter combo, consumer parallelization math, artifact collection, and init-image state transfer. Also use when you see .gitlab-ci.yml, Jenkinsfile, docker-compose behat stages, or compose-common.yaml files in Oro projects. Relevant when the user mentions 'behat ci', 'gitlab ci oro', 'jenkins oro', 'pipeline oro', 'parallel behat', 'junit output', 'oro chrome headless', 'consumer cleanup', 'init-test image', 'behat hang', 'compose fanout', or any CI-related Oro Behat task.
Use when debugging or troubleshooting Behat tests in Oro Commerce 6.1 — failing scenarios, intermittent/flaky runs (passes 4 of 5, fails 3 of 20), missing elements, AJAX races, waitForAjax limits with fetch/XHR, step definition discovery and grepping `-dl`/`-di` output, snippet generation, verbosity flags `-v`/`-vv`/`-vvv` and quieting passing-step noise, screenshots, ScreenshotTrait, breadth-first multi-gate dumps, scenario isolation, --stop-on-failure, step ordering or missing Background, fixture-vs-render-timing differentiation, consumer/queue state mid-scenario, leftover `And I wait for action` blocking CI and pre-commit detection, tmpfs PostgreSQL tuning, PgsqlIsolator, var/log forensics for hidden 500s, and Xdebug across split CLI + PHP-FPM (two listeners, XDEBUG_SESSION cookie, path mapping). Relevant whenever a Behat scenario fails, hangs, flakes, or needs investigation — even when phrased casually without "behat" but mentioning step definitions, feature files, Mink, Gherkin, or ScreenshotTrait.
Use when writing, configuring, debugging, or running Behat integration tests for Oro Commerce 6.1 bundles against a local app — suites, contexts, elements, page objects, fixtures, feature files, or `bin/behat` invocations. Covers suite auto-discovery vs `symfony_bundle` registration, registering custom Element classes (Form, etc.) in `behat.yml`, FeatureContext DI/services.yml wiring, `shared_contexts` propagation between root and bundle-level configs, `behat.yml.dist` vs local `behat.yml` precedence, base_url overrides, formatter flags (`-f pretty -f junit`), `--consumers`, `--strict`, `-s`, `-di`/`-dl` step discovery, Alice YAML fixtures with `@fixture-Bundle:file.yml`, fixture references, Gherkin `Background:` vs fixture tags, `oro_behat_extension`, `OroFeatureContext`/`OroMainContext`, feature-tag mocking (`feature_tag_aware_factory`, `parameters.yml`, paypal/payment stubs), `config_behat_test.yml`, Mink, Chromedriver, isolators. Trigger on phrasings like "my suite shows 0 features", "element not found",
Use for any Behat task targeting a deployed Oro Commerce 6.1 application (staging, QA, prod-clone, prod) rather than a local dev/CI stack. Covers running, configuring, and troubleshooting end-to-end Behat: --skip-isolators and --skip-isolators-but-load-fixtures, ORO_DB_DSN placement (.app-env.local vs .env-app.test.local), aligning local source/migrations to the deployed tag, and the oro/e2e-tests vendor package. Use for .behat-secrets.yml authoring (login.* keys, <Secret:> syntax, .dist template, .gitignore, remediation when secrets leak into git history). Use for ChromeDriver/remote-browser plumbing: port/url-base flags, Mink 404s, selenium grid endpoints, credential rotation. Use for watch mode (pause-on-failure, retry-from-line prompt), Reload Page Healer, OpenAI Healer, custom HealerInterface classes plus oro_test.behat.healer tag, disambiguating HealerInterface as Oro-Behat-specific. Skip for local-only Behat, PHPUnit functional tests, k6 load, or CI against ephemeral containers.
Use when setting up or running k6 performance tests for Oro Commerce 6.1 — load testing, storefront benchmarking, checkout flow performance, cache warm-up, or writing/extending k6 JavaScript test scripts for Oro applications. Also use when you see warmingUpTheApp.js, storefrontTests.js, checkoutTest.js, or Oro performance metrics like load_product_listing_page_logged_in_user. Relevant when the user mentions 'k6', 'load test', 'performance test', 'THRESHOLD_95', 'virtual users', 'VU', 'storefront benchmark', 'checkout performance', 'grafana k6', 'warm up', 'oro performance', or any k6-against-Oro task.
Use when exposing OroCommerce v6.1 entities via REST API, configuring api.yml or api_frontend.yml, creating custom API processors, setting up filters/sorters/subresources, or working with JSON:API endpoints. Relevant when the user mentions 'API endpoint', 'expose entity via API', 'api.yml', 'REST API', 'JSON:API', 'storefront API', 'API processor', or any OroCommerce API development task.
Use when creating a new OroCommerce v6.1 bundle, registering bundles, setting up DependencyInjection extensions, configuring services.yml, adding translations, navigation menus, or system configuration. Also relevant for bundle-level boilerplate like compiler passes, event subscriber registration, and console commands. Also applies to 'create a bundle', 'scaffold', 'new Oro module', or general OroCommerce project structure questions.