"should have", "could have", "would have" are past-tense versions of "should", "could", "would".
So if a thing is expected (should), possible (could), or intended/consequential (would) in the present, then you should use the present forms (should, could, would):
- I could go to school right now, but I would rather go the cupcake store.
- I should feel sick after eating 1000 cupcakes, but I actually feel great.
If that expectation/possibility/intention happened in the past, you should use the past-tense versions (should have, could have, would have) to describe it:
- I could have gone to school last week, but I went to the cupcake store instead.
- I should have felt bad after eating 993 cupcakes, but instead I felt excited.
I hope that helps! I am a native english speaker (but I am not a linguist), so those with more technical knowledge may be able to explain this more precisely.