# Agent Instructions: test-e2e-playwright This role is the **shared Playwright runner** for all end-to-end tests in the repository. Changes here affect every application role that uses it. ## General Rules - You MUST keep all changes to this role minimal and non-invasive. - Before modifying any file in this role, you MUST explain to the user why the change is necessary and ask for explicit confirmation. - You MUST NOT introduce new override mechanisms (e.g. per-role variable mappings) that bypass the existing environment-variable interface. - Application roles MUST use the existing variables (`TEST_E2E_PLAYWRIGHT_IMAGE`, `TEST_E2E_PLAYWRIGHT_COMMAND`, etc.) for customisation instead of adding new indirection inside this role. ## File-Specific Rules ### `tasks/02_run_one.yml` - You MUST NOT add new `set_fact` variables that shadow or wrap existing `TEST_E2E_PLAYWRIGHT_*` variables. - You MUST NOT read from role `vars/main.yml` mappings of consuming roles (e.g. `test_e2e_playwright.*`) to override runner behaviour. - Any change to the task flow MUST leave all existing call sites unaffected. ### `defaults/main.yml` - New variables MUST follow the `TEST_E2E_PLAYWRIGHT_` prefix convention. - Default values MUST be safe to use without any per-role override. ### `README.md` - Document only variables and behaviour that are actually implemented in the role. - Do NOT document patterns or extension points that do not exist in the code.