My 5 (almost 6) year old daughter has started doing things that she knows are wrong when friends are over. From what I can tell, it's not the friends who are instigating the bad behavior, it's my daughter. Unfortunately, I am not finding out about the mischief until well after the fact, so I feel like any punishment (loss of play dates or time outs) is too removed from the action to be any sort of real lesson. Any ideas?
The reason for delivering instant punishment is that very small children need immediate feedback on their actions. For toddlers it's important to have instant feedback because they simply can't grasp the connection to what happened hours ago -- but pre- or primary-schoolers certainly can.
In my untrained opinion (my son is still a toddler), instant feedback no longer applies to a six-year-old because at that age, she knows what she is allowed to do and she probably also knows the consequences of breaking the house rules.
Because I think she can still remember having done it when you discover her mischief a few hours later, I see nothing wrong with delivering the appropriate punishment immediately upon discovery. She should know (or will quickly learn!) that appropriate punishment comes when she's found out, even if it's a while later. (Define "a while" any way you like; hours or days.)
You might want to add a bonus punishment for knowingly disobeying when you're not around, to emphasize that your house rules always apply regardless whether parents are around or not.
Also, allow the natural consequences to be apparent. The next time you set up a playdate with that child and they are unavailable, your child will almost invariably ask "Why can't the come over?" My response would be somewhere along the lines of "Maybe her mother doesn't want her to come over here because she was picking up bad habits."
Your child is old enough now for delayed consequences, so if that is appropriate, I wouldn't be afraid to apply those, but it is also possible that some information is missing.
A real life consequence of her actions might be that her friends (or their parents) will stop wanting to play with her if her behavior is that disruptive. I would talk to her about it. "Honey, I'm concerned. I love you and want you to have friends and I also want you to be able to make safe, respectful and loving decisions". Talk to her about what you've heard and ask her what she thinks is going on. You can ask her why she is making those choices without implying that it isn't her fault. "I'm concerned about your choices and want to help you make ones that will help you keep your friends and still be respectful (or whatever adjective you want to fill in), can you tell me why you are doing these things?"
See what she says and then respond to that with a "brainstorming session" about how she can accomplish the positive things she is trying to accomplish without the negative. If she is looking to cause trouble and says so, I would simply say, "well we'll have to see how that works for you". Then if she does it again, the next time she wants to go to a friends house (or play and have friends over) tell her, "I'm sorry, but I don't trust you to make the right decisions with friends right now. You'll have to figure out how to show me you want to and can have fun with friends without creating mischief." Then give her some time to think about it and a few missed play dates. When she does get to play again, discuss with her that this is her opportunity to win back your trust.