I find the Run Command tool to be counter-intuitive: rather than supplying a required I/O parameter (in at least one of "Write Source" and/or "Read Results"), I would rather just use a "Block Until Done" approach to 1. write file, 2. issue custom system command, 3. read file. An even simpler example is the case where I don't need I/O to/from the system command... in that case, I just want to issue the command, nothing more. But the current tool will require me to specify a dummy file, which is counter-intuitive and also leaves that unnecessary file somewhere.
To fix this up without breaking existing user implementations, the "idea" is:
Do not require either "Write Source" or "Read Result" ... allow both to be blank.
Allow (but don't require) any of "Command," "Command Arguments," and "Working Directory" to be dynamically populated from fields in the data streamed into the tool.
So... any existing user implementation should be unnaffected... but these changes would allow users to implement system commands in a more intuitive manner, and even allow for very dynamic system commands based on the workflow.