What must a team's policy on what may be sent to an AI coding tool actually decide?
answer
- Decide before the moment of use
- A per-paste judgement is not a policy
- Context is assembled, not only typed
- Name the default for the unlisted case
- Make reporting a breach cheap
basics
~20 sWhich repositories a tool may be attached to, what it may see once attached, what never goes anywhere, the default for the unlisted case and who answers it quickly. A rule phrased as per-paste judgement decides nothing.
solid answer
~50 sA usable policy makes its decisions in advance, because the moment of use is the worst moment to make them. "Send nothing confidential" hands the judgement to the person with the least time and the least information, and leaves nothing anyone can check afterwards. So decide once: which repositories a tool may be attached to at all; what it may see inside one, whether the whole working copy or a named part; what is out of scope wherever it sits — credentials, customer data, third-party source carried under an obligation the team did not write; and the default for anything unlisted, including who answers and how quickly. Remember that context is assembled, not only typed: whatever a tool can read around the work is in scope, so the enforceable unit is the attachment, not the keystroke. Finally, make reporting a breach cheap, or you will stop hearing about them.
code
text · 20 linesTHE RULE AS USUALLY WRITTEN
"Do not share confidential or proprietary code with AI tools."
-> decided at every paste, by the person with the least time and
the least information about what is in reach
-> leaves nothing anyone can check afterwards
-> silent about context the tool gathers that nobody typed
THE SAME RULE, DECIDED IN ADVANCE
1. Which repositories a tool may be attached to at all.
2. What it may see inside one once attached: the whole working
copy, or a named part of it.
3. What is out of scope wherever it sits, so a working copy
holding it cannot be attached at all: credentials and keys,
customer data, third-party source carried under an
obligation the team did not write.
4. The default for anything unlisted - who answers, and by when.
5. What a developer does after a breach, and who they tell.go deeper
Do not invent the rule at the keyboard. Find out which repositories your team has cleared and what the tool is allowed to see there, and ask before pointing it at anything else.
Explain why a rule phrased as "nothing sensitive" fails: it is decided at the worst moment, by the person with the least information, and it leaves nothing anyone can check afterwards.
Show that you would write the policy in terms of attachment and scope rather than intent, and that you would name the default for the case nobody listed, along with who answers it and how fast.
Own the trade between strictness and followability, the assumption the policy makes about the other side and who re-checks it, and the reporting path that keeps breaches visible rather than quiet.
## What the policy is actually for A context policy exists so that a decision about the team's own source, and about data the team holds on somebody else's behalf, is **made once by people who can see the whole picture** rather than many times a day by whoever happens to be at the keyboard. Every property a good policy has follows from that sentence, and every common failure is a version of deferring the decision back to the keyboard. ## Why "nothing confidential" is not a policy It reads like a rule and behaves like a shrug. Consider what it demands of the person applying it: at the moment of use, under time pressure, they must classify the material in front of them, know what else is within the tool's reach, and predict how it will be handled on the other side. Nobody does this accurately many times a day, and nothing about their decision is visible afterwards. | the rule, phrased as | who decides | when | can it be checked later? | |---|---|---|---| | "share nothing confidential" | the developer | at every use | no | | "these repositories, this much of them" | the team, with whoever owns the data | before the work starts | yes | The second form is not stricter than the first. It is **decidable**, which is a different property and the one that matters. A rule people can follow without judgement is followed the same way by everyone; a rule that requires judgement is followed differently by each person, and the variation is invisible. ## Typed context is not the whole of context A policy written about what a developer types misses most of the surface, because a tool working inside a project is given context nobody typed: the file being edited, files near it, whatever it has been pointed at. You do not need to know how any particular product assembles that context — products change without notice, and a policy pinned to one product's behaviour is stale the moment it ships something else. **You need the policy to ask the question.** For every tool the team uses: *what can this read without being asked, and who established that?* If nobody can answer, the policy is describing a channel it cannot see. That is why the enforceable unit is the attachment rather than the keystroke. Where the tool is pointed is a decision someone can take in advance, record, and check. ## The decisions it has to make 1. **Which repositories or products a tool may be attached to at all.** The coarsest decision and the one that does the most work. 2. **What it may see inside one.** The whole working copy, or a named part of it, with the answer written down rather than assumed. 3. **What is out of scope wherever it sits**, so that a working copy holding it is not attachable at all: credentials and keys, data the team holds on a customer's behalf, and third-party source carried under an obligation somebody else wrote. 4. **What the policy assumes about the other side, and who confirmed it.** Retention and reuse are somebody's assumption; name the owner so it can be re-checked when it changes, and leave the mechanics of that to the people whose subject it is. 5. **The default for anything unlisted, the person who answers, and how long they have.** Every policy meets a case it did not name. An escalation that takes days teaches people to decide for themselves and stop asking, so **the speed of the answer is part of the policy**, not an implementation detail. 6. **What a developer does after a breach.** Make reporting cheap. If the only outcome of reporting is punishment, the policy's real effect is that breaches become invisible, which is strictly worse than the breach itself. ## Strictness is not the same as safety The instinct under uncertainty is to write the strictest rule available, and it is usually the wrong instinct. A policy too expensive to follow is not obeyed, it is routed around — and the routes people find are the ones nobody can see. The practical test is not *how much does this forbid?* but **can someone new follow it on their first morning without asking anybody?** If not, it will be followed approximately, which means it will be followed differently by each person, which is the situation the policy existed to end. ## Who owns it Not one function. Security or legal may set the constraint, whoever owns the data decides what it is worth, and the developer executes it many times a day. A policy written without that last group describes a workflow nobody has. The useful convention is that **whoever bears the consequence decides, and whoever applies it gets a say in whether it is applicable** — and that the policy names both, so the next person can find out who to ask.
- A developer needs to send something the policy does not list. What should happen next?The policy should already say: a named person answers, within a stated time, and the answer is recorded so the same case is not decided twice. The failure mode is not a wrong answer but a slow one — an escalation measured in days teaches people to decide for themselves and stop asking.
- How do you keep the policy from going stale as tools change?Attach it to the question rather than to the product. "What can this tool read without being asked, and who established that?" stays answerable when products change, while a rule naming a particular setting is stale the moment that setting is renamed. Re-ask it whenever a tool is added or its access changes.
- The team already sends code to outside services for other purposes. Does that settle it?No, but it tells you where to look. That decision was made about a different channel, for a different purpose, on assumptions someone wrote down at the time. Find who made it and on what basis, then ask whether the basis holds here. Inherited precedent is an argument, not an approval.
saying these in an interview costs you the question
- "Share nothing confidential" is a workable policy
- Only what a developer types into the tool is in scope
- A supplier's assurance removes the need for a policy
- The strictest policy is the safest one, whatever it costs to follow
- Security writes it, so nobody else needs to understand it
- Breaches should be punished so that people stay careful