# `semantic.ai_field_refused`

A field marked `to_models: false` reaches a prompt or an embedded text.

Area 21, [AI](../topics/ai.md); not declinable; the next step is usually the agent's.

A field marked `to_models: false` is kept out of every prompt and every
text sent for an embedding, whatever `allowed:` lists, for a value no
provider should ever hold. It is followed as a category is:







```jadpo
use clinic/types { ClinicalNote }

/// Checks a referral's notes against the patient it names.
type CheckReferral = Prompt {
    notes: ClinicalNote
    number: NhsNumber
}
```


```jadpo
use clinic/entities { Patient, PatientNotFound }
use clinic/types { HandoverSummary }
use clinic/failures { SummaryUnavailable }
use clinic/prompts { CheckReferral }

/// Checks a patient's notes against their NHS number.
action check_referral_notes(
    patient_id: Patient.id
) fails PatientNotFound, SummaryUnavailable -> HandoverSummary {
    var patient: Patient = attempt Patient.get(patient_id)
    return attempt ai.generate(
        CheckReferral {
            notes: patient.notes
            number: patient.patient_nhs_number
        },
        as: HandoverSummary
    ) {
        refused: SummaryUnavailable
        malformed: SummaryUnavailable
        timed_out: SummaryUnavailable
        over_budget: SummaryUnavailable
        too_long: SummaryUnavailable
    }
}
```

```text
error: `Patient.patient_nhs_number` reaches a model, and is `to_models: false`
 --> domains/clinic/actions/check_referral_notes.jadpo:14:21
   |
14 |             number: patient.patient_nhs_number
   |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^ holds `Patient.patient_nhs_number`
  reason: `to_models: false` keeps a field out of every prompt and every text sent for an embedding, whatever `ai: { personal_data: { allowed: } }` lists; `CheckReferral`'s `{number}` is built from `Patient.patient_nhs_number`.
  next: Leave `Patient.patient_nhs_number` out of `CheckReferral`'s `{number}` (agent)
  rule: semantic.ai_field_refused
  help: https://jadpo.dev/docs/errors/semantic.ai_field_refused

check failed: 1 error, 8 files
```
