Skip to content

M4: a finding per requirement, citing its clause - #13

Merged
Erry91 merged 1 commit into
mainfrom
feat/en1838-findings
Oct 25, 2026
Merged

Erry91 merged 1 commit into
mainfrom
feat/en1838-findings

Conversation

@Erry91

@Erry91 Erry91 commented Oct 25, 2026

Copy link
Copy Markdown
Owner

What this changes

luxpath check now lists, under "Requirements (EN 1838:2024)", every requirement that applies to each route, area and point, citing its clause. For example:

Requirements (EN 1838:2024):
  5.1    R1       minimum illuminance over the route's full width: CANNOT VERIFY: its value is not yet verified against the standard's text (gap 4)
  5.2    A1       minimum illuminance less the border, and uniformity: CANNOT VERIFY: …
  4.2    E1       illuminance at the point of emphasis: CANNOT VERIFY: …
  • luxpath_rules::en1838 holds the requirements on elements: id (the parity entry), clause, our own short title, and which element kinds each applies to. Requirements on the whole installation (glare, duration, response time, Ra) are not listed yet.
  • Every finding is "cannot verify". Either its value is not verified against the standard's text (gap 4), or the element's numbers couldn't be computed, in which case the finding gives that reason (for example, a photometry with no emergency output). Nothing can pass. The overall verdict says how many findings wait: "no EN 1838:2024 requirement is checked yet: 5 findings cannot be verified …".
  • The scene format gains the area kinds 2024 added: toilets (5.4.1), swimming-pool (5.4.2), plant-room (5.4.3) and local-area (7.1). They are computed over their whole outline, and the assumptions now say so. Only open areas leave a border out.
  • A test keeps three lists in agreement: the code's requirements, parity/features.toml and the clause column of docs/standards-parity.md.

When the standard is bought, M4 gives each requirement its threshold, tested on both sides.

How you verified it

  • cargo xtask ci
  • New behaviour has a test at the right scale, and I watched each fail with the code broken:
    • every_element_gets_a_finding_per_requirement_citing_its_clause: fails if findings pass, or a clause changes
    • a_finding_on_an_element_that_cannot_be_computed_says_why: fails if the element's reason is dropped
    • every_requirement_is_in_the_parity_list_and_the_coverage_table_with_its_clause: fails on a clause the docs don't have
    • every_area_kind_reads_by_its_name (scene)
    • CLI every_example_…: fails without the report's requirements section
  • Requirement checks tested on both sides of every threshold: not applicable yet, since no threshold exists (gap 4)

Life safety (AGENTS.md §2)

  • No path reports "pass" when data is missing or ambiguous: every finding is "cannot verify"
  • Assumptions that changed are shown in reports: the new area kinds' whole-outline grid

Never panic (AGENTS.md §3)

  • No new unwrap/expect/panic!/indexing on input outside tests

Provenance (AGENTS.md §1)

  • No text, tables or figures from a standard: clause numbers and our own short titles
  • Nothing derived from closed lighting tools; no GPL/AGPL code
  • No manufacturer photometric files or real building plans committed

Records

  • parity/features.toml: notes on en1838.specific-areas and en1838.local-area
  • docs/status.md, docs/scene-format.md and the ROADMAP.md progress log updated

🤖 Generated with Claude Code

`luxpath check` lists, for every route, area and point, each EN 1838:2024
requirement that applies to it with its clause (luxpath_rules::en1838).
Every finding is "cannot verify": the values are not verified against the
standard's text (gap 4), or the element's numbers could not be computed,
which the finding then says. Scenes gain the area kinds the 2024 edition
added: toilets (5.4.1), swimming-pool (5.4.2), plant-room (5.4.3) and
local-area (7.1). A test keeps the code's requirements, the parity list
and the coverage table in agreement.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Erry91
Erry91 merged commit 73f281b into main Oct 25, 2026
10 of 12 checks passed
@Erry91
Erry91 deleted the feat/en1838-findings branch October 25, 2026 19:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant