You tell your agent something does not go that way. This is, step by step and with no jargon, what Twin does so that “no” ends up as a line every agent reads before touching your code. Scroll to see it.
The agent proposes moving the tests to a separate folder and you answer: “No: tests go next to the code they test.” It is a verdict inside a conversation, like the hundreds you have already given.
Nobody keeps it as a rule. Tomorrow, in another session or with another agent, you will have to say it again.
The agent writes down everything that happens — what you say and what it does — in a file. That file belongs to the agent and sits on your disk: Claude Code keeps its own in one folder, Codex in another.
Twin works with what is already there: years of “yes” and “no” you already gave. It does not hand you a questionnaire.
panoma measures how much each history weighs — how many conversations, how many gigabytes — without opening a single file. With that figure in front of you, you tick which history Twin may read. The permission is one at a time: letting it read Claude Code is not letting it read Codex.
It is step 01 of the Twin screen, and it is also switched on from the Bridge, when you switch on the memory of your sessions: it is the same permission.
You press “Look for new quotes on the disk”. Twin walks the allowed conversations and keeps the quotes: the moments an agent handed you something and you said yes, no, or not like that. It is free: it calls no model.
Your “no” about the tests is one of those quotes, with the date and the project where you said it.
You press “Distil”. Twin sends the quotes to the AI you connected and asks for observations: what repeats, with the exact quote that supports it. This does call your model, and before you press it tells you how many quotes it would read.
Out of your “no” comes an observation: “rejects separating tests from code, twice in two projects”.
You press “Rebuild the portrait”. The AI gathers the observations of one topic and writes beliefs: sentences about how you want your work to turn out, written so they can be broken. “Tests live next to the code they test” is one.
It is not valid yet. The machine wrote it, and in Twin nothing counts until you sign it.
Every belief has three buttons: “It’s well put”, “Say it in my words” and “That’s not what I think”. And “Save”. Only what is signed carries weight; what is vetoed is noted so it is never proposed again.
With no history, or if you would rather not spend calls, you can also write a rule yourself and sign it: it is free and enters through the same door.
What is signed is written to TASTE.md, a text file on your computer: about twenty sentences at most, 3,000 characters. You can open and edit it; a line you delete is a veto, a line you rewrite carries your signature.
Twin checks that it fits and was written, and tells you so in step 03.
One command in each project’s folder, panoma md init, opens the channel: a block in its AGENTS.md with your portrait, which panoma keeps up to date. Without that block, your agents read none of this.
Step 04 tells you in how many projects it is open: “read by 2 of 34”.
When it opens the project, every agent reads that block. Tomorrow, when another agent wants to move the tests, it finds your line before proposing it.
It is the same sentence you said once, made a rule, in every project where you opened the channel.
With “Automatic Twin” on for a history, Twin waits for half an hour of silence in your conversation, reads what is new and distils it in batches, with nothing to press. It calls your model in the background, inside the daily cap.
What it infers reaches the file only if you said, once, that inferences may go down, and you can always veto them.
In the Lab you pose a decision and Twin rehearses it against your portrait, citing your beliefs. You show the critic a screen and it tells you which rule of yours it breaks.
None of that changes the portrait. The only thing that changes the portrait is your signature.