Ubiquitous Computing and Intelligent Environments Design Guidelines
For designers and engineers: once a device is embedded in the room a person occupies, shared by more than one person, and capable of moving on its own, keep the switch on the wall always effective, let people know who made this happen right now, and let them stop it on the spot at any time.
6 principles · 40 rules · MUST 35 · SHOULD 5
Contents
For designers and engineers: once a device is embedded in the room a person occupies, shared by more than one person, and capable of moving on its own, keep the switch on the wall always effective, let people know who made this happen right now, and let them stop it on the spot at any time.
What ubiquitous-computing and intelligent-environment products do is embed computing capability into the physical environment itself: lights, locks, air conditioners, curtains, cameras, sensors, voice terminals, desks, and meeting rooms. What they share is not "being networked," but that computing, sensing, or control happens in real physical space — this is the basis for this specification's applicability. Two further things are key risk conditions that each trigger their own rules when they hold, rather than all three needing to hold together for this specification to apply: being shared by more than one person (triggers U2-6, U4, U5-3, and other clauses), and moving on its own when no one has issued a command for that instance (triggers the entire U2 group). The home of someone living alone, or a smart space with no automation enabled yet, likewise falls within this specification's requirements on offline degradation, sensing disclosure, and handover clearing. Once these conditions hold, every question the screen era never had to answer shows up at once: who turned the light on, whether the switch still works, whether the room remains livable once the network is down, whether a guest knows there is a microphone here, whether the previous owner can still open the door after the house is sold.
The most common design mistake in this domain is writing the intelligent environment as a feature list for a smart-home app: assuming the design object is that app's interface, and treating "state visible in the app," "remote control in the app," and "automation editable in the app" as a complete delivery. But what the user actually lives inside is the room, not the app. A person in the room may not have this app installed, may have no account, may be asleep, or may just be delivering a package. This specification's regulatory object is the device and space embedded in the physical environment itself, not the app that operates them.
These guidelines consist of six principles and 40 rules: principles state the design direction, rules specify applicability conditions, behavior requirements, and verification methods. Each rule belongs to one and only one principle, and the rule number is the principle number (U3-2 is the second rule under the third principle). The six principles are divided by regulatory object: the environment's physical state and physical controls, the automation rules running in this space, the system's dependence on external services, control-authority relations within the space, ongoing sensing collection, and the ownership relation between a device and a space.
Scope statementthis specification constrains the nature of the experience commitments a product makes to the people inside it once devices are embedded in the physical environment, and the mechanisms that honor those commitments; it does not presuppose a single technical architecture, and does not specify a communication protocol, device form factor, or cloud solution. It is not a component library, not an interoperability certification, and still less an installation manual. Adopting this specification cannot substitute for the following dedicated assessments and compliance determinations: network protocol and interoperability implementation (provisioning method, transport stack, cross-vendor interoperability, and certification testing are outside this specification's scope; this specification only requires that the related commitments be verifiable), energy consumption and device safety certification (electrical safety, electromagnetic compatibility, and gas- and fire-related certification are determined by the applicable standards and authorities), building code and fire-evacuation requirements (mandatory provisions for door locks, evacuation routes, and emergency lighting take precedence over any clause of this specification), information-security technical controls (key management, firmware signing, and vulnerability handling belong to security engineering), and accessibility, privacy and personal-data protection, labor law and workplace surveillance, protection of minors, and tenancy and real-property law. This specification also requires that sensing purpose, data destination, and retention and deletion boundaries be understandable and verifiable; the specific legal basis and applicability of a data subject's rights are assessed separately by the project. Where any of the above conflicts with a clause of this specification, the applicable regulation or safety standard governs.
Five chapters in total: Chapter 1 principles, Chapter 2 how to read the rules and quick reference, Chapter 3 rules in detail, Chapter 4 terminology, Chapter 5 operational facts and delivery; for the verification checklist and evidentiary notes see Appendices A and B, for the complete sources see reference.md, and for configurable items see Ubiquitous Computing and Intelligent Environments Design Token.
1. The six principles
The six principles divide design responsibility by regulatory object: each principle governs the obligations on one category of object, and each rule belongs to exactly one principle according to the direct regulatory object of its obligation. Different objects mean the principles do not substitute for one another — this is both the basis for the division and the way to test it.
| Principle | Regulatory object | Design direction | Rules governed |
|---|---|---|---|
| U1 The physical world is the source of truth | The environment's physical state, physical controls, and the system's representation and control of both | The switch on the wall MUST always work. Whether a light is on or off in the real world is not decided by a record on a server; the system's representation converges to the physical state, not the other way around, requiring the room to accommodate the system | U1-1 ~ U1-7 |
| U2 Automation is understandable and can be stopped on the spot | The automation rules running in this space and the actions they trigger | When something happens on its own, the person in the room has the right to know on the spot which rule caused it and why now, and to stop it without opening a phone | U2-1 ~ U2-8 |
| U3 What remains after disconnection | The system's dependence on the network, cloud service, account, subscription, and the vendor's continued operation | The livability of a home should not hang on one company's server. Every piece of automation needs a manual path that does not depend on the network, an account, or a cloud service, and what a device becomes once service stops must be stated in advance | U3-1 ~ U3-6 |
| U4 Control authority within the space | Who can control the devices in this space, and the control relations among the people present | People in a space are not equal: one paid for it, another just lives there, another is just passing through. Control authority needs to be divisible by identity and duration, while also ensuring that a person present is not remotely overridden | U4-1 ~ U4-6 |
| U5 Sensing happens on people | The ongoing sensing in the environment, and the people it collects from (including people with no account) | A sensor does not ask whether you have the app installed. Whether sensing is in progress MUST be perceivable from the device itself, and the sensing scope must not grow without the person knowing | U5-1 ~ U5-7 |
| U6 A device's ownership and lifecycle | The ownership relation between a device and a space, and a control principal, and how that relation changes | A device changes hands, gets moved, gets updated. Who it belongs to, who administers it, and what remains after removal must be stated clearly at every change | U6-1 ~ U6-6 |
A single scenario can touch several principles at once — the living-room light turns on by itself at two in the morning, and the person in the room faces all of the following together: whether the light's wall switch still works right now (U1-1); which rule triggered this and whether it can be stopped on the spot (U2-2, U2-3); whether this rule was set by another person they live with and they were never told (U2-6); and whether they, living here but not the account owner, have the authority to turn it off (U4-2). This is not a classification error: the four rules constrain obligations on four different regulatory objects — one is the effectiveness of a physical control, one is the automation rule itself, one is the relation between a rule's author and its audience, and one is the division of control authority within the space. Mutual exclusivity and exhaustiveness are claims this division must pass verification for, not facts that hold simply by being declared: when a rule is added, removed, or its ownership is in doubt, verify it against the classification check in Appendix A. If it fails the check, what gets revised is the division of principles.
The two boundaries in this division that most need ongoing verification are stated explicitly here: U1 versus U3 — U1 governs "which is the source of truth between physical state and system state, and whether the physical control still works"; U3 governs "which capabilities remain once an external dependency is cut." Whether pressing the wall switch turns the light on when the network is down has physical-control effectiveness as its direct regulatory object, and belongs to U1-1; whether dimming, scenes, and schedules in the app still work when the network is down has dependence on the cloud service as its direct regulatory object, and belongs to U3-1, U3-3. U2 versus U4 — U2 governs the automation rule itself (who set it, why it triggered now, whether it can be stopped); U4 governs who in this space has the authority to control what. "My roommate set a rule that turns the light on at midnight — can I turn it off on the spot" belongs to U2-3; "does my roommate have standing to set this rule for the living room, and can I see what he can control" belongs to U4-6. If ownership disputes over these two boundaries keep recurring in practice, the principles should be adjusted rather than adding an intermediate layer.
Principles are used to understand the rules and to arbitrate ownership; they are not, on their own, a separate item of judgment. When a principle's reading conflicts with that of a specific clause, the applicable clause governs, and the ambiguity that needs clarifying is recorded.
That a rule belongs to exactly one principle does not mean a mechanism cannot be reused. A single "on-the-spot control channel" can be, at once, the implementation of physical-control effectiveness (U1-1), the path for an automation on-the-spot override (U2-3), and the manual path after cloud service ends (U3-1, U3-4); a single "presence detection" can be both an input to reminder routing (U5-5) and the basis for judgment when control authority is separated from presence (U4-1). The same mechanism serving multiple uses is normal; which clause it is written under depends on the direct regulatory object of the obligation.
2. How to read the rules
2.1 The structure of each rule
| Part | Function |
|---|---|
| In one sentence | A memorable version of the rule; does not replace the body text |
| Applies to | The situation in which this rule takes effect. A product outside the scope of applicability may simply record "not applicable," with no need to force a fit |
| Rule | The normative body text, stating this rule's requirement |
| Boundary conditions | Together with Applies to, bounds the scope of the requirement: states what this rule does not require, and under what conditions an exception holds (present for only some rules) |
| Design application / Verification examples / Counterexamples | Explanatory material that helps implementation; adds no obligation of its own and specifies no single implementation |
| Basis and references | Failure records and implementation references (present for only some rules; for evidence types and sources see Appendix B and reference.md) |
In one sentence, the force of each part: the rule's body text states the requirement; Applies to and Boundary conditions together bound the scope of that requirement; Design application, Verification examples, Counterexamples, and Basis and references add no obligation of their own.
A rule states the nature of a behavior, not its implementation: that a person in the room can stop an automatic action in progress without opening a phone is a product behavior; whether it is implemented with a local gateway, a device-side button, a spoken phrase, or a wall panel is an engineering solution — the two must match, but they are not the same deliverable. This specification therefore does not specify a communication protocol, gateway form factor, or provisioning flow.
2.2 Normative terms
The rule body text uses three tiers of normative terms:
- MUST: failing to satisfy it means non-compliance with this specification. Without it, some commitment to the user fails under a foreseeable condition — this is the sole basis for marking something MUST.
- MUST NOT: the inverse expression at the same strength as MUST, identifying behavior that must not occur; "must not" and "prohibited" are equivalent in the body text.
- SHOULD: followed by default; when there is a genuine reason to deviate, record the reason and the alternative practice, and accept the same verification. A deviation needs no approval, but it needs a trace. "SHOULD NOT" is the inverse expression of SHOULD.
Compliance judgment takes the independent obligation clauses in the body text as its unit: a declarative sentence with no normative term carries the strength of the rule heading it sits under; a clause with an explicit normative term is judged at its own strength — a "MUST NOT / prohibited" clause inside a SHOULD rule remains a hard constraint (U2-7, U3-5, U4-5, U5-3, U5-4 contain such clauses), and the strength annotation on a rule heading or the quick-reference table does not replace a clause's own binding force. "Cannot" in the body text is used only for a statement of capability or fact, and does not express an obligation.
Strength expresses binding force, not importance.
2.3 The two sides of counterexamples
Counterexamples come in two sides: "under-delivery" is missing this requirement, and "over-delivery" is turning the environment into a machine that demands approval for every single action in order to satisfy it. Ubiquitous computing gets done badly densely at both ends: at one end, a house becomes an uninhabitable shell once the network is down, and a guest gets recorded for three days without knowing it; at the other end, out of fear of error, every automatic dimming becomes a notification, every light turning on requires unlocking the phone to confirm first, and guest permission becomes a form that takes eight steps to hand out — the whole value of ambient computing lies in people not having to operate it step by step, and turning it into a machine that demands confirmation is equally wrong. Predictable does not mean asking about everything, and controllable does not mean pushing the entire cost of control onto the person.
2.4 Quick reference: 40 rules
The table below is the one-sentence memorable version of every rule; click a rule's name to jump to its full text in Chapter 3. The quick reference does not replace each rule's applicability conditions and complete requirements; a few SHOULD rules contain MUST NOT-level clauses (U2-7, U3-5, U4-5, U5-3, U5-4), and judgment follows the body text (see 2.2).
U1 The physical world is the source of truth
| Rule | Strength | In one sentence |
|---|---|---|
| U1-1 Physical controls always work | MUST | The switch on the wall cannot stop working because of the state of software, the network, or an account. |
| U1-2 Physical state takes priority over system intent | MUST | "The command was sent" does not equal "the light is on"; what the interface displays should be the latter. |
| U1-3 Dispatched and confirmed are rendered separately | MUST | Command stage, action result, and physical observation are expressed separately. |
| U1-4 On-the-spot operation takes priority, with an explicit convergence rule | MUST | Something a person just turned off by hand should not be turned back on by automation three seconds later. |
| U1-5 State after power loss and restart is defined in advance | MUST | Every light in the house coming on the instant power returns is a design failure, not an accident. |
| U1-6 Actions with physical consequences are tiered by consequence | MUST | Turning on a light and unlocking a door are not the same kind of action, and cannot share one confirmation scheme. |
| U1-7 Sensing-input validity precedes automatic action | MUST | Only when an observation is valid and its coverage correct can it be acted on. |
U2 Automation is understandable and can be stopped on the spot
| Rule | Strength | In one sentence |
|---|---|---|
| U2-1 Automatic execution is perceptible where it happens | MUST | When something happens in the living room, it should be perceivable in the living room, not only logged as an entry in the phone. |
| U2-2 The trigger reason can be traced on the spot | MUST | "Why did it turn on right now" MUST have an answer: which rule, who created it, under what condition. |
| U2-3 On-the-spot override does not depend on an account or network | MUST | Wanting to make it stop should not first require finding a phone, an account, or a signal. |
| U2-4 The scope of an override is chosen by the person | MUST | "Not this time" and "never again" are two different things, and a person must be able to say them separately. |
| U2-5 Rule conflicts are arbitrated and visible to people | MUST | When two rules collide, the product must have an answer, not just let whichever executes last win. |
| U2-6 When a rule's author and the people affected differ, notification is required | MUST | When a rule acts on someone else, that person has the right to know it exists. |
| U2-7 Learned automation does not take effect silently | SHOULD | A habit guessed from behavior defaults to a suggestion, not a rule already running. |
| U2-8 Triggering, execution, and composite scenes have clear boundaries | MUST | No duplicate triggering, and no concealing partial completion. |
U3 What remains after disconnection
| Rule | Strength | In one sentence |
|---|---|---|
| U3-1 Core functions have a local path | MUST | With no network, no account, and no subscription, the light must still turn on and the door must still open. |
| U3-2 Dependencies are available before purchase and installation | MUST | Which functions disappear without the cloud must be disclosed before purchase, not after something breaks. |
| U3-3 Degradation is a defined state, not a fault | MUST | Being offline is not an error dialog; it is an operating state the product already planned for. |
| U3-4 Service termination has advance notice and an end-state disclosure | MUST | When a service is about to stop, it must be disclosed in advance, along with what the device becomes afterward. |
| U3-5 Already-held local capability is not retroactively withdrawn | SHOULD | Something already installed on the wall should not need a paid subscription to turn the light on after some update. |
| U3-6 Safety-related functions do not depend on a single remote party | MUST | The basic functions of smoke detection, door locks, and alarms are not staked on a single cloud service. |
U4 Control authority within the space
| Rule | Strength | In one sentence |
|---|---|---|
| U4-1 Control authority and presence are defined separately | MUST | Being in the room does not equal having permission, and having permission does not equal having to be in the room. |
| U4-2 A person present retains basic control over devices that affect them | MUST | Someone living here MUST be able to turn off whatever is shining on them, blowing on them, or sounding in their ear. |
| U4-3 Temporary and restricted identities have scope and duration | MUST | A guest's permission needs a boundary, and it needs to expire. |
| U4-4 The effective scope of permission revocation is verifiable | MUST | After moving out, leaving a job, or breaking up, whether someone can still open this door needs an answer on the spot. |
| U4-5 A space has more than one control entry | SHOULD | One person losing their account should not lock the whole house along with it. |
| U4-6 Who can control and who can see is discoverable by people present | MUST | People in the room have the right to know who controls this space and who can see into it. |
U5 Sensing happens on people
| Rule | Strength | In one sentence |
|---|---|---|
| U5-1 Sensing state is perceivable from the device itself | MUST | Whether a camera is recording must be visible from the camera itself, not looked up in the app. |
| U5-2 Sensing scope and inference granularity must not silently expand | MUST | A single update must not turn a temperature sensor into a person-recognizing sensor. |
| U5-3 Sensing of non-user third parties has disclosure and minimization | SHOULD | Guests, cleaners, and delivery workers have no account, but they get captured on camera all the same. |
| U5-4 Stopping sensing has a clearly bounded path | SHOULD | What "turned off" actually turns off must be statable, and verifiable. |
| U5-5 Presence detection and identity recognition are separate | MUST | Where knowing "someone is here" is enough, do not go on to recognize "who." |
| U5-6 Environmental sensing is not used to evaluate or differentially treat people present | MUST | A desk sensor is not a time clock, and a living-room sensor is not a parental surveillance console. |
| U5-7 Data's purpose, retention, and erasure are verifiable | MUST | The device, the local cache, and the cloud copy each report their own disposition. |
U6 A device's ownership and lifecycle
| Rule | Strength | In one sentence |
|---|---|---|
| U6-1 Ownership is resolvable | MUST | Which space this device belongs to, who administers it, and whose account its data goes into. |
| U6-2 The authorized party at onboarding is checkable | MUST | Adding a device is granting a permission, and who that permission was granted to must be visible. |
| U6-3 The effect of removal and any residue are checkable | MUST | Deleting it from "my home" does not mean it truly stops obeying commands and stops reporting. |
| U6-4 A handover has an executable clearing path | MUST | Once the house is sold or the device changes hands, the previous administrator MUST truly lose control. |
| U6-5 An update that changes behavior requires advance notice | MUST | When something installed on the wall has its behavior remotely changed, the user should not have to discover it on their own. |
| U6-6 Installation, changes, and repairs re-verify the space's commitments | MUST | A successful pairing does not mean the space is ready. |
2.5 Starting from the space's commitments
First list the actual space, the people present, the physical outputs, and the sensing capabilities, and only then judge whether a clause applies. No account, short stays, being offline, and service discontinuation are all deployment conditions, not situations that can be excluded through how a product is named.
| Design decision | Minimum deliverable | Question to check |
|---|---|---|
| What this space permits to happen | A table of device capability and action consequence | Who will be affected, and where is the manual path? |
| What the system acts on | Observation and trigger contract | What happens when data is stale, a person is motionless, or a sensor is miscalibrated? |
| How a person intervenes | On-the-spot control and permission matrix | Can someone without a phone discover it, stop it, and understand the conditions for recovery? |
| How things continue after an interruption | Degradation and recovery table | Will an expired command be caught up and executed, or an already-completed sub-action redone? |
| How data and devices exit | Data handling, revocation, and handover checklist | What did the device, the third-party connection, and the cloud each actually clear? |
Each decision is then mapped to Design Token, recording the effective value, its basis, where it is enforced, and the validation evidence.
3. Rules in detail
This chapter expands all 40 rules by the six principles. Each rule's structure and the binding force of its parts are given in 2.1; the design application, verification examples, and counterexamples within it are explanatory material that helps implementation, specify no single component, and require no separate deliverable document.
3.1 U1 The physical world is the source of truth
The most fundamental difference between an intelligent environment and a screen-based product is this: here there is a physical world not governed by software. Whether a bulb is lit, whether a door is open, whether a room is warm — these facts are determined by physics, not by a record in a database. The system's representation of them may lag, may be wrong, or may be frozen entirely at some past moment because of a dropped connection. This principle governs exactly this correspondence — which is the source of truth, whether a physical control still works when the system fails, and how things converge when a person's hand and the system's intent point in opposite directions.
U1-1Physical controls always workMUST
In one sentence: The switch on the wall cannot stop working because of the state of software, the network, or an account.
Applies todevices and spaces with physical controls (wall switches, knobs, buttons, pull cords, handles, mechanical valves), and products that change the state of what those controls govern.
RuleThe product MUST guarantee that an existing physical control in the space still produces the physical effect its appearance promises under any of the following: network interruption, cloud service unavailable, an invalid account, an expired subscription, the app not installed, or the device not provisioned. Making a physical control's effectiveness downstream of a software function is prohibited — a structure where "whether the switch works depends on whether the server is online" must not occur. If the product's design changes a physical control's original effect (for example, converting a wall switch to only send a scene command), the changed effect MUST be stated in the installation instructions and on the device itself, and the changed effect MUST equally satisfy the independence requirement of the previous sentence.
Boundary conditionsthis rule does not require every device to have a physical control, nor does it prohibit a physical control from having richer behavior while connected; what it requires is that a physical control already present in the space does not lose its effectiveness because of software state. Failure caused by a power interruption is outside this rule's scope and is handled by U1-5. Mandatory fire, evacuation, and electrical regulations take precedence over this rule.
Design applicationuse "what effect does this control still have in the worst case" as an input to device selection and installation design, not as an after-the-fact fault-tolerance branch. A common structural conflict is a smart bulb installed under an ordinary wall switch: when the user turns off the wall switch, the bulb loses power and every subsequent software control fails — this is not a defect, it is a trade-off that must be explicitly chosen and disclosed to the user; choosing it requires giving the user both an explanation and an alternative path (for example, using a smart switch instead of a smart bulb, or adding a panel at the switch that keeps power available).
Verification examples
- User side: unplug the gateway or disconnect the internet, press every physical control in the space one by one, and check whether its effect matches what its appearance promises.
- Implementation side: check whether the physical control's control chain has a step that must go through a remote service; check the control's behavior under the three states of account sign-out, subscription expiry, and firmware rollback.
Counterexamplesunder-delivery — after the network is down, the wall switch can only light an indicator, and the fixture itself is not controlled by it; over-delivery — removing all networked capability to guarantee independence, throwing away the value of remote control, grouping, and scheduling along with it.
U1-2Physical state takes priority over system intentMUST
In one sentence: "The command was sent" does not equal "the light is on"; what the interface displays should be the latter.
Applies toproducts that present environmental or device state to the user.
RuleThe device state the system presents MUST be based on a verifiable physical state or device report, not on the command the system has dispatched. When physical state and system record disagree, the system record MUST be updated to match the physical state, and the disagreement itself MUST be made visible to the user; overriding the physical-state rendering with the system record is prohibited, as is displaying a certain state when the physical state cannot be confirmed. Every observation consumed as a current fact MUST have a source, an observation time, a receipt time, and a staleness judgment; on expiry, disconnection, a unit error, or a source conflict, the time of the last known value MUST be retained and the current state marked unknown or conflicting — the observation's validity period must not be extended merely by an interface refresh. The state source and its staleness are expressed by amb.state.truth.source and amb.state.staleness.ttl.
Boundary conditionsthis rule does not require every device to have a state-reporting capability. A device with no reporting capability and no independent physical measurement MUST be presented as "state unknown" or "the last dispatched command was…," not as a certain state; a list of such devices should be available. No receipt on the command channel does not equal no independent observation capability: when an independent measurement exists, render by that measurement and note its observation time. A device's own report and whether the physical goal was reached are also two different things, and the product's ability to distinguish the two must be truthfully declared.
Design applicationcarry "the last dispatched command" and "the last received report" through to the interface layer as two independent fields, not merged into a single boolean in a middle layer. After a user manually turns off a light on the wall, that light in the interface should turn off, not stay on until the next poll.
Verification examples
- User side: change device state manually on the wall, and observe how long it takes the interface to catch up, and how.
- Implementation side: disconnect the device's reporting while keeping the command channel; when there is no independent observation, check whether it displays unknown; when there is an independent observation, check whether the source and observation time are genuine.
Counterexamplesunder-delivery — the app shows "Living room light: on" while the bulb has long since been powered off at the wall switch; over-delivery — because verifiability is required, a permanent "state may be inaccurate" disclaimer sits on every device card, making a genuine anomaly impossible to tell apart.
U1-3Dispatched and confirmed are rendered separatelyMUST
In one sentence: which step the command has reached, what the action's result was, and what the situation on the ground actually is must be answered separately.
Applies toproducts that allow a user or automation to dispatch a command to a physical device.
RuleA command's stage and result MUST be expressed separately, not merged into one three-state column. Stage distinguishes at minimum: dispatched-unconfirmed, accepted, concluded; result distinguishes at minimum: succeeded, failed, unknown. "Failed" MUST have reliable failure evidence (an explicit device rejection, an execution-side error); a timeout or a lost receipt only enters "unknown," and MUST NOT be judged as failed, nor rendered as succeeded. Rendering "dispatched" or "accepted" as "completed" is prohibited — an acceptance confirmation only proves the command was received, not that the action was executed; a device's internal report of success also does not prove the physical goal was reached (a relay closing does not prove the bulb lit, a bolt moving does not prove the door has closed).
Give a different subsequent path by result: a failure may be prompted or retried according to its cause; unknown MUST have a defined disposition (turn into state-unknown, guide the user to check on the spot, or, only when genuinely safe to repeat, retry with a declared cap and backoff); it must not default to unlimited retry, nor be silently dropped. For an action that cannot be safely repeated (unlocking, dispensing, a valve or mode switch), after an unknown, checking MUST come before deciding — "limited retry" must not stand in as the safety basis. A command's receipt mode is expressed by amb.state.report.mode.
Boundary conditionsthis rule does not prescribe a timeout duration or retry count; these are determined by the product for each device category and link condition, with the basis recorded. For a purely broadcast control method structurally incapable of a receipt, the product MUST declare that the link provides no confirmation; when an independent physical measurement exists in that case, state is rendered by that measurement, and is not uniformly rendered as unknown just because the command channel has no receipt (see U1-2).
Design applicationdesign "timeout-unknown" as a normal value downstream can consume, not an exception branch — otherwise an implementation will tend to optimistically display success just to let the flow proceed. For an action with physical consequences (see U1-6), a timeout-unknown SHOULD guide the user to check on the spot, rather than prompting "please try again later."
Verification examples
- User side: dispatch a switch command while the device is offline, and observe whether the interface stays at a distinguishable intermediate state and offers a next step.
- Implementation side: inject a reliable rejection, a success receipt, a lost receipt, and out-of-order delivery separately, and check whether the evidence for failed, succeeded, and unknown is correct, and whether a late-arriving message overrides a more recent fact.
Counterexamplesunder-delivery — tapping "unlock" instantly turns into "unlocked," while the command was never actually delivered; over-delivery — every light turning on requires the user to wait for and confirm a receipt, turning an instantaneous action into a transaction commit.
U1-4On-the-spot operation takes priority, with an explicit convergence ruleMUST
In one sentence: Something a person just turned off by hand should not be turned back on by automation three seconds later.
Applies toproducts where the same device can be both manually operated by a person and controlled by automation or remotely.
RuleWhen a manual operation performed on the spot conflicts with the intent of automation, remote control, or a scheduled task, the product MUST have an explicitly defined convergence rule that is predictable to the user, specifying at minimum: whether and for how long manual operation takes priority over automation, how that priority period ends (expiry, explicit restoration, leaving the space, or the next natural boundary), and the scope of automation suppressed during that priority period. The suppressed scope includes affected automation already queued but not yet executed; network recovery, a timer restart, and rule reloading do not automatically cancel that priority period — the resumption condition is checked against its original definition. The default MUST be on-the-spot manual operation taking priority; the opposite default (automation immediately overriding a person's manual operation) holds only when there is a safety or compliance basis, and MUST be explained to the user. The convergence rule is expressed by amb.state.conflict.resolution, and the suppression duration by amb.automation.suspend.default_ttl.
Boundary conditionsthis rule does not require manual operation to take priority forever, nor does it prohibit automation from resuming once the priority period ends; what it requires is that "how long priority lasts and how it ends" be defined in advance and knowable to the user. Safety interlocks (closing a valve on a gas leak, unlocking an evacuation door on a fire alarm) are not bound by this rule; that exception must have an explicit scope and basis, and is not a blanket exemption for every remote command.
Design applicationpersist "the most recent human operation" as part of the device's state, and have automation read it before executing. Do not solve this for every device with one fixed, one-size-fits-all duration: a reasonable priority-period length differs between temporarily turning off a light and temporarily turning off a thermostat; each is determined by the product for its use scenario, with the basis recorded.
Verification examples
- User side: manually turn off a device within automation's trigger window, and observe whether it gets turned back on, and after how long.
- Implementation side: check whether automation reads the manual-operation state before executing; check whether the priority period's end condition is explicitly defined rather than an implicit timer.
Counterexamplesunder-delivery — a user manually turns off a motion-sensing light, and thirty seconds later the sensor triggers again and turns it back on, repeating all night; over-delivery — any single manual operation permanently disables every piece of automation on that device, and the user must re-enable them one by one to restore it.
U1-5State after power loss and restart is defined in advanceMUST
In one sentence: Every light in the house coming on the instant power returns is a design failure, not an accident.
Applies todevices and spaces that lose operating state because of a power interruption, a device restart, or a firmware update.
RuleThe product MUST define the initial state separately for each device category under three recovery events: recovery after a power interruption, an ordinary restart, and an update-triggered restart — the three may take different values, and one rule must not stand in for all three. Each must cover at minimum one of three values: restore the state from before the interruption, restore to a specified fixed state (must resolve to a capability, a target value, a unit, and a legal range), or stay off, and that choice MUST be made visible to the user. That choice SHOULD be modifiable by an authorized party within a permitted range; an item that must be fixed for safety or compliance reasons MUST state the reason it is fixed and a feasible exit path — it must not be implemented as something no one can inspect or change.
The recovery process MUST avoid producing an unassessed hazard or an unpredictable mass-recovery consequence — the criterion is hazard and predictability, not the number of simultaneous actions: multiple heating circuits or several safety outputs recovering at once may be unacceptable, while several low-risk lights recovering at once may well be fine. Defaulting the recovery state to "decided by a remote party after the device reconnects" is prohibited — this would make recovery behavior depend on network-recovery timing, which the user cannot predict. The recovery-state value is expressed by amb.state.power_restore.behavior.
Boundary conditionsthis rule does not prescribe which recovery state is correct, nor does it require every device to use the same value; the reasonable default differs among lighting, heating, security, and medical-assistance devices. This rule does not cover the reliability design of the power system itself.
Design applicationmake the recovery state a device-level setting rather than an account-level one, taking effect in the device itself or its installation configuration, so that it still holds with absolutely no network. Power returning at night is worth verifying separately, but the reasonable answer differs by device: nighttime lighting is usually better "stay off"; refrigeration and freezing SHOULD resume operation automatically; temperature control and freeze protection have their own safety floor; security and emergency calling recover per their own safety requirements. Write these down separately rather than giving the whole house one default.
Verification examples
- Implementation side: check whether each device category has an explicit value and target value under each of the three recovery events; check whether the recovery behavior holds equally with no network; check that the reason and the responsible party for a fixed item are lookupable.
- User side: replay nighttime power restoration in a controlled test environment or an equivalent simulation, recording the actual behavior at the instant of recovery and assessing its consequences; before running a main-power-cutoff test in a real living space, first assess whether that space has a medical-assistance, security, or refrigeration dependency, and obtain the residents' consent — do not create real risk in order to verify this specification.
Counterexamplesunder-delivery — power returns at night and every light and speaker in the house starts up at once; over-delivery — to avoid a sudden effect, the user is required to manually turn on every device after every power restoration, including things like the refrigerator and security equipment that should recover automatically.
Basis and referencesfor the enumeration expressing power-on startup behavior (restore previous state / fixed state / toggle) and its exception on a firmware-upgrade restart, see R24.
U1-6Actions with physical consequences are tiered by consequenceMUST
In one sentence: Turning on a light and unlocking a door are not the same kind of action, and cannot share one confirmation scheme.
Applies toactions that can be triggered remotely or automatically and that produce a physical consequence.
RuleThe product MUST tier physical actions by the reversibility of the consequence, the effect on personal safety, and whether a person present can stop it on the spot, and vary confirmation strength, authorization requirement, and automation eligibility with the tier. Tiering MUST be judged by action capability and parameter boundary, not fixed at one tier for an entire device; a scene must expand all its sub-actions and assess their combined consequence, and must not have its requirement lowered by a name like "coming home" or "energy saving." Door locks and entrances, gas and open flame, heating and cooling, mechanical motion that can pinch a person (rolling shutters, gates, lifts), and high-power devices that run unattended for a long time are prohibited from sharing the same confirmation tier and the same automation-eligibility tier as low-consequence actions such as lighting or scene switching. A high-tier action MUST re-verify that its triggering condition still holds before it is triggered automatically, and MUST have an on-the-spot means of stopping it available to someone present (see U2-3). Action tiering is expressed by amb.control.actuation.class.
Boundary conditionsthis rule does not prescribe a specific number of tiers, nor does it require automation to be uniformly forbidden for high-tier actions — a door locking automatically at a scheduled time is reasonable; the issue is whether it shares the same set of conditions as "automatically unlocking." Safety interlocks and statutory fire-evacuation requirements take precedence over this rule.
Design applicationwrite the tier into the device's capability declaration, and have the automation editor change the available trigger conditions and confirmation requirements when a user selects a high-tier action, rather than merely reminding the user in copy. Remote unlocking and remote locking SHOULD be two separately authorized capabilities.
Verification examples
- User side: try to create an automation for a high-tier action triggered by a single sensor alone, and observe whether the product adds conditions or refuses.
- Implementation side: check whether the tiering is read jointly by the automation engine, voice entry points, and third-party integrations, or takes effect only in the primary interface.
Counterexamplesunder-delivery — a voice assistant executes "open the door" without verifying the speaker, going through the same path as executing "turn on the light"; over-delivery — raising the thermostat by two degrees also requires a second biometric confirmation, so the user switches to the manual dial to bypass the whole system.
U1-7Sensing-input validity precedes automatic actionMUST
In one sentence: No new motion does not equal no one there; having a reading also does not equal the reading being usable.
Applies toproducts that trigger a physical action based on a sensor, a device report, or an inference result.
RuleAn input MUST be checked against its source, observation time, unit, legal range, coverage area, and known miscalibration conditions before it participates in a decision. When occlusion, low battery, drift, a change in installation position, a multi-source contradiction, or calibration failure would affect a commitment, the affected capability MUST be identifiable and enter a defined degradation path. A fact that cannot be determined stays unknown; an old, normal reading must not be reused as current safety evidence. Evidence used to judge "no one present" MUST state its coverage and validity — no motion detected, a phone leaving, or an identity-match failure cannot individually prove no one is present.
The product MUST define debounce or hysteresis conditions for continuous control, distinguishing entry and exit conditions, and MUST declare whether, on sensing failure, it holds an already-assessed state, restricts output, or hands off to manual control. "Turn everything off" must not be used as the universal safety fallback for every device. Observation validation is expressed by amb.state.observation.validation, and staleness by amb.state.staleness.ttl.
Boundary conditionsthis rule does not require adding an independent sensor for every failure mode, nor does it treat algorithmic confidence as physical safety proof. When verification is insufficient, narrowing automation's scope of applicability is sufficient; the core manual path must still hold.
Design applicationsomeone sitting still for a long time in a meeting room may not trigger a motion sensor; check coverage and evidence first, rather than continually extending the light-off timer. After a device is relocated, re-verify coverage before re-enabling the original rule.
Verification examples
- User side: have a person sit still, lie down, or use a wheelchair, and confirm basic lighting or temperature control is not lost merely for lack of motion.
- Implementation side: inject stale data, wrong units, occlusion, source conflicts, and jitter near a threshold, and check the degradation and recovery conditions, and whether the output flip-flops.
Counterexamplesunder-delivery — a motion sensor with no event for ten minutes concludes the room is empty and turns off every device; over-delivery — any uncertain reading requires the resident to confirm turning on the light every single time.
3.2 U2 Automation is understandable and can be stopped on the spot
Automation is this domain's core value, and also its greatest risk surface. Something happens with no one having issued a command for that instance, and the person in the room has to answer three questions: what happened, why now, and how to make it stop. Every automation rule has a creator, applicability conditions, a scope, and a way to stop. Design MUST account for the fact that the person present may not be the principal, may not be carrying a phone, and may not know this rule exists.
U2-1Automatic execution is perceptible where it happensMUST
In one sentence: When something happens in the living room, it should be perceivable in the living room, not only logged as an entry in the phone.
Applies toautomatic actions that change environmental state and for which the user did not issue the command for that instance.
RuleThe fact that an automatic action is executing or has executed MUST be perceivable to a person present at the physical location where the action happens, not only discoverable in an app, a log, or a notification. The means of perceptibility varies with the consequence tier: a low-consequence action may rely on the observability of the action itself (a light turning on is itself perceptible); a high-tier action with physical consequences (see U1-6) MUST give an on-the-spot, perceptible notice before or as the action happens, and that notice must not depend on the person present carrying a terminal. Using a push notification as the sole means of perceptibility for a high-tier action is prohibited. The means of perceptibility is expressed by amb.automation.execution.perceptible.
Boundary conditionsthis rule does not require a notice for every single automatic dimming — that would cancel out the value of ambient computing (see 2.3). What it requires is that perceptibility be proportionate to the consequence tier, and that a high-tier action must not happen silently. At night and in do-not-disturb situations, an on-the-spot expression that does not startle others should be preferred. A deferrable action may be delayed together with its notice; an action that must be preceded by a notice must not be executed first with the notice added afterward. The notice for a high-consequence action must not be reduced to zero; safety interlocks follow their own dedicated requirements.
Design applicationlet the device itself carry the notice — a short sound before the action, a change in a status indicator light, a warning beep before a mechanical motion. The audience for this kind of notice is everyone present, not the account owner — so it should not appear only somewhere only one person can see.
Verification examples
- User side: have someone without the app installed stay in the space, trigger a high-tier automatic action, and check whether they notice it.
- Implementation side: check whether a high-tier action's notice is produced on the device side; re-verify after turning off every push channel.
Counterexamplesunder-delivery — a door automatically locks at a scheduled time, and the only notice is a notification on the account owner's phone, while the people in the room know nothing about it; over-delivery — every single motion-triggered light turning on comes with a notification sound and a spoken announcement.
U2-2The trigger reason can be traced on the spotMUST
In one sentence: "Why did it turn on right now" MUST have an answer: which rule, who created it, under what condition.
Applies toproducts with automation, scene, routine, or contextual-adaptation capability.
RuleFor any automatic action that has already happened, the product MUST be able to give the affected person, after the fact, a resolvable trigger explanation, containing at minimum: the name of the rule or mechanism that triggered it, that rule's creator or source, the trigger condition satisfied this time, and the execution time. The explanation MUST point to an actionable entry — after seeing the reason, the person can reach the place to modify or disable that rule, not merely be given an untraceable line like "executed by the smart assistant." When the trigger comes from a model inference or a learned result rather than an explicit rule, its nature MUST be truthfully stated, with an entry given to turn off that kind of inference (see U2-7); describing an inferential trigger as a user-set rule is prohibited. The traceable field set is expressed by amb.automation.rule.explanation.
Boundary conditionsthis rule does not require showing the user the model's internal basis or the complete decision path, nor does it require a real-time explanation; what it requires is traceability after the fact, with the traced result sufficient for the person to find and change that rule. For a person present with no account for this product, the scope of the traceability obligation is set out in U4-6.
Design applicationdesign "why did this happen this time" as a history view of the device and the space, not as an appendage to the rule editor — the user starts from "that thing that just happened" to find the rule, not from the rule to find that thing. When several rules jointly bring about one action, list them all rather than showing only the one that executed last (see U2-5).
Verification examples
- User side: after an unexpected automatic action happens, have the user find the reason and disable the rule without asking anyone, recording the number of steps and the success rate.
- Implementation side: check whether the execution log retains the rule identifier, author, and the condition satisfied that time; check whether actions triggered via voice, a third-party platform, or the vendor's cloud are equally traceable.
Counterexamplesunder-delivery — the history only reads "18:42 Living room light: on," with no trigger source at all; over-delivery — the complete condition-evaluation tree is laid out in front of the user, and one light turning on produces twenty lines of technical log.
Basis and referencesfor user comprehension gaps in trigger-action rules, see R04, R06.
U2-3On-the-spot override does not depend on an account or networkMUST
In one sentence: Wanting to make it stop should not first require finding a phone, an account, or a signal.
Applies toactions that execute automatically and whose execution process can be interrupted or whose effect can be immediately undone.
RuleAn automatic action in progress or just executed MUST be stoppable or reversible on the spot by someone present with basic control authority over the space (see U4-2), and that path must not require holding a terminal, being signed into an account, or having an available network or an online cloud service. For a high-tier action with physical consequences (see U1-6), the on-the-spot stop path MUST exist at the location where the action happens or within its reachable range. Making the availability of an on-the-spot override conditional on recognizing the overrider's identity is prohibited — a recognition failure must not become a reason to refuse a stop. The product MUST separately report "the stop request has been received" and "the output has stopped or entered the prescribed safe state," and state any effect that has already occurred and cannot be undone. Every type of action MUST declare the maximum time for the stop to take effect, a physical verification method, and a feasible disposition after a timeout; when a device cannot safely e-stop, it should enter an already-assessed controlled-stop process, and must not merely clear a queue and display "stopped." The on-the-spot override entry and response contract are expressed by amb.control.override.surface and amb.control.override.response.
Boundary conditionsthis rule does not require every action to be reversible — a spoken announcement already delivered, a message already sent, cannot be recalled; for an irreversible action, this rule's requirement becomes "stop it from continuing and stop subsequent triggers of the same kind." Safety interlocks and statutorily mandated actions are not bound by this rule. This rule does not require the person doing the on-the-spot override to have permission to modify the rule; permission to modify a rule belongs to U4.
Design applicationuse the physical control itself as the most reliable on-the-spot override entry (see U1-1): pressing the wall switch once equals "not this time." Overriding and turning off are two different things — what the user wants to stop is this one automatic action, not to make the device stop working from now on; the state after an override should therefore be decided by U2-4, not default to disabled.
Verification examples
- User side: trigger an automatic action with the network disconnected, and have someone present with no account try to stop it, recording whether it succeeds and how many steps it takes.
- Implementation side: check whether the stop path has an authentication, network, or cloud-call step; check whether actions triggered by voice, a third party, or the vendor's side share the same stop path.
Counterexamplesunder-delivery — automatic curtains are lowering, and the only way to stop them is to open the app, sign in, and tap "cancel"; over-delivery — an on-the-spot override is implemented so that a single touch from anyone permanently disables that scene, and family members keep turning off each other's automation.
U2-4The scope of an override is chosen by the personMUST
In one sentence: "Not this time" and "never again" are two different things, and a person must be able to say them separately.
Applies toproducts that allow a user to abort, skip, or undo an automatic action.
RuleAfter a user overrides an automatic action, the product MUST make this-time-only, suppress for a period, and permanently disable this rule separately expressible choices, and make which tier is currently in effect visible to the user. Availability of the three tiers is distinguished by permission: anyone present with basic control authority may use "this time" and "suppress for a limited time" (these two tiers must not require account permission); "permanently disable this rule" belongs to rule-management authority, exercised by someone who holds it; someone without management authority MUST be able to find out the scope over which the rule will continue to apply, and have a path to contact someone with authority — this must not be dismissed with "can't see it, can't manage it." Interpreting a single override by default as a permanent disable is prohibited, and so is, after a user has expressed an override, silently reproducing the same action under the same conditions at the next trigger window — if the product chooses "this time only," it must at minimum let the user see that this rule will trigger again, and offer a one-step-reachable upgrade path (switch to a long-term suppression or disable). The selectable tiers for override scope are expressed by amb.control.override.scope.options.
Boundary conditionsthis rule does not require a choice to pop up for every single override; the default tier may be set by the product ("skip this time" is a suitable default in most scenarios), and what is required is that the remaining tiers be reachable and the current tier visible.
Design applicationkeep the same semantics between an on-the-spot override and an in-app override: a single press on the wall means "skip this time"; a long press or an action in the app can escalate to "not today" or "disable." Writing out "this rule will trigger four more times tonight" is more useful than explaining after the fact why it happened again.
Verification examples
- User side: override once and take no further action, and observe whether the same rule triggers again at the next window, and whether the user knew about it in advance.
- Implementation side: check the persistence scope and expiry method of the override state; check whether there is a path where "the override only applies to the current session and is lost through a different entry point."
Counterexamplesunder-delivery — the user manually turns off a humidifier that turned on automatically, and the rule triggers again every twenty minutes until the user finds and deletes it; over-delivery — every single override pops up a dialog with five options, and the user has to make a configuration decision just to turn off one light.
U2-5Rule conflicts are arbitrated and visible to peopleMUST
In one sentence: When two rules collide, the product must have an answer, not just let whichever executes last win.
Applies toproducts that allow multiple automation rules to exist, where several rules may act on the same device or the same environmental variable.
RuleThe product MUST define an arbitration method for when multiple rules act on the same object at once, covering at minimum: the execution order for simultaneous triggers, the basis for choosing between contradictory actions (one turning something on, one turning it off), and how it is handled when one rule's action forms another rule's trigger condition (chaining and loops). The arbitration outcome MUST be traceable (see U2-2). When a rule is created or modified, the product MUST be able to detect and flag an obvious conflict with an existing rule, rather than letting execution order decide it at runtime; a conflict that cannot be determined at creation time MUST be discoverable after it actually occurs. The arbitration policy is expressed by amb.automation.conflict.policy.
Boundary conditionsthis rule does not require the product to automatically resolve every conflict, nor does it require a complete formal check; what it requires is that the arbitration method be explicitly defined, obvious conflicts be flagged, and actual conflicts be traceable. When cross-vendor, cross-platform rules cannot perceive each other, the product MUST state that limitation rather than pretend it does not exist.
Design applicationmake "which rules currently govern this device" part of the device view. A space shared by multiple people is a hotspot for conflict: two people each set up an opposing rule, and if the product converges purely by execution order, what the user sees is the device flipping back and forth between two states, with each person thinking the other is sabotaging it (see U2-6, U4-6).
Verification examples
- User side: have two users each create an opposing rule for the same device, and observe whether they are warned at creation time, and whether the runtime result is explainable.
- Implementation side: construct a rule pair where A triggers B and B triggers A, and check whether loop suppression exists; check whether the order for simultaneous triggers is stable and defined.
Counterexamplesunder-delivery — "turn on the light at sunset" and "turn off the light when no one's home" fight each other, the light switches on and off every minute, and the history is just one long list of toggles; over-delivery — to avoid conflict, any two rules are forbidden from touching the same device, and the user is forced to cram all their logic into one giant rule.
Basis and referencesfor the long tail and repetition of trigger-action rules, see R05; for defect categories (including infinite loops) and the drop in users' predictive ability, see R06; for a mechanism example of power-on behavior and an occupancy sensor pulling against each other, see R24.
U2-6When a rule's author and the people affected differ, notification is requiredMUST
In one sentence: When a rule acts on someone else, that person has the right to know it exists.
Applies toa space shared by multiple people, or a product whose rule effects act on people other than the rule's author.
RuleWhen an automation rule changes the environmental state of someone other than its author, the product MUST make that rule knowable to the affected person: at minimum, its existence, what it acts on, and its trigger condition must be discoverable (see U2-2, U4-6). When a rule involves collecting, recording, or reporting the affected person's behavior (arrival notification, departure notification, activity logs, door-lock usage records), the affected person MUST be proactively notified, not merely given something discoverable; providing a rule configuration whose purpose is to hide it from the affected person is prohibited. An affected person holds the U2-3 on-the-spot override right over a rule that affects them; whether they can modify or disable that rule is decided by U4's division of permissions. The notification audience is expressed by amb.automation.notice.audience.
Boundary conditionsthis rule does not require pushing every rule to every person in the space — that would create an unbearable notification burden. It distinguishes two tiers: a rule that changes environmental state need only be discoverable; a rule that collects or reports personal behavior MUST be proactively disclosed. A legally authorized scenario (such as a supervised minor, or workplace recording with explicit notice) follows the applicable regulation; its determination is outside this specification's scope.
Design applicationmake "who this rule will let know what about me" an explicit declaration at rule-creation time, and decide the notification obligation from it. The power asymmetry in family and shared-housing scenarios is this rule's core motivation: a rule that says "notify me when someone gets home" looks, from the configuration screen, like an ordinary piece of automation; from the affected person's position, it is ongoing whereabouts reporting.
Verification examples
- User side: as member A, create a rule that reports member B's whereabouts, and check whether B is notified, can look it up, and can override it.
- Implementation side: check whether a configuration item or parameter exists that can hide a rule from a specific member; check whether the notification fires when the rule takes effect rather than after the fact.
Counterexamplesunder-delivery — a rule that says "notify A when B's phone joins the home Wi-Fi" has existed for six months, and B was never told; over-delivery — every single trigger of every rule is reported to everyone in the space, and ordinary lighting automation drowns out the few that genuinely need to be known.
Basis and referencesfor the capability gap between the installer and passive users in a multi-user smart home, see R07; for a named case of smart-home devices used to monitor a partner, see R15.
U2-7Learned automation does not take effect silentlySHOULD
In one sentence: A habit guessed from behavior defaults to a suggestion, not a rule already running.
Applies toproducts that automatically generate automation rules or habitual actions from user behavior, sensor data, or usage patterns.
RuleAutomation obtained through system learning or inference SHOULD be presented as a suggestion by default; turning it into automatic execution requires the user's explicit acceptance. An already-effective learned automation SHOULD be equally discoverable, disableable, and overridable as a rule the user explicitly created, and MUST be truthfully labeled as inference-sourced when traced (see U2-2). Presenting a learned automation as a user-set rule is prohibited, as is applying an unaccepted learned automation to a high-tier action with physical consequences (see U1-6). After a user rejects a suggestion, re-proposing it MUST be restricted by a declared suppression window or a substantive contextual change condition; it must not simply reword the copy to get around the rejection. The re-proposal policy is expressed by amb.automation.learned.reproposal; how learned automation takes effect is expressed by amb.automation.learned.mode.
Boundary conditionsthis rule does not prohibit continuous adaptation that needs no confirmation — adaptation such as adjusting screen brightness to ambient light, or ventilation rate to headcount, whose effect is continuous, always manually overridable, and leaves no residue, is outside this rule's scope. The criterion is whether the adaptation produces a discrete action that will repeat on its own in the future.
Design applicationmake "suggested" and "in effect" two visible states, and let the user see how many observations a given suggestion is based on. "You've been turning off the light at eleven every night lately — automate it?" is a suggestion; starting to turn off the light at eleven every night outright is making the decision for the user — the latter fails in a way that's hard to understand on a night the user has guests over.
Verification examples
- User side: create a pattern of regular behavior, and observe whether the product proposes a suggestion or starts executing outright; after rejecting a suggestion once, observe whether it reappears soon after.
- Implementation side: check the source label for learned automation in the traceability view; check whether high-tier actions are excluded from automatic effect.
Counterexamplesunder-delivery — after observing for two weeks, the device starts automatically locking the door every night, and the user finds out only from outside the door; over-delivery — every single minor brightness adjustment becomes a suggestion requiring confirmation, and the user, buried under suggestion cards, turns the whole capability off.
U2-8Triggering, execution, and composite scenes have clear boundariesMUST
In one sentence: A condition still holding does not mean doing it again; a scene half done does not count as fully complete either.
Applies toproducts with scheduling, event triggers, sustained-condition control, chained rules, or multi-device scenes.
RuleEach type of trigger MUST make explicit whether it responds to a single event, enters a state, or executes in a loop while a condition persists; looped execution MUST have an interval, a count or duration cap, and an exit condition. A time-based rule MUST define its time zone, and how it handles an untrustworthy clock, a forward or backward time jump, a recurring window, and a missed window. Resending the same trigger, a network reconnection, and a device restart must not cause an unintended duplicate action.
A composite scene MUST list its sub-actions, dependency order, and success criteria, distinguishing not-yet-submitted, executing, and result item by item, and roll up to succeeded, partially complete, failed, or pending verification. It MUST state in advance which subsequent steps are blocked, which may continue, and which need remediation when one step fails or is unknown; cross-device actions must not be assumed to succeed simultaneously as a matter of course. Remediation MUST re-check the current state, authorization, and any new action the person has taken in the meantime, and must not revoke a person's new decision in order to restore the scene. Stopping an entire scene must cover the steps not yet submitted, and must state the part already submitted that cannot be stopped.
The trigger policy is expressed by amb.automation.trigger.policy, and scene disposition by amb.automation.scene.failure_policy.
Boundary conditionsthis rule does not require every device to support rollback or strict simultaneous execution, nor does it require adding a scene-management interface to a single-device switch; when real capability falls short, the scene's commitment should be narrowed.
Design applicationin a "leaving home" scene, if the lights have turned off but the door-lock result is unknown, display "Lights off, door lock pending check," keep lighting control available, and do not automatically unlock again to simulate a rollback.
Verification examples
- User side: stop a scene midway, and check whether the completed, not-yet-executed, and pending-verification parts can be told apart, and whether the next step is known.
- Implementation side: redeliver the same event repeatedly, roll the clock back, disconnect one sub-device and inject a late-arriving receipt, and confirm that an already-completed action is not redone and manual suppression is not bypassed.
Counterexamplesunder-delivery — one failure causes the entire "arriving home" scene to re-execute, repeating the unlock and the dispensing; over-delivery — in pursuit of all-or-nothing, every low-consequence action that could have completed independently is canceled.
Basis and referencesidempotence and synchronicity of an action are different properties, see R31; the declaration of a property by itself does not prove a physical action can be safely retried.
3.3 U3 What remains after disconnection
There is a fundamental difference between an intelligent environment and a phone app: when the app won't open, the user just puts the phone down; when the lights in the house won't turn on, the person is stuck in the dark tonight. Hanging a room's livability on one company's server and one subscription is a risk unique to this domain, and it is usually not decided at design time — it is defaulted into at architecture-selection time: build cloud control first, leave the local path for later, and then there is no later. This principle governs the system's dependence on the network, cloud service, account, subscription, and the vendor's continued operation: which capabilities remain once these dependencies are cut, when the user is told about it, and what the device becomes once the vendor decides to stop providing the service.
U3-1Core functions have a local pathMUST
In one sentence: With no network, no account, and no subscription, the light must still turn on and the door must still open.
Applies toproducts that bring basic physical-environment functions (lighting, entry, temperature control, ventilation, water supply and drainage, cooking, and security) under system control.
RuleThe product MUST define, for the basic functions it controls, a usable path that does not depend on the internet, the vendor's cloud service, the user's account, or subscription status, and MUST keep that path reachable whenever the device has normal power. This path must cover at minimum: turning on and off, and returning the device to a state that does not impede a person's normal use of the space. Designing the availability of a basic function as a function of sign-in state or subscription state is prohibited. The local path may be carried by a physical control (see U1-1), or by a control method within the local network; when the latter is used, its availability MUST be declared separately for the case where the internet is down but the local network is still up, and the case where the local network is also unavailable. The local path's coverage is expressed by amb.offline.local_path.scope.
Boundary conditionsthis rule does not require every function to have a local path — remote viewing, controlling from afar, cross-household sharing, and speech understanding or model inference depending on a remote party are normal. What it requires is that the basic functions listed in this rule have a local path. This rule does not prescribe the local path's implementation form, nor does it require the product to build its own local gateway.
Design applicationwrite "what this device can still do once offline" into the device's capability declaration, and make it visible at procurement, installation, and troubleshooting alike. Replay a day's worth of basic usage tasks in a controlled space, then arrange an on-site walkthrough per Appendix A's environmental requirements. A product that cannot do this usually needs not a better error message, but a change to the structure of its control chain.
Verification examples
- User side: disconnect the internet while keeping the local network, and complete the three operations of turning on a light, opening a door, and adjusting temperature; then disconnect the local network and repeat.
- Implementation side: check whether the control chain for basic functions necessarily goes through a remote party; check the availability of these functions under the three states of account sign-out, subscription expiry, and token expiry.
Counterexamplesunder-delivery — once the home network is down, the lights inside can only be controlled via the phone app, and the app requires signing in, and signing in requires a network connection; over-delivery — to guarantee local availability, every remote capability is abandoned, so after leaving home the user cannot confirm whether the door is locked and is forced to install a second system.
Basis and referencesfor a public record and a regulator's concern about a cloud service's termination rendering an already-sold hub unusable, see R16; for a public record of an already-sold device's local control being restricted by a subscription condition, see R17.
U3-2Dependencies are available before purchase and installationMUST
In one sentence: Which functions disappear without the cloud must be disclosed before purchase, not after something breaks.
Applies toproducts whose function availability depends on the vendor's cloud service, an account, a subscription, or a continuous network connection.
RuleThe product MUST, before the user makes a substantive commitment (purchase, installation, construction work, signing a service contract), state in an obtainable way: which functions need the internet, which need the vendor's cloud service, which need an account, which need a paid subscription, and what state that function falls into when each of these dependencies is cut. The disclosure MUST name the specific function, not a blanket "some functions require a network connection." Writing a critical dependency only somewhere visible after installation is complete is prohibited — the wording on the packaging, the product page, and the installation instructions must match reality. It MUST also separately declare the minimum support period or known end date for cloud functions and for security maintenance, the basis on which the period is counted, and any unknown parts, distinguishing the warranty period, the support period, and the advance-notice period before service discontinuation. Dependency disclosure is expressed by amb.offline.dependency.disclosure.
Boundary conditionsthis rule does not require the product to disclose its technical architecture or service-provider information; what it requires is a function-to-dependency correspondence judgeable from the user's point of view. This rule does not prescribe the medium of disclosure.
Design applicationmake the dependency disclosure a function-comparison table, not a paragraph of disclaimer — the question the user needs to answer is something irreversible, like "does this wall in my home need to be chased for wiring." Investment in an intelligent environment often includes construction work: a removed mechanical door lock cannot be put back, which makes pre-purchase disclosure more important here than for an ordinary software product.
Verification examples
- User side: without installing the product, judge "whether this device can still be turned on and off once offline" using only publicly available material, and record whether that judgment matches the actual test.
- Implementation side: check the functional wording on the product page, the packaging, and the installation instructions item by item, and check for a function with an unmentioned dependency.
Counterexamplesunder-delivery — a door-lock product page emphasizes "open with your phone," while the fact that remote unlocking doesn't work once offline is mentioned only in the app's help center; over-delivery — a technical checklist itemizing every dependency replaces a readable explanation, and after reading it the user still cannot answer "will I be able to get in during a power outage."
U3-3Degradation is a defined state, not a faultMUST
In one sentence: Being offline is not an error dialog; it is an operating state the product already planned for.
Applies toproducts that lose some capability because of the network, a cloud service, or a device being offline.
RuleThe product MUST define degraded operation as a named, enterable, exitable normal state, not a series of error branches. The degraded state MUST specify: which capabilities are retained, which are suspended, how a user action taken during the suspension is handled (rejected, queued, or locally effective pending sync), and how it converges with the remote party on exiting the degraded state. Rendering an unavailable capability as available in the degraded state is prohibited, as is silently dropping a user action taken during degradation. On reconnection, the current device state, valid authorization, manual suppression, and trigger conditions MUST be checked before deciding to continue, cancel, or request handling. A queued command MUST have an expiry condition and a visible cancel entry; an expired command, a revoked authorization, and an already-overridden action must not be caught up and executed, and an action not safe to repeat whose result is unknown must not be resent. Recovery of multiple devices must control concurrency, to avoid a shock or a chain of triggers. The degradation and reconnection policies are expressed by amb.offline.degraded.profile and amb.offline.reconnect.policy.
Boundary conditionsthis rule does not prescribe which specific capabilities degradation should retain — that is decided by U3-1 and the product's positioning. This rule does not require a separate degradation tier for every combination of dependencies, but the degraded state MUST be distinguishable by the user from "the device is broken."
Design applicationmake degradation a visible state of the device and the space, and have it clearly state what can still be done right now, rather than listing what cannot. What the user needs most when offline is "I can still turn on the light," not "connection failed, please check your network." An operation queued pending sync needs a visible cancel entry, to avoid a burst of expired commands executing all at once when the network comes back.
Verification examples
- User side: use the product for ten minutes while offline, and record whether the user can state which functions are currently available; after the network returns, check how the earlier actions were handled.
- Implementation side: check whether the degraded state has an explicit representation read by the interface layer; inject the two cases "network up but cloud service unavailable" and "cloud service up but device offline," and check whether they are distinguished.
Counterexamplesunder-delivery — every action offline pops up "network error," and the user cannot tell which functions still work; over-delivery — to mark the degradation, every interface element is disabled while offline, including local controls that would otherwise work fine.
U3-4Service termination has advance notice and an end-state disclosureMUST
In one sentence: When a service is about to stop, it must be disclosed in advance, along with what the device becomes afterward.
Applies toproducts whose device function depends on the vendor continuing to provide a service, including cloud-service shutdown, product-line discontinuation, account-system consolidation, and firmware support ending.
RuleWhen a vendor terminates a service that supports a device's operation, it MUST give advance notice before that takes effect, and at the same time state the device's end state after the service terminates: which functions are retained, which disappear, whether it can migrate to another control method, and how the user's existing data can be exported, when that opens, and its deadline (including whether export remains possible after termination); the export window MUST be actually usable before the service terminates. Disclosing only after termination has taken effect is prohibited, as is disclosing only that "the service will stop" without stating what the device becomes. The advance-notice period SHOULD be proportionate to the user's degree of investment — a device involving installation work or an irreversible modification warrants a longer advance notice. If the end state is that the device loses all its smart functions, it MUST explicitly state whether it still retains basic non-networked functions. The advance-notice period and end-state disclosure are expressed by amb.offline.discontinuation.notice and amb.lifecycle.end_of_support.terminal_state.
Boundary conditionsthis rule does not prohibit a vendor from terminating a service, nor does it prescribe a specific length for the advance-notice period; what it requires is that an advance-notice period exists, set by the product according to the degree of investment with the basis recorded, and that the end state be disclosed. An emergency discontinuation caused by a security vulnerability, a legal requirement, or force majeure is not bound by the advance-notice requirement, but the end-state disclosure and data-export obligations still hold.
Design applicationdesign the end state as a product decision, not a consequence: whether a device falls back to local availability, opens up to third-party control, or fails entirely once the service terminates is a choice that can be made at the design stage. The difference between a light that a wall switch can still control after the service terminates and a light that becomes a plastic shell lies in the architectural choice made under U3-1, not in the wording of the discontinuation notice.
Verification examples
- User side: search the product line's past discontinuation records, and check whether the advance-notice period and end-state disclosure at the time matched this rule.
- Implementation side: check whether a server-side switch exists that can remotely disable the device without releasing a firmware update; check whether the data-export path remains usable after the service terminates.
Counterexamplesunder-delivery — a hub device stops working weeks after the announcement, and the user finds out only on the day the device fails; over-delivery — to avoid ever making a termination commitment, no service is ever taken down, and old, unmaintained firmware stays running indefinitely, with the safety risk left to the user.
Basis and referencesfor public records of a discontinued service rendering a device unusable, see R16, R18, R19; for official guidance documents related to device lifecycle, see R25, R26 (the body text of the latter was not obtained this time).
U3-5Already-held local capability is not retroactively withdrawnSHOULD
In one sentence: Something already installed on the wall should not need a paid subscription to turn the light on after some update.
Applies toproducts, already sold and installed, whose function can be changed by a firmware update or a server-side policy.
RuleA locally usable function a device already had when sold SHOULD remain available through its subsequent firmware updates and server-side policy changes, and must not be withdrawn because of a new subscription, an account-policy adjustment, or a change in business model. Converting a basic function that previously required no subscription (within U3-1's listed scope) into a subscription item through a firmware update is prohibited; when an adjustment is genuinely necessary, already-sold devices SHOULD retain their original function, or be given an executable alternative path and an exit choice before the change. When a change involves removing a function, disclose it per U6-5. The change policy for local capability is expressed by amb.offline.local_path.regression_policy.
Boundary conditionsthis rule does not prohibit charging for a new function, nor does it prohibit removing a vulnerable capability for safety reasons — the latter SHOULD state the reason and provide an alternative path. Adjusting the commercial terms of a cloud-side capability (remote access, cross-household sharing, model inference) is outside this rule's scope.
Design applicationmake "the function baseline at the time of sale" a checkable record in the device's firmware, so subsequent changes can be compared against it. This rule's actual object of constraint is a commercial decision, not an engineering implementation — so someone needs to be responsible, as early as the feature-planning stage, for answering "does this capability belong to the already-sold baseline."
Verification examples
- User side: on a device that has been in use for more than a year, check whether its currently available local functions match the description at purchase.
- Implementation side: check whether the firmware-release process has a step comparing against the already-sold baseline; check whether the server side can disable a local function without a firmware update.
Counterexamplesunder-delivery — after a firmware update, local video playback that was previously free now requires a subscription; over-delivery — to avoid touching the already-sold baseline, every security fix that would touch that function is refused, leaving a known vulnerability on the device.
Basis and referencesfor a public record of an already-sold hub having a subscription condition added, at the cost of losing firmware security updates, see R17.
U3-6Safety-related functions do not depend on a single remote partyMUST
In one sentence: The basic functions of smoke detection, door locks, and alarms are not staked on a single cloud service.
Applies todevices and systems handling fire detection, gas-leak detection, intrusion alarms, emergency calling, entry control, or medical-assistance reminders.
RuleA safety-related function's local detection and local alerting MUST still hold when the internet, the vendor's cloud service, and the account system are all unavailable, and must not be premised on a remote party being available. When an outbound-dependent step (a push notification, alarm receipt, a call) is unavailable, that step's failure MUST be indicated locally — silently handling an outbound failure is prohibited. The availability of a safety-related function and its dependencies MUST be listed separately in the U3-2 dependency disclosure. The independence requirement for safety-related functions is expressed by amb.offline.safety.independence.
Boundary conditionsthis rule does not substitute for the mandatory standards and certifications in fire, gas, electrical, and security domains, which take precedence; this rule also does not require the product to operate its own alarm-receiving service. This rule does not prohibit a safety function from having cloud-side enhancements; what it requires is that basic detection and local alerting do not fail because the cloud side fails.
Design applicationdesign "local alerting" and "outbound notification" as two independent chains, each with its own independent failure indication. The user's mental model of a safety device is "it's always watching" — so a sensor that has been offline for three days but still shows normal is more dangerous than one that clearly shows offline. Being offline should be proactively disclosed on its own, not left for the user to go check.
Verification examples
- User side: disconnect the internet and trigger a detection (a test button or a standard test method), and check whether the local alarm sounds; check whether the user is told the notification could not be delivered.
- Implementation side: check whether the detection judgment is completed on the device side; inject the three cases of an unreachable cloud service, a failed push channel, and an invalid account, and check the local behavior in each.
Counterexamplesunder-delivery — a gas alarm puts its judgment in the cloud, and once offline the sensor keeps working but no longer sounds; over-delivery — every non-safety device is also designed to the safety tier, and a smart plug going offline triggers a high-priority alert every time.
3.4 U4 Control authority within the space
People in a physical space are not equal, and this is the biggest difference between this domain and personal-device products. One person pays the bill, another just lives there, another comes to clean, another is staying for three days, another is a child in the household. Their legitimate claims on the same light, the same lock, the same camera differ, yet most products compress this relationship into two tiers: "account owner" and "person shared with." This principle governs who can control the devices in this space, and the control relations among the people present: how permission is divided by identity and duration, what minimum control a person present retains that cannot be stripped away remotely, and whether this set of relations is visible to the people living inside it.
U4-1Control authority and presence are defined separatelyMUST
In one sentence: Being in the room does not equal having permission, and having permission does not equal having to be in the room.
Applies tospaces and devices that allow control by multiple people, or that allow remote control.
RuleThe product MUST define presence (a person currently being in the space) and control authority (a person having been granted operating standing over a device or a space) as two independent quantities, and explicitly specify how the two jointly decide whether an operation is allowed. It MUST answer at minimum: whether remote operation is restricted while someone is present in the space, what operations a person present without an account has, and which tier applies when presence determination fails. A failure of presence determination MUST fall back to a tier that does not harm the person present — directly equating "cannot detect a person" with "no one in the space" is prohibited, for the purpose of executing an action with physical consequences. How role and presence combine is expressed by amb.access.role.model and amb.access.presence.binding.
Boundary conditionsthis rule does not require the product to implement human-presence detection, nor does it require every operation to check presence. A product with no presence-detection capability treats it as "presence unknown" and sets its fallback accordingly, which equally satisfies this rule. This rule does not prescribe the number or naming of roles.
Design applicationtreat presence as a three-valued thing, not a boolean: someone present, no one present, unknown. Most incidents come from treating "unknown" as "no one present" — a sensor's view being blocked, a person sitting still past the timeout duration, a pet indistinguishable from a person. "Away mode" triggered by a phone's location while someone is still in the house is the most common failure in this domain, and its root cause is treating one device's location as the presence state of every occupant.
Verification examples
- User side: have someone sit still within the sensor's coverage past its timeout duration, trigger automation that depends on "no one present," and observe the result.
- Implementation side: check whether presence has an "unknown" value that downstream reads; check whether remote operation reads the presence state.
Counterexamplesunder-delivery — the moment the last phone leaves the geofence, the "away" scene executes, and the elderly person left in the house has their air conditioner and lights turned off; over-delivery — every operation requires confirming presence first, so a user away from home cannot turn on the air conditioner for family members.
U4-2A person present retains basic control over devices that affect themMUST
In one sentence: Someone living here MUST be able to turn off whatever is shining on them, blowing on them, or sounding in their ear.
Applies todevices that produce a direct physical effect on a person present, and non-safety-purpose sensing devices deployed in a personal private living area.
RuleAnyone lawfully using the space and currently affected, including residents, short-term guests, visitors, and staff, regardless of their account role in the product, MUST be able to stop on the spot a device output currently acting directly on them, covering at minimum: stopping it, muting it, and keeping it from automatically repeating for a period (see U2-4).
Within a private living area (bedroom, bathroom, changing area, a personal room), someone lawfully using that area likewise retains the ability to stop non-safety-purpose sensing (video, audio recording, continuous human recognition) within it, with its boundary and verification carried out per U5-4's "stop path." This capability must not require account permission, must not be overridden by a remote operator, and must not be configurable off by an administrator; shared safety facilities (smoke detection, gas, emergency calling, access control) and space-level facilities over which the operator retains control are excluded — that exception must state the nature of the facility, the reason control is retained, and a feasible help-seeking path; where a safety function is involved, disclose it per U3-6. A long-term identity or an administrator role must not be configured as a means of revoking someone else's existing basic control. This rule's basic control does not include modifying rules, adding or removing devices, or viewing history; those are decided by role permission. The scope of basic control is expressed by amb.access.occupant.baseline.
Boundary conditionsthis rule does not grant a person present control over the whole space, and does not apply to safety interlocks, statutorily mandated actions, or fire-safety equipment. In a hotel, office, rental, or shared space, the operator may retain control over space-level facilities (central HVAC, communal lighting, access control), but this rule still applies to devices that act directly on an individual. A member role may decide rule-management authority and history-access authority, but must not use length of stay, being unregistered, or a guest label to cancel basic control over a device acting directly on that person.
Design applicationbind this control to the device itself or the room, not to an account — because the person who needs it is exactly the person with no place in the account system. Children, the elderly, a partner, a housemate, and someone being cared for can all be people in this space with no administrator permission; a bedroom camera that only a paying account holder can turn off is, by design, a device imposed on someone else.
Verification examples
- User side: as an accountless family member, try to turn off a camera pointed at yourself, a speaker currently playing, and a vent currently blowing, and record whether it succeeds.
- Implementation side: check whether a configuration item exists that lets an administrator turn off a present person's basic control; check whether a remote command can override the result of an on-the-spot stop.
Counterexamplesunder-delivery — only the account owner can turn off the bedroom camera, and the person who lives there can only cover the lens with something; over-delivery — anyone present can permanently disable every security device in the space, and a visitor turns off an elderly person living alone's emergency call.
Basis and referencesfor role gaps in a multi-user smart home and a passive user's position during a fault, see R07; for bystanders' claims to device control, see R09 (abstract only verified).
U4-3Temporary and restricted identities have scope and durationMUST
In one sentence: A guest's permission needs a boundary, and it needs to expire.
Applies toproducts that allow granting control authority to a non-long-term member (a visitor, a tenant, cleaning staff, a repair technician, temporary caregiving, a short-term guest).
RuleThe product MUST support authorization with scope and duration: at grant time, it MUST be able to limit the devices or space scope that can be controlled, and set an overall expiry point; a recurring time window and a usage count are additional limits within the validity period, and cannot substitute for the overall expiry. Defaulting to granting full administrative rights, or offering temporary authorization that cannot be terminated, is prohibited. A device must enforce expiry against a trusted time; when the clock is untrustworthy, control may continue to be granted only when it can be proven still within the validity period — otherwise the temporary credential is refused with a feasible alternative path given, and it must not be extended indefinitely. This restriction must not impede statutory evacuation or independent basic control. Once authorization expires or is revoked, the authorized party's control, history access, and notification receipt for the corresponding device MUST terminate at the same time (see U4-4). The scope and duration of authorization are expressed by amb.access.grant.scope and amb.access.grant.ttl.
Boundary conditionsthis rule does not prescribe how roles are tiered, nor does it require every product to offer fine-grained authorization; a product with limited capability may offer only an "all devices + fixed duration" tier, but the duration MUST exist and be enforceable. This rule does not cover the rights and obligations within a statutory tenancy or employment relationship.
Design applicationmake answering the duration mandatory at the time authorization is created, rather than an optional advanced setting. The default duration for a grant SHOULD be a finite tier, not forever — because forgetting to revoke is the norm, while remembering to revoke requires someone to proactively recall something months later. The evidence of authorization itself (a temporary passcode, a QR code, a key card, a spoken phrase) SHOULD also expire together with the grant.
Verification examples
- User side: create a two-hour cleaning authorization, and after it expires, try to open the door, view history, and receive notifications as the authorized party.
- Implementation side: check whether expiry is enforced jointly by the server side and the device side; check whether an already-issued temporary credential still expires while offline.
Counterexamplesunder-delivery — the door-lock passcode given to a short-term guest remains valid after checkout, requiring the landlord to delete it manually; over-delivery — every family member is turned into a temporary authorization needing monthly renewal, and a member returning from a business trip finds they cannot get into their own home.
U4-4The effective scope of permission revocation is verifiableMUST
In one sentence: After moving out, leaving a job, or breaking up, whether someone can still open this door needs an answer on the spot.
Applies toproducts that allow revoking someone else's control authority.
RuleWhen revoking a person's control authority, the product MUST let the operator know on the spot whether the revocation has already taken effect, distinguishing three states: fully in effect on every relevant device, partially pending on some devices (an offline device, a local credential not yet synced), and cannot be confirmed. The pending part MUST list the specific devices and the conditions for it to take effect, and be verifiable once it does. Rendering "removed from the member list" as a completed permission revocation is prohibited. Revocation MUST reach independent credentials that person previously obtained (a temporary passcode, a key card, a bound voice profile, an authorized third-party platform connection) and their standing to receive notifications. The verification method for revocation is expressed by amb.access.revocation.mode.
Boundary conditionsthis rule does not require every device to be revocable instantly — a mechanical key, a copied physical credential, and already-exported data cannot be revoked through software; this kind of limitation MUST be explicitly stated, not evaded. This rule does not prescribe a deadline for revocation, but the pending state MUST be visible and have a defined disposition.
Design applicationdesign permission revocation as an operation with a receipt, not a list edit. This rule's use scenarios often carry urgency and safety implications: a breakup, leaving a job, a dispute, a property handover. At these moments, what the user needs answered is "can he still open this door right now" — "removed from the household" does not answer that question. A part that cannot be revoked (such as the location of a remembered mechanical key, a known door-lock passcode) SHOULD be proactively flagged as needing separate handling.
Verification examples
- User side: remove a member while a device is offline, and check whether the interface indicates that device is pending; once the device reconnects, verify whether it actually becomes invalid.
- Implementation side: check item by item whether the revoked party's credentials, third-party connections, notification subscriptions, and history access all become invalid in sync; check whether a direct control path exists that bypasses the member system.
Counterexamplesunder-delivery — a former resident, removed from the household a month ago, can still open the door via a speaker paired earlier; over-delivery — a single mistaken permission revocation causes every device in the house to re-provision, and the owner locks themselves out too.
Basis and referencesfor the mechanism where a smart lock cannot update its access-control list while offline, so a revoked person can still unlock it, see R13; for a taxonomy of intimate-partner surveillance methods, see R14 (abstract only verified); for a vendor's own account of residual permission after removal, see R21.
U4-5A space has more than one control entrySHOULD
In one sentence: One person losing their account should not lock the whole house along with it.
Applies toproducts that concentrate a space's administrative authority in a single account or a single device.
RuleA space's administrative control SHOULD not depend on only one person's account, one device, or one credential: the product SHOULD provide at least one path that can still recover control of the space when the primary administrator is unavailable (a lost account, a damaged device, the person's incapacity or death, a broken relationship), and state that path during setup. Designing the recovery path so that it must be initiated by the primary administrator personally is prohibited — that does not hold when the primary administrator is unavailable. The recovery path may be a second administrator, a physical reset that can be performed offline, or a manual process with identity verification; when a physical reset is used, its consequences MUST be stated (see U6-4). The recovery path must not be implemented as a backdoor that bypasses U4-4's permission revocation: someone whose control has already been revoked does not regain control through the recovery path. The redundancy method for the administrative entry is expressed by amb.access.admin.redundancy.
Boundary conditionsthis rule does not require every product to offer human customer-service recovery; a physical-reset path executable by someone present is sufficient, as long as its consequences are stated. This rule does not prescribe the strength of identity verification for the recovery path; that strength SHOULD be proportionate to the scope of control being recovered.
Design applicationprompt setting up a second administrator as early as space creation, rather than only offering a recovery flow once something has gone wrong. This rule's real-world scenarios include inheritance and caregiving: an elderly person's smart door lock is bound to one child's account, and another child cannot get in during an emergency; after someone living alone passes away, their family cannot turn off the automation still running.
Verification examples
- User side: simulate the primary administrator's account being completely unavailable, and try to have another person in the space recover control of the devices, recording the path and materials required.
- Implementation side: check whether the recovery path requires the primary administrator's participation; check whether a revoked party remains revoked after recovery.
Counterexamplesunder-delivery — after the owner's account is stolen, every door lock and camera in the house is controlled by the attacker, and the owner has no path to take it back; over-delivery — the recovery path is implemented so that anyone present can take over by holding a device for ten seconds, letting an intruder take over the whole house directly.
U4-6Who can control and who can see is discoverable by people presentMUST
In one sentence: People in the room have the right to know who controls this space and who can see into it.
Applies toa space shared by multiple people, or a product that allows a non-present person to control or view remotely.
RuleSomeone lawfully using the space MUST be able to look up information related to their own area: who currently holds control authority over this space or the devices in it, each one's scope, and whose data on which devices can be accessed by whom. The recipient MUST resolve to a specific service, organization, or restricted lookup list; disclosing private contact details is not required. Providing a configuration whose purpose is to hide a specific member's permissions or access records from within the space is prohibited. While remote access is happening (someone is viewing the camera, listening, or using an intercom), that fact SHOULD be perceivable to the people present at the device itself (see U5-1). The lookupable scope is expressed by amb.access.roster.visibility.
Boundary conditionsthis rule does not require disclosing another person's account identity information, contact details, or location to a person present; what is lookupable is the existence and scope of permission and access, not another person's personal profile. This rule does not apply to law-enforcement access conducted lawfully and that must not be disclosed; that determination is outside this specification's scope. In shared office and public spaces, the operator's operations access may be presented aggregated by role, but must not be stated as "no one has access."
Design applicationmake this lookup list a property of the space, not a setting on an account, and give it an entry reachable at the device itself — the person who needs it may be exactly the person with no administrator permission. "Who can see me in this room" is a question for someone present, not a question for the account owner.
Verification examples
- User side: as a family member with no administrative permission, try to find out who can control the bedroom devices and who can view the living-room camera, recording the path and the completeness of the result.
- Implementation side: check whether a configuration exists that can hide a member's permission or access record; check whether third-party platform access and vendor operations access are counted in the list.
Counterexamplesunder-delivery — a family member discovers only two years later that another person could remotely view the living-room camera the whole time; over-delivery — every single remote view is announced house-wide by voice, turning an ordinary family check-in into a broadcast event.
Basis and referencesfor the installer possessing device information others do not, see R07; for the tension in privacy expectations between bystander and owner, see R09 (abstract only verified); for a vendor-side division of roles and visibility scope, see R21, R22.
3.5 U5 Sensing happens on people
A sensor does not ask whether the person it's sensing has this app installed. The people sensed in this domain and the people who buy the product are not the same group — guests, cleaners, tenants, children, delivery workers, neighbors, and passersby can all fall within sensing range, and they have no account, never agreed to any terms, and have no entry point to see what has been recorded about them. This principle governs the ongoing sensing in the environment itself: whether the fact that sensing is happening can be perceived from the device, whether the sensing scope can be silently expanded, and what stopping sensing means. This principle also constrains the knowability of sensing, the boundary of its purpose, minimization, stoppability, and the retention and erasure of local and remote data.
U5-1Sensing state is perceivable from the device itselfMUST
In one sentence: Whether a camera is recording must be visible from the camera itself, not looked up in the app.
Applies todevices with camera, audio-recording, continuous ranging, radar, or other human-sensing capability.
RuleThe fact that a device is currently sensing MUST be perceivable to a person present from the device itself, through means including but not limited to an indicator light, an on-screen prompt, the position of a mechanical shutter, or an audible tone. That indicator MUST be reliably linked to the actual sensing state — it must not merely show power or network being on, and higher-level software must not repaint "currently sensing" as "not sensing"; providing a configuration that turns off the sensing indicator while sensing continues is prohibited. The indicator MUST distinguish at least two states: not sensing, currently sensing; a device with both local-processing and outbound modes SHOULD be able to distinguish further. While remote access is happening, indicate it the same way (see U4-6). The indicator must be understandable under the actual installation location, lighting, and noise conditions; a critical state must not be distinguished by color alone, and on-the-spot basic control must not have only a voice or fine-touch means. The indicator method is expressed by amb.sensing.indicator.mode.
Boundary conditionsthis rule does not require the indicator to be noticed under any lighting and noise condition, nor does it require the indicator to be immune to physical covering — a user putting tape over it themselves is not a violation. What it requires is that the product itself provide no capability to hide sensing. The indicator's intensity may be adjusted for a night-vision scenario, but must not be reduced to zero. This rule does not cover covert evidence-gathering devices operated lawfully; the rules applicable to them are outside this specification's scope.
Design applicationmake the indicator part of the sensing chain itself: the lens lighting up the moment it is powered, the microphone array lighting up the moment it captures audio. The gap between "the app shows the camera is off" and "the camera is truly not recording" is exactly what this rule is meant to eliminate — its value to a person present depends entirely on whether that indicator can be trusted. A design with a physical shutter has a structural advantage here: the shuttered state is itself verifiable.
Verification examples
- User side: have someone unfamiliar with the product stand in front of the device and judge whether it is currently sensing, recording the accuracy of that judgment.
- Implementation side: check whether the indicator is driven by the sensing component; try turning off the indicator alone through an interface while keeping sensing on, and check whether that is possible.
Counterexamplesunder-delivery — a camera's indicator light is controlled by the app layer, and third-party firmware can turn off the light while continuing to record; over-delivery — to emphasize the sensing state, the indicator light is made to glare on constantly, and the user's first move is to tape over it, permanently disabling the indicator instead.
Basis and referencesfor the role difference between a visitor and a resident in understanding sensing, see R08; for the definition of a bystander and design claims about them, see R09 (abstract only verified).
U5-2Sensing scope and inference granularity must not silently expandMUST
In one sentence: A single update must not turn a temperature sensor into a person-recognizing sensor.
Applies todevices with sensing capability whose capability can be changed by a firmware update or a server-side policy.
RuleA device's sensing scope (which signals it collects, which physical area it covers, its sampling frequency) and inference granularity (what conclusion it draws from the signal: presence/absence, headcount, location, posture, identity, activity type, physiological state) MUST be explicitly declared, and an expansion of either MUST be disclosed and receive the user's explicit acceptance before it takes effect. Silently expanding either through a firmware update, a server-side policy, or a newly added feature is prohibited. Already-present sensing hardware does not constitute authorization to use its full capability — a device having a microphone array does not mean it may start doing acoustic-event recognition. Sensing scope and inference granularity are expressed by amb.sensing.scope and amb.sensing.inference.granularity.
Boundary conditionsthis rule does not prohibit expanding capability; what it requires is that the expansion goes through disclosure and acceptance. Fixing a defect, improving the accuracy of an existing inference, and an implementation change within the existing granularity are not expansions. When a user declines an expansion, the product SHOULD retain its original function rather than render the device unusable (see U3-5).
Design applicationmake granularity a tiered enumeration, not a switch: presence/absence is one tier, headcount is one tier, location is one tier, identity is one tier, activity and physiological state are each their own tier. The tiers are not a gradual strengthening, they are a change in kind — going from "someone is in this room" to "who is in this room" crosses the boundary of identifiability, and needs its own separate justification (see U5-5).
Verification examples
- User side: compare the device's sensing and inference declarations before and after a firmware update, and check for an undisclosed change.
- Implementation side: check whether inference granularity is explicitly declared and read downstream; check whether the new-feature launch process has a review step for a granularity change.
Counterexamplesunder-delivery — a presence sensor starts distinguishing individuals and generating personal activity records after an update, and the user was never told; or, under the name "downgrading from identity recognition to anonymous physiological monitoring," a physiological-sensing capability that did not previously exist is added; over-delivery — every algorithm optimization is re-consented as a granularity expansion, and the user, worn down by repeated consent requests, turns off every sensing function.
U5-3Sensing of non-user third parties has disclosure and minimizationSHOULD
In one sentence: Guests, cleaners, and delivery workers have no account, but they get captured on camera all the same.
Applies todevices and spaces whose sensing scope covers people who are not users of this product, including a doorbell, an indoor camera, a voice terminal, and a human sensor.
RuleFor someone present who has no account for this product and has made no choice regarding it, the product SHOULD: make sensing perceivable at the device itself (see U5-1); provide the space's manager with an executable means of disclosure (a doorway sign, a spoken prompt on entry, a guest mode); and, by default, adopt a smaller sensing scope and coarser inference granularity in situations where such people may be present. Using a non-user present person's signal to build an individual profile identifiable across sessions is prohibited, unless that person has been informed and has made a choice. The product MUST separately assess, for each category of deployment space, who is affected, its use, its degree of privacy, and control relationships, and determine the minimum-necessary default profile accordingly; when the conclusions coincide, different space types may adopt the same profile — what this rule requires is assessment and recording category by category, not that the values formally differ, and still less that sensing be expanded somewhere merely to manufacture a difference. A mixed space (working from home, a short-term rental room within a residence) is judged separately by its actual constraints, not covered by a "residential" label overriding workplace or guest protection. The bystander-related default and disclosure means are expressed by amb.sensing.bystander.notice and amb.sensing.bystander.default_profile.
Boundary conditionsthis rule does not require the product to fulfill the space manager's statutory disclosure obligation on their behalf, nor does it determine its legal effect — the legality of workplace monitoring, and of image and audio capture in a public space, is determined by the applicable regulation, which this specification does not substitute for. This rule does not prohibit security-purpose image capture; what it constrains is the default profile, perceptibility, and cross-session identification.
Design applicationmake "what kind of space is this device installed in" a mandatory configuration at install time, and let it genuinely enter the assessment of the default value — the value coming out the same after assessment is a legitimate conclusion; not doing the assessment is the defect. A residential-facing default profile is not suited to being used directly in shared offices and rentals: the relation between the person present and the device owner is completely different there. Guest mode (temporarily lowering sensing granularity or pausing sensing) is a concrete capability that can be offered to the space's manager, turning "whether to tell the guest" into "collect a little less while the guest is here."
Verification examples
- User side: have someone who has never used the product enter the space, and record whether they can perceive the sensing, can learn what is being collected, and whether a cross-session identifiable record was built for them.
- Implementation side: check whether different space types were assessed separately, and whether the default profile matches the assessment's conclusion; check whether an unregistered person's features are persisted for cross-session matching.
Counterexamplesunder-delivery — a doorbell camera by default builds and names a profile for every face that has ever appeared, and the neighbor captured on it knows nothing about it; over-delivery — a lengthy sensing-disclosure announcement plays every time someone passes by, and residents permanently turn off the device's prompt sound.
Basis and referencesfor a gap in visitors' mental models, see R08; for the divergence between short-term guests and hosts on data categories, see R10; for the awareness gap and disclosure preferences of people present in a commercial building, see R11; for the argument that residential and office scenarios are not interchangeable, see R03.
U5-4Stopping sensing has a clearly bounded pathSHOULD
In one sentence: What "turned off" actually turns off must be statable, and verifiable.
Applies toproducts that offer a capability to turn off, pause, or mute sensing, and devices required by U4-2 to provide a stop capability in a private area.
RuleEvery "stop sensing" path a product offers SHOULD make its actual boundary explicit: whether it stops sensing, uploading, retention, or merely on-screen display; whether the stop lasts until manually resumed, resumes on expiry, or resumes on restart; and which functions become unavailable during the stop. Describing an action that only stops display or only stops upload as having stopped sensing is prohibited. At minimum, one stop method verifiable by a person present SHOULD be offered — its effect must be visible from the device itself (see U5-1). The private-area stop capability required by U4-2 is a MUST-level item and cannot be omitted at this rule's SHOULD level. That stop MUST actually block the declared sensing and hold until the person present explicitly resumes it; it must not be bypassed by going offline, a restart, an update, or a remote command. Any other pause that can resume on a schedule MUST state its resumption condition at the time of the action, and the U5-1 on-the-spot indicator still applies on resumption. The stop path's boundary is expressed by amb.sensing.stop.scope.
Boundary conditionsthis rule does not require every device to be able to fully cut power to its sensor, nor does it require that stopping sensing leave function unaffected — voice wake failing once the microphone is off is reasonable, and needs to be stated, not hidden. Detection by a safety-related device (smoke, gas, emergency calling) may go without a stop path, but that fact MUST be declared (see U3-6).
Design applicationname these switches with verbs, not adjectives: "pause recording" and "hide the feed" are two different things, and "mute the microphone" and "stop uploading audio" are also two different things. When what the user wants is "don't record me during this period," a switch that only stops display is worse than no switch at all — it manufactures a false confidence that has been verified.
Verification examples
- User side: execute every stop path, and afterward check whether data was still collected, uploaded, or retained during that period.
- Implementation side: check item by item where in the chain each stop path acts; check whether it is held or resumed as declared after a restart, update, or reconnection; a protective stop in a private area is held until the person present explicitly resumes it.
Counterexamplesunder-delivery — "turn off the camera" only hides the live feed in the app, while recording and upload continue as usual; over-delivery — mute is implemented so it must physically cut power, and the user has to unplug it every time they take a call, eventually abandoning the feature altogether.
U5-5Presence detection and identity recognition are separateMUST
In one sentence: Where knowing "someone is here" is enough, do not go on to recognize "who."
Applies toproducts that use human-sensing capability to drive automation, route a reminder, or adjust the environment.
RuleThe product MUST treat presence detection (determining whether and how many people are in the space) and identity recognition (determining who this person is) as two separately enabled, separately authorized capabilities. Enabling identity recognition under the name of presence detection is prohibited, as is making identity recognition a necessary implementation means for presence detection. A function that needs only presence information must not read an identity-recognition result. Once identity recognition is enabled, it MUST be independently turnable off, and presence detection MUST remain available after it is off. An unrecognized person must not, on that basis, be denied U4-2's basic control (see U2-3). The separation of the two capabilities is expressed by amb.sensing.presence.identification.
Boundary conditionsthis rule does not prohibit identity recognition — entry control, personalized response, and reminder routing in a multi-person scenario all have legitimate uses. What it requires is that the two not be bundled together at enablement, and that a weaker capability's function not ride on a stronger capability's implementation. This rule does not prescribe the technical means of identity recognition; voiceprint, face, a carried device, and manual selection are all equally covered under this rule.
Design applicationask, as early as the feature-design stage, "does this function need to know who." Most ambient automation needs only presence: turning on a light, adjusting temperature, ventilating, saving energy — none of these depend on identity. What needs identity is reminder routing and personalization, and those functions SHOULD each carry their own justification for enabling identity recognition.
Verification examples
- User side: turn off identity recognition and check whether lighting, temperature-control, and ventilation automation still work.
- Implementation side: check item by item the list of functions that read identity-recognition results; check whether a path exists that collects and retains identifiable features under the name of presence.
Counterexamplesunder-delivery — a hallway light's motion function requires enrolling every family member's face first; over-delivery — to avoid recognition, every multi-user capability is turned off, and every family member's reminder is broadcast on the same shared speaker.
U5-6Environmental sensing is not used to evaluate or differentially treat people presentMUST
In one sentence: A desk sensor is not a time clock, and a living-room sensor is not a parental surveillance console.
Applies toproducts that deploy environmental sensing capability in a workplace, educational setting, home, or caregiving scenario.
RuleData collected for space management, energy optimization, facility scheduling, or environmental adaptation is prohibited from being used to evaluate, appraise, discipline, price, underwrite insurance for, assess credit for, or decide admission for an individual, and is likewise prohibited from achieving the same effect indirectly through a derived metric (time seated, activity frequency, number of departures, routine patterns). The product MUST make these uses mechanically unreachable, not merely written into a terms-of-use document; when a use is extended into an evaluative scenario, consent to the original collection must not be used as its basis (see U5-2). The prohibited-use list is expressed by amb.sensing.purpose.blocklist.
Boundary conditionsthis rule does not prohibit attendance tracking, access-control logging, or compliance monitoring conducted with explicit disclosure and a legal basis — that kind of system SHOULD be deployed under its own name and accept its own corresponding constraints, rather than being incidentally implemented by an environmental-sensing system. This rule does not determine the legality of workplace monitoring under any specific jurisdiction. Health monitoring in a caregiving scenario, explicitly consented to by the person cared for or their legal representative, is not within this rule's prohibition, but U5-2's granularity constraint still applies.
Design applicationmake the prohibited uses a constraint at the data-interface layer: environmental sensing data is not opened to HR, performance-management, academic-affairs, or insurance-type consumers, and aggregation or de-identification is not treated as grounds for permitting it — in a room with only a few people, aggregated data can still point to an individual. The most common way this rule gets circumvented is by turning it into an "activity report exportable by a manager" — the report itself renders no judgment, but its existence makes evaluation the default use.
Verification examples
- User side: as the space's manager, try to export a specific person present's activity record, and observe whether the product provides that capability.
- Implementation side: check the list of downstream consumers of environmental sensing data; check whether a per-person aggregated activity-statistics output exists.
Counterexamplesunder-delivery — data from a desk occupancy sensor is used to generate an employee seat-occupancy ranking; over-delivery — to avoid the risk, all space-usage statistics are turned off, leaving the facilities team unable to judge whether a meeting room needs expanding.
Basis and referencesfor the awareness gap and disclosure-preference of people present in a commercial building, see R11; for the controversy triggered by desk sensors and their energy-saving framing, see R20 (the original report was not obtained this time).
U5-7Data's purpose, retention, and erasure are verifiableMUST
In one sentence: Stopping sensing, deleting local data, and deleting the cloud copy are each stated and confirmed separately.
Applies toproducts that store or transmit externally environmental sensing data, activity history, identity features, or inference results.
RuleEach category of data MUST have its purpose, recipient, storage location, local and remote retention caps, and erasure path made explicit; when data is only processed instantaneously and not persisted, that too MUST be made explicit. A space manager consenting to installation does not mean every person present has consented to every use. Expanding a purpose or recipient MUST have authorization and disclosure re-judged before it takes effect, and cannot be waved through on the basis of existing hardware capability or an existing account's consent.
Erasure MUST separately state the disposition of raw data, derived features, logs, backups, and third-party copies, giving a receipt of already-erased, pending, or cannot-confirm, with the reason for any incompleteness. Merely unbinding a device must not be described as data having been deleted; stopping upload must not implicitly mean an unlimited local cache. An offline cache MUST be bound by a retention period and capacity limit, and on reconnection, only process data still within the valid range. A device shared by multiple people SHOULD allow erasing personal data by principal or by period of use, without requiring the whole room to be reset. Data that genuinely must be retained MUST state its category, reason, duration, and access restriction.
The data-processing policy is expressed by amb.sensing.data.lifecycle; the actual record and deletion receipt are operational facts.
Boundary conditionsthis rule does not promise to recall a copy someone else has already lawfully exported, and does not automatically equate pseudonymization or aggregation with anonymization or deletion. The specific statutory retention and data-subject rights are judged by the project according to the applicable jurisdiction.
Design applicationwhen a short-term guest checks out, their voice records and personal preferences can be erased while the room's lighting configuration is retained; when a device is offline, list its cloud-side deletion separately as pending confirmation.
Verification examples
- User side: turn off sensing and execute a personal-data deletion, and check whether the difference between the two operations, and any unerased part, can be understood.
- Implementation side: search the local cache, derived features, and external copies' disposition records; test a deletion failure, backup retention, and reconnecting after going offline, and make sure pending is not turned into completed.
Counterexamplesunder-delivery — after checkout, only the account is removed, while voice and behavioral features are still used for the next guest; over-delivery — deleting one person's record requires restoring the whole house to factory settings, causing other residents to lose control.
Basis and referencesfor device and associated-service data deletion, erasure confirmation, and shared-use scenarios, see R29; this rule's requirements on purpose and caching are design requirements derived from the space's commitments.
3.6 U6 A device's ownership and lifecycle
A device installed on a wall will outlive a relationship of use: the house gets sold, the lease expires, the company moves, the device changes hands, the firmware gets updated into something else. This principle governs the ownership relation between a device and a space, and a control principal, and how that relation changes: who it belongs to right now, what was granted when it was added, what remains after it is removed, what actually counts as a clean handover, and who should be told when its behavior is changed remotely.
U6-1Ownership is resolvableMUST
In one sentence: Which space this device belongs to, who administers it, and whose account its data goes into.
Applies todevices that can be added to a space, household, or organization.
RuleFor every device in the space, the product MUST establish its binding with a checkable physical identifier or location confirmation, and must not infer the room merely from a duplicate-prone nickname or a nearby signal, and MUST be able to resolve: the space or room it belongs to, its administrative principal (which account or organization holds its management rights), its data recipient (whose account and which service its collected or generated data goes into), and whether it is simultaneously managed by other control principals (multi-platform access, vendor-retained access, third-party integration). This information MUST be lookupable by anyone lawfully using the corresponding area (see U4-6); presenting a device's coexisting state under multiple control principals as belonging only to the current viewer is prohibited. The required fields and resolution source of the ownership record are expressed by amb.lifecycle.ownership.record_contract; the specific account and device list is operational data.
Boundary conditionsthis rule does not require disclosing the service provider's internal architecture or data-processing details, which are governed by the dedicated privacy area; what it requires is an ownership relation judgeable from the user's point of view. This rule does not prohibit a device being managed by multiple platforms at once; what it requires is that this fact be resolvable.
Design applicationmake ownership a readable answer within the device's detail view, not scattered across a pairing record, a share list, and a third-party authorization page. "Whose account does this camera's footage go into" is a question repeatedly asked in shared-housing, rental, and caregiving scenarios, and there is often nowhere that gives a complete answer.
Verification examples
- User side: randomly pick three devices in the space, and try to find out each one's administrative principal and data recipient, recording whether this can be done.
- Implementation side: check whether a device connected to multiple platforms at once discloses the existence of the other control principals on each platform's side.
Counterexamplesunder-delivery — a sensor connected via a third-party platform reports its data to two vendors at once, and the user cannot see one side from the other; over-delivery — the device detail view becomes a dense page of technical identifiers and service addresses, and the user still cannot answer "who can see this."
U6-2The authorized party at onboarding is checkableMUST
In one sentence: Adding a device is granting a permission, and who that permission was granted to must be visible.
Applies toproducts with a device-onboarding, provisioning, binding, or third-party integration authorization flow.
RuleWhen a device is added to a space or a third party is authorized to connect, the product MUST name the authorized principal (vendor, platform, integrator) and the scope of capability granted (which devices can be controlled, which data can be read, whether it can act on the user's behalf) before the user confirms, and make both checkable. Using a device name or interface presentation as identity evidence is prohibited — a name can be set arbitrarily and does not independently prove a device's or an integrator's identity. The authorization scope SHOULD default to the minimum tier needed for the current function, with expanding the scope requiring separate confirmation. The authorization-disclosure method is expressed by amb.lifecycle.onboarding.grant_disclosure.
Boundary conditionsthis rule does not prescribe the technical means of identity verification, nor does it require the product to verify a third party's qualifications. What it requires is that the authorized party and scope be visible to the user before confirmation. In a batch-deployment scenario (an office building, a hotel, a long-term rental complex), per-device confirmation may be replaced by a single authorization for that batch, but the obligation to disclose the authorized party and scope remains unchanged.
Design applicationwrite the authorization-confirmation screen as "you are allowing X to do Y," not "add this device?" The provisioning process is one of the few moments in this domain when a user actually looks closely — putting the permission explanation here is far more effective than putting it on a settings page after the fact. Discovering a nearby device does not mean it may be added, nor does it mean it is what it claims to be.
Verification examples
- User side: go through a complete device-onboarding flow and a third-party integration authorization, recording the principal and scope information the user can see before confirming.
- Implementation side: check whether the authorization scope is enforced on the server side, or only shown as an interface prompt; check for a path where the scope automatically expands after onboarding.
Counterexamplesunder-delivery — after adding a voice-assistant integration, it gains control over every door lock in the house, and the authorization page says only "allow access to your home"; over-delivery — a separate authorization confirmation pops up for every single capability, and by the seventh confirmation the user just taps allow every time.
U6-3The effect of removal and any residue are checkableMUST
In one sentence: Deleting it from "my home" does not mean it truly stops obeying commands and stops reporting.
Applies toproducts that allow a device to be removed from a space, household, or organization.
RuleWhen a device is removed from a space, the product MUST state the operation's actual effect and residue: whether the device still retains its previous provisioning information and credentials, whether it is still reporting data, whether it still responds to previous automation, and whether locally stored data remains on the device. Presenting the removal in the interface as the device having reset to factory state is prohibited. Removal MUST also handle the automation rules, shared authorizations, and third-party integrations that device participates in, and list any pending residue. Removal while a device is offline is handled under U4-4's three states. The residue disclosure is expressed by amb.lifecycle.removal.residue.
Boundary conditionsthis rule does not require removal to wipe the device clean — retaining provisioning information to make re-onboarding possible is a reasonable design. What it requires is that what is retained be stated. This rule does not cover handling after a device is physically damaged or lost; that belongs to U6-4's handover scenario and the dedicated security area.
Design applicationdesign removal as a checklist process: this device participates in three automations, is shared with two people, and is connected to one third-party platform — present all of these at removal time and give a disposition option for each. Leaving behind an automation that references a removed device will, months later, show up as a rule that never triggers, with the user having no way to know why (see U2-5).
Verification examples
- User side: remove a device that participates in several automations, and check whether the subsequent state of those rules is visible; after removal, check whether the device can still be operated through its previous control method.
- Implementation side: check the removal operation's actual effect on the device side; check whether authorization on the third-party integration's side becomes invalid in sync.
Counterexamplesunder-delivery — after deleting a camera from the app, it stays connected to Wi-Fi and keeps uploading footage until physically unplugged; over-delivery — removing any device forcibly wipes its local data and provisioning information, so when a user moves the device to another room they have to reconfigure every setting from scratch.
U6-4A handover has an executable clearing pathMUST
In one sentence: Once the house is sold or the device changes hands, the previous administrator MUST truly lose control.
Applies todevices that may transfer to a new user along with a house, office space, or a secondhand transaction.
RuleThe product MUST provide a handover path executable independently by the device's current, rightful recipient, after which: the previous administrative principal's control, remote access, and data receipt for that device terminate; local data and credentials on the device are handled as declared; and the device can be onboarded anew by a new administrative principal. Designing the handover path so that it can only be completed with the previous administrator's cooperation is prohibited — in a property handover or a secondhand transaction, the previous party is often already unreachable. This path MUST be executable given physical access to the device, and must not depend on the previous party's account or cloud service being online. Physical contact alone does not prove eligibility to take over; the clearing process MUST prevent a visitor or a maintenance worker from gaining administrative rights merely through brief contact. Device-side erasure, remote deletion, and disconnection from an external platform MUST each give their own receipt; a remote deletion that cannot be verified while offline stays pending confirmation. Being unable to clear remote history data on the spot should not block old credentials from becoming invalid on the device side, but the handover must not be claimed complete while the old control remains effective. The effect of handover clearing is expressed by amb.lifecycle.transfer.reset.
Boundary conditionsthis rule does not require a device to be resettable by just anyone present — a reset path SHOULD require physical contact, and may require additional proof of possession. This rule does not determine legal liability in a secondhand device transaction. Data already exported by the previous party cannot be recalled under this rule; this limitation SHOULD be stated, not evaded.
Design applicationdesign a handover as two things, both directions: the new holder needs a path to "make it mine," and the previous holder needs a path to "clear it from me," and both must be completable without the other party's participation. Buying a house with a smart lock only to find the previous owner can still open the door is this rule's most direct form of failure; the same thing shows up in an office sublease, a secondhand device transfer, and a tenant turnover.
Verification examples
- User side: with the previous account not participating at all, transfer an already-bound device to management under a new account, and record whether the path can be completed.
- Implementation side: check whether the previous account's side still retains an access entry and history data for the device after the handover; check whether device-side credentials were erased.
Counterexamplesunder-delivery — a door lock's administrative rights are bound to the previous homeowner's account, and the new resident can only contact vendor support and provide proof of purchase; over-delivery — anyone can complete a handover by holding a device button for a long press, letting an intruder transfer a security device directly into their own name.
Basis and referencesfor an experiment showing credentials remain in flash memory after a factory reset, and a local reset does not necessarily release the cloud binding, see R12; for the mechanism where a revocation does not take effect while offline, see R13; for a vendor's own account of residual permission after removal, see R21.
U6-5An update that changes behavior requires advance noticeMUST
In one sentence: When something installed on the wall has its behavior remotely changed, the user should not have to discover it on their own.
Applies todevices and space systems whose behavior can be changed by a firmware update or a server-side policy.
RuleWhen an update would change a device's existing behavior — removing or changing a function, changing a default value, changing how automation triggers or executes, changing sensing scope or inference granularity (see U5-2), changing local availability (see U3-5) — the product MUST notify the affected users before it takes effect, stating what is changing and its scope of impact. Bundling a behavior-changing update with a security fix into a single indistinguishable push, and waiving disclosure on the grounds of safety, is prohibited. An emergency security fix may execute first and disclose afterward, but disclosure is still required. A behavior change involving an action with physical consequences (see U1-6) MUST be disclosed at the level of the affected space's users, not only to the account owner (see U2-6). The behavior-change disclosure method is expressed by amb.lifecycle.update.behavior_change_notice.
Boundary conditionsthis rule does not require a detailed explanation for every single update, nor does it require that users be able to decline a security fix. What it requires is that a behavior change be identified and disclosed. An internal optimization that does not change externally observable behavior is outside this rule's scope.
Design applicationadd a check to the release process: "will this update give the user a different result for the same action." If yes, it enters the disclosure path. Updates in an intelligent environment have a trait a screen product does not: the user does not proactively open it — a wall thermostat may go unchecked for months, and an update can quietly change its scheduling logic in the meantime, leaving the user only with the experience of "something's been off around the house lately."
Verification examples
- User side: after an update that includes a behavior change, check whether users received the disclosure before it took effect, and whether the disclosure pointed to the specific change.
- Implementation side: check whether the release process has a step that identifies behavior changes; check whether the disclosure reached space users who are not the account owner.
Counterexamplesunder-delivery — an update changes a motion light's default delay from five minutes to thirty seconds, and the user keeps waving their arms in the bathroom; over-delivery — every update requires every household member to confirm one by one before it takes effect, and a security fix is delayed for weeks.
Basis and referencesfor the clause that a firmware-upgrade-induced restart should not reapply the power-on default, see the relevant clause of R24; for a capability baseline where configuration changes are performed only by an authorized principal, see R25.
U6-6Installation, changes, and repairs re-verify the space's commitmentsMUST
In one sentence: A successful pairing only proves a connection was made, not that this room can now be used with confidence.
Applies toproducts that install, move, replace, or repair a device, or that change sensing coverage, a room's use, or control topology.
RuleBefore delivering automation, the physical device-to-room binding, direction and scope of effect, sensing coverage, physical control, on-the-spot stop, sensing indicator, and offline path MUST be checked. For a capability involving a battery, calibration, cleaning, or a consumable part, the maintenance condition, a reachable path to the responsible party, and which commitments no longer hold when maintenance is overdue or a part is abnormal MUST be stated. After a device is moved, a room's use changes, or a repair or replacement occurs, the affected capabilities MUST be re-verified; going online or a self-test cannot automatically substitute for an on-site verification.
Maintenance mode MUST make explicit its scope of impact, entry permission, end condition, and exit check, and must not silently disable a necessary alert or expand a maintenance worker's data access. On exit, manual suppression, revoked permissions, and sensing boundaries MUST be re-checked; a capability that was turned off must not be re-enabled just by restoring default settings. The installation and maintenance check items are expressed by amb.lifecycle.commissioning.checks.
Boundary conditionsthis rule does not prescribe wiring, sensor selection, or safety-certification steps; a check item with no corresponding capability may be recorded not applicable with a reason, without forcing additional sensing hardware.
Design applicationafter moving a living-room sensor to a bedroom, first check its actual coverage, private-area settings, and stop entry before letting it continue to use the existing automation; after replacing a curtain motor, re-check the up and down directions.
Verification examples
- User side: have someone who was not involved in the installation complete turning it on and off, stopping it, recognizing sensing, and disconnecting the network, and check whether the installation delivery is sufficient.
- Implementation side: simulate a room-binding error, a reversed direction of effect, low battery, and an interrupted maintenance, and check whether the related automation is restricted, and whether it returns to the actually authorized state after exiting.
Counterexamplesunder-delivery — a sensor shows "ready" the moment pairing succeeds, while it is actually monitoring the room next door; over-delivery — even renaming a device requires reinstalling and re-verifying the entire house.
4. Terminology and definitions
This chapter defines concepts easily confused among physical space, action, observation, and control relations. The minimum fields for operational facts are given in Chapter 5.
| Term | Definition | Key boundary |
|---|---|---|
| Space | One of this specification's regulatory objects: a place with a physical boundary that a person can enter, within which devices are managed together (a room, a home, a workstation area, a meeting room, a storefront). | This is a product object, not a geographic coordinate. One account can manage several spaces; not everyone in a space necessarily has an account. |
| Person present | Someone currently inside a space, including a person with no account for this product who has made no choice regarding it. | Not a synonym for "user." Several obligations in this specification take a person present, not an account holder, as their object (U2-1, U4-2, U5-3). |
| Physical control | A physical control component in a space that can be operated without going through this product's software: a wall switch, a knob, a button, a pull cord, a handle, a mechanical valve. | Its effectiveness is carried by the physical and electrical chain, not by software state (U1-1). A physical control the product has modified still belongs to this category. |
| Automation rule | A defined mechanism that produces a device action with no one having issued a command for that instance, comprising a trigger condition, an action, and a scope. | A rule has an author, a boundary, and a way to stop. A learned or inferred rule belongs to the same category, and its source must be labeled (U2-7). |
| Automatic action | A single device action triggered by an automation rule, contextual adaptation, or a model inference. | Distinguished from a command the user issued for that instance. Its perceptibility and overridability vary by consequence tier (U2-1, U2-3). |
| Consequence tier | The tier a physical action is divided into by its reversibility, its effect on personal safety, and whether a person present can stop it on the spot. | Part of the device's capability declaration, and must be read jointly by the automation engine, voice entry points, and third-party integrations (U1-6), not take effect only in the primary interface. |
| On-the-spot control | A control method executable at the physical location of the action or within its reachable range, without depending on a terminal, an account, a network, or a cloud service. | A mechanism jointly relied on by U1-1, U2-3, and U3-1; which rule it is written under depends on the direct regulatory object of the obligation. |
| Degraded state | A named, enterable, exitable normal operating state the product enters when it loses some capability because of the network, a cloud service, or a device being offline. | A defined state, not a fault branch (U3-3). It specifies what is retained, what is suspended, and how an action taken during it is handled. |
| End state | The functional state a device is in once the vendor stops supporting the service. | A product decision that can be chosen at the design stage, not a natural consequence of discontinuing service (U3-4). |
| Control authority | The operating standing over a device or a space that a person has been granted. | An independent quantity from presence (U4-1). Presence alone does not grant administrative rights; existing control authority may permit remote use. |
| Basic control | The ability, held by someone present and lawfully using the space, to stop, mute, and pause the automatic repetition of a device currently acting directly on them. | Does not depend on account role, cannot be overridden by a remote operator, cannot be turned off by an administrator (U4-2). Does not include modifying rules or adding/removing devices. |
| Temporary authorization | Control authority with scope and duration granted to a non-long-term member. | The duration MUST exist and be enforceable; on expiry, control, history access, and notification receipt terminate at the same time (U4-3, U4-4). |
| Presence detection | The capability to determine whether and how many people are in a space. | Enabled and authorized separately from identity recognition (U5-5). Its value is at minimum a three-way someone present / no one present / unknown, and "unknown" must not be treated as "no one present" (U4-1). |
| Inference granularity | The form of conclusion drawn from a sensing signal: presence/absence, headcount, location, posture, identity, activity type, physiological state. | Each item forms an independent capability set, not a directly orderable scale; an expansion must be disclosed and receive explicit acceptance (U5-2). |
| Bystander | Someone who falls within sensing range but has no account for this product and has made no choice regarding it. | Guests, cleaners, repair technicians, delivery workers, and neighbors all belong to this category. The default sensing profile and disclosure means are set on the premise that they exist (U5-3). |
| Ownership | The correspondence between a device and a space, an administrative principal, and a data recipient. | Several control principals can exist at once, and this fact must be resolvable (U6-1), and must not be presented as belonging only to the current viewer. |
| Handover | The process by which a device's administrative principal changes, including a property handover, a space sublease, and a secondhand transfer. | Must be executable independently by the authorized recipient, without depending on the previous party's participation; physical contact does not equal eligibility to take over (U6-4). |
5. Operational facts and delivery
This chapter gives the minimum record shape for implementing U1-2, U1-3, U2-2, U2-3, U2-8, U4-4, U5-7, and U6-1; it does not require adopting a specific database or protocol. Collect only the facts necessary to honor the related commitments, and do not expand personal-data collection on the grounds of traceability.
5.1 Design parameters, instances, and state are recorded separately
| Type | Example | Where it goes |
|---|---|---|
| Behavioral parameter | How long before an observation expires, the maximum duration of a temporary authorization, whether reconnection catches up on execution | amb.* configuration |
| Deployment and business instance | The specific identifier of this room, this device, this member, this rule | The device and space inventory, authorization and rule objects |
| Current operational fact | The most recent observation, an action's result, current authorization, when a stop took effect | Operational records and queryable receipts |
| Interface expression | "Command sent," "door lock pending check," an on-the-spot indicator | The interface and hardware feedback that consume the facts above |
"By default, do not catch up on execution" is a parameter; "this instance was canceled because it expired" is a fact. Token configuration cannot serve as proof that a device has already executed or a permission has already been revoked.
5.2 State is composed by dimension
| Object | Independent dimensions | What must not be conflated |
|---|---|---|
| Command | Stage: dispatched-unconfirmed / accepted / concluded; result: succeeded / failed / unknown | A timeout is unknown; accepted does not equal executed successfully |
| Physical observation | Value and unit; source; observation time; receipt time; valid / expired / conflicting / unknown | A relay closing does not prove the bulb lit; a repeated read does not extend validity |
| Presence information | Someone present / no one present / unknown; coverage area and validity | Protection is treated as if someone is present; an unknown is not forged as an observation of someone present |
| Scene | Stage, sub-action result, aggregated result, and stop reason | Even after a user stops it, it may still be partially complete |
| Authorization and revocation | Authorization scope and duration; the effective-receipt for each device and credential | Removing a member does not prove an offline lock has rejected their key |
| Sensing and data | The respective states of sensing, processing, upload, retention, remote viewing | Pausing upload does not equal stopping sensing or deleting history |
5.3 Minimum fact records
| Record | Minimum content | Judgment it serves |
|---|---|---|
| Observation | Object, source, value and unit, observation and receipt time, coverage area, validity and reason | Whether the current state is trustworthy |
| Action | Action identifier, source rule or control entry, target and parameters, trigger evidence, submission time, stage, result, evidence source | Who made what happen, and whether it should execute again |
| On-the-spot stop | Requested object and scope, receipt time, time it took effect or the reason it is pending, an already-occurred effect that cannot be stopped, resumption condition | Whether the person genuinely gained control |
| Scene | Scene instance, sub-action association, dependency relation, item-by-item result, basis for remediation or cancellation | Whether partial completion is truthfully expressed |
| Revocation and deletion | Affected principal and scope, device and service inventory, item-by-item result, reason for incompleteness, next step | Whether residual access or data exists |
| Configuration taking effect | Change content, scope, who decided it, when it took effect, execution-side confirmation, disposition of an in-flight action | Whether the declared protection has actually been enforced |
Records are associated by action and object; the last message received does not overwrite the state of the entire room; when a source is disconnected, the fact's timestamp and the scope of the unknown are retained. Explanations given to a person present show only enough content to understand and act; diagnostic detail is expanded according to permission.
Appendix A: Fault-Injection Verification Checklist and Classification Check
This checklist is used to verify whether a clause has genuinely taken effect, and adds no new obligation: each item's expected behavior is resolved together with its corresponding clause's applicability, strength, and exceptions; every test case must state its preconditions, the applicable exception branch, the expected result, and the form of evidence; for a SHOULD-level clause, check whether its deviation rationale and alternative verification were recorded. Recording "not applicable" is a qualifying result; recording "not tested" is not.
Environment selection is tiered by consequence: high-consequence injections (cutting main power, disconnecting a safety device, inducing a mistriggered high-tier action) are verified in a controlled test environment, a test mode, or an equivalent simulation; only a risk-assessed, low-consequence part is carried out in a real living space together with residents, and only after first confirming whether that space has a medical-assistance, security, refrigeration, or caregiving dependency, with a means to terminate at any time retained. Perceptibility- and comprehension-type test cases inherently need a real space, and are arranged according to their own risk assessment.
A fault-free everyday walkthrough must also be included: record unnecessary prompts and confirmations, the number of steps for common controls, and the cost of a mistaken stop — the "over-delivery" side is equally a failure.
A.1 The physical world and physical controls
| Injection | Expected behavior | Related rule |
|---|---|---|
| Disconnect the internet, then press every physical control in the space one by one | The effect matches what its appearance promises | U1-1 |
| Press a physical control under the three states of account sign-out, subscription expiry, and firmware rollback | The effect is unchanged | U1-1 |
| Manually change device state on the wall, without using the app | The interface converges to the physical state, not stuck at the old value | U1-2 |
| Disconnect the device's reporting channel while keeping the command channel | Renders unknown when no other valid observation exists; shows the independent measurement and its time when one exists | U1-2, U1-3 |
| Inject a lost receipt, a delayed receipt, and out-of-order receipts | A delay or loss is recorded as unknown; an out-of-order receipt does not override a more recent fact; separately cover the remaining results with reliable failure evidence and a success receipt | U1-3 |
| Manually turn off a device within automation's trigger window | Manual takes priority, and the priority period and end condition match the declaration | U1-4 |
| Cut main power at night, then restore it | The recovery state matches the declaration for all three event types, with no unassessed hazard or unpredictable mass consequence | U1-5 |
| Create automation for a high-tier action triggered by a single sensor alone | Adds a condition or refuses, and does not share a tier with a low-consequence action | U1-6 |
| Trigger a high-tier action separately via voice, a third-party platform, and the vendor's cloud | Tiering and confirmation requirements are consistent, and not relaxed because the entry point differs | U1-6 |
A.2 Automation's comprehensibility and stoppability
| Injection | Expected behavior | Related rule |
|---|---|---|
| Have someone without the app installed be present, and trigger a high-tier automatic action | They can perceive it on the spot | U2-1 |
| Repeat the previous item with every push channel turned off | The on-the-spot notice still exists | U2-1 |
| Trace the cause after an unexpected automatic action | Gives the rule name, source, the condition and time for that instance, and a reachable entry to modify it | U2-2 |
| While offline, have an accountless person present try to stop an automatic action in progress | Can be stopped, without requiring sign-in, a network connection, or identity recognition | U2-3, U4-2 |
| Override once and take no further action, waiting for the next trigger window | The user knows in advance it will trigger again, and the upgrade path is reachable in one step | U2-4 |
| Have two users create opposing rules for the same device | Warned at creation time; the runtime result is explainable | U2-5 |
| Construct a rule pair where A triggers B and B triggers A | Loop suppression exists and is traceable | U2-5 |
| As member A, create a rule that reports member B's whereabouts | B is proactively notified, and can look it up and override it | U2-6 |
| Create a pattern of regular behavior and wait for it to be learned | Presented as a suggestion, not an already-effective rule; after rejection, not re-proposed within the declared window. For something within U2-7's listed continuous-adaptation exception (such as a gradual thermostat adjustment), verify its perceptibility and exitability under that exception; it is not required to be converted into a suggestion | U2-7 |
A.3 Disconnection and degradation
| Injection | Expected behavior | Related rule |
|---|---|---|
| Disconnect the internet while keeping the local network, and complete turning on a light, opening a door, adjusting temperature | Every basic function the product actually controls can be completed as promised | U3-1 |
| Disconnect the local network too and repeat | The local path's availability matches the declaration | U3-1 |
| Judge "whether it can be turned on and off once offline" using only material available before purchase | The judgment matches the actual test | U3-2 |
| Inject "network up but cloud unavailable" and "cloud up but device offline" separately | The two cases are distinguished, and the degraded state is visible | U3-3 |
| Dispatch several actions during degradation, then restore the network | Handled as declared, neither silently dropped nor batch-executed as expired commands | U3-3 |
| Retrieve the product line's past discontinuation records | The advance notice and end-state disclosure match this specification | U3-4 |
| Compare a device used for more than a year against its description at purchase | Local function is retained; when a legitimate deviation exists, check its reason, alternative path, and exit choice | U3-5 |
| Trigger a safety device's test while offline | The local alarm sounds; an outbound failure is explicitly disclosed | U3-6 |
A.4 Control authority and presence
| Injection | Expected behavior | Related rule |
|---|---|---|
| Have someone sit still within the sensor's coverage past the timeout duration | Not judged as "no one present" for the purpose of executing a consequential action | U4-1 |
| The last phone leaves the geofence while someone is still in the house | When presence is unknown, handled at the tier that does not harm the person present | U4-1 |
| As an accountless long-term resident, turn off a camera and speaker pointed at yourself within your own private living area | Can be completed, and cannot be overridden remotely; the stop's actual boundary matches the stop.scope declaration | U4-2, U5-4 |
| As a temporary visitor, try to turn off a shared safety-detection facility | Cannot be completed; that exception has been declared per U3-6 | U4-2, U5-4, U3-6 |
| Create a two-hour cleaning authorization, and operate as that identity after it expires | Control, history access, and notification receipt terminate at the same time | U4-3 |
| Remove a member while a device is offline | Indicates that device is pending, and can be verified once it reconnects | U4-4 |
| Check the revoked party's temporary passcode, voice profile, and third-party connections | All become invalid together, with no direct-connect path bypassing the member system | U4-4 |
| Simulate the primary administrator's account being completely unavailable | A recovery path not requiring their participation exists by default; a deviation has a basis and alternative verification, and no path revives an already-revoked permission | U4-5 |
| As a member with no administrative permission, query who can control and who can view | The existence and scope of permission and access can be looked up | U4-6 |
A.5 Sensing and bystanders
| Injection | Expected behavior | Related rule |
|---|---|---|
| Have someone unfamiliar with the product judge whether the device is currently sensing | Can be judged from the device itself | U5-1 |
| Try to turn off the indicator through an interface while keeping sensing on | Not possible | U5-1 |
| Compare the sensing and inference declarations before and after a firmware update | No undisclosed expansion | U5-2 |
| Have someone who has never used the product enter the space and stay | Sensing is perceivable; no cross-session identifiable record is built for them | U5-3 |
| Execute each "stop sensing" path one by one and afterward check the data for that period | The actual boundary matches its description | U5-4 |
| Check the stop state after a device restart, firmware update, and network recovery | The stop state is held or resumed in the manner declared by stop.scope, and the fact that it resumed is knowable to the user; "pausing upload" must not be treated as "stopped sensing" | U5-4 |
| Use lighting, temperature-control, and ventilation automation after turning off identity recognition | Still works | U5-5 |
| As the space's manager, try to export environmental-management data as a personal performance record | The evaluative use is unreachable; legitimate operational diagnostics are still handled under least privilege | U5-6 |
A.6 Ownership and lifecycle
| Injection | Expected behavior | Related rule |
|---|---|---|
| Randomly pick three devices and look up each one's administrative principal and data recipient | All resolvable, including the existence of other control principals | U6-1 |
| Go through a complete device-onboarding flow and a third-party integration authorization | The authorized principal and scope of capability are visible before confirmation | U6-2 |
| Remove a device that participates in several automations | The residue is disclosed, with affected rules and authorizations presented together | U6-3 |
| After removal, try to operate that device through its previous control method | Matches the residue declaration made at removal time | U6-3 |
| Transfer a device to a new account with the previous account not participating at all | Can be completed; the previous party's access and data receipt terminate | U6-4 |
| Release an update that changes a default value or how something triggers | Disclosed before it takes effect, and reaches users who are not the account owner | U6-5 |
A.7 Input, composite scenes, and delivery checks
| Injection | Expected behavior | Related rule |
|---|---|---|
| A sensor is occluded, at low battery, or returns the wrong unit | The affected observation becomes invalid, degrades as declared, and does not fabricate no-one-present or safety | U1-7 |
| Repeated fluctuation near a threshold, redelivering the same event | Executed per debounce and trigger semantics, without looping or repeating an action | U1-7, U2-8 |
| A clock rollback, a recurring window, a missed time window | Executed or skipped as declared, without redoing an action unsafe to repeat | U2-8 |
| One step of a scene fails, another is unknown, then it is stopped on the spot | Item-by-item results are lookupable; affected subsequent actions are blocked, and the part that cannot be stopped is stated explicitly | U2-3, U2-8 |
| The network returns but authorization has been revoked, the observation has expired, or a person has already made a manual change | An old command is not caught up and executed; check first, then resume | U3-3 |
| A short-term guest with no account stops sensing in a private area | Basic control still holds, and is not bypassed by a restart or a remote command | U4-2, U5-4 |
| A device loses trusted time during a temporary authorization | The credential is refused when its validity cannot be proven, without affecting evacuation or basic control | U4-3 |
| The cloud service is offline while deleting personal data | Local and cloud results are stated separately, without claiming everything was deleted or resetting other people's configuration | U5-7 |
| The cloud service is offline during a handover, then someone accesses with the old credential | The old control is refused on the device side, and the cloud-side pending item remains visible | U6-4 |
| A device is moved to a different room, its actuator replaced, or maintenance ends | Affected coverage and direction are re-verified, and revoked permissions and sensing limits are not restored | U6-6 |
A.8 Normal use and review records
An everyday walkthrough should include residents, short-term guests, accountless visitors, and people with different perceptual or operating abilities. Record the success rate, steps, and time taken to complete basic control, misjudgments of an unknown state, unnecessary prompts and confirmations, and the cost of error recovery. The project defines its measurement method and acceptance target first; it does not treat example values as an industry threshold, nor offset the failure of one MUST-level requirement with an average score.
Each applicable requirement records: rule number, applicability condition, implementation mechanism, test case, expectation, actual observation, evidence location, conclusion, and the responsible party. The conclusion uses "pass / fail / not applicable / pending verification"; "not applicable" must state the actual-capability reason. Design-document review, implementation verification, and user-comprehension verification are recorded separately; a complete document cannot substitute for on-site evidence.
When a MUST-level item fails or a key item is pending verification, the related capability is not claimed to satisfy this specification; the scope of unverified automation may be restricted, but basic control and safety functions that someone already depends on are retained. After a mistrigger, an incorrect stop, or residual access occurs, contain the impact first, then bring that incident into the corresponding check.
A.9 Classification check
Used to verify whether Chapter 1's division holds: take 10 to 15 specific requirements (which may come from this specification's clauses, or from real review comments), and have at least three reviewers who did not participate in writing it independently judge which principle each belongs to. When ownership disagreement concentrates between two particular principles, it shows that those two principles' regulatory objects have not been properly separated — at that point the principles should be adjusted, rather than adding an intermediate layer or a mapping note. The two points already known to need priority checking are stated explicitly in Chapter 1 (U1 versus U3, U2 versus U4). The number of reviewers and the disagreement criterion are this specification's suggested internal check method, not an externally validated standard method.
Appendix B: Evidence Boundaries and Source Types
B.1 Criteria for normative terms
The sole basis for marking something MUST is: without it, some commitment to the user fails under a foreseeable condition. The three categories of evidence below provide different kinds of support; they are not three independent sources of mandatory force, and a failure record or implementation reference by itself is not sufficient to decide a MUST marking —
| Source | Explanation | Example |
|---|---|---|
| Statutory hard prohibition and mandatory standards | An already-effective regulation or mandatory standard explicitly requires it; this specification only writes the red line into design language, and does not constitute a compliance determination | The clauses in U1-1, U1-6, U3-6 that yield to mandatory fire, gas, and electrical regulations |
| Evidenced failure | Existing research or a public failure record shows the commitment fails | U2-2, U2-5 (comprehension gaps in trigger-action rules), U4-2, U4-6 (control asymmetry in a multi-user smart home), U3-4 (public cases of a cloud service's termination rendering a device unusable) |
| Derived backward from the commitment | Given that the product makes this commitment, the commitment necessarily fails without this mechanism | U1-3 ("dispatched" does not equal "completed"), U4-4 (removal from a list does not equal permission revoked), U5-4 (stopping display does not equal stopping sensing), U6-3 (interface removal does not equal a factory reset) |
The five rules marked SHOULD (U2-7, U3-5, U4-5, U5-3, U5-4) contain requirements that can be traded off by context: a deviation must leave a trace and accept alternative verification; the explicit MUST and MUST NOT clauses within them remain hard constraints and are not exempted along with the whole rule. A deviation from U3-5 or U4-5 usually originates from a commercial model or an architectural constraint; the reason SHOULD state that constraint explicitly rather than writing "not currently supported."
B.2 Three points still needing project-level empirical verification
Listed explicitly here, not concealed under the tone of a clause:
- U1-4 and U1-5 lack a transferable default value. How long manual priority should last, and which tier is the correct default after power recovery, both vary with device category, living habits, and climate conditions, and the listed sources provide no measured baseline citable across products. This specification therefore only requires these values to be explicitly defined with the basis recorded, without giving a number — these are also the two rules in this specification most easily satisfied only on paper.
- The effectiveness of U5-3's bystander disclosure is unverified. How many people, in real use, actually become informed through each of the three means — a doorway sign, a spoken prompt on entry, a guest mode — is not supported by comparable effectiveness evidence in the listed sources. What this specification gives is the obligation and the criterion, not a list of means already verified effective.
- There is no universally optimal solution for multi-person preference conflicts. When lawfully present people share temperature control, lighting, or sound, comfort, health needs, and management responsibility may differ. This specification requires the arbitration to be knowable and basic control not to be canceled, but the specific scope and alternative paths still need verification in real spaces.
B.3 What this specification does not do
It does not give a communication protocol or interoperability scheme, does not give device form factor or installation procedure, does not give sensor selection, does not give a specific duration or threshold, does not give the field design of a permission model, and does not determine the legality of workplace monitoring, image capture, or audio recording under any jurisdiction. These are product, engineering, and legal decisions; this specification only requires that these decisions be made, be verifiable, and specifies which values are not allowed.
B.4 Sources
For the complete source cross-reference, reading scope, and evidentiary limits, see reference.md. A clause in this specification does not hold merely because some product has done it this way; a product's practice is evidence that "this kind of mechanism is feasible in a real product," not a basis for "it should be required this way." Platform documentation is a vendor's own account of its product, not an independent research conclusion.
Implementation Acceptance Scenarios
The scenarios below turn existing clauses into reviewable acceptance inputs, without setting a separate universal performance threshold. Select according to the product's applicable capability, and supplement with real devices, users, input sequences, and evidence; record the reason when not applicable, and an item not executed must not be recorded as passed.
| Clause | Test input and anomaly | Expected behavior and failure criterion |
|---|---|---|
| U1-4 | Turn off the light on the spot, then restore the network and receive an old auto-on command. | The manual-priority period is still in effect; the expired action is not caught up and executed. |
| U1-2 | The device reports successful execution, but an independent observation does not support the target state. | The conflict is retained; the receipt is not treated as physical success. |
| U6-4 | At handover, the cloud side has been unbound, but local access eligibility still remains. | Control authority and data erasure are each checked separately, not just deleting the device card. |
Each scenario separately checks the configuration's effective value, the execution record, and a result the user can understand. Retain the version, target, event timestamp, failure scope, and recovery result; when an external result is unknown, do not fill it in as success or failure.
Usage notes
This dictionary records the behavioral decisions of an intelligent environment: when observation is available, who can control a device, when an action stops, how it recovers from a network outage, and how data and devices exit. Color, size, timbre, and light curves are the product's presentation-layer resources; this file defines when they appear, what facts they express, and the conditions under which they cannot be turned off.
Used alongside Design Guidelines. Fields uniformly begin with amb.; applicability is judged by actual capability. Configuration expresses a commitment and cannot substitute for an execution mechanism or on-site verification. Specific devices, members, observed values, and receipts are operational data; see Chapter 5 of the guidelines.
Seven categories at a glance
| Category | Prefix | Required | Optional | Total | Responsibility |
|---|---|---|---|---|---|
| Physical state | amb.state | 4 | 3 | 7 | Who is the source of truth, how long before a state counts as stale, what things look like after power returns |
| On-the-spot control | amb.control | 2 | 4 | 6 | How many tiers actions are split into, where it can be stopped on the spot |
| Automation | amb.automation | 3 | 7 | 10 | How something happening on its own gets noticed, how it can be traced back, how conflicts are arbitrated |
| Disconnection and degradation | amb.offline | 3 | 5 | 8 | What remains without network, account, or subscription; what things become when a service stops |
| Spatial control authority | amb.access | 3 | 5 | 8 | Who can control, what presence counts as, how long a guest's control lasts, how to take it back |
| Sensing | amb.sensing | 3 | 6 | 9 | What is being collected, what granularity it is inferred to, what happens to bystanders, how to stop it |
| Ownership and lifecycle | amb.lifecycle | 1 | 6 | 7 | Who this device belongs to, what remains after removal, how a handover is cleared, what an update changed |
55 items in total: 19 conditionally applicable required decisions and 36 optional capability parameters.
Required and optional
| Level | Meaning | How to configure |
|---|---|---|
| Required | A foundational decision that must be made explicit whenever its applicability condition holds. | May inherit a product preset and does not require the user to set it item by item; without a legal value, the related capability must not be claimed ready. |
| Optional | Used only when the corresponding capability, deployment, or design choice exists. | Once the capability is enabled, the dependencies required by the table must still be complete; optional is not license to omit a required protection. |
Record applicable or not_applicable field by field; the latter must be accompanied by a verifiable capability reason and is not an ordinary value. A pure temperature-and-humidity sensor has no physical output, so its actuation-control fields may be recorded as not applicable; a sensorless manual smart light does not configure sensing fields. Safety detection may, under the exception in U5-4, omit a path to stop sensing, but must retain local detection and alerting; a safety function must not be turned off just to fill in the table.
A "SHOULD" in an applicability requirement permits a justified deviation; if the deviation cannot be expressed by an available enumeration, mark the item as pending a design decision and record an alternative verification — a legal value must not be fabricated. Fixed MUST and MUST NOT requirements cannot be canceled through configuration or a deviation record.
Boundaries among space, device, rule, control authority, and sensing
| Object | Responsibility | Key boundary |
|---|---|---|
| Space | A place with a physical boundary within which devices are managed together. | This is a product object, not a coordinate. Not everyone in a space is an account holder; protections scoped to the space must also cover accountless people who are present. |
| Device | A unit that occupies a physical location and can produce a physical effect or collect a signal. | Its consequence tier (control.actuation.class) and sensing granularity (sensing.inference.granularity) are part of the device's declared capability, and must be read jointly by the automation engine, voice entry points, and third-party integrations — not take effect only in the primary interface. |
| Automation rule | A defined mechanism that makes a device act when no one has issued a command for that instance. | It has an author, a scope, and a way to stop. A learned rule and a user-created rule belong to the same category; the source must be truthfully labeled (automation.learned.mode), and neither may impersonate the other. |
| Control authority | A person's qualification to operate a given device or space. | It is a quantity independent of presence (expressed separately by access.role.model and access.presence.binding). Presence alone does not grant administrative rights; granted control authority may permit remote use. access.occupant.baseline is a third thing beyond these two: it is not granted by a role, and it cannot be revoked by a role either. |
| Sensing | The ongoing acquisition of signals in the environment and the inferences drawn from them. | Collection scope, inference granularity, and stop path each tighten independently; relaxing any one of them does not relax the other two. Hardware possessing a capability does not constitute authorization to use it. |
The same space can simultaneously be a home and a workplace (working from home), and can simultaneously have long-term residents and temporary guests (a short-term rental). Each capability is judged by its own value first; enabling one does not relax another: enabling identity recognition does not relax sensing.scope, and granting an administrator role does not invalidate access.occupant.baseline for other people present.
Conventions for reading fields
Each section's prefix concatenates with the field in the table to form the full name — for example, amb.access and grant.ttl form amb.access.grant.ttl. All seven categories use the same five columns: Level, Design decision, Token field, Type and legal values, Applicability and effect.
Durations carry units, frequencies carry a unit and a window; a scope reference must resolve to a specific device, space, role, or data category. A set does not default to select-all. When multiple hard limits are in effect at once, the commonly permitted range applies; protection is not relaxed on a "later configuration overrides earlier configuration" basis; account-level or session-level configuration must not relax device-level or space-level protection settings — this matters especially in this domain, because device-level settings are often the only layer still in effect when the network is down.
An unknown determines current behavior by the conservative tier, but does not rewrite the factual record. When presence is unknown, a protection that depends on "someone present" is treated as if someone is present, and a high-consequence action that depends on "no one present" is not executed — but the presence fact itself is still recorded as "unknown," and must not be written as an observation of "someone present", or it would pollute the history and trigger rules conditioned on presence. An unknown identity does not block an on-the-spot stop; an unknown space type is treated as if a bystander is present; an unknown receipt is rendered neither as completed nor judged as failed; unknown device ownership is not rendered as belonging solely to the current viewer.
Types, references, and resolution
- A duration is
{value: number, unit: ms|s|min|h|d}; a duration MUST be finite and positive. Counts and capacities note a non-negative or positive constraint together with a unit of measure. An off capability uses an explicit enumeration rather than a negative number or an extremely large value implying off or permanent. - An enumeration uses the values given in the field table; a set does not default to select-all. An empty set is legal only when the field explicitly permits it. An object must fill in the listed required members.
- A reference MUST resolve to a checkable policy or contract that includes scope of applicability, an explicit value, an execution mechanism, and a responsible party; a reference that does not exist, a circular reference, an unknown enumeration, or a unit error are all invalid configuration.
- Configuration is read in order from the product preset, deployment constraints, device capability, and the authorized party's choice; hard constraints take the commonly permitted range. Sets are intersected by member and scope; enumerations with no inherent order are resolved by that field's arbitration table, and a judgment must not be replaced by taking the smallest number or the last value written.
- When a conflict has no legal intersection, block the newly added affected automation or authorization and give a reason; do not turn the conflict into wide-open access, and do not silently disable a safety function already in force. Disposition of existing basic control follows U3-1, U3-6 of the guidelines.
- This document is the domain's behavioral parameter dictionary; the contract references in the tables are not a list of device instances, and do not automatically constitute a compatibility claim with any generic visual token interchange format.
1. Physical state: who is the source of truth, how long before a state counts as stale, what things look like after power returns
Prefix: amb.state
| Level | Design decision | Token field | Type and legal values | Applicability and effect |
|---|---|---|---|---|
| Required | State source of truth | truth.source | Enumeration: device-reported takes priority / independent physical measurement takes priority / both used together with a declared convergence direction when they conflict / neither report nor independent measurement exists (rendered as state unknown). No legal value of "go by the last dispatched command" is provided. The absence of a receipt on the command channel does not imply "no observation capability": when an independent measurement exists, render by the measurement and record its observation time. A device's own report of "succeeded" and whether the physical goal was actually reached are two different things; the product's ability to distinguish the two must be truthfully declared. | Decides what the interface displays; when the system record conflicts with the physical state, it converges to the physical state (corresponds to U1-2). |
| Required | Receipt mode | report.mode | A description of receipt capability or a contract reference, declaring at minimum, separately: whether acceptance confirmation is provided (the command has been received), whether execution-result confirmation is provided (the action has been carried out), the source of failure evidence, and how timeouts and lost receipts are handled. Stage and result are separate columns: stage (dispatched-unconfirmed / accepted / concluded) and result (succeeded / failed / unknown) are not merged into one column. "Failed" must have reliable failure evidence; a timeout or a loss only enters "unknown." A product with no receipt capability renders by the corresponding tier of truth.source. | Decides to what degree a command's outcome can be distinguished; "unknown" MUST be a normal value that downstream consumers can consume (corresponds to U1-3). |
| Required | Power-loss recovery behavior | power_restore.behavior | A mapping set separately by device category × recovery event (power-interruption recovery / ordinary restart / update-triggered restart), with values: restore the state from before the interruption / restore to a specified fixed state / stay off. Choosing "specified fixed state" must resolve to a capability, a target value, a unit, and legal range; writing only "fixed state" counts as unconfigured. No legal value of "decided by a remote party after reconnecting" is provided. An item that must be fixed for safety and not opened to ordinary-user modification must record the reason, who is authorized to modify it, and an exit path. | Decides what the room looks like the instant power returns; it must take effect on the device side, holding equally true with no network (corresponds to U1-5). |
| Required | Manual-versus-automatic convergence rule | conflict.resolution | Reference: how manual operation takes priority, the end condition of the priority period (expiry / explicit restoration / leaving the space / the next natural boundary), and the scope of automation suppressed during the priority period. The default must be on-the-spot manual priority; a different default must have a safety or compliance basis and be explained to the user. | Decides what automation does after a person has touched a control by hand; safety interlocks are not bound by this (corresponds to U1-4). |
| Optional | Observation validity period | staleness.ttl | A positive duration mapped by capability and source, also declaring the relation between observation time and receipt time, and how a disconnection or a multi-source conflict is handled. Merely reading or receiving a cached value does not renew it; once expired, the last known value and time are retained while the current fact is recorded as unknown. | MUST be configured whenever any observation is used as the current fact; a device with no observation capability is not required to fabricate a reading (U1-2, U1-7). |
| Optional | Physical-control effect declaration | manual_control.declared | A resolvable control-capability contract: the type of control, the capability it controls, and the effect promised when offline, cloud-disconnected, the account is invalid, or the device is not yet provisioned. Specific location and instance bindings are written into the deployment manifest. | Configured when a physical control exists or has been modified; the declaration must not diminish an existing control's effectiveness (U1-1, U6-6). |
| Optional | Observation-validity check | observation.validation | Contract reference: source, time, unit, legal range, coverage, occlusion and miscalibration conditions, and how multi-source contradictions are handled; for continuous control this also includes entry/exit thresholds, a debounce duration and unit, and, on sensing failure, conditions mapped by capability for holding output / restricting output / handing off to manual. | Configured when sensing or inference drives a physical output; an unverified input cannot serve as evidence of safety or of no one present (U1-7). |
Boundaries: the source of truth decides what is displayed, the receipt decides to what degree an outcome can be distinguished, and recovery behavior decides what things look like after power returns. The three tighten independently. Lacking a report capability is not a violation; rendering "no report" as a certain state is the violation — truth.source's "neither report nor independent measurement" tier is a normal value, and downstream MUST have a corresponding "state unknown" rendering path.
2. On-the-spot control: how many tiers actions are split into, where it can be stopped on the spot
Prefix: amb.control
| Level | Design decision | Token field | Type and legal values | Applicability and effect |
|---|---|---|---|---|
| Required | Action-consequence tiering | actuation.class | A mapping divided by "action capability × parameter boundary," not a single static label by device model: a small adjustment on a thermostat and turning off its freeze protection fall into different tiers; the basis for division is reversibility, effect on personal safety, and whether a person present can stop it on the spot. Entrances and door locks, gas and open flame, heating and cooling, mechanical motion that can pinch a person, and high-power devices that run unattended for a long time must not share a tier with lighting. A scene or routine takes its tier from the full set of sub-actions it expands into and their combined consequence — a scene named "coming home" that includes unlocking is handled at the unlocking tier, not filed under the lighting tier because of its name. The number of tiers is defined by the product, with the basis recorded. | Decides what confirmation strength, authorization requirement, and automation eligibility vary with; must be read jointly by the automation engine, voice entry points, and third-party integrations (corresponds to U1-6). |
| Required | On-the-spot override entry | override.surface | Set: physical control, a button on the device body, an in-room panel, a spoken phrase (must be recognizable locally). Must not be an empty set; the entry for a high-tier action must sit at the location of the action or within its reachable range. Its availability must not be conditioned on recognizing the overrider's identity. | Decides how a person stops something on the spot; does not depend on a terminal, account, network, or cloud service (corresponds to U2-3, U4-2). |
| Optional | Optional tiers for override scope | override.scope.options | Set: this instance only / suppress for a limited time / permanently disable this rule, each tier annotated with its own permission requirement: the first two tiers must not require account permission — anyone present with basic control authority may use them; "permanently disable" belongs to rule-management authority. Must include at least the first two tiers, and which tier is currently in effect must be visible to the user. Someone without management authority must be able to find the scope over which the rule will continue to apply and a path to contact someone who has authority. A single override must not be interpreted by default as a permanent disable, and the absence of "permanently disable" must not be implemented as "nowhere to look after an override." | Configured when override capability is provided; the default tier is set by the product, and the remaining tiers must be reachable in one step (corresponds to U2-4). |
| Optional | Preconditions for high-consequence actions | actuation.precondition | A non-empty contract: the triggering condition is still valid at execution time, authorization is valid, the observation is fresh with correct coverage, an on-the-spot stop is available, and any safety interlock or supplementary evidence the action needs. These checks must not be replaced merely by the user having clicked confirm at some point. | MUST be configured when high-consequence actions are allowed to be automated; if not satisfied, the action is not submitted (U1-6, U1-7). |
| Optional | Overrider identity requirement | override.identity_requirement | Enumeration: no requirement / proof of presence required (physical contact with the device or operating within the room). No "account identity required" tier is provided; a recognition failure must not become a reason to refuse a stop. | Configured when it is necessary to restrict who can stop a space-level facility; the means of restriction is physical presence, not an account (corresponds to U2-3, U4-2). |
| Optional | Stop-effect contract | override.response | A per-action contract reference: acknowledgment of receipt, verification evidence of the stopped or safe state, a maximum positive duration for it to take effect, timeout disposition, and disclosure of any effect that cannot be undone. The duration is determined by hazard analysis and measurement; no universal cross-device number of seconds is set. | Configured when there is an automatic output that can be interrupted or halted; a stop still in progress must not be mislabeled as already stopped (U2-3). |
Boundaries: tiering governs "how urgent this is," the override entry governs "how a person makes it stop," and scope governs "for how long it stops." The three are independent: a low-tier action can be given a fully adequate override entry, and a high-tier action can be correctly tiered yet still lack an on-the-spot way for a person to stop it. Binding the three together into a single "safety level" slider loses control over all three at once.
3. Automation: how something happening on its own gets noticed, how it can be traced back, how conflicts are arbitrated
Prefix: amb.automation
| Level | Design decision | Token field | Type and legal values | Applicability and effect |
|---|---|---|---|---|
| Required | On-the-spot perceptibility | execution.perceptible | A mapping by action consequence: the action itself is observable / a device-side indicator / an on-the-spot notice before execution; these can be combined. A high-consequence action must not rely on a push notification alone; an action that must be preceded by a notice is delayed together with the notice, not acted on first and reported after. An indicator should be understandable under actual lighting, noise, and perceptual conditions. | Configured when automatic physical output exists; safety interlocks follow their own dedicated requirements and are not given an added wait that impedes protection (U2-1). |
| Required | Field set for trigger explanation | rule.explanation | Set: rule or mechanism name, creator or source, the trigger condition satisfied this time, execution time, and a reachable entry to modify or disable it. When the source is an inference, its nature must be labeled. An untraceable phrase such as "executed by the smart assistant" must not stand in for this item. | Decides to what degree "why did this happen now" can be answered; equally applies to actions triggered by voice, a third-party platform, or a vendor's cloud (corresponds to U2-2). |
| Required | Conflict-arbitration policy | conflict.policy | Reference: execution order for simultaneous triggers, the basis for choosing between contradictory actions, how chaining and loops are handled, and the scope of conflict warnings at creation time. When cross-vendor rules cannot perceive each other, that limitation must be declared. | Decides the outcome when two rules collide; the arbitration outcome must be traceable (corresponds to U2-5). |
| Optional | Rule scope | rule.scope | Reference: the devices and spaces the rule affects, whose environmental state it changes, and whether it collects or reports personal behavior. Must be resolvable when the rule is created. | MUST be configured for a space shared by multiple people; this is the input that notice.audience uses to judge the notification obligation (corresponds to U2-6). |
| Optional | Notification audience | notice.audience | Enumeration: no notification (the rule affects only its author) / discoverable by those affected / proactively notified to those affected. A rule that involves collecting, recording, or reporting personal behavior must take the third tier; no legal value of "hidden from a specific member" is provided. | MUST be configured when the rule's effect reaches people other than its author (corresponds to U2-6). |
| Optional | How learned automation takes effect | learned.mode | Enumeration: does not generate / generates suggestions only / auto-executes once a specific rule is accepted. The default is suggestions only; moving from suggestion to execution must have explicit acceptance. Continuous, residue-free adaptation that can be manually overridden is judged under U2-7's exception. | Configured when behavior-learning capability exists; unless set to "does not generate," learned.reproposal must also be configured (U2-7). |
| Optional | Default duration of the manual-priority period | suspend.default_ttl | A set of positive durations, set separately by device category with the basis recorded. This dictionary gives no recommended value — a reasonable length for temporarily turning off a light differs from that for temporarily turning off a thermostat, and there is no citable baseline across products. | MUST be specified together whenever state.conflict.resolution is configured and its end condition includes an expiry item (corresponds to U1-4). |
| Optional | Trigger semantics and time boundaries | trigger.policy | Contract reference: the pattern of event / state-entry / sustained condition; the interval and count or duration cap for sustained execution; duplicate-event recognition; and the skip-or-pending-verification policy for time zones, clock jumps, missed windows, and an untrustworthy clock. | Configured when automation is provided; a physical side effect must not be repeated by relying on a network retry (U2-8). |
| Optional | Handling a partially completed scene | scene.failure_policy | Contract reference: sub-action order and dependency, the block/continue condition after a failure or unknown, stop propagation, result aggregation, and remediation conditions and authorization; remediation does not override a person's new input. The specific sub-actions and receipts are operational data. | Configured when a composite scene exists; atomic completion across devices is not guaranteed, and retrying the whole scene is not treated as recovery (U2-8). |
| Optional | Suggestion suppression after rejection | learned.reproposal | Object: a positive suppression duration, or until the user re-enables it; a list of substantive contextual changes that permit re-proposing early, with an empty set meaning never early; and the basis for judging a repeat. It cannot be re-proposed merely by rewording the copy or asking again after a restart. | Configured when a learned suggestion is generated; suppression does not remove the entry for a user to proactively create a rule (U2-7). |
Boundaries: perceptibility governs "whether a person knows on the spot," trigger explanation governs "whether it can be looked up afterward," and conflict arbitration governs "which of two rules wins." The three do not substitute for one another: a perceptible automatic action may still be untraceable, and a traceable action may still go unnoticed by anyone at the moment it happens. Treating good traceability as a substitute for perceptibility is the most common sleight of hand in this domain.
4. Disconnection and degradation: what remains without network, account, or subscription; what things become when a service stops
Prefix: amb.offline
| Level | Design decision | Token field | Type and legal values | Applicability and effect |
|---|---|---|---|---|
| Required | Coverage of the local path | local_path.scope | Set: among the basic functions the product controls (lighting, entry, temperature control, ventilation, water supply and drainage, cooking, security), which ones have a usable path that does not depend on the internet, the vendor's cloud, an account, or a subscription, and their respective availability under "internet down, local network up" and "local network also down." The basic-function item must not be empty. | Decides whether the home remains livable once external dependencies are cut; no legal value of "everything goes through a remote party" is provided (corresponds to U3-1). |
| Required | Dependency and support-commitment disclosure | dependency.disclosure | Reference: each capability's network, cloud, account, and subscription dependencies and its state after an interruption; listing separately the minimum support period or end date for cloud functions and for security maintenance, the basis on which each is counted, and unknown items, distinguishing warranty, support, and end-of-service notice. | Applies when an external dependency exists; must be obtainable before purchase, installation, or construction; when there is no dependency, record the factual reason (U3-2). |
| Required | Degraded-state definition | degraded.profile | Reference: a named degraded state, including the capability retained, the capability suspended, how user actions taken during it are handled (rejected / queued pending sync / locally effective pending sync), and how it converges on exiting the degraded state. Degradation must not be implemented as a set of error branches. | Decides what the product looks like when the network is down; degradation must be distinguishable by the user from a device fault (corresponds to U3-3). |
| Optional | Advance notice before service discontinuation | discontinuation.notice | A positive duration; tiered by the degree of user investment, with a longer advance notice applying to devices involving installation work or an irreversible modification. An emergency discontinuation due to a security vulnerability, legal requirement, or force majeure may be exempt from the advance-notice period, but the end-state disclosure and data-export obligations still hold. | MUST be configured when device function depends on the vendor's continuing service (corresponds to U3-4). |
| Optional | Change policy for local capability | local_path.regression_policy | Enumeration: the local function in the already-sold baseline is not withdrawn because of an update or a change in commercial terms / when an adjustment is genuinely necessary, already-sold devices retain the original function / when an adjustment is genuinely necessary, an executable alternative path and an exit choice are provided. No "can be converted to a subscription item" tier is provided. | Configured when a device's behavior can be changed by a firmware update or a server-side policy; removing a capability for safety reasons must state the reason (corresponds to U3-5). |
| Optional | Independence of safety-related functions | safety.independence | Reference: the list of functions handling fire, gas, intrusion, emergency calling, entry control, or medical-assistance reminders, and the availability of each one's local detection and local alerting when the internet, cloud service, and account are all unavailable; and how it is represented locally when the outbound link fails. | MUST be configured when a safety-related function exists; does not substitute for the mandatory standards and certification for fire, gas, electrical, and security systems (corresponds to U3-6). |
| Optional | Data-export path | data.export | Reference: exportable categories, format, method of obtaining it, when it opens, the window before discontinuation, and whether and how long data is retained afterward. Data access remains bound by the original permissions. | Configured when video, history, or rule configuration is stored and depends on a continuing service; the export window must be actually usable before the service is discontinued (U3-4). |
| Optional | Reconnection disposition | reconnect.policy | Contract reference: which action types may be queued and their expiry conditions, a cancel entry, re-checking pre-recovery state and authorization, duplicate-action recognition, a concurrency cap, and backoff. By default, an expired action is not caught up and executed; allowing it to continue requires currently valid evidence. | Configured when actions may be queued, executed offline and then synced, or recovered on reconnection; an already-overridden, already-revoked, or unsafely-repeatable unknown action must not be resent (U3-3). |
Boundaries: the local path governs "what remains," dependency disclosure governs "when the user finds out," the degraded state governs "what it looks like right now," and the discontinuation notice and end state govern "what it looks like when it ends." These four are four points on one timeline, and missing any one of them drains meaning from the other three — a product with a complete local path that is never disclosed still leaves the user afraid to use it when the network is down; a product with a clear disclosure but no local path has merely given advance notice of bad news.
5. Spatial control authority: who can control, what presence counts as, how long a guest's control lasts, how to take it back
Prefix: amb.access
| Level | Design decision | Token field | Type and legal values | Applicability and effect |
|---|---|---|---|---|
| Required | Role model | role.model | Reference: the roles within the space and each one's scope of control, scope of visibility, scope of rule modification, and scope of adding or removing devices. The number of roles is defined by the product; long-term and temporary users must be distinguishable, and the criterion for that must be recorded. | Decides who can control what; a quantity independent of presence (corresponds to U4-1, U4-3). |
| Required | Basic control for people present | occupant.baseline | A non-empty capability set on applicable devices: stop, mute, pause automatic repetition, and stopping non-safety-purpose sensing in a private area. Actions apply according to device capability; this holds for lawfully present residents, short-term guests, visitors, and staff, and is not granted or revoked by an account role. Exceptions for safety equipment and space-level facilities must state their boundary and alternative path clearly. | Configured when a device directly affects people or senses in a private area; must not require an account or allow remote override; does not grant rule-editing or whole-home management rights (U4-2, U5-4). |
| Required | Method for verifying permission revocation | revocation.mode | Reference: the three states of revocation taking effect (fully in effect / partially pending, listing the specific devices and the conditions for it to take effect / cannot be confirmed), the credential categories it covers (temporary passcode, key card, voice profile, third-party platform connection, notification subscription), and items that cannot be revoked through software, with an explanation. | Decides whether "can he still open this door right now" can be answered on the spot; removal from a member list does not equal revocation (corresponds to U4-4). |
| Optional | How presence and control authority are bound | presence.binding | Reference: the three-valued presence value (someone present / no one present / unknown), whether remote operation is restricted while someone is present, what actions are available to someone present without an account, and the fallback tier when presence determination fails. "Cannot detect a person" must not be interpreted as "no one present" for the purpose of executing a high-tier action. | MUST be configured when presence detection exists or automation depends on presence; a product without detection capability falls back to "presence unknown" (corresponds to U4-1). |
| Optional | Scope of temporary authorization | grant.scope | Contract reference: the devices, spaces, actions, history, and notifications that can be granted; the default is minimum necessary, not full administrative rights. It may control every device needed within a finite period, but does not thereby inherit permanent authorization. | Configured when temporary authorization is offered, used together with grant.ttl (U4-3). |
| Optional | Temporary-authorization duration | grant.ttl | Policy object: max_duration is a positive duration; window_policy is no additional window / a recurring window only within the overall validity period; max_uses is a positive integer or no cap on uses; clock_policy is refuse if validity cannot be proven / prove validity using a trusted time base and an error margin. The start and end time, time zone, specific window, and number of uses already made for each grant are operational data. | MUST be configured whenever temporary authorization is offered; must not lack an overall expiry, must not be extended indefinitely using the last trusted time, and refusing a temporary credential must not impede evacuation or basic control (U4-3). |
| Optional | Redundancy of the administrative entry | admin.redundancy | Enumeration: a second administrator / a physical reset that can be performed offline / a manual process with identity verification. Must not be implemented so that it can only be initiated by the primary administrator personally; must not become a path that bypasses revocation.mode — someone already revoked does not regain control through this recovery. | Configured when a space's administrative authority is concentrated in a single account or a single device; when a physical reset is used, its consequences must be stated (corresponds to U4-5, U6-4). |
| Optional | Visibility of the control and access roster | roster.visibility | Reference: someone lawfully using the corresponding area can look up who controls it, who receives data, and the existence and scope of third-party and vendor operations access; a principal resolves to a specific service, organization, or restricted list. Display the minimum necessary information, do not publish private contact details, and provide no configuration for concealing access. | Configured for multi-person spaces or remote viewing; an accountless person present still has an on-the-spot reachable entry (U4-6). |
Boundaries: the role model governs "what has been granted," presence binding governs "whether anyone is here right now," and basic control governs "the part that is neither granted by a role nor revocable by a role." The third item is an independent layer beyond the first two: implementing occupant.baseline as the lowest role in the role model hands it over to whoever can modify roles — and the person who needs it is exactly the person who has no place in the role system.
6. Sensing: what is being collected, what granularity it is inferred to, what happens to bystanders, how to stop it
Prefix: amb.sensing
| Level | Design decision | Token field | Type and legal values | Applicability and effect |
|---|---|---|---|---|
| Required | Sensing scope | scope | Set: the categories of signal collected (video, audio, ranging, radar, temperature and humidity, gas, open/closed state, current), the physical area covered, and the sampling frequency. An expansion must be disclosed and explicitly accepted before it takes effect; hardware possessing a capability does not constitute authorization to use it. | Makes explicit what is being collected; a firmware update or a server-side policy must not silently expand it (corresponds to U5-2). |
| Required | Inference granularity | inference.granularity | A capability set, not an ordered scale: presence/absence, headcount, location (further labeled room-level or continuous trajectory), posture, activity type, identity, physiological state. Each item separately declares its purpose, the population it applies to, its spatial scope, its output precision, and whether it can be linked across sessions; an empty set means no inference. There is no defined containment relation among these capabilities; expansion of authority must not be judged by comparing item numbers, nor must the "commonly permitted range" be computed by taking the minimum — two policies are intersected capability by capability. Adding any capability, expanding its scope, or raising its precision each independently constitutes an expansion, requiring separate re-review and disclosure: changing from "identity recognition" to "anonymous physiological monitoring" adds physiological sensing, it is not a downgrade. Most ambient automation needs only the "presence/absence" item. | Makes explicit what conclusion is drawn from the signal; raising granularity requires explicit acceptance (corresponds to U5-2, U5-5). |
| Required | Sensing and access indicator | indicator.mode | Indicator contract reference: not sensing / sensing, corresponding respectively to local processing, upload, and remote viewing; reliably linked to actual state, not merely indicating power or network connection. Turning off the indicator while sensing continues is prohibited; critical states are not distinguished by color alone, and this includes recognizability verification under actual deployment conditions. | Configured when sensing or remote viewing exists; the indicator's presentation may reference hardware and interface resources but cannot substitute for a stop path (U5-1). |
| Optional | Means of bystander notification | bystander.notice | Set: a doorway or entrance sign, a prompt on entry, a guest mode (temporarily lowering granularity or pausing sensing). Provided for the space's manager to use; it does not substitute for their statutory notification obligation, nor does it determine its legal effect. | Configured when sensing scope may cover people who are not users of this product (corresponds to U5-3). |
| Optional | Default profile by space type | bystander.default_profile | Reference: a separate assessment record for each category of deployment space (who is affected, its use, its degree of privacy, control relationships) and the minimum-necessary default values for scope and inference.granularity determined accordingly. What is required is assessment and recording category by category; when the conclusions coincide, the same profile may be shared, but sensing must not be expanded somewhere merely to manufacture a formal difference. A mixed space (working from home, a short-term rental room within a residence) is judged separately by its actual constraints. When the space type is unknown, treat it as if a bystander is present. | MUST be configured when the product may be deployed across multiple space types; the space type at installation must genuinely enter the assessment of the default value (corresponds to U5-3). |
| Optional | Boundaries of the stop path | stop.scope | Set of stop contracts: object (sensing / upload / retention / display only), resumption condition (manual / expiry / restart), affected function, and an on-site verifiable method. A stop in a private area under U4-2 MUST genuinely halt the declared sensing and hold that state until the person present explicitly resumes it; other pauses resume as declared. | Configured when stop capability exists or is required under U4-2; safety detection may omit it under the U5-4 exception; stopping only the upload is not called stopping sensing (U5-4). |
| Optional | Separation of presence detection from identity recognition | presence.identification | Enumeration: presence detection only / presence detection and identity recognition each independently enabled. No "enable identity recognition via presence detection" tier is provided; presence detection must remain available after identity recognition is turned off, and a function that needs only presence information must not read identity-recognition results. Once identity recognition is turned off, features that can be linked across sessions to an individual must not be retained for use by ordinary occupancy-based automation. | Configured when human sensing drives automation, routes reminders, or adjusts the environment (corresponds to U5-5). |
| Optional | Prohibited uses | purpose.blocklist | A use-restriction contract: environmental-management data must not be used for personal evaluation, performance appraisal, disciplinary action, pricing, insurance, credit, admission, or an equivalent derived metric; enforced by access, processing, and output mechanisms. This floor cannot be deleted; a product may only add further restrictions. | Configured when the corresponding environmental sensing exists; cannot be satisfied merely by writing a clause, nor can aggregation be used as grounds to permit it (U5-6). |
| Optional | Data processing and retention | data.lifecycle | A per-data-category contract reference: purpose, recipient, storage location, retention period (not persisted, or a positive duration), cache capacity and over-limit disposition, deletion and backup deadlines, derived-data handling, and receipts; a statutorily retained item must note its reason and access restriction. | Configured when data is stored or transmitted externally; stopping sensing must not be passed off as deleting history, and an offline cache is not extended indefinitely (U5-7). |
Boundaries: scope decides what is collected, granularity decides what conclusion is drawn, and the stop path decides how a person makes it stop collecting. The three tighten independently, and relaxing any one does not relax the other two. "This microphone is already on the device" is not a reason to enable acoustic-event recognition, just as "video is already being captured" is not a reason to start doing facial recognition — every increase in granularity must separately go through inference.granularity's disclosure and acceptance.
7. Ownership and lifecycle: who this device belongs to, what remains after removal, how a handover is cleared, what an update changed
Prefix: amb.lifecycle
| Level | Design decision | Token field | Type and legal values | Applicability and effect |
|---|---|---|---|---|
| Required | Shape of the ownership record | ownership.record_contract | Contract reference: physical identifier and room binding, administrative principal, data recipient, other control principals and their resolution source, including unknown items and the check timestamp. The specific devices, accounts, and connection list are operational data. | Applies to devices brought under space management; a room must not be confirmed solely by a duplicate nickname or a nearby signal, and this is discoverable by anyone lawfully using the corresponding area (U6-1). |
| Optional | Authorization disclosure at onboarding | onboarding.grant_disclosure | Reference: the authorized principal shown before confirmation (vendor, platform, integrator) and the scope of capability (which devices can be controlled, which data can be read, whether it can act on the user's behalf). A device name or interface presentation is not treated as identity evidence. The scope defaults to the minimum tier needed for the current function. | MUST be configured when an onboarding, provisioning, or third-party integration authorization flow exists (corresponds to U6-2). |
| Optional | Removal disposition contract | removal.residue | Lists, by credential, provisioning information, reporting, rule response, local data, shared authorization, and third-party connection, the planned disposition and success evidence; allows an operational receipt of already-cleared / pending / cannot-confirm, with the specific residue list not stored in the token. | Configured when device removal is permitted; removal does not equal a factory reset, nor does it equal cloud data having been deleted (U6-3, U5-7). |
| Optional | Handover-clearing contract | transfer.reset | Reference: eligibility verification performed independently by the authorized recipient, termination of the old controller and old receiving channel on the device side, local credential and data erasure, onboarding of the new principal, and handling when a remote copy is pending confirmation. Brief physical contact alone must not directly grant administrative rights. | Configured when a device may be transferred; device-side erasure does not depend on the previous owner's account or cloud being online; if the old controller is still effective, the handover cannot be claimed complete (U6-4). |
| Optional | End state after support ends | end_of_support.terminal_state | A "retained / restricted / unavailable" matrix by capability: listing item by item the actual path, after support ends, for each basic capability of the device (on-the-spot switch, local scheduling, local sensing, local alerting, and so on); "whether third-party control is opened up" is an independent attribute, not a tier within the matrix. A single-choice enumeration is not sufficient to express this — the same device can simultaneously "retain the local switch" and "lose all cloud functions." | MUST be configured when device function depends on the vendor's continuing service; this is a choice made at the design stage, not a natural consequence of discontinuing service (corresponds to U3-4). |
| Optional | How a behavior change is disclosed | update.behavior_change_notice | Reference: the categories of change that trigger disclosure (a function removed, a default value changed, how automation triggers or executes changed, sensing scope or inference granularity changed, local availability changed), when the disclosure happens, and who it reaches. A change involving a high-tier action must reach the space's users, not only the account owner. A behavior change must not be bundled with a safety fix into a single indistinguishable push and disclosure waived on the grounds of safety. | MUST be configured when a device's behavior can be changed by a firmware update or a server-side policy (corresponds to U6-5, U5-2, U3-5). |
| Optional | Installation and maintenance check | commissioning.checks | A per-capability check contract: room binding, orientation and scope of effect, sensing coverage, on-site control and indicator, the offline path, maintenance triggers and responsibility, the end condition of maintenance mode, and re-verification and exit checks for affected capabilities. | Configured on installation, relocation, replacement, repair, or a change in a space's use; the specific work order, location, and test results are operational data (U6-6). |
Boundaries: the ownership record governs "who it belongs to right now," removal residue and handover clearing govern "whether things end up clean when the relationship ends," and behavior-change disclosure governs "whether it quietly became a different device while the relationship continued." The shared criterion across this category is: judgeable from the user's point of view, not merely queryable from the system's point of view — information scattered across a pairing record, a share list, and a third-party authorization page in three different places does not count as resolvable under this dictionary.
8. Capability dependency and configuration failure
A capability may go unenabled; once enabled, its dependencies must be complete. The table below omits amb.; column names are the full relative field name. A field with no applicable capability is recorded not applicable; a safety exception or the absence of physical output must not be forced into a non-empty set.
| Capability | Configuration that must resolve | On absence or conflict |
|---|---|---|
| Current-state display | state.truth.source, state.staleness.ttl; add state.report.mode if commands exist | Do not display an unevidenced state as a certain fact. |
| Physical output | control.actuation.class, state.power_restore.behavior; add state.manual_control.declared if a physical control exists | Do not enable an unassessed remote or automatic output; retain the basic manual path. |
| Automation | automation.execution.perceptible, automation.rule.explanation, automation.conflict.policy, automation.trigger.policy, state.conflict.resolution | Do not enable the affected automation; effects that have already occurred remain lookupable. |
| On-the-spot override | control.override.surface, control.override.scope.options, control.override.response; add automation.suspend.default_ttl if it ends after a time limit | Do not promise the related automatic output is available; a person's stop must not be canceled by a default resumption. |
| Sensing-driven action | state.observation.validation, state.staleness.ttl, access.presence.binding; add control.actuation.precondition for high consequence | Restrict automation that depends on that evidence; retain basic control and necessary safety functions. |
| Composite scenes | automation.scene.failure_policy, plus each sub-action's consequence, authorization, and receipt contract | Do not offer a whole-scene execution commitment; a verified low-consequence capability may still be offered individually. |
| Learned suggestions | automation.learned.mode, automation.learned.reproposal, automation.rule.explanation | Do not generate or enable a learned rule; explicit creation remains usable. |
| External dependency and recovery | offline.local_path.scope, offline.dependency.disclosure, offline.degraded.profile; add offline.reconnect.policy if it syncs or recovers | Do not publish a commitment that depends on that link; an already-deployed basic capability must not be turned off because of this. |
| Safety-related functions | offline.safety.independence and the corresponding local path and dependency disclosure | Complete the mechanism before shipping; an in-use device enters an assessed protection and repair process — renaming or disabling the alert must not substitute for the fix. |
| Continuing service | offline.discontinuation.notice, lifecycle.end_of_support.terminal_state; add offline.data.export if data exists | Until the support period and end state are made explicit, do not claim a long-term capability that depends on the service meets the requirement. |
| Multi-person spaces | access.role.model, access.occupant.baseline, access.roster.visibility; add automation.rule.scope, automation.notice.audience if rules exist | Restrict new remote proxy control; protection for accountless people, basic control, and sensing disclosure must still hold. |
| Remote control or viewing | access.presence.binding, access.revocation.mode, access.roster.visibility; add sensing.indicator.mode if remote viewing exists | Block that remote capability; simply switching to the same local network must not bypass permission and presence judgment. |
| Temporary authorization | access.grant.scope, access.grant.ttl, access.revocation.mode | Do not issue a credential whose scope and duration cannot be guaranteed; do not impair evacuation and basic control. |
| Single administrative entry | access.admin.redundancy and revocation verification after recovery | State the recovery-capability gap explicitly and assess an alternative; adding one more administrator must not be treated as having achieved reliable recovery. |
| Sensing | sensing.scope, sensing.inference.granularity, sensing.indicator.mode; add sensing.data.lifecycle if data is stored or transmitted externally | Do not enable new sensing that lacks protection; safety detection is handled under the exceptions of U3-6, U5-4. |
| Bystanders or multiple space types | sensing.bystander.notice, sensing.bystander.default_profile | Restrict new sensing to an already-assessed scope; when bystanders cannot be excluded, the related obligation still applies. |
| Private areas or stopping sensing | sensing.stop.scope and an on-site verification mechanism | When a private area lacks a protective stop, do not deploy the corresponding non-safety sensing capability. |
| Identity recognition | sensing.presence.identification and item-by-item inference authorization; add sensing.purpose.blocklist for environmental-management data | Do not enable identity recognition; a presence function must not be forced to depend on identity. |
| Bringing into a space and integration | lifecycle.ownership.record_contract, lifecycle.onboarding.grant_disclosure, lifecycle.commissioning.checks | Do not deliver automation before the real object, authorization, and on-site capability are confirmed. |
| Removal and handover | lifecycle.removal.residue, lifecycle.transfer.reset, access.revocation.mode; add sensing.data.lifecycle for data | Mark incomplete items as pending explicitly; the handover must not be claimed complete while the old controller remains in effect. |
| Behavior change | lifecycle.update.behavior_change_notice, offline.local_path.regression_policy, the check item for affected capabilities | Hold off on an unassessed behavior change; a necessary safety fix is still carried out within the boundary of U6-5. |
9. Configuration decisions and taking effect
Each effective configuration records: the applicable capability and space, an explicit value or a resolvable reference, who decided it and on what basis, where it is enforced, who is permitted to override it, the condition for it to take effect, validation evidence, and failure disposition. The referenced content and the actual value in effect must be lookupable; it cannot simply say "inherits default."
Revocation, stopping sensing, and tightening output scope SHOULD first block the not-yet-submitted affected actions, then obtain a receipt from the execution side; while an offline device is unconfirmed, keep it pending and do not claim full completion in the interface. For an already-submitted action, state whether it can be interrupted, when it enters a safe state, and what effect has already occurred. Expanding a capability, sensing, or access scope MUST satisfy the corresponding authorization, and is not automatically approved merely because the configuration was updated.
A configuration replacement is judged field by field: scope is intersected, and the duration does not exceed a constraint still in effect; an enumeration that cannot be compared is handed to an authorized party. A replacement must not revive a manual pause, a revoked permission, or sensing already turned off; when no legal value can be read, restrict the affected capability under Section 8 rather than switching to a permissive default.
What the interface shows the user is a decision such as "paused until manually resumed" or "guest permission expires tomorrow," not the field name and internal reference directly. Hard protection is enforced by the mechanism itself, not exposed as a switch an administrator can turn off.
10. Requirements that cannot be canceled by configuration
Fixed requirements follow the applicability conditions, body-text strength, and exceptions in Design Guidelines; this dictionary does not maintain a separate, stronger or weaker floor. A configuration review checks at least the following invariants:
| Invariant | Rule |
|---|---|
| Dispatched, accepted, and physical goal reached are kept separate; a timeout does not fabricate success or failure | U1-2, U1-3 |
| On-the-spot basic control is independent; a stop has an actual receipt, and remote control cannot override an effective suppression | U1-1, U1-4, U2-3, U4-2 |
| No one present is not presumed without evidence; an unknown item in a scene is not blindly retried | U1-7, U2-8 |
| Reconnection does not catch up and execute an expired, already-overridden, or already-revoked action | U3-3 |
| Temporary authorization genuinely expires; revocation and removal outcomes are verified separately | U4-3, U4-4, U6-3 |
| The sensing indicator cannot be turned off on its own, scope is not silently expanded, and a stop in a private area is not bypassed by a restart | U5-1, U5-2, U5-4 |
| Data retention and deletion are explainable, a handover does not retain the previous owner's control, and maintenance does not restore an already-revoked capability | U5-7, U6-4, U6-6 |
These checks cannot substitute for a safety, electrical, fire, or legal applicability assessment, nor can the result of a documentation check stand in for actual product testing.
Configuration delivery and validation
A state-source-of-truth policy is not the same as a specific device action having completed. Receipts, independent observations, and command records are each retained separately; when no evidence is available, the current state is unknown. The currently used policy is bound to the version of the dispatched action; reconnecting does not make a stale observation fresh again, nor does it let stale automation regain priority.
The accompanying executable sample covers only amb.state.truth.source; the remaining fields are validated item by item against this dictionary — not being covered does not mean not applicable or already passed. The sample is a positive and negative format example for the selected field, not a product preset that directly enables every capability. A complete product delivery additionally includes applicability, dependency, evidence, execution mapping, and the effective boundary for in-progress operations.
When a field name, type, or meaning changes, update its referrers and acceptance samples; when only the description is changed without changing legal behavior, keep the existing field name. A caller reads the resolved effective configuration and does not infer permission, a measurement, or a completion fact backward from a UI control, an animation, or model-generated text. See corresponding scenarios.
References
This file supports Design Guidelines and Design Token. The rules are this specification's design requirements; sources are used to demonstrate that a problem or mechanism exists, not to directly prove that every requirement applies to every product.
1. How to use this evidence
- "Reread" means the relevant passages listed here were obtained and read; it does not mean the entire document was reviewed, the product was tested, or a legal judgment was made.
- "Reading record" preserves the scope already checked in prior research, not reproduced again in this compilation; it supports only historical problem models and is not used to claim current platform behavior.
- Material with only an abstract or bibliographic metadata cannot support body-text detail; material whose full text was not obtained is retained as a lead.
- Research samples, vendor self-statements, institutional recommendations, and standards apply to different objects. A single study cannot be used to derive a universal incidence rate, and a recommendation in a standard cannot be recast directly as a legal obligation.
2. Academic research and the problem space
| Number and source | Scope of reading | Facts and applications it can support | Cannot be used to derive |
|---|---|---|---|
| R01 Weiser, The Computer for the 21st Century, Scientific American 1991: publisher page (body text paywalled), full-text course copy | Reading record: full-text copy; historical material | Proposes that once computing is embedded in the environment it "disappears" into daily life, using writing and electric motors as analogies; gives three scales — tab/pad/board — and a deployment vision of "hundreds of computers per room"; introduces the concept of peripheral attention (periphery). Supports the introduction's definition of this domain's regulatory object. | This is a 1991 speculative essay with no experiments or data. "Calm technology" comes from his later writing and should not be attributed to this piece. No specific design requirement is derived from it. |
| R02 Bellotti & Edwards, Intelligibility and Accountability: Human Considerations in Context-Aware Systems: bibliographic entry | Only bibliographic metadata; body text not obtained | Retained as a lead for context-aware-computing research. | The title is not used to infer specific principles, experiments, or effects; not used as factual basis for any clause. |
| R03 Tolmie et al., Unremarkable Computing, CHI 2002: publicly available paper copy | Reading record: abstract and introduction; historical research | An ethnography of British households, showing that assumptions from home and office settings are not interchangeable, and that "unremarkability" comes from everyday routine rather than technical invisibility. Supports this specification's practice of evaluating default profiles separately for home, office, and public space (sensing.bystander.default_profile, U5-3). | A small-scale qualitative study with no sample size or quantitative conclusion; its technical premises predate smart speakers, cloud accounts, and app-based control, and it is not used for any judgment about contemporary products. |
| R04 Ur et al., Practical Trigger-Action Programming in the Smart Home, CHI 2014: author homepage PDF | Reading record: full text; historical research | Three studies. Of the submitted programmed behaviors, 77.9% could be expressed by a single trigger and single action, with the remaining roughly 22% needing multiple triggers or actions; examples significantly changed how users phrased things (68.9% with an example versus 51.0% without, p < .001); scraped all 67,169 IFTTT recipes existing at the time, from 35,295 distinct users; in a 226-person usability test, when faced with an impossible task only 26% correctly recognized it as infeasible. Supports the judgments in U2-2 and U2-5 about the rule model and user comprehension. | All are MTurk convenience samples, skewed male (69.2%) and predominantly US-based; IFTTT users are self-selected early adopters, not representative of typical households. No other end-user programming paradigm is compared, so this cannot be used to claim trigger-action is the optimal model. |
| R05 Ur et al., Trigger-Action Programming in the Wild: An Analysis of 200,000 IFTTT Recipes, CHI 2016: NSF Public Access Repository accepted manuscript | Reading record: full accepted manuscript; historical research | Scraped 224,590 publicly shared IFTTT recipes in September 2015, from more than 100,000 users; 768 trigger types and 368 action types, with a median trigger usage count of only 22; the median number of times a recipe was adopted by others was 1, and only 43.1% had ever been adopted by anyone else. Shows that real-world automation is long-tailed and highly individual, supporting U2-5's treatment of conflict arbitration as a routine design concern rather than an edge case. | This is only a single snapshot of publicly shared recipes; it does not include private recipes, actual execution frequency, or whether recipes worked as expected; single platform, single point in time, no user interviews. |
| R06 Brackenbury et al., How Users Interpret Bugs in Trigger-Action Programming, CHI 2019: author homepage PDF | Reading record: full text; historical research | Proposes three timing paradigms — event-event, event-state, state-state — and ten classes of trigger-action defects (including infinite loops); an online study with 153 participants showed that most defect classes significantly reduced participants' ability to correctly predict rule behavior, and some participants could never distinguish "event" from "state." Directly supports U2-5's requirement to flag obvious conflicts at creation time and to make provisions for chaining and loops. | MTurk convenience sample; participants interpreted pre-written rules rather than writing their own, which the authors explicitly note differs from real tasks; some rule sets were more complex than actual deployments. |
| R07 Geeng & Roesner, Who's In Control? Interactions In Multi-User Smart Homes, CHI 2019: author homepage PDF | Reading record: full text; historical research | A mixed-methods study of 18 participants proposing a role distinction between the "smart-home driver" and the "passive user"; 16 of the 18 were drivers, and 15 had personally installed devices. Installers held a disproportionate position in device selection, control, and troubleshooting, and thereby possessed information others did not (for example, when a smart lock had been opened). Some drivers installed devices without consulting cohabitants. When the system failed, passive users could not troubleshoot and could only wait or fall back to manual means. The authors explicitly state that this asymmetry creates the conditions for control and abuse. Supports U4-2, U4-6, U2-6. | The authors themselves note the sample is heavily skewed toward drivers, recruited from smart-home enthusiast forums, and failed to recruit their passive cohabitants, so this study does not represent the passive user's experience; passive users in the study expressed fewer privacy concerns, which the authors suggest may be an artifact of sampling. The observation window was only a few weeks and did not cover children's perspectives. |
| R08 Marky et al., Roles Matter! Understanding Differences in the Privacy Mental Models of Smart Home Visitors and Residents, MUM 2021: author-institution PDF | Reading record: full text | N=30, a mental-model study deliberately split evenly between 15 residents and 15 visitors. Visitors had limited understanding of how devices collect and store sensitive data about them, and the misunderstandings differed by role; residents could connect collection to storage, while visitors missed the link between collected data and their own identity. The authors conclude the source of misunderstanding is not primarily technical affinity or general comprehension. Directly supports U5-1, U5-3. | An explicitly qualitative study; N=30 supports no quantitative conclusion; participants faced given scenarios rather than the real devices in their own homes; recruitment base is a German/European population. |
| R09 Yao et al., Privacy Perceptions and Designs of Bystanders in Smart Homes, CSCW 2019: Semantic Scholar entry (with full abstract) | Reading record: abstract; body text not obtained | Defines a "bystander" as someone who is neither the device owner nor the primary user but is drawn into device use (other household members, guests); an 18-person focus group and co-design; identifies a tension in privacy expectations between owner/user and bystander, and lists "requesting device control" as one mitigation design. Supports U4-2, U5-3. | Only the abstract was read; of the three influencing factors, only one (perceived norms) could be confirmed, and the list of design factors was not verified. N=18 qualitative research; not generalizable. |
| R10 Mare, Roesner, Kohno, Smart Devices in Airbnbs: Considering Privacy and Security for both Guests and Hosts, PoPETs 2020(2): author-institution PDF | Reading record: full text | A survey of 82 hosts and 554 guests. 90% of guests were unwilling to share browsing history with hosts, while about one-fifth of hosts wanted that information; guests generally welcomed smart devices but worried about excessive monitoring and its consequences, illustrated in the paper by "a thermostat being locked"; cameras were the sharpest boundary, with placement in bedrooms and bathrooms drawing the strongest objection. Directly supports U4-3 and U5-3's clauses on temporary guests and bystanders. | The MTurk sample is similar to US Airbnb users in age and gender, but the authors explicitly state it cannot be generalized beyond the US; multi-function devices (such as a door lock with a camera) are not covered; this states preferences rather than observing behavior. |
| R11 Le et al., Exploring Smart Commercial Building Occupants' Perceptions and Notification Preferences of IoT Data Collection in the United States, arXiv:2303.04955: preprint | Reading record: front matter and main findings; preprint | 492 self-reported US participants working in smart commercial buildings. Roughly half were not adequately aware of how the building's IoT data collection and use worked, even though they had noticed the presence of devices and sensors; participants highly confident in their own IoT knowledge were also mistaken; most wanted to be informed, and preferred push notification over a website or physical signage; mobile app notification was the least preferred method in the commercial-building scenario, the opposite of the smart-home scenario. Supports U5-3, U5-6, and sensing.bystander.default_profile's practice of evaluating default profiles by space type. | An online self-report survey limited to the US; participants' self-classification as being in a "smart building" may be mistaken; this states preferences rather than measuring a deployed interface; it is a preprint, and formal publication status was not checked. |
| R12 Giese & Noubir, Amazon Echo Dot or the Reverberating Secrets of IoT Devices, WiSec 2021: author-institution PDF | Reading record: full text | Purchased 86 secondhand Echo Dots over 16 months. Because of flash wear leveling and a lack of encryption, previous passwords and tokens remained in flash memory after a factory reset; a party with physical access could recover Wi-Fi credentials, the previous owner's location, and access to connected devices such as cameras and door locks. The paper explicitly notes that a local factory reset does not necessarily release the cloud binding, leading the user to mistakenly believe removal is complete. Directly supports U6-3, U6-4, and lifecycle.removal.residue, transfer.reset. | Requires physical possession and hardware attack capability; it is not a remote attack; it targets a single device family and generation (third generation) and does not automatically apply to current hardware; the 86 units are an opportunistic sample from secondhand channels. |
| R13 Hazazi & Shehab, Exploring the Usability, Security, and Privacy of Smart Locks from the Perspective of the End User, SOUPS 2023: USENIX PDF | Reading record: full text | Interviews with 29 participants who had used smart locks and shared digital keys. Records the mechanism of "revocation evasion": many low-power Bluetooth smart locks fetch their access-control list from a remote server via the owner's phone or a gateway, and when the lock cannot connect, it cannot update that list, so a revoked person can still unlock it until the lock next connects. After watching a demonstration video, participants' concern about log evasion rose significantly (mean 1.72→2.24, p = 0.020), and concern about revocation evasion rose but not significantly (1.79→2.21, p = 0.126). Some participants directly connected revocation failure to stalking and domestic abuse. Directly supports U4-4's three-state receipt requirement and access.revocation.mode. | A convenience sample of 29, mainly university students and staff, with limited geographic and educational diversity; this is self-reported interview data; the change in concern was measured before and after a researcher-made video, an inherently leading intervention. |
| R14 Tseng et al., The Tools and Tactics Used in Intimate Partner Surveillance, USENIX Security 2020: arXiv abstract page | Reading record: abstract; body text not obtained | Studied from the perpetrator's perspective, a mixed-methods analysis of five online forums discussing monitoring a partner's phone, deriving three categories of means — spyware, account intrusion, and social engineering — and giving a taxonomy of intimate-partner surveillance strategies. Supports U4-4's judgment that permission revocation carries urgency and safety implications. | Only the abstract was read, so its specific figures and category names cannot be cited. The subjects studied are perpetrators' self-reports on public forums, not verified behavior or incidence. Its scope is intimate-partner surveillance as a whole (phones, accounts), not smart-home-specific, and it must not be cited as IoT research. |
| R15 Lopez-Neira et al., "Internet of Things": How Abuse is Getting Smarter, Safe – The Domestic Abuse Quarterly Issue 63, 2019: UCL institutional repository PDF | Reading record: full text; practitioner-facing journal article | Lists smart speakers, app-unlockable smart locks, and remotely controllable heating as abuse vectors; records a named case: in May 2018, Ross Cairns was convicted of stalking after breaking into a home's smart hub and eavesdropping via its audio function through a mobile app, in a system controlling lighting, central heating, and alarms. Cites more than 920 cases of tech abuse recorded by the charity Refuge since January 2018. Supports the motivation given in U2-6, U4-2, U4-4. | A publication aimed at the domestic-abuse services sector, not peer-reviewed empirical research; the 920 cases are the organization's own case count, not a population incidence rate; limited to the UK; a single case serves as illustration, not statistics. |
3. Public records and vendor mechanisms
| Number and source | Scope of reading | Facts and applications it can support | Cannot be used to derive |
|---|---|---|---|
| R16 US Federal Trade Commission, closing letter to Nest Labs regarding Revolv, 2016-07-07, file number 162-3119: FTC official PDF | Reading record: full text; official document | Revolv sold a smart-home hub for $299 starting in 2013; after Nest acquired it in October 2014 it stopped selling the hub but kept the cloud service running, then announced in late February 2016 that the hub and app would stop working that same year. FTC staff were concerned that "a reasonable consumer would not expect the Revolv hub to become unusable because of a company decision", holding that unilaterally rendering a device inoperable could cause consumers substantial injury they could not reasonably avoid; the three reasons cited for closing the matter were the limited sales volume, the full refund offered after the announcement, and notifying consumers of the refund via website, in-app notice, and email. Directly supports U3-4's advance notice and end-state disclosure. | This is a closing letter, not an enforcement action or a finding of violation; the document itself states that closing the matter does not constitute a determination that "no violation occurred." Limited to US jurisdiction. Two dates appear in the letter (the May 15 date announced to consumers and the June 19 date mentioned at the opening); these must be distinguished when citing. |
| R17 Consumer Reports, Wink Tells Users: Pay Up or We Will Disable Your Smart Home Hub, 2020-05-07 (updated 2020-07-14): report page | Reading record: full text; consumer-organization reporting | Wink began charging a $5/month subscription on already-sold hubs (originally $70 and $100), with the deadline pushed back several times to 2020-07-27; the first-generation hub's packaging had once stated "no monthly fees or subscriptions." Non-payers lost remote app control, voice-assistant integration, the ability to add new devices, and firmware security updates, retaining only local control of some devices. Directly supports U3-5's clause that already-sold local capability must not be retroactively withdrawn. | Advocacy reporting from a consumer organization, neither neutral reporting nor research; a single-vendor case plus expert opinion, with no sampling. The "loss of security updates" item carries the most weight and most needs cross-checking against the vendor's own statements. |
| R18 Amazon, Amazon Halo discontinued: company announcement | Reading record: full text; corporate self-statement | Support ended on 2023-07-31, and from 2023-08-01 neither the device nor the app worked any longer; purchases from the preceding 12 months were fully refunded and unused subscription fees were returned; users could download their health data until August 1, after which remaining data was deleted. Supports U3-4's requirements on end-state disclosure and data export. | This is the company's own announcement and does not constitute independent verification of how refunds and deletion were actually carried out; the page does not date the announcement itself, only the effective date. |
| R19 TechCrunch, Spotify begins offering Car Thing refunds as it faces lawsuit over bricking the streaming device, 2024-05-30: report page | Reading record: full text; tech media reporting | A $90 device, released February 2022, discontinued that July, deactivated on 2024-12-09; refunds required proof of purchase; a class-action lawsuit was filed on 2024-05-28 in the US District Court for the Southern District of New York. User backlash pointed at both "the device still worked fine" and e-waste. Serves as another public record for U3-4. | Tech-media reporting; the allegations in the lawsuit are claims, not a judgment. The scope of refund coverage is inconsistent across different reports. |
| R20 HR Dive, Big Brother comes to Barclays: Sensors track employees' desk time, 2017-08-22: report page | Secondhand verification (the original Bloomberg report was paywalled and not obtained); trade-media reporting | Barclays installed OccupEye-brand motion and heat sensors under desks in its London investment-banking division; employees reported discovering this themselves rather than being told, while the company was reported at the time to say it had notified staff and the union in advance — the coexistence of both accounts is itself a citable fact. The company's own all-staff memo framed the purpose as cost savings, assessing office-space use, and reducing energy consumption, not monitoring individuals or productivity. Supports the motivation given in U5-3, U5-6. | A secondhand account of an original report that could not be opened; a single company, a single 2017 event, with no measurement of its claimed effects; employees' anxiety is described through quotes, not research. Whether staff were notified in advance is a dispute not resolved within the sources actually read for this reading record. |
| R21 Apple, Share control of your home: official support | Reread the sharing-setup and stop-sharing sections | Explicitly notes: after removing a member from Home, permissions that person obtained through an accessory's standalone app may still remain valid. Supports U4-4 and U6-1's requirement to check every control principal and independent credential. | A vendor capability description, not independent testing; it does not prove that revocation completes instantly on every device. |
| R22 Google, People and permissions in the Google Home app: official support | Retained reading record; the live page was not reverified | Serves as an implementation reference for configuring management, activity-access, and settings permissions by role. | This record is not used to claim the current platform's number of roles, cap on number of people, or data-retention period; U4's requirements are independent of any specific vendor. |
| R23 Connectivity Standards Alliance, Peeking Under the Hood of Your Matter Smart Home: official explainer | Reread the Fabric, Commissioner, and Multi-Admin explanations | A single device can be controlled by multiple administrative principals, supporting U6-1's record of multi-principal ownership. | An industry-organization explainer; it does not prove interoperability performance of specific devices or cross-platform revocation outcomes. |
4. Standards and institutional materials
| Number and source | Scope of reading | Facts and applications it can support | Cannot be used to derive |
|---|---|---|---|
| R24 Matter Application Cluster Specification (document 23-27350, approved by the CSA Board of Directors 2024-04-17): CSA official PDF | Reading record: relevant clauses of §1.5.5.2, §1.5.6.5, §1.5.6.6; formal specification | The StartUpOnOff attribute specifies a device's target startup behavior when powered on, enumerated as 0 off, 1 on, 2 toggle previous state, with a null value restoring the prior state; the specification explicitly states this behavior does not apply to a restart caused by a firmware upgrade, where the device should return to the value it held before the restart. This gives U1-5's requirement that "the state restored after power loss must have an explicit value" precise mechanism vocabulary, and supports U6-5's judgment that an update should not incidentally change behavior. The same document's example for OffWaitTime is exactly "after a person leaves the room and the light turns off, the occupancy sensor detects the departing person again and tries to turn the light back on," corresponding to U1-4's convergence problem. | The specification defines how a certified implementation should behave, not how shipped products actually behave, nor what users expect. It is used only for the explicit clauses in the linked document, and no inference is made about every device's implementation. CSA's copyright notice restricts reproduction, so this is a paraphrase rather than a direct quotation. The stated lineage to Zigbee ZCL is confirmed only by this document's own annotation within the reading record; the original Zigbee specification was not verified. |
| R25 NISTIR 8259A, IoT Device Cybersecurity Capability Core Baseline, 2020-05, DOI 10.6028/NIST.IR.8259A: NIST official PDF | Reading record: front matter and the capability comparison table; voluntary guidance document | Gives six core device-cybersecurity capabilities: device identification, device configuration, data protection, logical access to interfaces, software update, and cybersecurity state awareness. "Device identification" requires a unique logical identifier to support asset management, supporting U6-1; "logical access to interfaces" includes the ability to disable interfaces not needed for core function; "device configuration" requires that configuration changes be performed only by an authorized principal, supporting U6-2, U6-5. | A voluntary, manufacturer-facing capability baseline, not a regulation, and not enforceable; it only requires that a capability exist and does not prescribe the specific mechanism. Set against a US backdrop. Non-technical disclosures about end of support are listed separately in R30 and are not part of this source's technical capability table. |
| R26 ENISA, Good Practices for Security of IoT — Secure Software Development Lifecycle, 2019-11-19: publication page | The reading record covers only the publication landing page (title, publisher, date, and scope description); the report body was not obtained | Confirms the existence of an EU institutional guidance document covering secure development across the full lifecycle of IoT products and services. Serves as a corroborating lead for U3-4, U6-5. | The body text was not read, so the search-summary language about a "decommissioning phase," "end-of-lifecycle strategy," and "disclosing the security and patch support period" is unverified and may in fact come from ENISA's other publication, Baseline Security Recommendations for IoT (2017-11), which was likewise not obtained within this reading record. The main specification text therefore does not cite its specific recommendations, using it only as an example of a source type in Appendix B. A non-binding good-practice guide addressed to the EU. |
| R29 ETSI, EN 303 645 — Cyber Security for Consumer Internet of Things: Baseline Requirements: formal text | Read the relevant passages of §5.8, §5.9, §5.11–§5.13 | §5.9 recommends resilience to outages, local functioning, and orderly recovery; §5.11 distinguishes device data erasure from service data erasure and discusses why deleting one person's data in a shared scenario should not equate to a full device reset; §5.12 concerns installation and maintenance. Supports the problem judgments in U3-3, U5-7, U6-6. | The strength of the original text must be distinguished clause by clause; the input-validation clauses target application-layer interfaces and do not prove physical-sensor accuracy. This specification's reconnection re-verification and sensing-failure handling are design derivations. |
| R30 NIST, IoT Non-Technical Supporting Capability Core Baseline, NISTIR 8259B: institutional original | Read the relevant content of the information-dissemination table | Lists information that must be conveyed, such as software support conditions, end of support or of a function, and maintenance operations. Supports the support-commitment disclosure in U3-2, U3-4. | Voluntary guidance; it gives no universal support duration, advance-notice period for discontinuing service, or cloud-function commitment. |
| R31 W3C, Web of Things Thing Description: ActionAffordance | Read the action-property definitions and examples | Describes an action's safety semantics, idempotence, and synchronicity separately, supporting expressing command capability and execution result separately. | safe refers to whether the call leaves internal resource state unchanged, not personal-safety certification; an idempotent declaration does not prove the entire chain — network, device, and physical action — can be safely retried. |
5. The boundary between sources and design judgment
| Question | This specification's design decision | Source or basis for the derivation |
|---|---|---|
| Trigger interpretation, loops, and combined scenarios | Record the actual trigger basis, per-item results, and subsequent disposition; do not default to retrying the whole scene | R04–R06 support that comprehension gaps exist; the specific scenario contract is defined by U2-8 |
| Multi-person spaces and accountless users | Basic control is judged by legitimate presence and direct effect, not excluded by account role or length of stay | R07–R10 support that roles and expectations differ; the scope of rights is this specification's own choice in U4-2 |
| Sensing staleness, occlusion, and false "no one present" | Separate observation from inference; define verification, failure, and degradation; do not manufacture an "unoccupied" fact | U1-2, U1-7 are derived from the reliable-action commitment; there is no basis for a universal accuracy rate or time threshold |
| Interruption and reconnection | Re-check state, authorization, and manual suppression before deciding to continue or cancel | R29 supports resilience of recovery; the specific conditions prohibiting catch-up execution are defined by U3-3 |
| Support and discontinuation of service | Distinguish cloud function, security maintenance, warranty, and notice period before purchase | R16, R18, and R30; there is no universally applicable support duration |
| Revocation, deletion, and handover | Confirm separately for each device, independent credential, and service; an offline remote party remains pending confirmation | R12, R13, R21, R29; the erasure contract is defined by U4-4, U5-7, U6-4 |
| Installation and maintenance | Verify room binding, coverage, and control before handover; re-verify affected capabilities after any change | R29 provides a maintenance direction; the specific on-site check is a design requirement of U6-6 |
6. Verification limits
No device testing, user research, firmware analysis, security certification, or jurisdictional compliance assessment has been performed. No evidence supports a uniform observation validity period, manual-suppression duration, stop deadline, calibration cycle, or advance-notice period for discontinuing service that applies across products; a project must record its basis by device, installation environment, and consequence.
The actual comprehension rate of bystander notification, arbitration of multi-person preferences, and the effect of bodily differences and installation position on in-place control require verification in real spaces. Vendor documentation may change; the adopted capability SHOULD be rechecked at delivery. Research proving that a class of problem exists does not prove that a specific product has been affected by it or has resolved it.