AutoMax
Guides

Tags and suites

The tag taxonomy AutoMax enforces and how tags select layers, suites, data, users, browsers and issues.

What you'll learn

Which tags are mandatory, which are optional, how value tags are validated against the project YAML, how tag expressions filter a run, and how playwright-bdd special tags pass through.

The taxonomy

TagRuleEffect
@ui @api @hybridexactly one per scenarioselects the layer, therefore the Playwright project
@smoke @regression @sanityexactly one (list configurable under tags.suites)selects the screenshot policy and the CI gate
@visual @a11y @perf @mock @data-driven @pooloptional (declare extras under tags.extra)enable features
@user:<role>role must exist in tags.rolesleases a pool user before the browser context starts
@data:<dataset>dataset must exist in data.sourcesdocuments the dataset a scenario depends on
@har:<name>file must exist under har/<env>/replays or records network traffic
@env:<name>must be in envs.availablerestricts a scenario to one environment
@jira:PROJ-123 @github:123pattern-checkedlinks the scenario to an issue
@skip:<browser>browser must be supportedexcludes the scenario from that engine
@retries:N @timeout:N @slow @mode:serial @skip @fixme @onlyplaywright-bdd special tagspassed through

Unknown tags produce a warning, so typos surface without blocking.

Filter a run

bun run automax run -p demo-shop -t @smoke
bun run automax run -p demo-shop -t "@regression and not @mock"
bun run automax run -p demo-shop -t smoke,sanity          # shorthand for "@smoke or @sanity"

Expressions follow Cucumber tag-expression syntax. AutoMax combines your expression with the layer: (@ui) and (<your expression>).

Lint

bun run automax lint -p demo-shop
bun run automax lint -p demo-shop --json
bun run automax lint -p demo-shop --fix-tags     # adds a missing layer tag when the folder makes it obvious

automax run lints first and stops on errors unless --no-lint is given. Exit code 3 means lint errors.

Next steps

On this page