docs: ADR-0041 amendment — natural-fuel coherence

Record the natural-fuel drag-along rule the overlay now implements: drag a fuel
only where the archetype is unambiguous (electric/gas), leave ambiguous
solid/oil room heaters to the main_fuel override, let a present main_fuel
override win by last-wins composition, and LOG (not raise) a landlord fuel that
contradicts the archetype's natural fuel.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Khalim Conn-Kowlessar 2026-06-30 16:46:56 +00:00
parent d8acc9baa5
commit d5927c68a9

View file

@ -101,3 +101,27 @@ companions drag from the code). The visible baseline shift it produces is
correct Rebaselining per [ADR-0039](0039-override-aware-rebaselining.md). It
**corrects the stated cause of PRD #1361 Class A** (classifier taxonomy gap, not
fabric/rebaseline).
### Amendment: natural-fuel coherence
A room-heater / direct-acting archetype names a *system*, not its fuel — and fuel
arrives as its own composable `main_fuel` override. Two rules keep the system
self-coherent without coupling the two overlays:
- **The heating overlay drags a natural fuel only where the archetype is
unambiguous** — electric room heaters / direct-acting / storage are
unambiguously electricity (RdSAP `main_fuel` code 29), a gas boiler is mains
gas (26). A **solid / oil room heater is fuel-ambiguous** (coal vs wood vs
smokeless), so it drags **no** natural fuel and relies on the `main_fuel`
override; dragging a guessed coal-vs-wood code would be *more* wrong (very
different carbon).
- **A present `main_fuel` override wins** by the applicator's last-wins
composition (`apply_simulations` setattrs non-`None` fields in order), so the
`main_fuel` overlay is applied **after** the heating overlay. The agreeing
case (electric system + electricity fuel) is order-immaterial; only a
*disagreeing* one depends on the ordering.
- **A landlord fuel that contradicts the archetype's natural fuel is *logged*,
not raised** (e.g. "gas" fuel on a solid-fuel room heater) — an
override-plausibility signal (cf. the ADR-0039 scanner); what to do with it is
deferred. The override is still honoured (the landlord wins); we only record
the implausibility.