In a large skillet over medium heat, cook the chorizo, breaking it up with a spoon or spatula, until it's fully browned and cooked through, about 7-10 minutes.
Add the chopped onion and minced garlic to the skillet with the cooked chorizo. Cook for another 3-5 minutes, until the onion is softened and translucent. Drain off any excess grease.
Remove from heat and let the chorizo mixture cool slightly.
Carefully slice each croissant horizontally, almost all the way through, leaving one side connected.
Spread a generous amount of the cooled chorizo mixture inside each croissant, then top with shredded cheese.
In a small bowl, whisk together the egg and water for the egg wash.
Gently brush the tops of the filled croissants with the egg wash.
Place on a baking sheet lined with parchment paper and bake in a preheated oven at 375°F (190°C) for 12-15 minutes, until golden brown and cheese is melted and bubbly.
Let cool slightly before serving, garnish with cilantro if desired.