Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases
The English summary is being prepared. Showing the original description.
Maintain a dedicated automation test project per repository - separate from the product's unit tests - with API, worker, and UI suites written scenario-first
The English summary is being prepared. Showing the original description.
Review the instructions the agent will receive before you install.
Every repository worth testing gets a dedicated automation test project: a separate project that exercises the real product through its public surface and can be re-run on every change. It is not the product's unit-test folder and never mixes into it — it has its own dependencies, its own entrypoint, and runs in the repository's own pipeline (automation-pipeline-integration).
Core principle: scenarios before code (scenario-plan-first). A suite written without a scenario list tests whatever was easy, not what matters. And automation follows the manual pass: you automate the scenarios you have already executed and understood by hand.
One automation project per repository, following the project's convention — default qa-automation/ at the repo root (a sibling repo also works):
qa-automation/
scenarios/ # the human-readable scenario lists, one file per feature
api/ # backend API suite: HTTP client + assertions
worker/ # async job suite: trigger → poll → assert side effects
ui/ # frontend suite: Playwright against the built app
fixtures/ # seed data
support/ # helpers, page objects, request builders, stub mappings
scripts/e2e.sh # single entrypoint: provision, run all suites, teardown
| Surface | Tool (follow the project's existing choice) |
|---|---|
| REST API | the language's HTTP test client + assertions (Playwright APIRequest, RestAssured, supertest, Go net/http + testify) |
| Worker / async jobs | same test runner; triggers through the product path, polls for side effects (worker-job-testing) |
| Web UI | Playwright (preferred) / Cypress — headless Chromium via executablePath: process.env.CHROME_BIN, no browser download |
Mobile automation is out of scope for now — do not scaffold a mobile suite.
scenarios/ and posted on the task.export_forbidden_for_other_tenant), reading like the scenario via page objects / request helpers.Feature: task export to CSV.
api/export_returns_all_tasks, api/export_empty_project_header_only, api/export_forbidden_for_other_tenant, worker/export_event_emitted. Each seeds its own rows, asserts, cleans up.scripts/e2e.sh → all green; pipeline runs the same script on the next task.CHROME_BIN.No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases
The English summary is being prepared. Showing the original description.
Use when the diff adds or changes an endpoint, resolver, RPC, job or query that takes an object id, a role check, a request binding or a tenant filter - BOLA/IDOR, function-level authorization, mass assignment and tenant scoping
The English summary is being prepared. Showing the original description.
Use on every UI change - semantic HTML, labels for controls, keyboard-navigable dialogs/menus, visible focus, and never color as the only signal
The English summary is being prepared. Showing the original description.
Use when a task changes any screen, form, dialog, menu or control - Lighthouse/axe scan of the changed screens, a keyboard walk, and the thresholds that fail a task
The English summary is being prepared. Showing the original description.
How to work a task returned with review, QA or UAT findings. Use when a task is in need_revision or PR review comments are in your context.
The English summary is being prepared. Showing the original description.
Use when the repository keeps its alerting in code, or a person asks for alerts outside TaskTrooper - PrometheusRule YAML, a Cloud Monitoring alert policy in Terraform, a Datadog monitor, each routed to TaskTrooper's alert ingest URL so it opens an incident here
The English summary is being prepared. Showing the original description.