Cook the rice in boiling water for 10–12 minutes, or according to the packet instructions, until tender. Drain.
Meanwhile, place the lamb and onion in a nonstick frying pan and fry until the lamb is lightly browned and cooked through and the onion softened. Place a sieve over a bowl and tip the meat and onions into it. The fat will drip through and can be discarded.
Cut each capsicum in half lengthways and remove the core and seeds. Cut the tops off the tomatoes and hollow them out. Chop the tops and hollowed-out flesh and place in a bowl. Cut the zucchinis in half lengthways and hollow out the centres to leave shells 5 mm thick. Chop the removed zucchini flesh and add it to the chopped tomatoes.
Preheat the oven to 180 degrees C. Heat the oil in a nonstick frying pan, add the garlic and chopped vegetables, and cook, stirring, until they soften. Add the spinach and cook over medium heat until wilted. Remove from the heat and add the basil, rice and lamb. Add the egg and pepper and mix well.
Spoon the stuffing into the vegetable shells. Arrange the capsicums and zucchinis in a single layer in 1 or 2 roasting pans. Cover with foil or a lid and roast for 15 minutes. Add the tomatoes and continue roasting for 15 minutes or until the vegetables are almost tender. Uncover the vegetables and roast for a further 15–20 minutes or until they are tender and the tops are lightly browned. Serve either warm or cool, sprinkled with the additional shredded fresh basil.