Hi,
That's an excellent question, but note that answering such questions is not the primary function of this mailing list. Places like Bitcoin Stack Exchange or even IRC are probably better for that!
Specific to your question: in Taproot Q = P + hash(P||m)*G. The fact that P is hashed together with the message, makes it a commitment. If you try to change m to e.g. m2, then Q - hash(P||m2) will never result in P (unless the hash function is broken).
The original Taproot thread can be found here:
Cheers,
Ruben