tl;dr: Post-processing should probably only use pixel shaders.
I don’t think you can apply a vertex shader to the post-process – or, rather, I don’t think you’re supposed to. According to the docs, the post-process constructor specifically requests
fragmentUrl, indicating it wants a fragment (or pixel) shader. The reason for this is that post-processing manipulates the pixels that have already been rendered to the screen. Vertex shaders manipulate vertices; so in the case of post-processes, where we’ve already rendered everything to the screen and everything’s already where it should be, we actually don’t want a vertex shader to do anything at all.
Since the screen (at the point of post-processing) is effectively a quad right in front of a camera, and because vertex shaders move vertices, if you did manage to put a vertex shader on the post-process, it would probably actually move the screen away from the camera – causing everything to disappear. Note that I don’t think this is how it currently works: I get shader compilation errors (see below) when trying to run the case in your Playground, presumably because the constructor is specifically looking for a fragment shader, as mentioned above. Nevertheless, it is an interesting thought experiment. Hope this helps!
(The shader compilation errors I get in the Chromium console
when running your Playground scenario.)