I’ve been implementing a color conversion library in Python and have been dealing with the same thing lately. Your interpretation seems to be pretty much what I drew from it as well.
I will point out that that Munsell to RGB conversion code example did include a Bradford C to D65 adaptation matrix. That may have been added since your post was made, but it’s right here:
M_adapt_C_to_D65 <- matrix(c(0.990490, -0.012269, -0.003515, -0.007115, 1.015427, 0.006679, -0.011434, -0.002878, 0.919313), ncol=3, byrow=TRUE)
Regarding the observer functions, I think you don’t need to worry about those usually outside of spectral to XYZ conversions, which is a whole different headache. You should be good to go with just applying the illuminant adaptation matrix.
I know this is a bit of an old thread, but it’s a good question and there aren’t many good, simple explanations of the process.[/code]