Saying Not- the difference between 没 (Méi) and 不 (Bù)

In English, the word not delivers the opposite meaning to other words, usually to verbs. So He is here becomes He is not here, and I do like it becomes I do not like it. But in Mandarin, there appear to be two words that are used in much the same way.
不 (Bù) and 没 (Méi) and both used to indicate “not”. And unlike in English, they go before the verb.
Even though I’ve been learning Mandarin for the best part of a decade now, my teachers are still often correcting me when I’ve used the wrong one of these. So which should be used when?
Some rules
The simplest first rule is that if you’re using the verb 有 (Yǒu), it’s always 没有 (Méiyǒu). A really simple question in Mandarin is about whether or not you have something: 有没有? (Yǒu méiyǒu?) is literally “have not have” but is used for “Do you have (it)?”.
If you have things that sound like habitual actions, these invariably are reversed with 不 (Bù). For example: 我不喝啤酒 (Wǒ bù hē píjiǔ) is “I don’t drink beer”.
Most adjectives (particularly descriptive ones) are also reversed by using 不 (Bù). For example: 她不高 (Tā bù gāo) is “She is not tall”.
There is also a sense of tense with these two words:
我不吃 (Wǒ bù chī) is “I don’t eat” or more likely “I will not eat”.
我没吃 (Wǒ méi chī) is more like “I didn’t eat”. (Note the past tense).
And not quite the opposite
It’s interesting that when you combine 不 (Bù) with 错 (Cuò), you produce something that’s much more positive than in English. Google translates 它很不错 (Tā hěn bùcuò) as “It is very good”. In English “not bad” isn’t so positive.
2019-11-20