It does work from terminal. Below is what I get in debugger. It looks like the message is sent to output script and notification, but the script does not run. Moving the script from output layer to action, the problem persists.
</item>
</items>
[INFO: alfred.workflow.input.scriptfilter] Processing output 'alfred.workflow.output.notification' with arg 'stop 7086'
[INFO: alfred.workflow.input.scriptfilter] Processing output 'alfred.workflow.output.script' with arg 'stop 7086'
It is fair simple to reproduce.
In Alfred, run "pmd start xxxx" Type "pmd", and the first option item will list current running session, select it, and a "stop" arg will be sent to the output script ( to invoke "ruby ./pomodoro.rb stop" ) In terminal, "ps -ef |grep pomodoro" will tell if a "ruby ./pomodoro.rb start xxxx" is still running. If it is, then the script in step #2 is not invoked. Typing "ruby ./pomodoro.rb stop" in terminal will kill the session aforementioned.