Here is my self-assessment of myself. Please let me know what I am missing so I can make improvements. Thanks!
Functionality:
I believe I meet the requirements for a 4 in Functionality. The cracking method works and the encrypt, decrypt, and crack runner files can be used by typing appropriately in the command line and it seems to meet the stated requirements.
Object-Oriented Programming:
My project includes two modules (ShiftManager and ShiftCreator) that are included in a superclass called CypherMaster. These could be used outside of this particular project in order to create encryptions. I checked and all the lines are less than 80 characters, all classes are less than 100 lines, all methods are less than 8 lines, and I have several class methods. I did my best to use clear variable names and I hope for a 4 on this, although I am eager to hear ways to improve this category.
Test Driven Development:
My coverage is 100%, I use a mock and stub for a test for my KeyGenerator class. Hopefully test names are clear. Hoping for a 4.
Version Control:
I have 16 PRs to date and WAY more than 40 commits. I was very disciplined about committing every test and minor change in functionality. I did the best I could with names. I am hoping for a 4 as well.