One of the TestingPatterns from KentBeck's TestDrivenDevelopment.
At the end of the day, leave the last thing you're working on unfinished. That way, when you start again in the morning (or a week or a month later), the broken bits will refresh your memory about what you were doing.
Kent restricts his endorsement of this pattern to those who are working solo - it's not appropriate for team development.
This also works well for getting back into the code after lunch.
Potentially at odds with CleanCheckIn, though you can do a CleanCheckIn and then write one more test (not checked in) as a reminder for the morning. If you end up doing something else the next day, discarding that test, then no harm is done.