People paste too much because they are afraid of leaving out the one fact that would have made the answer right. The result is a chat that starts with a tour of the repository and ends with a confident patch against a file the model half-read. Context is not the same thing as bulk. The picture on this article is the distinction: four cards go to the terminal, and the pile of everything else is crossed out on purpose.
The four cards
Error: the exact message, the input that produced it, and what you expected instead. A paraphrase of the error is a different bug. File: the one file you believe is involved, or the diff you are about to accept, not the tree. Constraint: what must not change. “Do not add a dependency. Do not alter the public function’s arguments. Keep the empty input as a failure.” Example: one concrete case, in input and output, small enough to check by hand.
If you cannot fill a card, that is information. No error means you are designing, not debugging, and you should say so. No constraint means the model will choose the shape of the module. No example means you will not be able to tell a plausible answer from a correct one.
What to leave in the pile
Leave out the history of how you got here, unless one earlier decision changes the fix. Leave out unrelated files, lockfiles, and the README. Leave out a second problem you noticed while copying. A chat that is asked to fix the null and also rename the helpers will do both badly, and you will not know which half to trust.
Secrets do not belong in the packet either. Tokens, customer rows, private keys, and production URLs are not context. Replace them with the shape of the value, not the value. If the bug only reproduces with the real secret, the bug is not ready to paste into a chat.
Add a fifth card only after the first answer misses
When the answer is wrong, do not dump the repository as a correction. Name the miss in one sentence and add the single missing fact. “The function is called with an empty list, and an empty list must return an error, not an empty success.” That is a new card. It is smaller than the transcript, and it is the thing you will want in the next session.
Keep the packet next to the diff until you merge. If a hunk depends on a fact that was never on a card, either add the fact and re-check, or delete the hunk. The model did not see a file you forgot to open. It guessed. Guessed lines do not get a quieter review because the rest of the packet was careful.
