Designer LLM prompt templates
Six ready-to-use prompts. Paste one into ChatGPT, Claude, or Gemini, attach a .ulc.json file, and you get back a clean spec sheet, an apples-to-apples comparison, a schedule-ready table, a VE sanity check, a trace of where every value came from, or a readout of what the product is documented for. Need a file to try them on? Grab a sample below.
Prompt 1
Render a .ulc file as a spec sheet
Read the attached `.ulc.json` file. Render it as a clean spec sheet with sections for product identity, electrical, optical / photometric, physical, and accessories. Call out any fields that are missing or flagged as unknown. If a SHA-256 source-file hash is present, note which source file each measured attribute traces back to.
Prompt 2
Compare two .ulc files
Read the two attached `.ulc.json` files. Compare them on CRI, CCT range, wattage, optical accessory options, mounting kit, IP rating, and dim-to-warm behavior. Flag any field where the products diverge materially or where one declares the field and the other does not. End with a one-paragraph recommendation framed around which product fits a [project type] application.
Prompt 3
Extract attributes for a luminaire-schedule line
Read the attached `.ulc.json` files. For each file, extract [CRI, CCT options, optical accessories, mounting kit, IP rating]. Return the result as a luminaire-schedule-ready table with one row per product and one column per attribute. Note any product missing any of the requested attributes.
Prompt 4
Sanity-check a VE package
Read the two attached `.ulc.json` files: the original specified product and the VE-proposed alternative. Compare them on CRI, CCT, wattage, optical distribution, mounting type, dimming method, and any field flagged as missing or unknown. Explicitly state whether the VE alternative matches the original design intent on each compared field. End with a flag list of fields where the VE alternative deviates materially.
Prompt 5
Pull the source-file provenance for an attribute
Read the attached `.ulc.json` file. For each measured attribute (CRI, CCT, wattage, photometric distribution, IP rating, optical accessories), identify which source file (PDF, IES, or LDT) the value traces back to via the per-field provenance + SHA-256 hash. Return the answer as a list mapping attribute to source file.
Prompt 6
Check what a product is documented for
Read the attached `.ulc.json` file. From `index.achievements`, report each theme (embodied carbon, circularity, material health, energy, dark sky, emergency, domestic content) with its state: none, claimed, or documented. For each documented theme, name the qualifying programs and note that an evidence document is attached. For each claimed theme, note that no current evidence document backs it. Also report `index.restricted_substances_declared` and `index.conformance_level`. Do not infer qualifications the record does not carry.
Canonical example records
Nine reference records built from real manufacturer spec sheets: six across the four manufacturer authoring patterns, and three exit signs exercising the emergency product class. These are the files you drop into the prompts above.
Each record's conformance level and Product Achievements view are computed by the reference builder from the data the record carries, not self-declared. How conformance is graded → What achievements mean →
ERCO Quintessence · recessed downlight
Single-SKU cutsheet model.
To reach Full: measurement uncertainty and corrections, instrumentation depth, TM-30 detail, and a measured spectrum as data (accredited test report).
Downloaderco-quintessence-30416-023.ulc→Selux Aya · exterior pole
Configurator with applicability blocks; 54,000 SKUs compressed into 21 records.
To reach Standard: a lumen-maintenance claim that states its hours (from the datasheet, per TM-21); its cutsheet states no hours. To reach Full: measurement uncertainty and corrections, a method-backed lumen-maintenance projection, TM-30 detail, and a measured spectrum as data (accredited test report).
Achievements: dark sky, material health, and domestic content claimed · RoHS declared.
Downloadselux-aya-pole-sr-ho-3000k.ulc→Lumenpulse Lumenfacade · RGB façade
Per-IES model with provenance classes for measured, simulated, and extended-photometry records.
To reach Full: measurement uncertainty and corrections, and a method-backed lumen-maintenance projection (accredited test report).
Achievements: domestic content claimed · RoHS declared.
Downloadlumenpulse-lumenfacade-loi-12-rgb-30x60-ts0.ulc→Lumenpulse Lumenfacade · RGBW façade
Per-IES color-mixing variant: CRI and TM-30 are waived, while the white point still carries a CCT.
To reach Full: measurement uncertainty and corrections, and a method-backed lumen-maintenance projection (accredited test report).
Achievements: domestic content claimed · RoHS declared.
Downloadlumenpulse-lumenfacade-loi-12-rgbw30k-10x60-ts2-5.ulc→Lumenpulse Lumencore Linear Graze · tunable-white linear
Per-IES model for a tunable-white grazer: the 4000 K tested baseline, and its 1800 K and 6500 K endpoints, which each carry their own color rendering and measured spectrum.
To reach Core: the ordinary Core fields this focused color-state example does not author (distribution, efficacy, voltage, region, use, environment, mounting, secondary function, and a safety listing). The grader prints the roadmap to Full.
Downloadlumenpulse-lumencore-linear-graze-lcva-120-277-48-13w-4000k-10x10-dmx-rdm-na-nh.ulc→Vode Nexa · suspended linear pendant
Per-foot linear-scaling model.
To reach Standard: a MacAdam SDCM step (from the datasheet, per ANSI C78.377). To reach Full: measurement uncertainty and corrections, a method-backed lumen-maintenance projection, TM-30 detail, and a measured spectrum as data (accredited test report).
Achievements: material health and domestic content claimed.
Downloadvode-nexa-suspended-807-so-3500k-90cri-hl-black-48in.ulc→Cooper Sure-Lites LPX · exit sign, self-powered
The sign profile authored from a spec sheet with no IES file: illumination mode, legend color, a UL 924 listing, and an integral-battery emergency block (NiCd, 90-minute, self-diagnostic).
To reach Standard: legend height (datasheet, NFPA 101 / IBC) and input power (datasheet, UL 924), the two figures the LPX sheet does not publish. To reach Full: a test-report-backed sign-face luminance (UL 924).
Achievements: emergency and energy claimed.
Downloadcooper-sure-lites-lpx7sd.ulc→Cooper Sure-Lites ES · exit sign, AC-only
An edge-lit AC-only sign: 6-inch letters, single face, 3.8 W published input power. The battery requirements correctly skip because its power source is AC-only.
To reach Full: a test-report-backed sign-face luminance (test report, UL 924).
Achievements: emergency claimed.
Downloadcooper-sure-lites-es61src.ulc→Cooper AtLite AUX · exit sign, self-powered
A self-powered NYC-compliant edge-lit sign with 8-inch letters; its UL 924 listing is backed by two attached UL Certificates of Compliance.
To reach Full: a test-report-backed sign-face luminance (test report, UL 924).
Achievements: emergency documented (certificates attached).
Downloadcooper-atlite-auxswhsd.ulc→
How records are authored: the four patterns and the product classes →
JSON Schema
The ULC schema, written to JSON Schema Draft 2020-12, served at /schema/ulc.json with the application/schema+json content type.
Point any Draft 2020-12 library at this file to validate records; the taxonomy schema it references is served beside it at /schema/taxonomy.json. The schema's $id is versionless by design: each record declares the release it conforms to in its own ulc_version field, and the schema surface is additive-only across minor releases, so older records stay valid.
ulc.json
ulc.json →Go reference validator
The canonical reference implementation: ulc, a single-file Go binary that validates records against the schema, verifies source-file hashes, regenerates the index block with its two computed views (the conformance level and Product Achievements), and converts a manufacturer workbook into validated records with ulc from-sheet. Released via GitHub Releases on the spec repository.
Pick the binary for your platform. Each download is accompanied by the full SHA-256 checksum for integrity verification.
macOS · Apple Silicon (arm64)
ulc_1.19.0_darwin_arm64.tar.gz1.6 MiB
Download →SHA-256: f7f6f3f7fa0ea3d21ffaefe055d451f5ba2b76033a613191ba07c878abb85d40
macOS · Intel (amd64)
ulc_1.19.0_darwin_amd64.tar.gz1.7 MiB
Download →SHA-256: a2d9676bd0dadcf057603010f71160ed4c7b82b168495e69b85128af6a339b01
Linux · arm64
ulc_1.19.0_linux_arm64.tar.gz1.6 MiB
Download →SHA-256: e451e7168234600788f52c948712b6f5e41425679df57a39c8bbda19dfb01499
Linux · amd64
ulc_1.19.0_linux_amd64.tar.gz1.7 MiB
Download →SHA-256: 57a1e1320a63fa06683507382502ee606bf1882b81522401a10afc1f8ee43d6b
Windows · arm64
ulc_1.19.0_windows_arm64.zip1.6 MiB
Download →SHA-256: e7c7961ab36acea6bd5d3046db26e5cd3a8f2ee6c5cf2f2a698b0a5accfcb9db
Windows · amd64
ulc_1.19.0_windows_amd64.zip1.8 MiB
Download →SHA-256: d67ee9719730abb203c7132e409af1c8b034ebd6d7542138a9b157059c4e4817
Install instructions
macOS / Linux: Extract the archive: tar -xzf ulc_<version>_<platform>_<arch>.tar.gz. Move the ulc binary onto your PATH, for example /usr/local/bin/ulc. Run ulc --version to confirm.
Windows: Download the .zip and extract ulc.exe. Add the containing directory to your PATH environment variable. Open a new terminal and run ulc --version to confirm.
Previous releases
The five most-recent stable releases are listed below with version, release date, and a link to the release notes on GitHub. For the full release history, see the Releases page on the spec repository.