# promptfoo-assertions Require specific assertion types in all promptfoo eval tests | | | |---|---| | **Severity** | warning (disabled) | | **Autofix** | - | | **Since** | v0.1.0 | | **Repo Types** | promptfoo | | **Category** | [Promptfoo Evals](promptfoo.md) | ## Why Eval tests without assertions pass unconditionally — they verify that the skill runs without crashing but say nothing about whether the output is correct. This opt-in rule enforces that every test case includes specific assertion types you configure. ## Examples **Bad:** ```yaml tests: - vars: input: "deploy to staging" ``` **Good:** ```yaml tests: - vars: input: "deploy to staging" assert: - type: contains value: "staging" - type: cost threshold: 0.05 ``` ## How to fix Add assertion objects to each test case. Configure which assertion types are required: ```yaml rules: promptfoo-assertions: enabled: true required-types: - contains - cost ``` ## Configuration ```yaml rules: promptfoo-assertions: enabled: false # true | false | auto severity: warning ``` | Parameter | Description | Default | |-----------|-------------|---------| | `required-types` | Assertion types that every test must include (via test-level or defaultTest assertions) | `[]` | | `threshold-constraints` | Per-assertion-type threshold bounds, e.g. {cost: {max: 2.0}, latency: {max: 30000}} | `{}` | *Run `skillsaw explain promptfoo-assertions` to see this documentation and the rule's effective configuration in your terminal.*