Hmm, in your example, temperature is fully measurable but there might be a slight challenge in measuring if "If we are at home". Since for this you need to define more variants with measurements from motion sensors, pressure or weight sensors on beds or sofas, if a device has got connected to wifi, etc.
By the time your first round of beta testing is over, you may have quite a handful of such axioms and variants, which have been humanly validated!
Have you done any such experiment in this space?
It was my "vibe coding playground" experiment. I haven't gotten anything solid fleshed out, but conceptually I wanted the "safety layer" to only permit fully expanded, concrete references.
Then break plain language requests into tool-calling-ish shared functions [atHome(), isHoliday(), comfyTemp(), ...] and basically throw "linker errors" if a concept didn't have a definition, eg: "ERROR: concept 'comfortable temperature' not defined..."
...and yes: be able to highlight overlaps or conflicting instructions at the semantic layer... those being less important than conflicts at the safety/invariant layer.
The idea was to have a bunch of basically "is_comfy_temp.prompt" => "is_comfy_temp.lisp" and be able to right click on any of the prompts and "show source" to understand, debug, simulate, validate, etc.
As you get real trials you end up with a foundational "StdLib" of at least necessary concepts although yours and mine might contain different data/preferences. And being able to edit "comfyTemp()" in one place as opposed to spread out in a bunch of different home automations (eg: isSummer vs isWinter else also: ifHumidity && upcomingWeather || realtimeElectricRates, etc...)