Place a tiny amount of oil into a medium sized pan onto the stove and heat. Once hot, place the diced onion, crushed garlic, chilli pepper and spices (not the cocoa powder) into the pan and leave to sweat over a medium heat for roughly 10 minutes, stirring occasionally.
Remove the onion and garlic from the pan, place another tiny amount of oil in the pan and put back on the heat. Once hot, place the minced beef into the pan and cook for 10-15 minutes, stirring to break down the mince.
Once the juices have rendered out of the meat, drain and place back in the pan with the onion mixture.
Place the tomato puree into the pan with the meat mixture and leave to cook for about 5 minutes.
Add the tinned tomatoes, kidney beans, bouillon and cocoa powder and leave to cook under a low heat for 2 hours. Season to taste.
For the guacamole, peel the avocado. Remove the stone from the centre and cut out and discard any brown or black areas. Place in a bowl and crush with a fork.
Dice the deseeded and skinned tomato and mix with the avocado. Add in the shallot, lime juice and chilli pepper. Mix and season with salt and pepper.
Fill taco shells with the chilli and place the guacamole and sour cream on top. Finish with freshly chopped coriander.