Я всегда придерживался принципа, что идеальное сферическое ТЗ в вакууме это такой документ, который в будущем станет документацией на продукт.
В зависимости от задачи мы имеем и общие понятия (превращающиеся в некие базовые классы), и примеры использования продукта, которые превращаются в прототипы, и подробная документация по каждой мелкой фиче, что превращается в ТЗ для каждого мелкого участка, и даже соглашения и ограничения, которые превращаются в соответствующие ограничения на входные данные и т.п.
Инструкцию всегда можно просто и быстро превратить в ТЗ. А если вы не готовы писать инструкцию, то вы не готовы писать ТЗ, т.е. еще не имеете достаточного понимания структуры, задачи и т.п. Может быть она и появится в процессе написания…