Mix together the ingredients for the marinade in a bowl and toss in the chicken. Cover with clingfilm and marinate in the refrigerator for 2 hours.
Heat the oil in the base of a tagine or a large, heavy-based saucepan over a medium heat, stir in the onion, preserved lemon rind and sugar and cook for 2–3 minutes to let the flavours mingle. Stir in the chicken and cook for a further 1–2 minutes.
Add the harissa and tomato pastes and pour in the stock or water. Bring to the boil, then reduce the heat, cover and cook gently for 30 minutes. Add the artichoke hearts, re-cover and cook for a further 10 minutes.
Stir in the grapes and some of the coriander and cook, uncovered, for 4–5 minutes, then season with salt and pepper. Garnish with the remaining coriander and serve with couscous, if liked.