I think the `git_literal` rule should probably include a definite space; the `maybe` on the space could lead to things like `gitcommit` being accepted as `commit` which seems like unexpected behaviour.