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 },
}