alpacalabsllc/epd-to-spec
Write CSI specification language for EPD submittals and sourced GWP limits. Use to add embodied-carbon or EPD requirements to specs; not to parse, find, or compare EPDs.
npx skills add https://github.com/AlpacaLabsLLC/skills-for-architects --skill epd-to-spec
Takes EPD data, GWP limits, or a materials list and generates CSI-formatted specification sections that require Environmental Product Declarations and set maximum Global Warming Potential thresholds. Output follows the same three-part CSI SectionFormat used by /as:spec-writer.
EPD fields follow schema/epd-schema.md. Accept pasted structured values, direct handoffs from /as:epd-parser or /as:epd-compare, or a validated project-local epd-library.csv; do not require a library.
If PROJECT.md exists in the working directory, read it before fetching, then scan decisions/*.md directly for GWP thresholds or material choices the spec must reflect. After completing, offer chosen thresholds to /as:project update for its Code section, each with a source and date. If a threshold was chosen here, propose /as:project record-decision. No PROJECT.md? Skip silently — or mention /as:project init if the user is clearly starting a project.
The user provides one or more of:
If the user invokes the skill without input, ask:
Map materials to the correct division. EPD requirements are most relevant for structural, envelope, and interior finish materials:
| Division | Title | Common EPD Products |
|----------|-------|-------------------|
| 03 30 00 | Cast-in-Place Concrete | Ready-mix concrete |
| 03 40 00 | Precast Concrete | Precast panels, structural precast |
| 03 41 00 | Precast Structural Concrete | Precast beams, columns |
| 05 12 00 | Structural Steel Framing | Hot-rolled steel, HSS |
| 05 21 00 | Steel Joist Framing | Open web steel joists |
| 05 31 00 | Steel Decking | Composite floor deck, roof deck |
| 05 50 00 | Metal Fabrications | Miscellaneous metals, rebar |
| 06 10 00 | Rough Carpentry | Dimensional lumber, engineered wood |
| 06 17 00 | Shop-Fabricated Structural Wood | Glulam, CLT, LVL |
| 07 21 00 | Thermal Insulation | Mineral wool, XPS, EPS, spray foam |
| 07 27 00 | Air Barriers | Fluid-applied, sheet membranes |
| 07 42 00 | Wall Panels | Metal wall panels, ACM |
| 07 54 00 | Thermoplastic Membrane Roofing | TPO, PVC |
| 08 44 00 | Curtain Wall / Glazing | Aluminum curtain wall, IGUs |
| 09 21 00 | Plaster and Gypsum Board | Gypsum board, joint compound |
| 09 30 00 | Tiling | Porcelain, ceramic tile |
| 09 51 00 | Acoustical Ceilings | ACT, mineral fiber |
| 09 65 00 | Resilient Flooring | LVT, rubber, linoleum |
| 09 68 00 | Carpeting | Carpet tile, broadloom |
| 32 12 00 | Asphalt Paving | HMA, WMA |
Read the user's input and build an inventory:
If the user provided EPD data or a comparison report, extract the GWP values and declared units from there. Validate any epd-library.csv with python3 "${CLAUDE_PLUGIN_ROOT}/skills/master-schedule/scripts/csv-library.py" validate epd; reject the FF&E schema. Validation is read-only; never invoke init, import, append, or update.
If no GWP thresholds are specified, a published industry-average baseline may be used only when you can cite its named source and publication year (per the GWP Baseline Policy below) — always flag such thresholds [VERIFY THRESHOLD]. If no citable baseline is available, do not use approximate from-memory numbers. Instead, ask the user:
"I need GWP thresholds to write the spec. You can provide them by:
/as:epd-research — I'll find EPDs for your material categories/as:epd-compare — compare products and pick a threshold from the resultsWe're working on EC3 API integration that will automate baseline lookups — for now, provide an EPD or a specific threshold."
Do not fall back to uncited hardcoded numbers. Write the spec with [THRESHOLD TBD] placeholders if the user asks to proceed without data, and flag every placeholder clearly.
Report the mapping:
Identified X materials across Y divisions:
- 03 30 00 Cast-in-Place Concrete: GWP max 350 kg CO2e/m3 (user-provided)
- 05 12 00 Structural Steel Framing: GWP max 1.16 kg CO2e/kg (AISC Fabricated Hot-Rolled Structural Sections EPD, 2021) [VERIFY THRESHOLD]
- 07 21 00 Thermal Insulation: GWP max 1.2 kg CO2e/kg (NAIMA Mineral Wool Industry-Wide EPD, 2021) [VERIFY THRESHOLD]
Ask: "Does this mapping look correct? Any thresholds to adjust?"
For each material, write a three-part outline spec. The EPD-specific language is concentrated in Part 1 (submittals, quality assurance, sustainability) and Part 2 (environmental performance requirements).
1.01 Section Includes
Standard scope of work for the material. No EPD-specific changes.
1.02 Related Sections
Standard cross-references. Add:
1.03 References
Standard material references PLUS:
1.04 Submittals
Add the following to standard submittal requirements:
D. Environmental Product Declarations:
1. Submit product-specific Type III Environmental Product Declaration (EPD)
conforming to ISO 14025 and ISO 21930.
2. EPD shall be published by a program operator accredited per ISO 14025,
including but not limited to: UL Environment, NSF International,
SCS Global Services, Environdec (International EPD System), IBU, or
ASTM International.
3. EPD shall be current and valid at the time of submittal. Expired EPDs
are not acceptable.
4. EPD shall be third-party verified by an independent verifier approved
by the program operator.
5. Industry-average or sector EPDs are acceptable only when a product-specific
EPD is not available for the specified product category. Submit documentation
demonstrating unavailability.
6. EPD shall report environmental impacts for life cycle stages A1 through A3
(raw material supply, transport to manufacturer, manufacturing) at minimum.
1.05 Quality Assurance
Add:
C. Environmental Performance Verification:
1. Manufacturer shall demonstrate that the supplied product meets the maximum
GWP thresholds specified in Part 2.
2. If the product is sourced from a different manufacturing plant than the one
covered by the submitted EPD, provide documentation that the EPD is
representative of the actual production facility.
1.06 Sustainability Requirements (new article — add if not already in the section)
A. Environmental Product Declaration Requirements:
1. Provide products with Type III Environmental Product Declarations meeting
the requirements of Article 1.04.D.
2. Maximum Global Warming Potential (GWP):
a. [Product]: [VALUE] kg CO2e per [DECLARED UNIT], measured for life cycle
stages A1 through A3.
3. GWP shall be calculated in accordance with ISO 21930 and reported using
characterization factors from IPCC AR5 or later.
B. LEED Documentation (if applicable):
1. Provide EPD documentation in format required for LEED v4.1 MRc2 credit
submission.
2. Coordinate with Owner's LEED consultant for documentation requirements.
1.07 Delivery, Storage, and Handling
Standard. No EPD-specific changes.
1.08 Warranty
Standard. No EPD-specific changes.
2.01 Manufacturers
Standard manufacturer list with "or approved equal" language. Add:
B. All manufacturers shall provide a current, valid Type III EPD meeting the
requirements of Article 1.04.D. Manufacturers unable to provide a conforming
EPD are not acceptable.
2.02 Materials/Products
Standard material specifications. No EPD-specific changes.
2.03 Environmental Performance Requirements (new article)
A. Maximum Global Warming Potential (GWP):
1. [Product]: Maximum [VALUE] kg CO2e per [DECLARED UNIT], for life cycle
stages A1 through A3 (raw material supply, transport, manufacturing).
2. GWP value shall be as reported in the product-specific EPD submitted
under Article 1.04.D.
B. Additional Environmental Performance (if applicable):
1. Recycled Content: Minimum [VALUE] percent by weight, post-consumer and
pre-consumer combined.
2. Regional Materials: Preference shall be given to products manufactured
within [DISTANCE] miles of the project site.
2.04 Finishes
Standard. No EPD-specific changes.
2.05 Accessories
Standard. No EPD-specific changes.
Standard execution language for the material. No EPD-specific additions. Follow the same pattern as /as:spec-writer:
If the user mentions LEED v4.1, add a dedicated LEED section at the end of the specification:
## Appendix — LEED v4.1 MRc2: Building Product Disclosure and Optimization
### Option 1 — Environmental Product Disclosure (1 point)
Use at least 20 permanently installed products sourced from at least five different
manufacturers that have Type III EPDs conforming to ISO 14025.
Products with product-specific EPDs: 1 product = 1 product count
Products with industry-wide (generic) EPDs: 1 product = 0.5 product count
### Option 2 — Environmental Product Optimization (up to 2 points)
Products that demonstrate impact reduction below baseline:
- Products with EPDs showing impact reduction compared to industry average
earn additional credit
- Third-party verified product-specific EPDs preferred
- Whole-building life cycle assessment (WBLCA) per ISO 14044 may be used
as an alternative compliance path
### Documentation Requirements
1. Maintain a product EPD log tracking all qualifying products
2. For each product, document: manufacturer, product name, EPD registration
number, program operator, GWP (A1-A3), and declared unit
3. Submit EPD log to LEED reviewer as part of MRc2 credit documentation
Apply [REVIEW REQUIRED] flags when:
Apply [VERIFY THRESHOLD] flags when:
Compile all sections into a single .md file organized by division number.
Default output path: ./epd-specs-[project-slug].md
[project-slug] from the project name or type (lowercase, hyphenated)epd-specs-draft.md./deliverables/epd-specs-[project-slug].mdFile structure:
# EPD Specifications — [Project Name]
Generated: [date]
Project Type: [type]
Divisions: [count]
Sections: [count]
LEED Target: [if applicable]
---
## Division 03 — Concrete
### Section 03 30 00 — Cast-in-Place Concrete
#### Part 1 — General
...
#### Part 2 — Products
...
#### Part 3 — Execution
...
---
## Division 05 — Metals
### Section 05 12 00 — Structural Steel Framing
...
After writing the file, report:
EPD specifications written: X sections across Y divisions
Output: [file path]
GWP thresholds set:
- 03 30 00 Concrete: 350 kg CO2e/m3 (user-provided)
- 05 12 00 Steel: 1.16 kg CO2e/kg (AISC Fabricated Hot-Rolled Structural Sections EPD, 2021) [VERIFY THRESHOLD]
Sections flagged for review: [count]
- [list flagged sections]
[VERIFY THRESHOLD]); otherwise ask the user to provide an EPD, run /as:epd-research, or state a specific threshold. If the user asks to proceed without data, use [THRESHOLD TBD] placeholders and flag every one.This 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.
.md specification files./as:spec-writer for complete specs. This skill adds EPD/sustainability requirements to specific sections. The general /as:spec-writer produces full outline specs without EPD language. For a complete specification package, use both.This skill produces regulatory output. End every report this skill produces — printed in chat or saved to a file — with the canonical disclaimer block from rules/professional-disclaimer.md, followed by one blank line and the machine-readable marker, exactly as shown:
> **Disclaimer:** This is an AI-generated analysis for preliminary planning purposes. All findings must be verified by a licensed professional before use in design, permitting, or regulatory submissions.
<!-- architecture-studio:requires-disclaimer -->
The marker is a single end-of-file sentinel — it appears exactly once, as the last line of the report. The post-write-disclaimer-check hook parses saved .md reports for the marker and blocks the write if the canonical disclaimer block is missing.
Take alpacalabsllc/epd-to-spec 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.