In Squiffy there are passages within sections. One chosen they are greyed out and not chosen again. How do I replicate this in Inform 7.

  1. clean my room
  2. do the dishes
  3. shop for food

There are various methods to implement a multiple-choice interface in Inform 7. One of them would be to use the extension “Hybrid Choices” by AW Freyr: extensions/Hybrid Choices.i7x at 9.3 · i7/extensions · GitHub

It works with a notion of “pages”. If you declare a page as “one-off”, then that choice will only be offered once. Here’s your example, using the extension:

Include Hybrid Choices by AW Freyr.

Apartment is a room. "I am in my apartment."

After looking for the first time:
	 switch to cyoa at p-apt.
p-apt is a page. "I decide to ...".

p-clean is a page. "Great, the room is clean now."
The cdesc is "clean my room". It is for p-apt. 
It is a dead-end. It is one-off.

p-dishes is a page. "Okay, the dishes are done."
The cdesc is "do the dishes". It is for p-apt. 
It is a dead-end. It is one-off.

p-shop is a page. "My supplies are replenished."
The cdesc is "shop for food". It is for p-apt. 
It is a dead-end. It is one-off.

@StJohnLimbo’s answer is entirely correct, but just flagging that Inform (now up to Inform 10!) isn’t designed for this kind of “passage” approach out of the box; you can make it work that way with extensions, but depending on your design needs, you might consider using a system that’s built around a choice-based interface, like Twine or Ink. Apologies if this is a dumb comment because you’ve already rejected them because Inform gives you something those don’t, but figured it’d be worth mentioning that there are other options!