Proving the Ricci identity I'm trying to prove the Ricci identity

Let $Z^a$ be a vector field, $R^a_{\,bcd}$ the Riemann curvature tensor and $\nabla$ a torsion-free connection. Then: $\nabla_c\nabla_dZ^a-\nabla_d\nabla_cZ^a=R^a_{\,bcd}Z^b$.

In particular, I want to start from the RHS. To do so, I've multiplied it by two arbitrary vector fields $X^c$ and $Y^d$, and used the definition of the Riemann tensor:
$$\begin{align}R^a_{\,bcd}Z^bX^cY^d&=\left(R(X,Y)Z\right)^a\\
&=\left(\nabla_X\nabla_YZ-\nabla_Y\nabla_XZ-\nabla_{[X,Y]}Z\right)^a\\
&=\left(\nabla_X\nabla_YZ-\nabla_Y\nabla_XZ-\partial_{[X,Y]}Z\right)^a
\end{align}$$
where in the last line I use the fact that the connection is torsion-free to move from covariant to partial derivative. Obviously, the next step is showing that the partial derivative of $Z$ with respect to $[X,Y]$ vanishes.
If they were basis vectors, I know that $[e_\mu,e_\nu]=0$, but what about the case of general vector fields?

EDIT: second attempt

$$\begin{align}R^a_{\,bcd}Z^bX^cY^d&=\left(R(X,Y)Z\right)^a\\
&=\left(\nabla_X\nabla_YZ-\nabla_Y\nabla_XZ-\nabla_{[X,Y]}Z\right)^a\\
&=\left(X^c\nabla_c\left(Y^d\nabla_dZ\right)-Y^d\nabla_d\left(X^c\nabla_cZ\right)-\nabla_{X^c\nabla_cY}Z+\nabla_{Y^d\nabla_dX}Z\right)^a\\
&=\left(\left(X^c\nabla_cY\right)^d\nabla_dZ+X^cY^d\nabla_c\nabla_dZ-\left(Y^d\nabla_dX\right)^c\nabla_cZ-Y^dX^c\nabla_d\nabla_cZ\right.\\
&\left.\qquad-\left(X^c\nabla_cY\right)^d\nabla_dZ+\left(Y^d\nabla_dX\right)^c\nabla_cZ\right)^a\\
&=\left(X^cY^d\nabla_c\nabla_dZ-Y^dX^c\nabla_d\nabla_cZ\right)^a\\
&=X^cY^d\left(\nabla_c\nabla_d-\nabla_d\nabla_c\right)Z^a
\end{align}$$

 A: The start of the computation is OK, but the partial derivative does not make sense. I think the problems come from the fact that you misinterpret $\nabla_c\nabla_dZ^a$. Evaluating the second covariant derivative $\nabla^2Z$ on $X$ and $Y$, you do not get $\nabla_X\nabla_Y Z$. What you have to do is to differentiate $\nabla Z$ as a $\binom11$-tensor field. This implies that $(\nabla^2Z)(X,Y)=\nabla_X\nabla_YZ-\nabla_{\nabla_XY}Z$. Once you have this, torsion-freeness (in the standard form $\nabla_XY-\nabla_YX=[X,Y]$) easily implies the result. 
A: This seems like mainly a question about what the abstract index notation is asking you to do. Let's look at a single term from the right hand: $\nabla_X\nabla_YZ$. Recall that in abstract index notation, two tensors juxtaposed signifies their tensor product. For example, if $V^a$ and $W^b$ are vector fields, $V^aW^b$ is supposed to mean the tensor field $V \otimes W$. Pairing of an upper and lower index signifies a trace: if $\varphi_a$ is a 1-form and $V^b$ is a vector field, $\varphi_aV^a =\operatorname{tr}(\varphi\otimes V) = \varphi(V)$. So the way we're supposed to think of this is first taking their tensor product and then tracing. Lastly, notice that $\nabla_VW = \operatorname{tr}(\nabla V \otimes W)$ when considered as a section of $T^* \otimes T \otimes T$, where we trace over the first and last slots. 
Returning to the first term above, we then have:
\begin{align} 
\nabla_X\nabla_YZ & = X^c\nabla_cY^d\nabla_dZ^b \\
& = \nabla_X(\operatorname{tr}(Y \otimes \nabla_-Z)) \\
& = \operatorname{tr}(\nabla_XY \otimes \nabla_-Z + Y \otimes \nabla_X\nabla_-Z)) \\
& = Y^dX^c \nabla_c\nabla_dZ^b + (X^c\nabla_cY)^d\nabla_dZ^b \\
& = \nabla^2_{X,Y}Z + \nabla_{\nabla_XY}Z.
\end{align}
And from here the rest shouldn't be bad. 
