Stockpile should have an easier method of designating the stockpile for workshop inputs/outputs. DF already has code in it which checks for the proper input when a workshop is performing a job so DF can already identify which items are inputs/outputs for a workshop. So . . .
(1) a new category should be added to the stockpile menu titled something like: "Workshop Input/Output". In this category would be subcategories corresponding to every workshop (or almost every workshop). In the main view when a "Workshop Input/Output" stockpile is placed it would be empty with nothing selected (or maybe not even show up as a category on the main view at all). However, in the stockpile settings menu (q + s) the main category "Workshop Input/Output" would contain subcategories of a list of workshops which could be "permit" or "forbid". The individual items in each category would be redundant with existing items in the other lists but correspond to the workshops accepted inputs/outputs.
Thought: This should be relatively easy to implement because DF already generates a list of tasks (q + a) for the task menu of each workshop. Using this already existing list program code to create a list of all the "reagents" used for those tasks from the RAWs (or wherever). As this list would be dynamically generated it would be automatically updated in future versions of DF which include new tasks, new objects, or even new workshops/buildings (e.g. beehives).
Example1(Carpenter's Workshop): permitting "Workshop Input/Output - Carpenter's Workshop" would automatically select all wood logs for the stockpile. [Not very useful here except perhaps as a learning tool for newbies]
Example2(Soap Maker's Workshop): permitting "Soap Maker's Workshop" would select all animal tallows, lye, and rock nut oil. [HIGHLY useful, see how long it takes to select all the tallows without selecting any of the fats. Again a useful in-game teaching mechanism as players may discover for the first time that they can make soap out of rock nut oil by reading this list, or other new features as they become implemented.]
Example3(Kitchen):
I'm not even sure of every input a kitchen might take. There are all the foods, plants, and then rendering of fat etc. However, in the case of the kitchen the list of cookable items might be used from the "Status" (z) menu "Kitchen" tab which lists whether such items are permitted to be cooked and brewed. [On the other hand, perhaps more complicated workshops like "kitchen" or "farm plots" might need to be left off of the "Workshop Input/Output" list if the coding for them is unique or different from other buildings.]
Implementation notes:
Because of the redundant listing permitting/forbidding would need to change selection both in the workshop I/O category and the primary categories of each item.
Suggestion for in-game Stockpile help:
(2) When you "view" ('k' + Enter) an object it should say which corresponding stockpile category it is. It is obvious that schist will go to a stone stockpile, and oak log to a wood stockpile but it isn't so obvious that ash is a Bars/Blocks or that mechanisms are stored in a Furniture/Siege Ammo stockpile.
Recommended display syntax: <primary category> - <secondary category>
Example1(schist): Stone - Other Stone
Example2(coke): Bars/Blocks - Bars: Other Materials