Preheat your oven to 400°F (200°C). Carefully cut the medium spaghetti squash in half lengthwise and scoop out the seeds. Drizzle the inside with olive oil and sprinkle with a little salt and pepper. Place the squash halves cut-side down on a baking sheet and roast for about 35-40 minutes, or until the flesh is tender and easily shredded with a fork.
While the squash is roasting, heat olive oil in a large skillet over medium heat. Add diced onion and sauté until translucent, about 3-4 minutes. Stir in minced garlic and cook for another minute until fragrant. Add the ground turkey or beef and cook until browned and cooked through, breaking it up with a spoon as it cooks.
Once the meat is cooked, sprinkle in chili powder, cumin, paprika, salt, and pepper. Stir well to coat the meat and onion mixture evenly with the spices. Cook for another minute to toast the spices slightly, enhancing their flavor.
Mix in the rinsed black beans, corn kernels, and diced tomatoes. Stir to combine and let the mixture simmer for 5 minutes, allowing the flavors to meld and the tomatoes to release some juice. Adjust seasoning with additional salt or pepper as needed.
Remove the roasted spaghetti squash from the oven. Using a fork, gently scrape the flesh to create long, spaghetti-like strands, being careful not to tear the skin. Leave the strands inside the squash shells to serve as boats.
Spoon the taco filling generously into each spaghetti squash half. Sprinkle shredded cheese evenly over the top of each boat.
Return the stuffed squash boats to the oven for about 5-7 minutes, or until the cheese is melted and bubbly.
Remove from the oven and sprinkle chopped cilantro over the top. Serve with a dollop of sour cream or Greek yogurt if desired.