You can implement this with some custom code in a customBehavior, using the customBehavior module. This is what the Sos app does with it's "Learn more" buttons. (As an aside I miss the olden days when that button text switched to "Learn less" when clicked. )
But customBehavior is kind of a last resort, and there's a couple ways to do this sort of thing without it. The best way is probably with a Switcher module. You would see a Switcher most commonly downstream from a Tabs module or a Pulldown module, and it would normally toggle which one of say 5 different "sets of modules" is active at any one time depending on the selected tab. But Switcher is a little more abstract than that.
Switcher will have one or more sub-branches of child modules, and then at any one time depending on some $foo$ token coming from above, it will show zero or one of those child branches. So in the case where it's switching between showing zero or 1 child branches, it can be thought of a "VisibilityToggler" module too.
The only ingredient missing to exactly match your requirement here, would be a sort of "ToggleLink" module, that had a link or button you could click, and whose label would toggle between "show instructions" and "hide instructions". However you can accomplish the same thing broadly speaking with a Checkbox module whose label says "show instructions".
The whole thing is a little silly and abstract looking, but if you break down the simple tasks that the individual modules are doing, it's at least modular, and even better, it doesn't require reading, writing or understanding Javascript.
<module name="Checkbox">
<param name="label">show instructions</param>
<param name="name">showInstructions</param>
<param name="onValue">yesPleaseShowInstructions</param>
<module name="Switcher" group=" ">
<param name="selectedGroup">$showInstructions$</param>
<module name="HTML" group="yesPleaseShowInstructions">
<param name="html">Your instructions here</param>
</module>
</module>
</module>
... View more