Warm a pan over a medium heat for 1 min. Add ½ tbsp oil and the beef. Fry for 5 mins, stirring now and then, till the beef is browned all over and any lumps have been broken up.
While the beef fries, peel and finely chop the onion. Add the onion to the pan with a pinch of salt and pepper. Cook, stirring occasionally, for 3 mins till the onion looks glossy.
While the onion cooks, peel and grate or crush the garlic. Finely slice the dried chipotle – discard the seeds for a less spicy chilli. Finely slice the coriander stems (keep the leaves for later). Finely grate the zest from the lime.
Stir the garlic, chipotle, coriander stems and lime zest into the pan. Stir in 1 tsp of ground cumin and all the cocoa powder.
Drain the beans and add to the pan. Pour in 400ml boiling water. Cover, bring to the boil, then reduce the heat so the chilli simmers. Cook for 20 mins, stirring now and then, till the chilli starts to thicken.
While the chilli cooks, tip the rice into a sieve and give it a good rinse. Tip the rice into a small pan. Add 400ml boiling water and a pinch of salt. Cover. Bring to the boil, then turn the heat down and gently simmer for 8 mins till all the water has been absorbed.
While the rice cooks, finely shred the cavolo nero. Stir it into the the chilli. Simmer for 5 mins to just soften it.
Take the rice off the heat and set aside, lid on, for a few mins to finish cooking.
Add the juice from half the lime to the chilli. Taste and add more salt or pepper if you think it needs it. Spoon the rice into warm bowls. Top with the chilli and garnish with the coriander leaves. Serve with the remaining lime, sliced into wedges, for squeezing.