Here's the rule everyone learns the hard way: every byte you put in a model call is potentially logged, replayed, or echoed back in an answer. If the model can read it, the model can say it. If the model can say it, an attacker can extract it.
A few real failure modes:
Atlas's rule: classify your data before you wire it. The model is a fast junior employee with a public Twitter account. Don't tell it anything you wouldn't tweet.
| Class | Examples | Model OK? | External log OK? |
|---|---|---|---|
| Public | Public catalog, marketing copy | Yes | Yes |
| Operational | Mass, count, deck, route | Yes | Risky |
| PII | Names, emails, IDs | No | No |
| Secrets | API keys, tokens, schematics | No | No |
PII and secrets belong in the vault. encrypted, audit-logged, never in the prompt. If you need to act on them, design tools that look up by reference (a token id, not the token itself) and execute on the trusted side.
On the right: six data pieces, three destinations. Wire each piece to every destination it's safe to send to. The vault is always safe. it's encrypted and stays on-ship. The model and external log are not always safe.
You pass when your edge set exactly matches the safe-routing set: no missing safe connections, no extra unsafe ones.