Use git pre-commit hooks to format automatically, AI doesn't really listen to it. I am personally a tab sortta guy.
whatever is appropriate for the language being generated, use a formatter after edit/write tool calls
whatever the repo's formatter says. asking the model never stuck
spaces
i always preferred tabs ( and each developer chooses how many spaces it mean in its own .vimrc ) but then i was forced to move to spaces when "opiniated" languages -- i am looking at you, F# FS1161 -- decided to mistreat the innocent tabs.