The Inform 6 standard library does implicit actions by default for certain actions. This can lead to some really strange behaviour, so I normally turn it off using no_implicit_actions = true; and do my own implicit actions, if needed. If I include this with PunyInform, I get a compile error, so I assume this is not supported.
I can also accept the standard library’s implicit actions and selectively override it using a before_implicit routine.
There is no mention of ‘implicit’ in the PunyInform 2.3 manual, so I’m wondering whether PunyInform uses implicit actions or not.
Also note that PunyInform’s parser can try to guess which object you meant when your sentence is incomplete, so “unlock door” will say “(with the golden key)” and go ahead and try that, but it’s optional. It only happens if you define OPTIONAL_GUESS_MISSING_NOUN.