Every response carries an id. When the answer was wrong, say so:
POST /v1/feedback
{
"check_id": "chk_…",
"verdict": "false_positive",
"expected_action": "allow",
"note": "It is a surname."
}
verdict is false_positive, false_negative or correct. The answer is a 202 with a feedback id.
The text
Checks are not stored, so the id alone tells us which engine version, which route and which context, but not what the text was. Include text only if you want us to have it. It is the one field this product stores, it is kept with your account, and it leaves with the account. The dashboard’s feedback page lists every correction and whether it has been applied.
What happens to a correction
A person reads it. A wrong grade or a missing innocent word becomes a change to the lexicon or the innocent list; a threshold that is wrong for a whole class of text becomes part of the next calibration fit. Every such change ships as a new dated engine version with a changelog line. A version you have pinned does not change.