На мой взгляд, в первую очередь фрилансер должен уметь общаться с клиентом или потенциальным клиентом. Каким бы детальным ни было ТЗ, оно не может передать всех мыслей заказчика, которые могли остаться между строчек. Фрилансер не может читать эти мысли, но думать при выполнении работы должен как заказчик. В периоде обсуждения проекта лучше выяснить все малейшие нюансы и постараться найти полнейшее взаимопонимание, особенно в вопросах, где мнения расходятся.