Warm the olive oil in a large deep skillet or wide pot over medium heat.
Add the lean ground beef to the skillet and cook, breaking it up with a spoon, for about 4 to 5 minutes until it is mostly browned.
Stir in the chopped yellow onion and cook for another 3 to 4 minutes, until the onion softens and turns translucent.
Add the minced garlic, dried oregano, dried basil, dried thyme, salt, black pepper, and red pepper flakes if using. Cook for 30 to 60 seconds, stirring, until the garlic is fragrant.
Stir in the tomato paste and cook for 1 minute, letting it coat the beef and onions and deepen in color slightly.
Pour in the diced tomatoes with their juices and the low sodium beef broth, stirring to combine and scraping up any browned bits from the bottom of the skillet.
Add the dry whole wheat pasta to the skillet, pressing it down gently so that most of the pasta is submerged in the liquid.
Bring the mixture to a gentle boil over medium-high heat, then reduce the heat to medium-low to maintain a steady simmer.
Cover the skillet with a lid and cook for about 10 to 12 minutes, stirring every few minutes, until the pasta is al dente and most of the liquid has been absorbed.
Remove the lid and stir in the fresh baby spinach, letting it wilt into the hot pasta and beef mixture for 1 to 2 minutes.
Sprinkle the shredded mozzarella cheese and grated Parmesan cheese evenly over the top of the pasta.
Cover the skillet again and cook for 1 to 2 minutes, just until the cheeses melt into the pasta.
Turn off the heat, uncover, and gently stir to combine the melted cheeses with the pasta and beef.
Taste and adjust the seasoning with a little more salt or black pepper if needed.
Sprinkle the chopped fresh parsley over the pasta if using, then serve the one pan healthy ground beef pasta hot.