Depends….
if you change option 3 to (no) you say then house gets picked up and no doesnt. Which is actually what you want. The user saying no is superfluous here, you care more about the house being referenced. The issue comes when the user says two sentences: “No. I meant the color of the house.”, which is exactly how chatscript treats “No, I meant the color of the house”.
So the question is one of handling the first sentence, the no, and then the second sentence which refers to house. But might not refer to house.
They might say “No, I was talking about the dog.” —real or sarcastic
or they might say “No, why don’t you understand me”
or whatever.
This can be handed, but it’s awkward.
a: (~no %more) ^nextinput() refine()
b: (house) ...
b: () ddddddddd
If you want to ignore the second sentence if it doesnt help, you can just put in the “then what” you had instead of dddddd , paying no attention to the user’s input. If you want to react to the user’s input but this isn’t the place anymore, you can do instead of ddddddd
^retry(SENTENCE) to force that sentence to go back outside and try again as though the user had never said no.