I read the tutorial from the beginning to the end and found a few minor issues that are not really worth opening separate tickets.
"Since each state has certain syntax rules and pre-defined variables and constants, the..." - the sentence abruptly ends here
"circle of radius 2" - s/radius/diameter/
"division operation (dividing by the reciprocal)" - s/dividing/multiplying/
"we can just set the whole thing to zero" - it might be worth pointing out that this works because the IEEE 754 32-bit float zero happens to be represented by four zero bytes
"vec3 thirdVec = secondVec.wzyx;" - change either the type or the selector so they match
"It is comment to use" - s/comment/common/
"at the cite where" - s/cite/site/
"The second value, called “φ” (rho)" - that's a phi, not a rho
"how we see and understands" - s/understands/understand/
"the red light doesn't have much non-blue light" - s/non-blue/blue/
"Uniform scales are more commonly used. So you still need to normalize the normal after transforming it with the model-to-camera matrix, even if you aren't using the inverse-transpose. " - can't you just remove the scaling factor from the matrix in advance, i.e. divide by the cube root of its determinant (or only its absolute value to account for mirroring)?
"It may be a bit more computationally expensive than Gaussian (due to being able to avoid the acos)" - avoiding the acos is computationally expensive?