I think shadow fault codes are codes that are stored but do not trigger a CEL. If the same fault occurs enough times to cross the threshold (not sure what the threshold is/could be different depending on the code), then the CEL lights.
Again, that's what I think, and I'm not 100% sure, either. Where are the gurus?
