It’s very tricky op. One of mine was very strong-willed and I wasn’t particularly good at reacting on the spot. It’s hard to think of creative solutions right there and then when confronted with defiance, usually when you are up against it time-wise too.
But I think you leveraging the McD’s trip in exchange for compliance was the issue here. The two things have nothing to do with one another, I think you could have pretended not to be bothered about the skirt and said something like, “sure wear it if you want but it’s designed for winter not summer so you may be very hot in it today and also it’s too big so you risk it falling down and showing your pants in public ha ha (try to inject humour). But you decide as we need to get in the car in four minutes! I will grab your summer dress in case you need it when you get there.”
Or words to the same effect? Just tackle each issue as it arises and show her that everything doesn’t have to be a battle. Give her more autonomy in the decision-making and let her suffer the natural
consequences of (a) being too hot (b) being embarrassed by it falling down (c) being in trouble with the teachers.
Ask every time what is the emotion behind the defiant words and behaviour? In this instance it’s a fair bet that once she arrived at school, she will want to be dressed exactly the same way as her peers. So try and dig down to why she is doing this. It’s probably because it’s a very effective way of getting your attention.
She sounds bright so she wants to challenge the rules, or she wants to get your full attention, or both. Try and engineer it so that you pick up on every positive thing she does however small, so she gets your attention in other, positive ways. And go out and enjoy that one-on-one time with her. She needs it more than ever! Otherwise your interactions will become a spiral of negativity. Good luck.
Edited to add that a good technique is to make yourself breathe four times before responding when she is really grinding your gears. Dont react in the moment. It’s not easy though. But don’t let her push you in to equally reactive responses. Slow everything down. Detach a bit. Pause and consider before responding. That takes the power out of her immediate demands.