Treat interdependent habits as one unit.

Don’t track “sleep 8 hours” and “morning run” separately — track them as a single block: “slept 8 hours AND ran.”

The edge case is straightforward: what happens when you sleep 7 hours? If you still go for the run, you’ve kept the interdependent habit (you ran despite imperfect sleep). If you skip the run because you’re tired, you broke the chain — but logging “sleep: 7 hrs” and “run: no” feels like two independent failures, when really it’s one failed condition.

My trick