SKILL.md v4 sustainability

EPD Normalize Products

Normalize product names and suppliers from spreadsheets, paste, or workspace files for EPD matching.

No reviews yet 0 installs
Ingests a product list from an xlsx spreadsheet, pasted pipe- or tab-delimited text, or a workspace glob of JSON/xlsx files. Strips dimensional suffixes (100mm, 1200x600, 4" x 8") from product names without inventing new names, slugifies supplier keys, and writes epd-products.json with normalized products plus issues for rows missing a name.
epdnormalizeproductssustainability

Versions

  • v4 # Changelog ## 0.5.0 - `lib/run_pipeline.py` gains the `vault` step (`epd-scan-vault`, run before `resolve`: a supplier whose every product is settled by a vault document is never resolved at all) and `--from-step vault`. Pipeline order is now normalize → vault → resolve → search → collect → build. - `SKILL.md` updated to describe the six-step pipeline and `--from-step vault`. ## 0.4.0 - `run_pipeline.py` pre-flight probe: broker-search, PDF-egress and openpyxl canaries run before any step; any failure prints the `environment_unhealthy` signal and exits 4 within seconds (vendored `environment_health.py`). ## 0.3.0 - Classify each product by primary base material (`classify_material` + ordered `_MATERIAL_RULES`): products JSON gains `materialCategory`, `materialCategorySource` (`rule:<name>`, `leading-token-fallback`, or `curated`), `confidence` and `confidenceRationale`. Rules only choose industrial-search terms and confidence labels — never GWP, URLs, or dates. - The agent may curate `materialCategory` in `epd-products.json` between steps (tag `materialCategorySource: "curated"`, resume with `--from-step search`; never re-run normalize after curating). See SKILL.md. ## 0.2.0 - Add `lib/run_pipeline.py`: chains all five EPD skills in one sandbox invocation. - Supports `--from-step` to resume after a failed downstream step. ## 0.1.0 - Initial release: `lib/normalize.py` ingests product lists from spreadsheets, pasted text, or workspace JSON/xlsx globs, strips dimensional suffixes from product names, slugifies supplier keys, and writes `/workspace/work/code/epd-products.json` with `products` and `issues` (rows missing a name are parked, never invented). 10/13/2026
  • v3 # Changelog ## 0.4.0 - `run_pipeline.py` pre-flight probe: broker-search, PDF-egress and openpyxl canaries run before any step; any failure prints the `environment_unhealthy` signal and exits 4 within seconds (vendored `environment_health.py`). ## 0.3.0 - Classify each product by primary base material (`classify_material` + ordered `_MATERIAL_RULES`): products JSON gains `materialCategory`, `materialCategorySource` (`rule:<name>`, `leading-token-fallback`, or `curated`), `confidence` and `confidenceRationale`. Rules only choose industrial-search terms and confidence labels — never GWP, URLs, or dates. - The agent may curate `materialCategory` in `epd-products.json` between steps (tag `materialCategorySource: "curated"`, resume with `--from-step search`; never re-run normalize after curating). See SKILL.md. ## 0.2.0 - Add `lib/run_pipeline.py`: chains all five EPD skills in one sandbox invocation. - Supports `--from-step` to resume after a failed downstream step. ## 0.1.0 - Initial release: `lib/normalize.py` ingests product lists from spreadsheets, pasted text, or workspace JSON/xlsx globs, strips dimensional suffixes from product names, slugifies supplier keys, and writes `/workspace/work/code/epd-products.json` with `products` and `issues` (rows missing a name are parked, never invented). 10/8/2026
  • v2 # Changelog ## 0.2.0 - Add `lib/run_pipeline.py`: chains all five EPD skills in one sandbox invocation. - Supports `--from-step` to resume after a failed downstream step. ## 0.1.0 - Initial release: `lib/normalize.py` ingests product lists from spreadsheets, pasted text, or workspace JSON/xlsx globs, strips dimensional suffixes from product names, slugifies supplier keys, and writes `/workspace/work/code/epd-products.json` with `products` and `issues` (rows missing a name are parked, never invented). 9/22/2026
  • v1 # Changelog ## 0.1.0 - Initial release: `lib/normalize.py` ingests product lists from spreadsheets, pasted text, or workspace JSON/xlsx globs, strips dimensional suffixes from product names, slugifies supplier keys, and writes `/workspace/work/code/epd-products.json` with `products` and `issues` (rows missing a name are parked, never invented). 8/27/2026
Installed bundles are copies — your workspace data stays in your workspace. Qonstrue Community Marketplace