The way to do it using TDD is to do your greenfield development to the point of a working solution to elicit your fine-grained requirements, then
throw that away and rewrite it using TDD. The first version is considered a "spike solution" and is not supposed to touch production.
In TDD, all production code must be written against some pre-existing test. Any code which does not meet this criterion is broken.