AutoMax
Reference

automax.project.yaml and automax.workspace.yaml

Field-by-field reference for the project file and the workspace file.

What you'll learn

Every field of automax.project.yaml and of the root automax.workspace.yaml, its type, default and purpose, derived from the Zod schemas in @automax/contracts.

automax.project.yaml

Identity and hierarchy

Prop

Type

Layers, browsers, routes, tags, environments

Prop

Type

Modules and processes

Prop

Type

Data and authentication

Prop

Type

Screenshots, healing, timeouts, retries, performance

Prop

Type

Integrations, MCP, agents, schedules, reports

Prop

Type

The demo project

slug: demo-shop
name: Demo Shop
layers: [ui, api, hybrid, recorded]
browsers: [chromium, firefox, webkit]
testIdAttribute: data-test
routes:
  { login: /, inventory: /inventory.html, cart: /cart.html, checkout: /checkout-step-one.html }
tags:
  suites: [smoke, regression, sanity]
  extra: [mock, visual, a11y, perf, data-driven, pool, hybrid-demo]
  roles: [standard, problem, performance, locked]
envs: { default: staging, available: [local, staging] }
data:
  sources:
    users: { type: csv, path: 'data/{env}/users.csv', fallback: data/common/users.csv }
    products: { type: json, path: data/common/products.json }
  factories: ./data/factories.ts
  userPool: { dataset: users, roleColumn: role, leaseStore: file, leaseTtlMs: 600000 }
auth:
  strategy: form
  form:
    {
      loginPath: /,
      usernameSelector: '#user-name',
      passwordSelector: '#password',
      submitSelector: '#login-button',
      readyUrl: /inventory.html,
    }
screenshots:
  policy:
    {
      default: on-failure,
      '@smoke': scenario,
      '@regression': step,
      '@sanity': scenario,
      '@visual': visual,
    }
  mask: ['[data-test="shopping-cart-badge"]']
heal: { enabled: true, primaryTimeoutMs: 3000, probeTimeoutMs: 1500, minScore: 0.6 }
retries: { ci: 2, local: 0, byTag: { '@flaky': 2 } }
perf: { budgets: { pageLoadMs: 4000, lcpMs: 3000, apiP95Ms: 1500 } }

automax.workspace.yaml

The root file names the organization and workspace every project in the repository belongs to and holds defaults.

Prop

Type

organization: { slug: automax, name: AutoMax, url: https://github.com/siri1410/AutoMax }
workspace: { slug: default, name: Default workspace, organization: automax }
defaults:
  browsers: [chromium, firefox, webkit]
  suites: [smoke, regression, sanity]
  testIdAttribute: data-testid
  processes:
    - {
        name: pr-check,
        trigger: pr,
        tags: '@smoke',
        browsers: [chromium],
        harMode: replay,
        gates: { minPassRate: 100 },
      }
    - {
        name: nightly-regression,
        trigger: nightly,
        tags: '@regression',
        browsers: [chromium, firefox, webkit],
        notify: [github],
        schedule: '0 2 * * *',
      }
    - {
        name: release-gate,
        trigger: release,
        tags: '@smoke or @regression',
        failOnFlaky: true,
        gates: { minPassRate: 100, maxFlaky: 0, perfBudgets: true, a11y: true },
      }

On this page