Repository
← Overview

Operations 11

Implementation Findings

Where the estate’s running tools disagree with the canon, or with each other. Recorded here, fixed by whoever owns the tool — this repo asserts nothing on their behalf.

01

OS1 implements a THIRD colour-temperature standard, matching neither the canon nor the stated install practice

Evidence

engine:OS1 v1.22 ELEC._cctOf — returns 3500 K for LIV / DIN / FOY and 4000 K for every other room type. The string 3500 appears nowhere else in the file; the only 6500 K is L08 Emergency light, which is correct and not a defect.

Against
  • book:Book 7 · B7-BR03 (Exception Allowed: None) — bedroom 2700 K, living/dining 2700-3000 K, kitchen 3000-4000 K, bathroom 3000 K. The engine puts bedrooms at 4000 K and living at 3500 K.
  • matrix:ELS-MATRIX Electrical & Lighting #45 (REQUIRED) — rejects single-temperature-whole-house. The engine gives ONE temperature per room with no layer split, which is the same failure at room scale.
  • The ALUMAX install standard confirmed 2026-08-25 as 3500 K everywhere — which the engine does not do either.

SoThree standards are live at once: canon says per-room-per-layer, practice says 3500 K everywhere, and the tool says 3500/4000 by room. Any two of them being reconciled still leaves the third. Recorded against RULE-LIGHT-CCT-001, which is decision-blocked, not evidence-blocked.

02

OS1 implements the BOOK downlight wall offset, which makes the customer-facing SKU copy the outlier

Evidence

engine:OS1 v1.22 ELEC._setbackOf — 500 mm for BTH / MBA / FOY, 600 mm otherwise.

Against
  • book:Book 7 · B7-D02 — 500-700 mm, preferred 600. The engine implements it exactly. The Sell Catalog Wall-Wash Spotlight SKU and all three ELS Curated combos instead publish 15-20 cm citing 'B7-D'.

SoTwo of the three surfaces agree with each other and with the Book; the published one does not. This strengthens the citation defect already raised — the engine is the tie-breaker.

03

A rule proposed as NEW is already in production

Evidence

engine:OS1 v1.22 EXCLUSIONS and GATE_CLIENT — 'Client free-issue items (appliances, loose fittings) — manufacturer warranty applies, not ELS', alongside a six-way scope separation and the 40/30/20/10 PAY_GATE, closing with 'This six-way separation on every quotation is what prevents disputes.'

Against
  • RULE-PROC-HARDWARE-001, proposed in briefs/BRIEF-FITOUT-2026-08-25.md section 4 as a new rule answering client-supplied hardware with a scope label rather than a price argument.

SoThe rule is not new. It is undocumented existing policy, already executed on every quotation. It should be written up as a description of practice at Level B, not drafted from a Taiwanese video at Level C — and it can cite the engine.

04

Driver serviceability is already an ELS spec principle — for cabinets only

Evidence

engine:OS1 v1.22 cabinet LED spec — 'Driver outside the cabinet body, serviceable; 2700-3000 K, CRI >=90' (Book 12 · ALC-LED-01, Book 11 · WPC-LED-01/02, both deferring to B7-BR03).

SoThe principle that a driver must be reachable and replaceable is already canon for in-cabinet LED. It does not extend to ceiling luminaires, which is precisely where matrix #56 says Sarawak lightning kills drivers. That is a gap with an existing principle to extend rather than a new idea to argue — it supports the proposed RULE-LIGHT-SERVICE-001.

05

OS1 carries a Sarawak delivery-distance axis this repo's SOURCING facet does not

Evidence

engine:OS1 v1.22 ZONES — sibu / central (Sarikei, Bintulu, Mukah) / far (Kuching, Miri) / interior-river (Kapit, Belaga, Limbang), each carrying an outstation loading and a risk score.

Against
  • taxonomy/material-facets.json SOURCING — local-sarawak / west-malaysia / imported-regional / imported-far, which measures distance INTO Sarawak and stops there.

SoDistance WITHIN Sarawak is a real and separate axis: it governs delivery, install logistics and replacement reachability, and river-interior is not a rounding error on 'local-sarawak'. Worth proposing as a facet extension — CLASS ONLY. The loadings and risk scores are commercial and stay INTERNAL.

06

RESOLVED — the estate contains a machine check that REJECTS 3500 K, and two tools that emit it

Evidence

tool:ALUMAX-SELL v6.9 importELSPlan() — var bad=(cct&&[2700,3000,4000].indexOf(cct)<0); and on failure it prints: 'CCT {n}K violates B7-BR03 (CCT-01 pending in E3): canon is 3000K linger · 4000K task · 2700K bedroom — re-run the planner CCT before the client copy.'

Against
  • engine:OS1 v1.22 ELEC._cctOf — returns 3500 for LIV / DIN / FOY, 4000 otherwise. An OS1-planned living room is therefore 3500 K.
  • The confirmed ALUMAX practice of installing 3500 K everywhere (George, 2026-08-25).
  • engine:OS2 v4.7 COL MT@1.6 visual.lighting — {cct:3000, criMin:95}, and the collection's own recommendedScheme says 'MT locks 3000K / CRI ≥95, which is stricter and compliant'.
  • tool:ALUMAX-SELL v6.9 Recessed Downlight SKU — 'CCT by room (B7-BR03: 2700K bedroom / 3000K living-linger / 4000K wet-task)'.

SoThis closes the CCT question that has been open since the lighting brief. The estate does not merely disagree with 3500 K in prose — it has WRITTEN AND SHIPPED A VALIDATOR that flags 3500 K as a B7-BR03 violation, in the customer-facing pricing tool, with the remediation spelled out. Three of the four sources agree on 2700 / 3000 / 4000. The two that emit 3500 K are OS1's _cctOf and the install practice, and this validator would reject both. RULE-LIGHT-CCT-001 is therefore no longer decision-blocked on WHAT CANON SAYS — canon is settled at 2700 / 3000 / 4000. What remains is an operations decision: correct _cctOf, and correct the install practice.

'CCT-01 pending in E3' names the rule that is meant to carry this. Worth asking ELS what E3 is — if CCT-01 exists in draft, this repo should cite it rather than re-derive it.

ActionRecorded. RULE-LIGHT-CCT-001 stays uncommitted here — the correction is ELS's and ALUMAX's to make in their own tools, not this repo's to assert.

07

OS2 shows a P6 material spec on a laundry cabinet the Sell Catalog defines as ACP-minimum — at the ACP price

Evidence

engine:OS2 v4.7 — RATE_TABLE.laundry.essential = {min:680,max:720}; TIER_MATERIAL.cabinet.essential = 'Matte laminate on P6 / MR carcass'; effTier() forces only vanity and wetkitchen up from essential.

Against
  • tool:ALUMAX-SELL v6.9 'Laundry Base Cabinet' Essential per ft = the SAME 680, and its inclusion string reads 'M4 ACP minimum'. The rate OS2 uses IS the ACP rate.
  • engine:OS2 v4.7 PROMPT_ENGINE.wetSpaces = ['vanity','wetkitchen','laundry'] — so the render prompt for the same cabinet at the same tier composes the 4G ACP block, while the material band beside it says P6.
  • engine:OS2 v4.7 buildDemoRenders — laundry is seeded wet, giving tierCompatibility ['signature','bespoke']: the render's own metadata says Essential is not compatible, and no gate enforces it.

SoOne engine, one space, one tier, two materials. The customer-facing swatch and the exported materialSpec say P6; the render prompt says ACP; the catalogue price is the ACP price. The exposure runs one way only — the price is right and THE SPEC IS UNDER-STATED, so a P6 laundry could be built to the shown spec at the ACP rate and then fail in a wet zone. It also reaches OS1: buildSelection() carries materialSpec into the handoff, so the designer receives 'P6' for a wet-zone cabinet.

ActionHandoff to ELS — the fix is one line in OS2's wet gate (add laundry to the effTier list, matching wetSpaces and the Sell Catalog). Recorded here, not fixed here. Directly relevant to the PROPOSED EXPOSURE_CONTEXT facet: this is what happens when the moisture axis is not the same width in every place that uses it.

08

The wall-colour standard changed brand twice in two days, and the RATE did not follow

Evidence

engine:OS2 v4.7 COL MT@1.6 — MT-CR-13 (2026-07-17) replaces the six Dulux/Nippon colours of MT-CR-12 (2026-07-16) with six Jotun colours, 'single-brand Jotun'.

Against
  • COL.materials.finishCats.paint.signature still carries the Nippon EasyWash allowance, with the note it flags on itself: 'rate carried from the Nippon EasyWash allowance ⟨re-quote on Jotun series before signature⟩'. The name says Jotun, the code says 10679, the number is still Nippon's.

SoA live open commercial gap, correctly self-flagged. It matters here only as a caution: the ALUMAX Six is a VISUAL standard that has settled and a PRICE that has not. Cite the colour, never the paint rate.

ActionNo rule. Recorded so the divergence is not later mistaken for a settled band.

09

OS2 keeps a working location-factor table switched OFF until it is commercially signed

Evidence

engine:OS2 v4.7 — LOCATION_APPROVED=false, with LOCATION_FACTORS_RAW populated (five per-Sarawak-region multipliers; VALUES WITHHELD — they are OS2-owned, unratified while the flag is false, and not this repo's to restate) and locFactor() returning 1.0 for everything until the flag flips. The estimate then prints 'Delivery and installation location adjustment will be confirmed in the formal quotation.'

SoThis is the repo's PROPOSED status expressed in running code, and it is the cleanest example of the pattern anywhere in the estate: the work is done, the gate is explicit, and the customer surface stays honest while it waits. Worth citing as precedent when someone asks why a CANDIDATE rule cannot simply be used.

ActionNo rule. Recorded as precedent.

10

'OS3' names two different things — and the register must not imply a third engine

Evidence

engine:OS2 v4.7 header — 'No OS3: OS1 IS the ELS design/spec engine.'

Against
  • spec:ELS-OS3-FFL-SHOPLOT — the FFL sheet registered above is branded 'ELS OS3 · Standard FFL', as is its residential companion 'ELS OS3 · Standard FFL by Room v1.1'.

SoOS3-as-engine was considered and explicitly rejected; OS3-as-document-series is alive and is what this register holds. Same label, different kind — which is exactly the confusion the CANON / IMPLEMENTATION / DERIVED_SPEC split exists to prevent. Recorded so nobody reads the shoplot registration as evidence of a third engine.

ActionNo rule. Naming clarification only.

11

PRIMARY SOURCE REACHED — Book 7 B7-BR03 read in full, and it closes the CCT question at canon level

Evidence

canon:ELS-BOOKS Book 7 §8 B7-BR03 Colour Temperature by Room — 'The system source of truth for lighting colour temperature.' Bedroom 2700 K · Living/Dining 2700-3000 K · Kitchen 3000-4000 K · Bathroom 3000 K. Exception Allowed: None — requires an approved Exception Record.

Against
  • The ALUMAX install practice of 3500 K in every room (George, 2026-08-25).
  • engine:OS1 v1.22 ELEC._cctOf — returns 3500 for LIV / DIN / FOY.

SoUntil now the CCT finding rested on a shipped validator in the Sell tool and on the LDS lock. The Book itself is now readable, and it is unambiguous: B7-BR03 is named IN THE RULE as the system source of truth, and its Exception Allowed field reads None. 3500 K is not a tolerated variant of B7-BR03 — it is outside it, and correcting it requires a written Exception Record. Book 7 also resolves the long-parked finish/lighting thread in its own favour (L-2): Book 3 DES-03's material-tone temperature table now defers to B7-BR03, so the finish books cannot be cited as an alternative CCT authority either.

Book 7 raises the whole-home CRI floor from 80 to 90 (>=95 at Premium). MT@1.6's criMin 95 is therefore Premium-tier compliant, not merely stricter — worth stating precisely if a rule ever cites it.

ActionRecorded. RULE-LIGHT-CCT-001 may now cite canon:B7-BR03 directly rather than reasoning from the validator. The operations decision remains ELS's.

12

Book 7 supplies the canon RULE-LIGHT-CIRCUIT-001 was reasoning toward without a citation

Evidence

canon:ELS-BOOKS Book 7 §4B B7-VC01 — the coordination hierarchy is a FIXED sequence: structure, then ceiling geometry, then curtain box, then cove, then wall rhythm, then cabinet logic, then door alignment. 'Ceiling comes first — never design lighting before ceiling geometry.' §9 B7-CG01 — 'Every room requires a minimum 2 independently switchable circuits; single-switch rooms are non-compliant.' §6 B7-C04 — a room with a cove must include an additional switchable circuit.

SoRULE-LIGHT-CIRCUIT-001 says settle the scenes and the circuit split before the ceiling closes. Book 7 says the same thing from the other end and makes it structural: the ceiling is resolved BEFORE lighting, a room is non-compliant on one circuit, and a cove adds a third. The rule is not an ALUMAX preference — it is the electrical consequence of a canon sequencing rule, and it now has three codes behind it.

ActionAdd canon:B7-VC01, B7-CG01 and B7-C04 to the rule's evidence. It stays CANDIDATE — Book 7 corroborates the reasoning, it does not supply the site outcomes that would carry it to APPROVED.

13

PUBLICATION HAZARD — the Sell Catalog MACHINE TWIN is not scrubbed, though its HTML sibling is

Evidence

file:claude_ALUMAX-Sell-Catalog.json — the SPC Flooring inclusion strings end with an INTERNAL-marked sentence that the scrubbed HTML sibling drops. One discloses a stock-holding fact about board thickness against what is actually held; all four Supply-Only lines carry a selling instruction about which price to lead with. The sentences are WITHHELD here for exactly the reason the HTML drops them.

Against
  • file:claude_website-handoff_tool-SCRUBBED.html — the same four SKUs, byte-for-byte identical inclusion strings up to the warranty clause, with the INTERNAL sentence removed. The HTML is the scrubbed artifact; the JSON is not.

SoThe two files are routinely spoken of as the same thing — the register itself calls the JSON the machine twin of the published tool. They are not equivalent for publication. The JSON discloses stock-holding policy and a commercial selling instruction that the customer-facing file deliberately drops. Never wire a live feed to the JSON.

ActionFlagged to ELS and ALUMAX. The register's pricing_authority now names the HTML as the publishable surface. NOTE 2026-08-26: this record originally quoted both INTERNAL sentences verbatim, so the hazard record was itself publishing the hazard — it reached the built site because findings prose has no publication gate. Scrubbed, and validate.mjs now fails the build on INTERNAL-marked text in taxonomy.

14

The CEILING gap is a citation gap, not a knowledge gap — Book 7 already owns it in depth

Evidence

canon:ELS-BOOKS Book 7 — 60 rules across gypsum (B7-G), height (B7-H, 2.6 m ELS floor above the 2.4 m legal minimum), void depth by system (B7-H04), cove geometry (B7-C01, drop 120-150 / depth 80-120 / setback 30-80, IP44 for 70-90% RH), curtain-box integration (B7-CB01, drop must match the cove drop), beam strategy (B7-BM01, absorb or express, never half-hide) and the coordination spine (B7-VC01).

Sodecision-purposes.json carries FLOOR and WALL but no CEILING, so nothing in this repo can route a ceiling question anywhere. The estate is not short of ceiling intelligence — it has a book of it, harmonised, with Sarawak-specific clauses (IP44 in the cove trough for local humidity, MR-grade board in the curtain box because standard MDF fails here). The repo simply has no door to it.

ActionRecorded as axis 01's first gap in intelligence-axes.json. The fix is a CEILING decision purpose that cites Book 7 codes — not a rule that restates them.