| cron | No | Cron expression when triggers include 'schedule' (default: '0 6 * * 1' — Mondays 06:00 UTC). | |
| gate | No | Which gate to emit. eval_contract = LLM eval via the action (default). cli_checks = deterministic CLI assertions. selector_drift = an E2E selector-drift gate via @ia-qa/self-healing (boots the app, captures, diffs against the committed baseline, branches on exit code 0/1/2). both = CLI checks + eval. all = CLI checks, then drift, then eval. | |
| provider | No | LLM provider the contract runs against — decides which repository secret the workflow wires (default: groq). | |
| triggers | No | Workflow triggers (default: push + pull_request). | |
| cli_tools | No | IA-QA tool names to run as deterministic gates, e.g. ["secret_scan","prompt_injection_scan"]. Tools with no known CI recipe get a --stdin step flagged in notes. | |
| min_score | No | Override the contract min_score (0-100). Omit to use the value in the contract. | |
| app_base_url | No | URL the drift gate waits for before capturing (default: http://127.0.0.1:3000). Must match config.baseUrl in .ia-qa/config.json. | |
| fail_on_fail | No | Fail the build on a FAIL/PARTIAL verdict (default: true). Set false to report without gating. | |
| node_version | No | Node version for the CLI steps (default: "20"). | |
| contract_path | No | Path to the .ia-eval.yaml contract, relative to the repo root (default: evals/smoke.ia-eval.yaml). Only used when the gate includes eval_contract. | |
| workflow_name | No | Workflow display name (default: "IA-QA Quality Gate"). | |
| app_start_command | No | Command that boots the app for the selector_drift gate, e.g. "npm run start:ci". Cannot be guessed — omitted, the step carries an explicit TODO and the note says so, because a plausible default would silently map nothing. | |