alpacalabsllc/epd-research
Search for EPDs by product category, CSI division, or material type — finds EPDs from EC3, program operator registries, and manufacturer sites. Use when the user asks to "find EPDs for...", locate declarations for a material, or source low-carbon product documentation.
npx skills add https://github.com/AlpacaLabsLLC/skills-for-architects --skill epd-research
Receives a brief describing a material or product category, searches the web for matching EPDs (Environmental Product Declarations), and returns a curated shortlist sorted by environmental impact. The shortlist is file-free by default; selected EPDs are persisted only on explicit request.
User describes what they need EPDs for
|
Claude searches registries + manufacturer sites
|
Presents candidates sorted by GWP (lowest first)
|
User picks winners
|
Optionally saved to project-local epd-library.csv
The user describes what they need EPDs for. A brief can be loose or specific:
Loose:
> "I need concrete EPDs"
Specific:
> "Looking for ready-mix concrete EPDs, 4000-5000 PSI, plants within 500 miles of NYC, GWP under 350 kg CO2e/m3"
Extract as many of these as the user provides. Don't ask for fields they didn't mention — work with what you have.
| Field | Examples |
|-------|---------|
| Material/product | Ready-mix concrete, structural steel, mineral wool insulation, carpet tile |
| CSI division | Division 03, Division 09, "all structural materials" |
| Performance specs | 4000 PSI, R-21, Class A fire rating |
| Geographic preference | Plants near NYC, manufactured in North America, European suppliers ok |
| GWP target | Under 350 kg CO2e/m3, below industry average, lowest available |
| Manufacturers | "Include Holcim and CEMEX", "no imported steel" |
| EPD type | Product-specific only, industry-average ok |
| Standard | EN 15804+A2, ISO 21930 |
| Certification | LEED v4.1 eligible, third-party verified |
Don't interview the user. If the brief is "concrete EPDs," that's enough to start searching. Clarify *after* showing initial results if needed.
Search the web for EPDs matching the brief. Use multiple targeted queries to cover different sources.
| Source | URL pattern | Notes |
|--------|------------|-------|
| Building Transparency / EC3 | buildingtransparency.org | Largest EPD database. Requires authenticated API access (free professional account + API key). See notes below. |
| UL EPD Program | ul.com | Major US program operator. Product-specific EPDs. |
| NSF International | nsf.org | US program operator, strong in concrete/masonry. |
| SCS Global Services | scsglobalservices.com | US program operator. |
| Environdec (International EPD System) | environdec.com | Largest international registry. European + global. |
| IBU (Institut Bauen und Umwelt) | ibu-epd.com | German program operator. Strong in European products. |
| ASTM International | astm.org | US program operator (newer). |
| Manufacturer sites | varies | Major manufacturers publish EPDs on their sustainability pages. |
For a brief like "ready-mix concrete EPDs, 4000 PSI, near NYC":
site:ul.com ready-mix concrete environmental product declarationsite:environdec.com ready-mix concrete EPDready-mix concrete EPD northeast US 4000 PSIHolcim ready-mix EPD, CEMEX concrete EPDNRMCA concrete EPD (National Ready Mixed Concrete Association)Run 3-5 searches depending on brief complexity. Aim for breadth — different manufacturers, regions, GWP ranges.
Attempt to fetch the registry page or EPD listing with WebFetch. Extract:
If the page is JS-rendered and returns limited data, use whatever info is available from the search result snippet plus general knowledge. Note as "unverified" if sourced from snippets.
Target: 6-12 EPD candidates that genuinely match the brief. Don't pad with weak matches.
Show results as a numbered shortlist sorted by GWP (lowest first):
## EPD Research: Ready-Mix Concrete (4000 PSI, Northeast US)
### 1. ECOPact — Holcim
Plant: South Plainfield, NJ · GWP: 242 kg CO2e/m3
Declared Unit: 1 m3 · System Boundary: Cradle-to-gate
Program Operator: NSF · Reg: EPD-00123 · Valid: 2024-06-01 to 2029-06-01
LEED: Yes (product-specific, third-party verified)
PDF: [link]
Why: Lowest GWP in the region. ECOPact line is Holcim's low-carbon
concrete — uses SCM substitution. Plant is ~50 miles from NYC.
### 2. ProPaving 4000 — CEMEX
Plant: Yonkers, NY · GWP: 298 kg CO2e/m3
Declared Unit: 1 m3 · System Boundary: Cradle-to-gate
Program Operator: ASTM · Reg: EPD-00456 · Valid: 2023-11-01 to 2028-11-01
LEED: Yes
PDF: [link]
Why: Close to site. Higher GWP than ECOPact but still below the NRMCA
industry-wide average for 4000 PSI (~400 kg CO2e/m3, NRMCA Industry-Wide
Member EPD v3.2, 2022).
### 3. ...
---
## Summary
| # | Product | Manufacturer | Plant | GWP (A1-A3) | Unit | Valid To | LEED |
|---|---------|-------------|-------|-------------|------|----------|------|
| 1 | ECOPact | Holcim | South Plainfield, NJ | 242 | kg CO2e/m3 | 2029-06 | Yes |
| 2 | ProPaving 4000 | CEMEX | Yonkers, NY | 298 | kg CO2e/m3 | 2028-11 | Yes |
| 3 | ... | ... | ... | ... | ... | ... | ... |
Industry average (NRMCA Industry-Wide Member EPD v3.2, 2022 — 4000 PSI): ~400 kg CO2e/m3
Which ones should I save to your EPD library?
Do not create a file merely because the user selects or compares candidates. When the user explicitly asks to save candidates, use the canonical contract in schema/epd-schema.md; never use the 33-column FF&E schema. Set:
Parsed At — current ISO timestampSource — epd-researchNotes — the "Why" reasoning from the presentation + any caveatsTags — from brief context (e.g., "4000-psi, northeast, project-name")LEED Eligible — based on EPD type and verification statusResolve the nearest ancestor containing PROJECT.md and target <project-root>/epd-library.csv. Preview the complete selected batch, target, and initialize-or-append action. Use one confirmation gate without a duplicate prose confirmation. Serialize all approved records as one JSON array. After approval, use python3 "${CLAUDE_PLUGIN_ROOT}/skills/master-schedule/scripts/csv-library.py" init epd if needed, then invoke python3 "${CLAUDE_PLUGIN_ROOT}/skills/master-schedule/scripts/csv-library.py" append epd --row-json <batch.json> exactly once. Never append in a per-record loop. The helper validates the complete CSV and writes the whole batch atomically. If no project root exists, keep the shortlist in conversation and offer /as:project init.
Saved 3 EPDs to your project's epd-library.csv.
Tagged: 4000-psi, northeast
Want me to compare these? Or search for more options?
The user may want to refine:
/as:epd-compare/as:epd-to-specThis policy is shared by all four EPD skills (epd-parser, epd-research, epd-compare, epd-to-spec) and must read identically in each. Industry-average GWP baselines are allowed only when cited with a named source and publication year (e.g., "NRMCA Industry-Wide Member EPD v3.2, 2022" or "AISC Fabricated Hot-Rolled Structural Sections EPD, 2021"). Uncited baseline numbers recalled from memory or training data are banned. If no source-and-year citation is available, ask the user to provide a baseline EPD or find one with /as:epd-research — never guess a baseline.
site:buildingtransparency.org web searches will not return results. If the user hasn't configured EC3 API credentials, tell them: *"EC3 has the largest EPD database but requires a free API key from buildingtransparency.org (professional account with a business email). I'll search program operator registries and manufacturer sites directly instead."* Then proceed with the other sources listed above — UL, NSF, Environdec, IBU, SCS, ASTM, and manufacturer sustainability pages all publish EPDs publicly./as:epd-parser extracts full data from the PDFs. If the user wants deep data from a found EPD, download the PDF and run /as:epd-parser.Take alpacalabsllc/epd-research from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.