My current approach for working with LLMs.

1. Assume they are gaslighting you AT ALL TIMES.
2. Use them to quickly generate a LOT of prototypes.
3. Live in and experience the prototypes.
4. Synthesise all the knowledge gained from the prototypes.
5. Throw ALL the prototypes away.
6. Design your architecture.
7. Either code the final solution yourself or if using an LLM go SUPER SLOW and verify at every possible point with at least tests and live telemetry.
8. Never let the LLM commit to git.

@samaaron Great approach! Too many companies/managers derail at step 5. "But it already works! Let's ship/use it!". And not just since AI.
That's one of the biggest strengths and weaknesses of software at the same time. In the real/material world so many bad/silly implementations would simply be impossible or too expensive to even start with.