My TDD workflow with a new feature is pretty simple:
I write system tests for critical workflows early to start thinking through what I’ll need soon — but I disable them at first so they don’t get in the way while I’m getting that first test to pass. Sometimes I sketch out the interface instead if that’s faster.
This process keeps your system test count low — which helps your suite stay fast — while still giving you strong coverage and confidence in your app.