Prep and roast the squash: Preheat your oven to 400°F (200°C). Halve the spaghetti squash lengthwise and scoop out the seeds.
Rub the cut sides with 1 tablespoon olive oil and a pinch of salt and pepper. Place cut-side down on a lined baking sheet. Roast for 35–45 minutes, until the flesh is tender and strands pull away easily with a fork.
Cook the chicken: While the squash roasts, heat the remaining 1 tablespoon olive oil in a large skillet over medium-high heat.
Add the chicken, season with 1/2 teaspoon salt and 1/4 teaspoon pepper, and cook for 5–7 minutes, stirring occasionally, until golden and cooked through. Transfer to a plate and cover to keep warm.
Start the sauce base: Lower heat to medium. In the same skillet, add butter.
When melted, add garlic and cook for 30–60 seconds until fragrant. Sprinkle in the flour and whisk for 30 seconds to form a paste.
Add liquids: Slowly whisk in chicken broth, then milk. Bring to a gentle simmer, whisking to smooth out any lumps.
Cook 2–3 minutes until slightly thickened.
Finish the Alfredo: Reduce heat to low. Whisk in Greek yogurt until smooth. Stir in Parmesan, nutmeg, and red pepper flakes if using.
Taste and season with additional salt and pepper as needed. The sauce should be creamy and pourable, not gloppy.
Add the greens: If using spinach, stir it into the warm sauce until wilted, 1–2 minutes. Return the cooked chicken to the skillet and toss to coat.
Shred the squash: When the squash is cool enough to handle, use a fork to scrape out the strands into a large bowl.
Sprinkle with a little salt and pepper. For a fun presentation, you can keep the shells to use as serving bowls.
Combine and serve: Pour the chicken Alfredo over the squash strands and toss gently. Or divide the squash between the two shells and top with the sauce.
Finish with extra Parmesan, chopped herbs, and a squeeze of lemon if you like.