Documentation (A plain english description of what you are building, and why you are building it. Should indicate the actions and states that should and should not be possible) For the overall system For each unique contract within the system Clean code Run a linter (like EthLint) Fix compiler warnings Remove TODO and FIXME comments Delete unused code Testing README gives clear instructions for running tests Testing dependencies are packaged with the code OR are listed including versions Automated Analysis Analysis with MythX Other tools Frozen code Halt development of the contract code Provide commit hash for the audit to target