I approach katas differently than delivery work. With a kata, I attempt to quickly hit as many of the interesting parts of the puzzle as possible with the knowledge that the time constraints will prevent a complete solution. This means many edge cases get ignored that would otherwise be tested and many of the interesting peices are not glued together. This leads to the unreasonable number of "todos" and skipping boilerplate such as using a BufferedReader to read the lines of the file.
With delivery work, one story would be completed (TDD leading to clean code submitted for approval) before moving on to the next story.
https://github.com/testdouble/contributing-tests/wiki/Bank-OCR-kata