Cook the pasta: Bring a large pot of salted water to a boil. Cook pasta until just al dente.
Reserve 1 cup of pasta water, then drain.
Shred the chicken: While pasta cooks, remove skin and bones from the rotisserie chicken. Shred into bite-size pieces and set aside.
Sauté aromatics: In a large skillet, heat 2 tablespoons oil over medium heat. Add onion (if using) and cook 2–3 minutes until soft.
Add garlic and red pepper flakes; cook 30 seconds until fragrant.
Build the base: Stir in sun-dried tomatoes and Italian seasoning. Cook 1 minute, letting the tomatoes warm and release flavor.
Add liquids: Pour in chicken broth and bring to a gentle simmer. Reduce heat to medium-low and stir in half-and-half.
Let it bubble softly for 2–3 minutes to thicken slightly.
Melt in cheese: Add Parmesan, stirring until smooth. If the sauce seems thick, splash in some reserved pasta water.
Boost the protein (optional): If using Greek yogurt, whisk it in a small bowl with a ladle of warm sauce, then stir back into the skillet. Keep the heat low to prevent curdling.
Add chicken and greens: Fold in shredded chicken and spinach.
Stir until the spinach wilts and the chicken warms through, 1–2 minutes.
Toss with pasta: Add drained pasta to the skillet and toss until everything is coated. Use reserved pasta water, a little at a time, to loosen the sauce as needed.
Finish: Grate in lemon zest and add a small squeeze of lemon juice. Season with salt and black pepper to taste.
Serve hot with extra Parmesan.