@pbjpbj I did this habit formation class on skillshare and it was brilliant. It does mention those above three points but delves much deeper. As part of the class, you also create a 'habit loop' which you fill in on a template.
Link for anyone interested...