Wait until the dwarf has collected all of the parts for their artifact and started the mysterious construction. Then use 't' to look at the items assembled in the shop for the task. Scroll to one, then 'f'orbid it. It gets removed from the task. The resulting artifact doesn't use the material and the material is left over for re-stocking after re-claiming.
I first did this by accident while trying to husband the few silk thread and cloth I have. As the dwarf started the mood he collected everythng up to the cloth he wanted. I had previously forbidden the few silk items we had just to keep them in reserve for such a mood. I re-claimed all the silk we had now since he was not satisfied with any of the pigtail cloth or thread we had in stock. Then once he started the construction I re-forbid the remaining ones, but actually forbid the one he was trying to use. Only after his final artifact didn't use silk did I realise what might have happened.
I just now reproduced this using the repro steps I mentioned firt. So now as long as no one dwarf asks for more than two silk threads or cloth bolts I never actually have to use them up if I choose to exploit this bug.
I'm not sure what would be a good way to fix this. Should he go get silk again until he's satisfied? Should he immediately go nuts from frustration? Should you not be able to forbid items already being used in a task?
I just gotta love programs so massive they can have edge cases like this. Thanks again Toady!
AWDBall