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 why no committing?

@coldclimate Otherwise it's very easy to accidentally yet continuously grow a gap between your perception of the architecture and the actual codebase.

By becoming the git gatekeeper you ensure you know what actually makes it into each commit - and your knowledge of the architecture is more likely to stay in sync with reality.