src/features/redact/analysis-contract.ts (redactionLabelSchema) and qvac-service/candidate-validation.ts.
Privacy levels
Additional direction
Free text, up to 500 characters, whitespace collapsed. Sent to the reasoning model as policy data. It can’t change the labels or the output schema.Labels
A candidate is kept only if its OCR text passes the label’s evidence rule. When the rule matches a different label than the model proposed, the rule’s label wins. The explanation shown in the app is fixed per label.
Rules are checked top to bottom; the first match wins.
Text containing “controlled test document” or “no real personal information” is never suggested.