Telling the AI agent to generate the formal proof contract based on the code is basically the same as telling the AI agent to review the code. They shake hands with each other, but who would validate that the Lean contract is correct?
With time any product grows with edge cases, some if spaghetti, and so on, and the code never tells you why. It tells you only what, and the why thing usually lives in Jira, in the commit history, etc. In order to answer it, you need to do the proper data archaeology behind it. We, as humans, usually do it this way.
This approach of generating the Lean, for sure, will be able to show a lot of bugs, but a lot of them will also be noise because of the contract misunderstanding. Who is going to filter through this noise? Again, probably some agent, and we have this weird loop: who is responsible for defining how the application actually is supposed to behave? It definitely should be the human.
What is the source of truth here? Is it the code, or is it the Lean contract? Is it a one-time job, or is it going to support both implementation and the contract in parallel while you are writing it?
The right way to way to introduce formal verification is to look into the root cause first: the code itself stopped being the source of truth. It's a temporary artifact, same as a tests. The source of truth should be some requirement management system managed by the humans who define what the software is, how it should behave, etc. The rest, the code, the tests, and the contracts are attached as evidence which proves these requirements.
Basically, what I described is exactly how software engineering is done in regulated industries.