SKILL.md v2 sustainability

EPD Scan Vault

Check the workspace's attached vault folders for EPDs, PCFs and LCAs before searching the internet.

No reviews yet 0 installs
Walks every vault document source attached to the workspace (/workspace/local/sources), classifies each PDF as an EPD, Product Carbon Footprint, LCA report or other, matches it to the normalized products by name or material category, records its A1-A3 boundary and validity, and writes epd-vault-index.json. Read-only. No sources attached is success, not an error. This is the verifying step for vault documents: it is the first to read their text, so downstream steps act on its verdicts rather than re-checking them.
epdpcflcavaultsustainability

Versions

  • v2 # Changelog ## 0.2.0 - Supplier attribution (`attribution_of`, `declared_holder_of`, `fold_organisation`): a product-specific document whose declared holder is recognisably another manufacturer is excluded from that product's `matchedProducts`, so the product no longer short-circuits the internet search. Category documents are not gated — a sector average makes no attribution claim. - Index documents gain `declaredHolder` and `attributionByProduct` (per matched product, since one document can name products belonging to different suppliers). - Attribution narrowings from review, mirrored byte-for-byte from `epd-collect-artifacts`: sector words and nationalities never confirm a shared-token match, prose holder values never conflict, and all holder lines are resolved asymmetrically. - The predicate is byte-equivalent to `epd-collect-artifacts`'s copy and pinned by `test_predicate_parity.py`. ## 0.1.0 - Initial release: scan attached vault document sources for EPDs, Product Carbon Footprints and LCA reports before any network call; write `epd-vault-index.json`. - The scan is the verifying step for vault documents — it owns the product-name match (collect's own containment rule plus a distinctiveness guard) and the A1-A3 boundary verdict, both pinned against `epd-collect-artifacts` by parity tests. - No sources attached is success with an empty index. Exit 4 only when sources are attached and **every extraction attempt raised**. A PDF that extracts successfully but yields no usable text (a scanned, image-only PDF) is counted separately (`health.extractionEmpty`) and never contributes to the exit-4 predicate — it is indexed `textExtractable: false` and matched to nothing, exactly like a genuinely broken extraction, but it is not treated as one. - Each PCF/LCA document's boundary verdict carries the matched boundary TEXT alongside the enum (`boundary_detail_of`), so a downstream rejection reason or Library remark can name what the document actually declared (e.g. "A1-C4") instead of the bare internal enum ("other"). - `mark_preferred` ranks short-circuit eligibility (`_admissible_rank`) **before** document type: an inadmissible PCF (boundary `other`/`unknown`) no longer outranks an admissible LCA for the same product — previously the PCF won `preferred` on type rank alone, neither document then short-circuited, and the usable LCA was filed under `vaultRejected` as merely "another vault document was preferred". - `classify_scope`'s category match now requires the folded category to be at least `MIN_VAULT_MATCH_CHARS` long, or to match on a word boundary — a short category ("glass", "tile") no longer substring-matches inside an unrelated word ("fiberglass", "textile"). 10/13/2026
  • v1 # Changelog ## 0.1.0 - Initial release: scan attached vault document sources for EPDs, Product Carbon Footprints and LCA reports before any network call; write `epd-vault-index.json`. - The scan is the verifying step for vault documents — it owns the product-name match (collect's own containment rule plus a distinctiveness guard) and the A1-A3 boundary verdict, both pinned against `epd-collect-artifacts` by parity tests. - No sources attached is success with an empty index. Exit 4 only when sources are attached and **every extraction attempt raised**. A PDF that extracts successfully but yields no usable text (a scanned, image-only PDF) is counted separately (`health.extractionEmpty`) and never contributes to the exit-4 predicate — it is indexed `textExtractable: false` and matched to nothing, exactly like a genuinely broken extraction, but it is not treated as one. - Each PCF/LCA document's boundary verdict carries the matched boundary TEXT alongside the enum (`boundary_detail_of`), so a downstream rejection reason or Library remark can name what the document actually declared (e.g. "A1-C4") instead of the bare internal enum ("other"). - `mark_preferred` ranks short-circuit eligibility (`_admissible_rank`) **before** document type: an inadmissible PCF (boundary `other`/`unknown`) no longer outranks an admissible LCA for the same product — previously the PCF won `preferred` on type rank alone, neither document then short-circuited, and the usable LCA was filed under `vaultRejected` as merely "another vault document was preferred". - `classify_scope`'s category match now requires the folded category to be at least `MIN_VAULT_MATCH_CHARS` long, or to match on a word boundary — a short category ("glass", "tile") no longer substring-matches inside an unrelated word ("fiberglass", "textile"). 10/13/2026
Installed bundles are copies — your workspace data stays in your workspace. Qonstrue Community Marketplace