The below diagram and documentation indicate that the XVector, YVector, and ZVector properties correspond to the rows of the CFrame rotation matrix.
However, this is not true: XVector, YVector, and ZVector correspond to the columns of the rotation matrix. In particular, XVector is RightVector, YVector is UpVector, and ZVector is -LookVector. This can be confirmed with the following code, which prints true
three times.
local CF = CFrame.Angles(math.random(), math.random(), math.random())
print(CF.XVector == CF.RightVector)
print(CF.YVector == CF.UpVector)
print(CF.ZVector == -CF.LookVector)
Page URL: https://create.roblox.com/docs/reference/engine/datatypes/CFrame