At the risk of confusing things, an alternate approach that doesn’t involve creating a new single-noun action is to create a new Understand command that just has one noun, and then write a rule for supplying the second noun:
An object can be broken or unbroken. An object is usually unbroken.
Use scoring.
Test chamber is a room. the shell is in the test chamber. The sticker is in the test chamber. The paste is in the test chamber. The vase is in the test chamber. The hermit crab is in the test chamber. The hermit crab is broken.
Fixing it with is an action applying to one visible thing and one carried thing.
Understand "fix [something]" as fixing it with.
Understand "fix [something] with [something]" as fixing it with.
Understand the commands "mend", "repair", and "seal" as "fix".
check fixing it with when the noun is not the shell:
instead say "You've always adhered to the maxim 'If it ain[']t broken, don't fix it!' and this ain[']t broke.".
check fixing it with when the second noun is not the sticker: instead say "[We] [can't] fix [the noun] with [regarding the second noun][those].".
carry out fixing it with when the noun is the shell and the second noun is the sticker:
say "Taking the sticker out of your pocket you carefully unfold it and apply it to the damaged shell. Success! The banana sticker holds fast.[paragraph break]You're not sure what a happy hermit crab looks like but you're pretty sure this little guy is happy now as they scuttle away into the seaweed.";
now the sticker is nowhere;
now the hermit crab is nowhere;
now the hermit crab is unbroken;
say "[line break]Your score is [score] out of 10.[paragraph break]You are carrying [the list of things enclosed by the player].";
increase the score by 1.
Rule for supplying a missing second noun while fixing:
If the noun is not the shell, say "You've always adhered to the maxim 'If it ain[']t broken, don't fix it!' and this ain[']t broke." instead;
Say "You'll have to fix the shell WITH something."
I’ve pasted in your full logic to make it easier to see how it all works, but the relevant pieces are here:
Understand "fix [something]" as fixing it with.
...
Rule for supplying a missing second noun while fixing:
If the noun is not the shell, say "You've always adhered to the maxim 'If it ain[']t broken, don't fix it!' and this ain[']t broke." instead;
Say "You'll have to fix the shell WITH something."
The relevant bit of the docs on how supplying a missing noun/second noun works is here, but hopefully it makes sense – this is an activity that fires when the player omits a noun.
NB that you could modify this rule so that it automatically selects the sticker, if it’s carried or nearby, which might make things easier on the player. I’m also not sure how the crab relates to the shell, but it sounds like fixing the crab should work the same way as fixing the shell? if so you might want to catch that. If you make those changes, the relevant bits should look like this:
Rule for supplying a missing second noun while fixing:
If the noun is not the shell and the noun is not the hermit crab, say "You've always adhered to the maxim 'If it ain[']t broken, don't fix it!' and this ain[']t broke." instead;
if the sticker is carried by the player or the sticker is in the location, now the second noun is the sticker;
otherwise:
say "You'll have the fix the shell WITH something."
Instead of fixing the hermit crab with something, try fixing the shell with the second noun.
Again, apologies if this is confusing things! I just find it’s easier for me to have fewer actions to worry about so this way seems simpler to me, though Zed’s way will of course work well too!