blueprint.json v55 sustainability

EPD Library Builder

Build an EPD Library from spreadsheets, workspace files, or pasted product lists.

No reviews yet 1 installs
EPD Library Builder flow
Strip dimensions from product names, check any vault document sources attached to the workspace before any network call, resolve supplier websites via Ploutonion OrganizationIdentity, search the manufacturer site then Environdec and EPD Hub for a product-specific EPD, fall back to a manufacturer product carbon footprint or LCA report comparable to A1-A3, then to an industrial/sector-average EPD proxy, download only the best PDF per product, and deliver an EPD Library workbook plus downloaded PDFs.
epdlcasustainabilityproductsservice-blueprint

Versions

  • v55 # Changelog ## 0.15.0 (v15) - epd-resolve-supplier 0.4.0: `organizations.resolve` results are read from their `candidates` (previously dropped), all-null identities are `no_match`, and both identity calls pass `timeout_sec=240`. - Prompt and runbook drop the references to the removed Talos identity helpers; resolve errors are described as Ploutonion errors. `organization-identity` stays in `referencedA2aAgents`. ## 0.14.0 (v14) - Environment health contract: pipeline steps exit 4 with a machine-readable `environment_unhealthy` signal when the sandbox (search broker, PDF egress, extraction) is degraded, instead of producing empty deliverables. Prompt gains the hard rule to report the health payload and never present the workbook on exit 4. ## 0.13.0 (v13) - epd-collect-artifacts 0.7.0: EPD Hub document endpoints (`/declarations/file/download/…`) are recognised as document URLs, and registry-page resolution gains a broker-free `urllib` fallback that absolutises the registries' relative document links — on the 2026-09-30 run every EPD Hub industrial proxy failed resolution, so no industrial row was ever applied. A failed industrial tier now records `industrialStatus` and `industrialAttempts` on the audit entry instead of vanishing. - epd-search-sources 0.7.0: the industrial/sector signal recognises `industry-wide` (NRMCA/CMHA label), and industrial hits are dropped when their URL is not on the queried registry's domain (`site:` is a hint, not a guarantee — an epd.guide article had been labelled `industrial_epdhub`). - epd-build-library 0.7.1: a failed row's remark states when the industrial tier was also attempted and failed, so the workbook shows the mandated fallback ran. ## 0.12.0 (v12) - Industrial/sector fallback is keyed by each product's primary base material (`materialCategory` from epd-normalize-products 0.3.0, curated override allowed) — fixes dead-end industrial queries built from leading tokens like `Block` or `Mastic`. - Library workbook gains `Manufacturer/Supplier`, `Confidence Factor` and `Source URL` columns (epd-build-library 0.7.0); industrial-proxy rows show `Industrial EPD` as the supplier. - Expiry handling end to end: search preserves registry validity dates, collect prefers currently-valid candidates and keeps an expired EPD only when nothing fresher verifies, and build writes explicit validity / **EXPIRED EPD** remarks (epd-collect-artifacts 0.6.0, epd-search-sources 0.6.0, epd-build-library 0.7.0). ## 0.11.0 (v11) - Library workbook gains fossil and LULUC kg/t column pairs: `epd-build-library` extraction asks for GWP-fossil and GWP-luluc (EN 15804+A2 sub-indicators) and reports them as declared — never summed into or substituted for GWP-total. Columns stay empty with an explanatory remark when the EPD declares neither (typically EN 15804+A1); see the epd-build-library 0.6.0 changelog. ## 0.10.0 (v10) - Rename package folder and blueprint `id` from `epd-finding-service` to `epd-library-builder`. - Add `formerSlug: "epd-finding-service"` on `listing.json` for curator migrate-on-sync. ## 0.9.0 (v9) - Rename display name from **EPD Finding Service** to **EPD Library Builder** (id `epd-finding-service` unchanged). ## 0.8.0 (v8) - Add Archify showcase workflow diagram under `docs/` and `documentation` manifest. ## 0.7.0 (v7) - **Full Ploutonion identity:** `resolve_suppliers.py` calls `organizations.resolve` again (not `findWebsite`), writes `/workspace/work/code/supplier-identities/{supplierKey}/identity.json`, and includes `identity` + `identityPath` in `epd-suppliers.json`. - Agent must still not call A2A skills directly — only the bundled script (which may fall back to `organizations.identify` when a jurisdiction is present on the product row). ## 0.6.0 (v6) - **Ploutonion guardrails:** forbid calling organization-identity A2A skills from the agent; resolve errors non-fatal; per-supplier progress stdout. (Superseded by v7 full-identity resolve.) ## 0.5.0 (v5) - **Industrial EPD fallback:** when no manufacturer/product-specific EPD verifies, search applies industrial/sector-average EPD proxies from registries; collect uses `downloaded_industrial_proxy`; library remarks state the proxy was applied. ## 0.4.0 (v4) - **Pipeline-first:** blueprint prompt directs the agent to run `python lib/run_pipeline.py` (one sandbox invocation) instead of five separate tool calls. - **Progress stdout:** search, collect, and build skills emit per-product progress JSON (flushed) so long runs show activity in tool output. - **Resume:** `run_pipeline.py --from-step search|collect|build` for debugging a failed step without re-running upstream work. ## 0.3.0 (v3) - Library deliverable includes `kgCO2e/final unit (A1-A3)` beside `tCO2e/...`. - Treat PDF-present / blank-GWP as incomplete until build (with its one re-extract) finishes; never stub the workbook. ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 10/13/2026
  • v54 # Changelog ## 0.15.0 (v15) - epd-resolve-supplier 0.4.0: `organizations.resolve` results are read from their `candidates` (previously dropped), all-null identities are `no_match`, and both identity calls pass `timeout_sec=240`. - Prompt and runbook drop the references to the removed Talos identity helpers; resolve errors are described as Ploutonion errors. `organization-identity` stays in `referencedA2aAgents`. ## 0.14.0 (v14) - Environment health contract: pipeline steps exit 4 with a machine-readable `environment_unhealthy` signal when the sandbox (search broker, PDF egress, extraction) is degraded, instead of producing empty deliverables. Prompt gains the hard rule to report the health payload and never present the workbook on exit 4. ## 0.13.0 (v13) - epd-collect-artifacts 0.7.0: EPD Hub document endpoints (`/declarations/file/download/…`) are recognised as document URLs, and registry-page resolution gains a broker-free `urllib` fallback that absolutises the registries' relative document links — on the 2026-09-30 run every EPD Hub industrial proxy failed resolution, so no industrial row was ever applied. A failed industrial tier now records `industrialStatus` and `industrialAttempts` on the audit entry instead of vanishing. - epd-search-sources 0.7.0: the industrial/sector signal recognises `industry-wide` (NRMCA/CMHA label), and industrial hits are dropped when their URL is not on the queried registry's domain (`site:` is a hint, not a guarantee — an epd.guide article had been labelled `industrial_epdhub`). - epd-build-library 0.7.1: a failed row's remark states when the industrial tier was also attempted and failed, so the workbook shows the mandated fallback ran. ## 0.12.0 (v12) - Industrial/sector fallback is keyed by each product's primary base material (`materialCategory` from epd-normalize-products 0.3.0, curated override allowed) — fixes dead-end industrial queries built from leading tokens like `Block` or `Mastic`. - Library workbook gains `Manufacturer/Supplier`, `Confidence Factor` and `Source URL` columns (epd-build-library 0.7.0); industrial-proxy rows show `Industrial EPD` as the supplier. - Expiry handling end to end: search preserves registry validity dates, collect prefers currently-valid candidates and keeps an expired EPD only when nothing fresher verifies, and build writes explicit validity / **EXPIRED EPD** remarks (epd-collect-artifacts 0.6.0, epd-search-sources 0.6.0, epd-build-library 0.7.0). ## 0.11.0 (v11) - Library workbook gains fossil and LULUC kg/t column pairs: `epd-build-library` extraction asks for GWP-fossil and GWP-luluc (EN 15804+A2 sub-indicators) and reports them as declared — never summed into or substituted for GWP-total. Columns stay empty with an explanatory remark when the EPD declares neither (typically EN 15804+A1); see the epd-build-library 0.6.0 changelog. ## 0.10.0 (v10) - Rename package folder and blueprint `id` from `epd-finding-service` to `epd-library-builder`. - Add `formerSlug: "epd-finding-service"` on `listing.json` for curator migrate-on-sync. ## 0.9.0 (v9) - Rename display name from **EPD Finding Service** to **EPD Library Builder** (id `epd-finding-service` unchanged). ## 0.8.0 (v8) - Add Archify showcase workflow diagram under `docs/` and `documentation` manifest. ## 0.7.0 (v7) - **Full Ploutonion identity:** `resolve_suppliers.py` calls `organizations.resolve` again (not `findWebsite`), writes `/workspace/work/code/supplier-identities/{supplierKey}/identity.json`, and includes `identity` + `identityPath` in `epd-suppliers.json`. - Agent must still not call A2A skills directly — only the bundled script (which may fall back to `organizations.identify` when a jurisdiction is present on the product row). ## 0.6.0 (v6) - **Ploutonion guardrails:** forbid calling organization-identity A2A skills from the agent; resolve errors non-fatal; per-supplier progress stdout. (Superseded by v7 full-identity resolve.) ## 0.5.0 (v5) - **Industrial EPD fallback:** when no manufacturer/product-specific EPD verifies, search applies industrial/sector-average EPD proxies from registries; collect uses `downloaded_industrial_proxy`; library remarks state the proxy was applied. ## 0.4.0 (v4) - **Pipeline-first:** blueprint prompt directs the agent to run `python lib/run_pipeline.py` (one sandbox invocation) instead of five separate tool calls. - **Progress stdout:** search, collect, and build skills emit per-product progress JSON (flushed) so long runs show activity in tool output. - **Resume:** `run_pipeline.py --from-step search|collect|build` for debugging a failed step without re-running upstream work. ## 0.3.0 (v3) - Library deliverable includes `kgCO2e/final unit (A1-A3)` beside `tCO2e/...`. - Treat PDF-present / blank-GWP as incomplete until build (with its one re-extract) finishes; never stub the workbook. ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 10/13/2026
  • v53 # Changelog ## 0.14.0 (v14) - Environment health contract: pipeline steps exit 4 with a machine-readable `environment_unhealthy` signal when the sandbox (search broker, PDF egress, extraction) is degraded, instead of producing empty deliverables. Prompt gains the hard rule to report the health payload and never present the workbook on exit 4. ## 0.13.0 (v13) - epd-collect-artifacts 0.7.0: EPD Hub document endpoints (`/declarations/file/download/…`) are recognised as document URLs, and registry-page resolution gains a broker-free `urllib` fallback that absolutises the registries' relative document links — on the 2026-09-30 run every EPD Hub industrial proxy failed resolution, so no industrial row was ever applied. A failed industrial tier now records `industrialStatus` and `industrialAttempts` on the audit entry instead of vanishing. - epd-search-sources 0.7.0: the industrial/sector signal recognises `industry-wide` (NRMCA/CMHA label), and industrial hits are dropped when their URL is not on the queried registry's domain (`site:` is a hint, not a guarantee — an epd.guide article had been labelled `industrial_epdhub`). - epd-build-library 0.7.1: a failed row's remark states when the industrial tier was also attempted and failed, so the workbook shows the mandated fallback ran. ## 0.12.0 (v12) - Industrial/sector fallback is keyed by each product's primary base material (`materialCategory` from epd-normalize-products 0.3.0, curated override allowed) — fixes dead-end industrial queries built from leading tokens like `Block` or `Mastic`. - Library workbook gains `Manufacturer/Supplier`, `Confidence Factor` and `Source URL` columns (epd-build-library 0.7.0); industrial-proxy rows show `Industrial EPD` as the supplier. - Expiry handling end to end: search preserves registry validity dates, collect prefers currently-valid candidates and keeps an expired EPD only when nothing fresher verifies, and build writes explicit validity / **EXPIRED EPD** remarks (epd-collect-artifacts 0.6.0, epd-search-sources 0.6.0, epd-build-library 0.7.0). ## 0.11.0 (v11) - Library workbook gains fossil and LULUC kg/t column pairs: `epd-build-library` extraction asks for GWP-fossil and GWP-luluc (EN 15804+A2 sub-indicators) and reports them as declared — never summed into or substituted for GWP-total. Columns stay empty with an explanatory remark when the EPD declares neither (typically EN 15804+A1); see the epd-build-library 0.6.0 changelog. ## 0.10.0 (v10) - Rename package folder and blueprint `id` from `epd-finding-service` to `epd-library-builder`. - Add `formerSlug: "epd-finding-service"` on `listing.json` for curator migrate-on-sync. ## 0.9.0 (v9) - Rename display name from **EPD Finding Service** to **EPD Library Builder** (id `epd-finding-service` unchanged). ## 0.8.0 (v8) - Add Archify showcase workflow diagram under `docs/` and `documentation` manifest. ## 0.7.0 (v7) - **Full Ploutonion identity:** `resolve_suppliers.py` calls `organizations.resolve` again (not `findWebsite`), writes `/workspace/work/code/supplier-identities/{supplierKey}/identity.json`, and includes `identity` + `identityPath` in `epd-suppliers.json`. - Agent must still not call A2A skills directly — only the bundled script (which may fall back to `organizations.identify` when a jurisdiction is present on the product row). ## 0.6.0 (v6) - **Ploutonion guardrails:** forbid calling organization-identity A2A skills from the agent; resolve errors non-fatal; per-supplier progress stdout. (Superseded by v7 full-identity resolve.) ## 0.5.0 (v5) - **Industrial EPD fallback:** when no manufacturer/product-specific EPD verifies, search applies industrial/sector-average EPD proxies from registries; collect uses `downloaded_industrial_proxy`; library remarks state the proxy was applied. ## 0.4.0 (v4) - **Pipeline-first:** blueprint prompt directs the agent to run `python lib/run_pipeline.py` (one sandbox invocation) instead of five separate tool calls. - **Progress stdout:** search, collect, and build skills emit per-product progress JSON (flushed) so long runs show activity in tool output. - **Resume:** `run_pipeline.py --from-step search|collect|build` for debugging a failed step without re-running upstream work. ## 0.3.0 (v3) - Library deliverable includes `kgCO2e/final unit (A1-A3)` beside `tCO2e/...`. - Treat PDF-present / blank-GWP as incomplete until build (with its one re-extract) finishes; never stub the workbook. ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 10/8/2026
  • v52 # Changelog ## 0.11.0 (v11) - Library workbook gains fossil and LULUC kg/t column pairs: `epd-build-library` extraction asks for GWP-fossil and GWP-luluc (EN 15804+A2 sub-indicators) and reports them as declared — never summed into or substituted for GWP-total. Columns stay empty with an explanatory remark when the EPD declares neither (typically EN 15804+A1); see the epd-build-library 0.6.0 changelog. ## 0.10.0 (v10) - Rename package folder and blueprint `id` from `epd-finding-service` to `epd-library-builder`. - Add `formerSlug: "epd-finding-service"` on `listing.json` for curator migrate-on-sync. ## 0.9.0 (v9) - Rename display name from **EPD Finding Service** to **EPD Library Builder** (id `epd-finding-service` unchanged). ## 0.8.0 (v8) - Add Archify showcase workflow diagram under `docs/` and `documentation` manifest. ## 0.7.0 (v7) - **Full Ploutonion identity:** `resolve_suppliers.py` calls `organizations.resolve` again (not `findWebsite`), writes `/workspace/work/code/supplier-identities/{supplierKey}/identity.json`, and includes `identity` + `identityPath` in `epd-suppliers.json`. - Agent must still not call A2A skills directly — only the bundled script (which may fall back to `organizations.identify` when a jurisdiction is present on the product row). ## 0.6.0 (v6) - **Ploutonion guardrails:** forbid calling organization-identity A2A skills from the agent; resolve errors non-fatal; per-supplier progress stdout. (Superseded by v7 full-identity resolve.) ## 0.5.0 (v5) - **Industrial EPD fallback:** when no manufacturer/product-specific EPD verifies, search applies industrial/sector-average EPD proxies from registries; collect uses `downloaded_industrial_proxy`; library remarks state the proxy was applied. ## 0.4.0 (v4) - **Pipeline-first:** blueprint prompt directs the agent to run `python lib/run_pipeline.py` (one sandbox invocation) instead of five separate tool calls. - **Progress stdout:** search, collect, and build skills emit per-product progress JSON (flushed) so long runs show activity in tool output. - **Resume:** `run_pipeline.py --from-step search|collect|build` for debugging a failed step without re-running upstream work. ## 0.3.0 (v3) - Library deliverable includes `kgCO2e/final unit (A1-A3)` beside `tCO2e/...`. - Treat PDF-present / blank-GWP as incomplete until build (with its one re-extract) finishes; never stub the workbook. ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 10/5/2026
  • v51 # Changelog ## 0.11.0 (v11) - Library workbook gains fossil and LULUC kg/t column pairs: `epd-build-library` extraction asks for GWP-fossil and GWP-luluc (EN 15804+A2 sub-indicators) and reports them as declared — never summed into or substituted for GWP-total. Columns stay empty with an explanatory remark when the EPD declares neither (typically EN 15804+A1); see the epd-build-library 0.6.0 changelog. ## 0.10.0 (v10) - Rename package folder and blueprint `id` from `epd-finding-service` to `epd-library-builder`. - Add `formerSlug: "epd-finding-service"` on `listing.json` for curator migrate-on-sync. ## 0.9.0 (v9) - Rename display name from **EPD Finding Service** to **EPD Library Builder** (id `epd-finding-service` unchanged). ## 0.8.0 (v8) - Add Archify showcase workflow diagram under `docs/` and `documentation` manifest. ## 0.7.0 (v7) - **Full Ploutonion identity:** `resolve_suppliers.py` calls `organizations.resolve` again (not `findWebsite`), writes `/workspace/work/code/supplier-identities/{supplierKey}/identity.json`, and includes `identity` + `identityPath` in `epd-suppliers.json`. - Agent must still not call A2A skills directly — only the bundled script (which may fall back to `organizations.identify` when a jurisdiction is present on the product row). ## 0.6.0 (v6) - **Ploutonion guardrails:** forbid calling organization-identity A2A skills from the agent; resolve errors non-fatal; per-supplier progress stdout. (Superseded by v7 full-identity resolve.) ## 0.5.0 (v5) - **Industrial EPD fallback:** when no manufacturer/product-specific EPD verifies, search applies industrial/sector-average EPD proxies from registries; collect uses `downloaded_industrial_proxy`; library remarks state the proxy was applied. ## 0.4.0 (v4) - **Pipeline-first:** blueprint prompt directs the agent to run `python lib/run_pipeline.py` (one sandbox invocation) instead of five separate tool calls. - **Progress stdout:** search, collect, and build skills emit per-product progress JSON (flushed) so long runs show activity in tool output. - **Resume:** `run_pipeline.py --from-step search|collect|build` for debugging a failed step without re-running upstream work. ## 0.3.0 (v3) - Library deliverable includes `kgCO2e/final unit (A1-A3)` beside `tCO2e/...`. - Treat PDF-present / blank-GWP as incomplete until build (with its one re-extract) finishes; never stub the workbook. ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 10/5/2026
  • v50 # Changelog ## 0.11.0 (v11) - Library workbook gains fossil and LULUC kg/t column pairs: `epd-build-library` extraction asks for GWP-fossil and GWP-luluc (EN 15804+A2 sub-indicators) and reports them as declared — never summed into or substituted for GWP-total. Columns stay empty with an explanatory remark when the EPD declares neither (typically EN 15804+A1); see the epd-build-library 0.6.0 changelog. ## 0.10.0 (v10) - Rename package folder and blueprint `id` from `epd-finding-service` to `epd-library-builder`. - Add `formerSlug: "epd-finding-service"` on `listing.json` for curator migrate-on-sync. ## 0.9.0 (v9) - Rename display name from **EPD Finding Service** to **EPD Library Builder** (id `epd-finding-service` unchanged). ## 0.8.0 (v8) - Add Archify showcase workflow diagram under `docs/` and `documentation` manifest. ## 0.7.0 (v7) - **Full Ploutonion identity:** `resolve_suppliers.py` calls `organizations.resolve` again (not `findWebsite`), writes `/workspace/work/code/supplier-identities/{supplierKey}/identity.json`, and includes `identity` + `identityPath` in `epd-suppliers.json`. - Agent must still not call A2A skills directly — only the bundled script (which may fall back to `organizations.identify` when a jurisdiction is present on the product row). ## 0.6.0 (v6) - **Ploutonion guardrails:** forbid calling organization-identity A2A skills from the agent; resolve errors non-fatal; per-supplier progress stdout. (Superseded by v7 full-identity resolve.) ## 0.5.0 (v5) - **Industrial EPD fallback:** when no manufacturer/product-specific EPD verifies, search applies industrial/sector-average EPD proxies from registries; collect uses `downloaded_industrial_proxy`; library remarks state the proxy was applied. ## 0.4.0 (v4) - **Pipeline-first:** blueprint prompt directs the agent to run `python lib/run_pipeline.py` (one sandbox invocation) instead of five separate tool calls. - **Progress stdout:** search, collect, and build skills emit per-product progress JSON (flushed) so long runs show activity in tool output. - **Resume:** `run_pipeline.py --from-step search|collect|build` for debugging a failed step without re-running upstream work. ## 0.3.0 (v3) - Library deliverable includes `kgCO2e/final unit (A1-A3)` beside `tCO2e/...`. - Treat PDF-present / blank-GWP as incomplete until build (with its one re-extract) finishes; never stub the workbook. ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 10/5/2026
  • v49 # Changelog ## 0.11.0 (v11) - Library workbook gains fossil and LULUC kg/t column pairs: `epd-build-library` extraction asks for GWP-fossil and GWP-luluc (EN 15804+A2 sub-indicators) and reports them as declared — never summed into or substituted for GWP-total. Columns stay empty with an explanatory remark when the EPD declares neither (typically EN 15804+A1); see the epd-build-library 0.6.0 changelog. ## 0.10.0 (v10) - Rename package folder and blueprint `id` from `epd-finding-service` to `epd-library-builder`. - Add `formerSlug: "epd-finding-service"` on `listing.json` for curator migrate-on-sync. ## 0.9.0 (v9) - Rename display name from **EPD Finding Service** to **EPD Library Builder** (id `epd-finding-service` unchanged). ## 0.8.0 (v8) - Add Archify showcase workflow diagram under `docs/` and `documentation` manifest. ## 0.7.0 (v7) - **Full Ploutonion identity:** `resolve_suppliers.py` calls `organizations.resolve` again (not `findWebsite`), writes `/workspace/work/code/supplier-identities/{supplierKey}/identity.json`, and includes `identity` + `identityPath` in `epd-suppliers.json`. - Agent must still not call A2A skills directly — only the bundled script (which may fall back to `organizations.identify` when a jurisdiction is present on the product row). ## 0.6.0 (v6) - **Ploutonion guardrails:** forbid calling organization-identity A2A skills from the agent; resolve errors non-fatal; per-supplier progress stdout. (Superseded by v7 full-identity resolve.) ## 0.5.0 (v5) - **Industrial EPD fallback:** when no manufacturer/product-specific EPD verifies, search applies industrial/sector-average EPD proxies from registries; collect uses `downloaded_industrial_proxy`; library remarks state the proxy was applied. ## 0.4.0 (v4) - **Pipeline-first:** blueprint prompt directs the agent to run `python lib/run_pipeline.py` (one sandbox invocation) instead of five separate tool calls. - **Progress stdout:** search, collect, and build skills emit per-product progress JSON (flushed) so long runs show activity in tool output. - **Resume:** `run_pipeline.py --from-step search|collect|build` for debugging a failed step without re-running upstream work. ## 0.3.0 (v3) - Library deliverable includes `kgCO2e/final unit (A1-A3)` beside `tCO2e/...`. - Treat PDF-present / blank-GWP as incomplete until build (with its one re-extract) finishes; never stub the workbook. ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 10/4/2026
  • v48 # Changelog ## 0.11.0 (v11) - Library workbook gains fossil and LULUC kg/t column pairs: `epd-build-library` extraction asks for GWP-fossil and GWP-luluc (EN 15804+A2 sub-indicators) and reports them as declared — never summed into or substituted for GWP-total. Columns stay empty with an explanatory remark when the EPD declares neither (typically EN 15804+A1); see the epd-build-library 0.6.0 changelog. ## 0.10.0 (v10) - Rename package folder and blueprint `id` from `epd-finding-service` to `epd-library-builder`. - Add `formerSlug: "epd-finding-service"` on `listing.json` for curator migrate-on-sync. ## 0.9.0 (v9) - Rename display name from **EPD Finding Service** to **EPD Library Builder** (id `epd-finding-service` unchanged). ## 0.8.0 (v8) - Add Archify showcase workflow diagram under `docs/` and `documentation` manifest. ## 0.7.0 (v7) - **Full Ploutonion identity:** `resolve_suppliers.py` calls `organizations.resolve` again (not `findWebsite`), writes `/workspace/work/code/supplier-identities/{supplierKey}/identity.json`, and includes `identity` + `identityPath` in `epd-suppliers.json`. - Agent must still not call A2A skills directly — only the bundled script (which may fall back to `organizations.identify` when a jurisdiction is present on the product row). ## 0.6.0 (v6) - **Ploutonion guardrails:** forbid calling organization-identity A2A skills from the agent; resolve errors non-fatal; per-supplier progress stdout. (Superseded by v7 full-identity resolve.) ## 0.5.0 (v5) - **Industrial EPD fallback:** when no manufacturer/product-specific EPD verifies, search applies industrial/sector-average EPD proxies from registries; collect uses `downloaded_industrial_proxy`; library remarks state the proxy was applied. ## 0.4.0 (v4) - **Pipeline-first:** blueprint prompt directs the agent to run `python lib/run_pipeline.py` (one sandbox invocation) instead of five separate tool calls. - **Progress stdout:** search, collect, and build skills emit per-product progress JSON (flushed) so long runs show activity in tool output. - **Resume:** `run_pipeline.py --from-step search|collect|build` for debugging a failed step without re-running upstream work. ## 0.3.0 (v3) - Library deliverable includes `kgCO2e/final unit (A1-A3)` beside `tCO2e/...`. - Treat PDF-present / blank-GWP as incomplete until build (with its one re-extract) finishes; never stub the workbook. ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 10/2/2026
  • v47 # Changelog ## 0.11.0 (v11) - Library workbook gains fossil and LULUC kg/t column pairs: `epd-build-library` extraction asks for GWP-fossil and GWP-luluc (EN 15804+A2 sub-indicators) and reports them as declared — never summed into or substituted for GWP-total. Columns stay empty with an explanatory remark when the EPD declares neither (typically EN 15804+A1); see the epd-build-library 0.6.0 changelog. ## 0.10.0 (v10) - Rename package folder and blueprint `id` from `epd-finding-service` to `epd-library-builder`. - Add `formerSlug: "epd-finding-service"` on `listing.json` for curator migrate-on-sync. ## 0.9.0 (v9) - Rename display name from **EPD Finding Service** to **EPD Library Builder** (id `epd-finding-service` unchanged). ## 0.8.0 (v8) - Add Archify showcase workflow diagram under `docs/` and `documentation` manifest. ## 0.7.0 (v7) - **Full Ploutonion identity:** `resolve_suppliers.py` calls `organizations.resolve` again (not `findWebsite`), writes `/workspace/work/code/supplier-identities/{supplierKey}/identity.json`, and includes `identity` + `identityPath` in `epd-suppliers.json`. - Agent must still not call A2A skills directly — only the bundled script (which may fall back to `organizations.identify` when a jurisdiction is present on the product row). ## 0.6.0 (v6) - **Ploutonion guardrails:** forbid calling organization-identity A2A skills from the agent; resolve errors non-fatal; per-supplier progress stdout. (Superseded by v7 full-identity resolve.) ## 0.5.0 (v5) - **Industrial EPD fallback:** when no manufacturer/product-specific EPD verifies, search applies industrial/sector-average EPD proxies from registries; collect uses `downloaded_industrial_proxy`; library remarks state the proxy was applied. ## 0.4.0 (v4) - **Pipeline-first:** blueprint prompt directs the agent to run `python lib/run_pipeline.py` (one sandbox invocation) instead of five separate tool calls. - **Progress stdout:** search, collect, and build skills emit per-product progress JSON (flushed) so long runs show activity in tool output. - **Resume:** `run_pipeline.py --from-step search|collect|build` for debugging a failed step without re-running upstream work. ## 0.3.0 (v3) - Library deliverable includes `kgCO2e/final unit (A1-A3)` beside `tCO2e/...`. - Treat PDF-present / blank-GWP as incomplete until build (with its one re-extract) finishes; never stub the workbook. ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 10/2/2026
  • v46 # Changelog ## 0.11.0 (v11) - Library workbook gains fossil and LULUC kg/t column pairs: `epd-build-library` extraction asks for GWP-fossil and GWP-luluc (EN 15804+A2 sub-indicators) and reports them as declared — never summed into or substituted for GWP-total. Columns stay empty with an explanatory remark when the EPD declares neither (typically EN 15804+A1); see the epd-build-library 0.6.0 changelog. ## 0.10.0 (v10) - Rename package folder and blueprint `id` from `epd-finding-service` to `epd-library-builder`. - Add `formerSlug: "epd-finding-service"` on `listing.json` for curator migrate-on-sync. ## 0.9.0 (v9) - Rename display name from **EPD Finding Service** to **EPD Library Builder** (id `epd-finding-service` unchanged). ## 0.8.0 (v8) - Add Archify showcase workflow diagram under `docs/` and `documentation` manifest. ## 0.7.0 (v7) - **Full Ploutonion identity:** `resolve_suppliers.py` calls `organizations.resolve` again (not `findWebsite`), writes `/workspace/work/code/supplier-identities/{supplierKey}/identity.json`, and includes `identity` + `identityPath` in `epd-suppliers.json`. - Agent must still not call A2A skills directly — only the bundled script (which may fall back to `organizations.identify` when a jurisdiction is present on the product row). ## 0.6.0 (v6) - **Ploutonion guardrails:** forbid calling organization-identity A2A skills from the agent; resolve errors non-fatal; per-supplier progress stdout. (Superseded by v7 full-identity resolve.) ## 0.5.0 (v5) - **Industrial EPD fallback:** when no manufacturer/product-specific EPD verifies, search applies industrial/sector-average EPD proxies from registries; collect uses `downloaded_industrial_proxy`; library remarks state the proxy was applied. ## 0.4.0 (v4) - **Pipeline-first:** blueprint prompt directs the agent to run `python lib/run_pipeline.py` (one sandbox invocation) instead of five separate tool calls. - **Progress stdout:** search, collect, and build skills emit per-product progress JSON (flushed) so long runs show activity in tool output. - **Resume:** `run_pipeline.py --from-step search|collect|build` for debugging a failed step without re-running upstream work. ## 0.3.0 (v3) - Library deliverable includes `kgCO2e/final unit (A1-A3)` beside `tCO2e/...`. - Treat PDF-present / blank-GWP as incomplete until build (with its one re-extract) finishes; never stub the workbook. ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 10/2/2026
  • v45 # Changelog ## 0.11.0 (v11) - Library workbook gains fossil and LULUC kg/t column pairs: `epd-build-library` extraction asks for GWP-fossil and GWP-luluc (EN 15804+A2 sub-indicators) and reports them as declared — never summed into or substituted for GWP-total. Columns stay empty with an explanatory remark when the EPD declares neither (typically EN 15804+A1); see the epd-build-library 0.6.0 changelog. ## 0.10.0 (v10) - Rename package folder and blueprint `id` from `epd-finding-service` to `epd-library-builder`. - Add `formerSlug: "epd-finding-service"` on `listing.json` for curator migrate-on-sync. ## 0.9.0 (v9) - Rename display name from **EPD Finding Service** to **EPD Library Builder** (id `epd-finding-service` unchanged). ## 0.8.0 (v8) - Add Archify showcase workflow diagram under `docs/` and `documentation` manifest. ## 0.7.0 (v7) - **Full Ploutonion identity:** `resolve_suppliers.py` calls `organizations.resolve` again (not `findWebsite`), writes `/workspace/work/code/supplier-identities/{supplierKey}/identity.json`, and includes `identity` + `identityPath` in `epd-suppliers.json`. - Agent must still not call A2A skills directly — only the bundled script (which may fall back to `organizations.identify` when a jurisdiction is present on the product row). ## 0.6.0 (v6) - **Ploutonion guardrails:** forbid calling organization-identity A2A skills from the agent; resolve errors non-fatal; per-supplier progress stdout. (Superseded by v7 full-identity resolve.) ## 0.5.0 (v5) - **Industrial EPD fallback:** when no manufacturer/product-specific EPD verifies, search applies industrial/sector-average EPD proxies from registries; collect uses `downloaded_industrial_proxy`; library remarks state the proxy was applied. ## 0.4.0 (v4) - **Pipeline-first:** blueprint prompt directs the agent to run `python lib/run_pipeline.py` (one sandbox invocation) instead of five separate tool calls. - **Progress stdout:** search, collect, and build skills emit per-product progress JSON (flushed) so long runs show activity in tool output. - **Resume:** `run_pipeline.py --from-step search|collect|build` for debugging a failed step without re-running upstream work. ## 0.3.0 (v3) - Library deliverable includes `kgCO2e/final unit (A1-A3)` beside `tCO2e/...`. - Treat PDF-present / blank-GWP as incomplete until build (with its one re-extract) finishes; never stub the workbook. ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 10/1/2026
  • v44 # Changelog ## 0.11.0 (v11) - Library workbook gains fossil and LULUC kg/t column pairs: `epd-build-library` extraction asks for GWP-fossil and GWP-luluc (EN 15804+A2 sub-indicators) and reports them as declared — never summed into or substituted for GWP-total. Columns stay empty with an explanatory remark when the EPD declares neither (typically EN 15804+A1); see the epd-build-library 0.6.0 changelog. ## 0.10.0 (v10) - Rename package folder and blueprint `id` from `epd-finding-service` to `epd-library-builder`. - Add `formerSlug: "epd-finding-service"` on `listing.json` for curator migrate-on-sync. ## 0.9.0 (v9) - Rename display name from **EPD Finding Service** to **EPD Library Builder** (id `epd-finding-service` unchanged). ## 0.8.0 (v8) - Add Archify showcase workflow diagram under `docs/` and `documentation` manifest. ## 0.7.0 (v7) - **Full Ploutonion identity:** `resolve_suppliers.py` calls `organizations.resolve` again (not `findWebsite`), writes `/workspace/work/code/supplier-identities/{supplierKey}/identity.json`, and includes `identity` + `identityPath` in `epd-suppliers.json`. - Agent must still not call A2A skills directly — only the bundled script (which may fall back to `organizations.identify` when a jurisdiction is present on the product row). ## 0.6.0 (v6) - **Ploutonion guardrails:** forbid calling organization-identity A2A skills from the agent; resolve errors non-fatal; per-supplier progress stdout. (Superseded by v7 full-identity resolve.) ## 0.5.0 (v5) - **Industrial EPD fallback:** when no manufacturer/product-specific EPD verifies, search applies industrial/sector-average EPD proxies from registries; collect uses `downloaded_industrial_proxy`; library remarks state the proxy was applied. ## 0.4.0 (v4) - **Pipeline-first:** blueprint prompt directs the agent to run `python lib/run_pipeline.py` (one sandbox invocation) instead of five separate tool calls. - **Progress stdout:** search, collect, and build skills emit per-product progress JSON (flushed) so long runs show activity in tool output. - **Resume:** `run_pipeline.py --from-step search|collect|build` for debugging a failed step without re-running upstream work. ## 0.3.0 (v3) - Library deliverable includes `kgCO2e/final unit (A1-A3)` beside `tCO2e/...`. - Treat PDF-present / blank-GWP as incomplete until build (with its one re-extract) finishes; never stub the workbook. ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/29/2026
  • v43 # Changelog ## 0.11.0 (v11) - Library workbook gains fossil and LULUC kg/t column pairs: `epd-build-library` extraction asks for GWP-fossil and GWP-luluc (EN 15804+A2 sub-indicators) and reports them as declared — never summed into or substituted for GWP-total. Columns stay empty with an explanatory remark when the EPD declares neither (typically EN 15804+A1); see the epd-build-library 0.6.0 changelog. ## 0.10.0 (v10) - Rename package folder and blueprint `id` from `epd-finding-service` to `epd-library-builder`. - Add `formerSlug: "epd-finding-service"` on `listing.json` for curator migrate-on-sync. ## 0.9.0 (v9) - Rename display name from **EPD Finding Service** to **EPD Library Builder** (id `epd-finding-service` unchanged). ## 0.8.0 (v8) - Add Archify showcase workflow diagram under `docs/` and `documentation` manifest. ## 0.7.0 (v7) - **Full Ploutonion identity:** `resolve_suppliers.py` calls `organizations.resolve` again (not `findWebsite`), writes `/workspace/work/code/supplier-identities/{supplierKey}/identity.json`, and includes `identity` + `identityPath` in `epd-suppliers.json`. - Agent must still not call A2A skills directly — only the bundled script (which may fall back to `organizations.identify` when a jurisdiction is present on the product row). ## 0.6.0 (v6) - **Ploutonion guardrails:** forbid calling organization-identity A2A skills from the agent; resolve errors non-fatal; per-supplier progress stdout. (Superseded by v7 full-identity resolve.) ## 0.5.0 (v5) - **Industrial EPD fallback:** when no manufacturer/product-specific EPD verifies, search applies industrial/sector-average EPD proxies from registries; collect uses `downloaded_industrial_proxy`; library remarks state the proxy was applied. ## 0.4.0 (v4) - **Pipeline-first:** blueprint prompt directs the agent to run `python lib/run_pipeline.py` (one sandbox invocation) instead of five separate tool calls. - **Progress stdout:** search, collect, and build skills emit per-product progress JSON (flushed) so long runs show activity in tool output. - **Resume:** `run_pipeline.py --from-step search|collect|build` for debugging a failed step without re-running upstream work. ## 0.3.0 (v3) - Library deliverable includes `kgCO2e/final unit (A1-A3)` beside `tCO2e/...`. - Treat PDF-present / blank-GWP as incomplete until build (with its one re-extract) finishes; never stub the workbook. ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/29/2026
  • v42 # Changelog ## 0.11.0 (v11) - Library workbook gains fossil and LULUC kg/t column pairs: `epd-build-library` extraction asks for GWP-fossil and GWP-luluc (EN 15804+A2 sub-indicators) and reports them as declared — never summed into or substituted for GWP-total. Columns stay empty with an explanatory remark when the EPD declares neither (typically EN 15804+A1); see the epd-build-library 0.6.0 changelog. ## 0.10.0 (v10) - Rename package folder and blueprint `id` from `epd-finding-service` to `epd-library-builder`. - Add `formerSlug: "epd-finding-service"` on `listing.json` for curator migrate-on-sync. ## 0.9.0 (v9) - Rename display name from **EPD Finding Service** to **EPD Library Builder** (id `epd-finding-service` unchanged). ## 0.8.0 (v8) - Add Archify showcase workflow diagram under `docs/` and `documentation` manifest. ## 0.7.0 (v7) - **Full Ploutonion identity:** `resolve_suppliers.py` calls `organizations.resolve` again (not `findWebsite`), writes `/workspace/work/code/supplier-identities/{supplierKey}/identity.json`, and includes `identity` + `identityPath` in `epd-suppliers.json`. - Agent must still not call A2A skills directly — only the bundled script (which may fall back to `organizations.identify` when a jurisdiction is present on the product row). ## 0.6.0 (v6) - **Ploutonion guardrails:** forbid calling organization-identity A2A skills from the agent; resolve errors non-fatal; per-supplier progress stdout. (Superseded by v7 full-identity resolve.) ## 0.5.0 (v5) - **Industrial EPD fallback:** when no manufacturer/product-specific EPD verifies, search applies industrial/sector-average EPD proxies from registries; collect uses `downloaded_industrial_proxy`; library remarks state the proxy was applied. ## 0.4.0 (v4) - **Pipeline-first:** blueprint prompt directs the agent to run `python lib/run_pipeline.py` (one sandbox invocation) instead of five separate tool calls. - **Progress stdout:** search, collect, and build skills emit per-product progress JSON (flushed) so long runs show activity in tool output. - **Resume:** `run_pipeline.py --from-step search|collect|build` for debugging a failed step without re-running upstream work. ## 0.3.0 (v3) - Library deliverable includes `kgCO2e/final unit (A1-A3)` beside `tCO2e/...`. - Treat PDF-present / blank-GWP as incomplete until build (with its one re-extract) finishes; never stub the workbook. ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/29/2026
  • v32 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/21/2026
  • v31 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/21/2026
  • v30 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/21/2026
  • v29 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/20/2026
  • v28 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/19/2026
  • v27 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/18/2026
  • v26 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/17/2026
  • v25 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/17/2026
  • v24 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/17/2026
  • v23 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/17/2026
  • v22 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/17/2026
  • v21 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/16/2026
  • v20 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/15/2026
  • v19 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/14/2026
  • v18 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/14/2026
  • v17 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/14/2026
  • v16 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/11/2026
  • v15 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/10/2026
  • v14 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/8/2026
  • v13 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/6/2026
  • v12 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/4/2026
  • v11 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/1/2026
  • v10 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/1/2026
  • v9 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/1/2026
  • v8 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 9/1/2026
  • v7 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 8/31/2026
  • v6 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 8/28/2026
  • v5 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 8/28/2026
  • v4 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 8/28/2026
  • v3 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 8/28/2026
  • v2 # Changelog ## 0.2.0 (v2) - Add **Build Library** step (`epd-build-library`) — primary deliverable is `epd-library.xlsx` (EPD Summary sheet) plus `epd-library.md`. - Collect now downloads only the single best EPD PDF per product and writes `epd-download.json` audit JSON (replaces match workbook as user-facing output). - Search applies EPD-likeness filter to reject marketing/LEED PDFs. - Library GWP extracted from PDFs via wine2o2; remarks show calculation including scaled slab rows. - Never invent GWP, density, or EPD metadata. ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 8/28/2026
  • v1 # Changelog ## 0.1.0 - Initial release: normalize → Ploutonion resolve → site/Environdec/EPD Hub search → PDF + match workbook. - v1 non-goals: no batch fan-out; no committing EPDs into org resources. 8/27/2026
Installed bundles are copies — your workspace data stays in your workspace. Qonstrue Community Marketplace