$npx -y skills add AlpacaLabsLLC/skills-for-architects --skill epd-to-specGenerate CSI-formatted specification sections requiring EPDs and setting maximum GWP thresholds — references ISO 14025, ISO 21930, EN 15804. Use when the user asks to write EPD requirements into a spec, set GWP limits, or "add embodied carbon requirements" to a specification.
| 1 | # /epd-to-spec — EPD Specification Writer |
| 2 | |
| 3 | 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 `/spec-writer`. |
| 4 | |
| 5 | ## Project Dossier |
| 6 | |
| 7 | If `PROJECT.md` exists in the working directory, read it before fetching — the **Decisions** index may already hold GWP threshold or material choices the spec must reflect. After completing, append chosen thresholds to its **Code** section. Update values in place (the dossier holds current state, not history), every entry with a source and date. A GWP threshold is a decision — if one was set here, propose recording it with `/decision`. No `PROJECT.md`? Skip silently — or mention `/project-dossier init` if the user is clearly starting a project. |
| 8 | |
| 9 | ## Input |
| 10 | |
| 11 | The user provides one or more of: |
| 12 | |
| 13 | 1. **Material list with GWP limits** — "concrete max 350 kg CO2e/m3, rebar max 1.0 kg CO2e/kg" |
| 14 | 2. **EPD data from the sheet** — "use the EPDs I saved to set thresholds" |
| 15 | 3. **Comparison report** — "use the lowest GWP from my last comparison as the max" |
| 16 | 4. **LEED target** — "we're pursuing LEED v4.1 MRc2 Option 2" |
| 17 | 5. **Verbal description** — "write EPD requirements for a ground-up office, concrete and steel structure, curtain wall" |
| 18 | 6. **Project type** — helps determine which CSI divisions need EPD language |
| 19 | |
| 20 | If the user invokes the skill without input, ask: |
| 21 | |
| 22 | 1. **What materials need EPD requirements?** (paste a list, reference the sheet, or describe the project) |
| 23 | 2. **Do you have specific GWP thresholds, or should I use published industry baselines (cited with named source and publication year)?** |
| 24 | |
| 25 | ## CSI Divisions Where EPDs Are Most Common |
| 26 | |
| 27 | Map materials to the correct division. EPD requirements are most relevant for structural, envelope, and interior finish materials: |
| 28 | |
| 29 | | Division | Title | Common EPD Products | |
| 30 | |----------|-------|-------------------| |
| 31 | | 03 30 00 | Cast-in-Place Concrete | Ready-mix concrete | |
| 32 | | 03 40 00 | Precast Concrete | Precast panels, structural precast | |
| 33 | | 03 41 00 | Precast Structural Concrete | Precast beams, columns | |
| 34 | | 05 12 00 | Structural Steel Framing | Hot-rolled steel, HSS | |
| 35 | | 05 21 00 | Steel Joist Framing | Open web steel joists | |
| 36 | | 05 31 00 | Steel Decking | Composite floor deck, roof deck | |
| 37 | | 05 50 00 | Metal Fabrications | Miscellaneous metals, rebar | |
| 38 | | 06 10 00 | Rough Carpentry | Dimensional lumber, engineered wood | |
| 39 | | 06 17 00 | Shop-Fabricated Structural Wood | Glulam, CLT, LVL | |
| 40 | | 07 21 00 | Thermal Insulation | Mineral wool, XPS, EPS, spray foam | |
| 41 | | 07 27 00 | Air Barriers | Fluid-applied, sheet membranes | |
| 42 | | 07 42 00 | Wall Panels | Metal wall panels, ACM | |
| 43 | | 07 54 00 | Thermoplastic Membrane Roofing | TPO, PVC | |
| 44 | | 08 44 00 | Curtain Wall / Glazing | Aluminum curtain wall, IGUs | |
| 45 | | 09 21 00 | Plaster and Gypsum Board | Gypsum board, joint compound | |
| 46 | | 09 30 00 | Tiling | Porcelain, ceramic tile | |
| 47 | | 09 51 00 | Acoustical Ceilings | ACT, mineral fiber | |
| 48 | | 09 65 00 | Resilient Flooring | LVT, rubber, linoleum | |
| 49 | | 09 68 00 | Carpeting | Carpet tile, broadloom | |
| 50 | | 32 12 00 | Asphalt Paving | HMA, WMA | |
| 51 | |
| 52 | ## Spec Generation Workflow |
| 53 | |
| 54 | ### Step 1: Parse and classify materials |
| 55 | |
| 56 | Read the user's input and build an inventory: |
| 57 | |
| 58 | - **Material/product** — as provided |
| 59 | - **CSI division and section number** — mapped from the material type |
| 60 | - **GWP threshold** — user-provided limit, EPD sheet value, or industry baseline |
| 61 | - **Declared unit** — must match the unit used in the GWP threshold |
| 62 | |
| 63 | If the user provided EPD sheet data or a comparison report, extract the GWP values and declared units from there. |
| 64 | |
| 65 | 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: |
| 66 | |
| 67 | **"I need GWP thresholds to write the spec. You can provide them by:** |
| 68 | 1. **Sharing an EPD** — I'll extract the GWP value and declared unit |
| 69 | 2. **Using `/epd-research`** — I'll find EPDs for your material categories |
| 70 | 3. **Using `/epd-compare`** — compare products and pick a threshold from the results |
| 71 | 4. **Stating a number** — e.g., 'concrete max 350 kg CO2e/m3' |
| 72 | |
| 73 | **We're working on EC3 API integration that will automate baseline lookups — for now, provide an |