I use dfhack's workflow function to make sure I have 10 extra shirts, trousers, and shoes available at all times.
workflow amount ARMOR:ITEM_ARMOR_SHORT 10
workflow amount PANTS:ITEM_PANTS_PANTS 10
workflow amount SHOES:ITEM_SHOES_SHOES 10
(I should probably have that set to 20 shoes)
Then I just set my clotheir's shop to have repeat orders for making each item from plant cloth. Then dfhack handles everything. When i have enough inventory, it suspends the repeat orders, and when inventory falls below the limits, it unsuspends them.
I'm currently buying cloth from caravans, but you can expand this method to cover spinning, dying and weaving as well to make sure your entire chain is covered. Then you just need to make sure you have enough fields to produce the plants.
I'm finding dfhack's workflow to be incredibly helpful for lots of other things as well. I always have a few extra sets of armor produced the same way, with workflow commands to smelt ore, make pig iron and steel, then make the armor. It can make most things in a fort completely automated. I never run out of booze because I have workflow set to always have at least 400 booze on hand. I never have brewing stop because of a lack of containers, because I have workflow set to always have 10 extra large pots on hand.