My next step is to get pychecker working. Turns out it's not much code. Here are the functions:
the default string to use as the command for running pychecker
a cache of the command above and the name of the file we are
currently working with
Pretty straightforward but a couple of things to note.
I wasn't aware that the "interactive" command took straight elisp as an argument. I had just assumed you had to use the magic argument strings.
It's a little strange that they use an old school emacs lisp regular expression ("(\\([^,]+\\), line \\([0-9]+\\))") rather than the rx style they seemed to use everywhere else.
A note on pychecker. I find this utility fascinating. For good and bad reasons. It's really quite useful. C-c C-w is reflexively typed after saving a file. And the fact that it is so useful makes it extra confusing that it it seems sort of abandoned (at least last I checked).
As a future project I'd like to look at it (or one of it's cohorts, pylint, pyflakes, etc) and see how it works and perhaps complain less and help more,but it seems strangely abandoned now. I did start to take a look at one point and it seemed very complex so I ran away with my tail between my legs. But fortunately I have a short memory for scary things and I'll likely return to it someday.
Getting pychecker working required less code than I suspected.
Next I'll do skeleton support which if nothing else is a lot more lines of code.