Regarding the second and third rules, I like to work with two terminals. One is for my agent, isolated in a container, and the other one I use for `git`. This way, I can assess whether my changes are moving in the right direction.
The PLAN.md files have also proven to be a good approach. I'm still trying to figure out the best way to keep them aligned with the application without polluting the context, but they hold significant value for documentation purposes.