forArtifactTruth($reasonCode, 'artifact_truth'); expect($envelope)->not->toBeNull() ->and($envelope?->trustImpact)->toBe($expectedTrustImpact) ->and($envelope?->absencePattern)->toBe($expectedAbsencePattern) ->and(app(ReasonPresenter::class)->dominantCauseExplanation($envelope))->not->toBe(''); })->with([ 'suppressed compare result' => [ BaselineCompareReasonCode::CoverageUnproven->value, TrustworthinessLevel::LimitedConfidence->value, 'suppressed_output', ], 'missing baseline input' => [ BaselineReasonCodes::SNAPSHOT_CAPTURE_FAILED, TrustworthinessLevel::LimitedConfidence->value, 'unavailable', ], 'fallback review blocker' => [ 'review_missing_sections', TrustworthinessLevel::Unusable->value, 'missing_input', ], ]);