should have done
You should have done something = you didn't do it, but it would have been the right thing to do:
- You missed a great party last night. You should have come. Why didn't you? (= you didn't come, but it would have been good to come)
You shouldn't have done something = you did it, it was the wrong thing to do:
- I'm feeling sick. I shouldn't have eaten so much. (= I ate too much)