What a goal looks like
Goals live in your repo as YAML: a stable id, a browser (or agent) type, human intent, and explicit success
criteria the runner can verify — URL, copy, DOM shape, structured fields — not a pile of incidental selectors.
suites:
- id: web-critical
environment: local
goals:
- id: checkout-happy-path
type: browser
description: User completes checkout with AI-generated copy visible.
success_criteria:
url_matches: "/checkout/complete"
text_present:
- "Order confirmed"
dom_signals:
- "main"
structured_checks:
- id: summary_line
path: "css:[data-testid=order-summary]"
expect: "Thank you"