ULC v0.10.0
ulc CLI v0.10.0
Download a single-file binary for your platform below. See CHANGELOG.md
at the tag for what landed in this release.
Exit signs and emergency luminaires become first-class, gradable product classes. Two new optional blocks (exit_sign and emergency), ten new taxonomy vocabularies, and per-class grading profiles let an exit-sign-only or emergency-only manufacturer reach the grade its cutsheets actually support rather than being stranded at incomplete for lacking an LM-79 report it never produces. Every change is additive and non-gating: a v0.9.x record validates and grades identically, and no existing grade or index.conformance_level moves.
For consumers
Unlike 0.9.0, this release changes no finding codes and needs no migration. The new class-gated conformance/gap and conformance/enrichment rows appear only on records whose primary_category is exit_sign or emergency_luminaire, or that author the new emergency block; no existing record can trigger them, because the two blocks did not exist before this version. BuilderVersion is unchanged, and the index schema and its projections are unchanged: a sign record's index simply carries its category and whatever sparse photometric fields it has.
Schema (additive, optional)
- Two new optional top-level blocks.
exit_signcarries the legend (text, color, height, and the externally-illuminated stroke/letter geometry), illumination mode and technology, face count, directional indicators, rated viewing distance, and the mode-specific photometrics (face luminance, face illuminance, contrast ratio, tritium rated life, photoluminescent charging illuminance).emergencycarriesemergency_roleandpower_source(both required within the block), battery duration, chemistry, and self-test, the distinct emergency-mode lumen output and input power, remote-head capacity, and an emergency-mode photometry-file reference. Both blocks are absent unless authored; an emptyexit_signblock is valid, and anemergencyblock requires its two discriminators. - Ten new taxonomy vocabularies:
ExitSignIlluminationMode,ExitSignIlluminationTechnology,LegendColor,ExitSignFaceCount,ExitSignDirectionalIndicator,RatedViewingDistance,EmergencyRole,EmergencyPowerSource,BatteryChemistry, andEmergencySelfTestCapability. - An
end_mounttoken added toMountingType(end mounting is a standard ordering option on the reference exit-sign series).
Grading
- Per-class profiles, derived from the existing core field
product_family.primary_category. Anexit_signgrades against the sign dataset (the architectural-photometry rows are not-applicable); anemergency_luminairegrades against the normal profile minus luminaire efficacy, plus the emergency gates; every other category is unchanged. 18 new class-gated rubric rows (4 core, 12 standard, 2 full) and 13 new non-gating enrichment rows carry the sign and emergency data. - The sign full tier is anchored on UL 924 test-report depth: a lab-measured face luminance or illuminance carrying
test_reportprovenance, partitioned by illumination mode so every sign has exactly one applicable full row. ul_924now satisfies the core safety-listing gate (it joins both the North-American and the general acceptance sets) and, for a North American dedicated-class product, a dedicated UL 924 listing core row. This can only turn a fail into a pass and moves no existing record, since none carriesul_924. UL 924 is read from the attestation ledger; there is noul_924_listedboolean.- The gates are US-first, anchored on UL 924 and the NFPA 101 / IBC evidence base. International emergency standards are deferred (see ROADMAP.md).
Examples
- Three new real exit-sign reference records from published Cooper Sure-Lites and AtLite series:
cooper-sure-lites-lpx7sd(self-powered polycarbonate exit, gradescore),cooper-sure-lites-es61src(AC-only edge-lit exit, gradesstandard), andcooper-atlite-auxswhsd(self-powered NYC-compliant edge-lit exit, gradesstandard, itsul_924attestation backed by two attached UL Certificates of Compliance). As with every reference record, source files are referenced by content hash and not committed.