Gather your ingredients.
In a large pot over high heat, add at least 2 quarts of water and 1 tablespoon of kosher salt (or 1 1/2 teaspoons of sea or table salt), and bring to a boil. The salt will ensure your pasta is well flavored.
Meanwhile, In a medium pan over medium heat, add 1 1/2 teaspoons oil, When hot, add the ground beef (or extra-firm tofu crumbles). Sprinkle with the turmeric and mash the meat into crumbles and stir occasionally for about 7 to 9 minutes or until completely browned. Remove the meat with a slotted spoon and discard any remaining fat.
Using the same pan, heat the remaining 1 1/2 teaspoons of oil over medium-high heat and add onion and 1 teaspoon of salt. Cook until the onions are golden, about 8 minutes. Reduce heat if necessary to keep the onions from sticking, and/or add a tablespoon of water.
Add the ginger garlic paste to the onions and stir for 1 to 2 minutes until it no longer smells raw. Next, add the chili powder, cloves, cinnamon, and coriander. Stir, cooking the spices for another minute, then add the tomato sauce or minced tomatoes. Cover and simmer for 6 minutes if using the puree or sauce. If using fresh tomatoes, add another 5 minutes to the cooking time, or until the tomatoes are completely cooked.
When the water is boiling add your pasta, give it a good stir. Cook until al dente (while it still has some firmness) or to your preference.
Return the meat or tofu (or add cooked lentils) to the pan with the onions and tomato mixture. Cook for 7 more minutes stirring several times, continuing to break down the meat.
When the pasta is finished cooking, reserve a 1/2 cup of pasta water and add the pasta to the sauce. Cook together over medium heat, adding pasta water as needed so the sauce coats the pasta well. Simmer together for a few minutes so that the pasta is flavored with the sauce, adding cooking water as needed if the sauce is too dry. I also sometimes like to add about 1/4 cup of parmesan cheese for more flavor and richness. See Notes below about adding some additional dairy or coconut milk.
Taste for salt and chili pepper, adjusting the seasonings as needed. Garnish as you wish with parmesan cheese or cilantro and serve with flatbread.