[proofplan]
We show that $d_{n-1}^{\mathrm{cell}} \circ d_n^{\mathrm{cell}} = 0$ by expressing the cellular boundary map as a composition of connecting homomorphisms and quotient maps from the long exact sequences of skeleton pairs, and observing that consecutive maps in a long exact sequence compose to zero.
[/proofplan]
[step:Express $d_n^{\mathrm{cell}}$ as a composition of connecting and quotient maps]
Recall the definition of the cellular boundary map. For each $n$, the long exact sequence of the pair $(X^n, X^{n-1})$ provides a connecting homomorphism and a quotient map:
\begin{align*}
\partial_n &: H_n(X^n, X^{n-1}) \to H_{n-1}(X^{n-1}), \\
q_{n-1} &: H_{n-1}(X^{n-1}) \to H_{n-1}(X^{n-1}, X^{n-2}).
\end{align*}
The cellular boundary map is defined as the composition $d_n^{\mathrm{cell}} = q_{n-1} \circ \partial_n$.
[guided]
The cellular chain complex is built from the relative homology groups $C_n^{\mathrm{cell}}(X) = H_n(X^n, X^{n-1})$, which are free abelian groups with one generator per $n$-cell. To define the differential, we need a map $d_n^{\mathrm{cell}}: H_n(X^n, X^{n-1}) \to H_{n-1}(X^{n-1}, X^{n-2})$.
The long exact sequence of the pair $(X^n, X^{n-1})$ includes a connecting homomorphism:
\begin{align*}
\partial_n : H_n(X^n, X^{n-1}) \to H_{n-1}(X^{n-1}).
\end{align*}
This lands in $H_{n-1}(X^{n-1})$, not yet in the relative group $H_{n-1}(X^{n-1}, X^{n-2})$ that we need. To reach the target, we compose with the quotient map from the long exact sequence of the pair $(X^{n-1}, X^{n-2})$:
\begin{align*}
q_{n-1} : H_{n-1}(X^{n-1}) \to H_{n-1}(X^{n-1}, X^{n-2}).
\end{align*}
Thus $d_n^{\mathrm{cell}} = q_{n-1} \circ \partial_n$.
[/guided]
[/step]
[step:Show $d_{n-1}^{\mathrm{cell}} \circ d_n^{\mathrm{cell}} = 0$ by identifying consecutive maps in the long exact sequence]
We compute the composition:
\begin{align*}
d_{n-1}^{\mathrm{cell}} \circ d_n^{\mathrm{cell}} = (q_{n-2} \circ \partial_{n-1}) \circ (q_{n-1} \circ \partial_n) = q_{n-2} \circ (\partial_{n-1} \circ q_{n-1}) \circ \partial_n.
\end{align*}
The middle factor $\partial_{n-1} \circ q_{n-1}$ is the composition of consecutive maps in the long exact sequence of the pair $(X^{n-1}, X^{n-2})$. Specifically, these are the maps
\begin{align*}
H_{n-1}(X^{n-1}) \xrightarrow{q_{n-1}} H_{n-1}(X^{n-1}, X^{n-2}) \xrightarrow{\partial_{n-1}} H_{n-2}(X^{n-2}),
\end{align*}
which appear as consecutive arrows in the long exact sequence
\begin{align*}
\cdots \to H_{n-1}(X^{n-2}) \to H_{n-1}(X^{n-1}) \xrightarrow{q_{n-1}} H_{n-1}(X^{n-1}, X^{n-2}) \xrightarrow{\partial_{n-1}} H_{n-2}(X^{n-2}) \to \cdots
\end{align*}
By exactness at $H_{n-1}(X^{n-1}, X^{n-2})$, we have $\operatorname{im}(q_{n-1}) \subseteq \ker(\partial_{n-1})$, so $\partial_{n-1} \circ q_{n-1} = 0$. Therefore
\begin{align*}
d_{n-1}^{\mathrm{cell}} \circ d_n^{\mathrm{cell}} = q_{n-2} \circ 0 \circ \partial_n = 0.
\end{align*}
[guided]
We need to verify that $d_{n-1}^{\mathrm{cell}} \circ d_n^{\mathrm{cell}} = 0$. Writing out both cellular boundary maps in terms of their defining compositions:
\begin{align*}
d_{n-1}^{\mathrm{cell}} \circ d_n^{\mathrm{cell}} = (q_{n-2} \circ \partial_{n-1}) \circ (q_{n-1} \circ \partial_n) = q_{n-2} \circ \partial_{n-1} \circ q_{n-1} \circ \partial_n.
\end{align*}
The key observation is that $\partial_{n-1} \circ q_{n-1}$ is the zero map. Why? Consider the long exact sequence of the pair $(X^{n-1}, X^{n-2})$:
\begin{align*}
\cdots \to H_{n-1}(X^{n-2}) \xrightarrow{i_*} H_{n-1}(X^{n-1}) \xrightarrow{q_{n-1}} H_{n-1}(X^{n-1}, X^{n-2}) \xrightarrow{\partial_{n-1}} H_{n-2}(X^{n-2}) \to \cdots
\end{align*}
The maps $q_{n-1}$ and $\partial_{n-1}$ are consecutive maps in this long exact sequence. By the definition of exactness, $\operatorname{im}(q_{n-1}) = \ker(\partial_{n-1})$, which implies that $\partial_{n-1} \circ q_{n-1} = 0$.
This is a general principle: in any exact sequence $A \xrightarrow{f} B \xrightarrow{g} C$, we have $g \circ f = 0$. Here we are applying this to three consecutive terms in the long exact sequence of a pair. Since $\partial_{n-1} \circ q_{n-1} = 0$, the entire four-fold composition vanishes:
\begin{align*}
d_{n-1}^{\mathrm{cell}} \circ d_n^{\mathrm{cell}} = q_{n-2} \circ 0 \circ \partial_n = 0.
\end{align*}
This confirms that $(C_\bullet^{\mathrm{cell}}(X), d_\bullet^{\mathrm{cell}})$ is a chain complex.
[/guided]
[/step]