Interface
Everything one module must know to use another: function names, what they take, what they return, what can go wrong, and any rule that isn't written down anywhere.
The interface is what an agent reads instead of the code behind it, so it is the part most worth getting right. Types make part of it checkable by machine. The unwritten part is where agents go wrong, because they can't read what nobody wrote.
Say it to your agent
“Before you write the module, write only its exported function signatures and one usage example, and show me those. I want to see what a caller has to know before any of it exists.”