Working inside a particular mathematical structure, I have no trouble giving rigorous definitions, nor deciding whether or not a definition is rigorous. For example, working inside $\mathbb{Z}$:
Definition. Let us say that $x \in \mathbb{Z}$ is prime iff $x$ is non-zero, $x$ does not divide $1$, and for all $y,z \in \mathbb{Z}$, we have that if $x \mid yz$, then $x \mid y$ or $x \mid z$.
So we've specified the meaning of "$x \in \mathbb{Z}$ is prime" without any serious ambiguity. However, in contexts that involve an "external" perspective on mathematical structures, I find it difficult to give truly rigorous definitions, or perhaps I just cannot tell which definitions are rigorous.
For a silly example:
Definition. Let $(G,*)$ and $(H,\diamond)$ denote groups. Then a homomorphism $(G,*) \rightarrow (H,\diamond)$ is a function $f : G \rightarrow H$ such that for all $g,g' \in G$, we have that $f(g*g') = f(g) \diamond f(g')$.
Notice that, according to the above definition, a homomorphism $(G,*) \rightarrow (H,\diamond)$ is a particular kind of function $f : G \rightarrow H$. I guess that, since $f$ is a function, or in other words, a $\mathbf{Set}$-arrow, this means that the domain and codomain of $f$ are sets, namely $\mathrm{dom}(f) = G$ and $\mathrm{cod}(f)=H.$ But (perhaps) I am imagining that the domain and codomain to be groups, so that $\mathrm{dom}(f) = (G,*)$ and $\mathrm{dom}(f) = (H,\diamond).$ So, has my definition truly captured the concept it was intended to? I don't know, but I find it slightly unsatisfying. And sure, there's more to mathematics than rigor and precision, but I like to have my cake and eat it: I like to be precise and intelligible.
Question. Does anyone know of an article purports to help you learn to think and write about mathematical structures in a way that is rigorous and precise?