$npx -y skills add AlpacaLabsLLC/skills-for-architects --skill spec-writerCSI outline specification writer — takes a materials or products list and generates structured specs with MasterFormat divisions, performance criteria, and acceptable manufacturers. Use when the user asks to "write a spec", produce outline specifications, or format a materials li
| 1 | # /spec-writer — CSI Outline Specification Writer |
| 2 | |
| 3 | Takes a materials list, product schedule, or project description and produces outline specifications organized by CSI MasterFormat 2020 divisions. Output is a structured `.md` file ready for review by a senior specifier. |
| 4 | |
| 5 | ## Project Dossier |
| 6 | |
| 7 | If `PROJECT.md` exists in the working directory, read it before fetching — the **Decisions** index and `decisions/` records hold material and product choices already made — specs must reflect them, not re-litigate them. After completing, note the produced spec sections in the dossier if a **Program** or **Code** entry references them. Update values in place (the dossier holds current state, not history), every entry with a source and date. 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 materials/products in one of these ways: |
| 12 | |
| 13 | 1. **Pasted text** — a materials list, product schedule, or finish legend copied into the conversation |
| 14 | 2. **File path** — path to a CSV, Excel export, schedule PDF, or markdown file containing materials/products |
| 15 | 3. **Verbal description** — project type and general materials ("ground-up office with curtain wall, porcelain tile, ACT ceilings, painted gypsum board") |
| 16 | |
| 17 | If the user invokes the skill without input, ask: |
| 18 | |
| 19 | 1. **What is the project type?** (e.g., commercial office, multifamily residential, retail, healthcare, education) |
| 20 | 2. **What materials or products should be specified?** (paste a list, provide a file path, or describe them) |
| 21 | |
| 22 | ## CSI MasterFormat Divisions Covered |
| 23 | |
| 24 | Map every material/product to the correct division and section number using MasterFormat 2020: |
| 25 | |
| 26 | | Division | Title | Common Sections | |
| 27 | |----------|-------|-----------------| |
| 28 | | 03 | Concrete | 03 30 00 Cast-in-Place Concrete, 03 45 00 Precast Architectural Concrete | |
| 29 | | 04 | Masonry | 04 20 00 Unit Masonry, 04 40 00 Stone Assemblies | |
| 30 | | 05 | Metals | 05 12 00 Structural Steel Framing, 05 50 00 Metal Fabrications, 05 51 00 Metal Stairs | |
| 31 | | 06 | Wood, Plastics, and Composites | 06 10 00 Rough Carpentry, 06 20 00 Finish Carpentry, 06 40 00 Architectural Woodwork | |
| 32 | | 07 | Thermal and Moisture Protection | 07 21 00 Thermal Insulation, 07 27 00 Air Barriers, 07 46 00 Siding, 07 54 00 Thermoplastic Membrane Roofing, 07 84 00 Firestopping, 07 92 00 Joint Sealants | |
| 33 | | 08 | Openings | 08 11 00 Metal Doors and Frames, 08 14 00 Wood Doors, 08 44 00 Curtain Wall, 08 80 00 Glazing | |
| 34 | | 09 | Finishes | 09 21 00 Plaster and Gypsum Board, 09 30 00 Tiling, 09 51 00 Acoustical Ceilings, 09 65 00 Resilient Flooring, 09 68 00 Carpeting, 09 91 00 Painting | |
| 35 | | 10 | Specialties | 10 14 00 Signage, 10 21 00 Compartments and Cubicles, 10 28 00 Toilet Accessories | |
| 36 | | 12 | Furnishings | 12 24 00 Window Shading, 12 36 00 Countertops, 12 48 00 Rugs and Mats | |
| 37 | | 22 | Plumbing (fixtures only) | 22 40 00 Plumbing Fixtures | |
| 38 | | 26 | Electrical (fixtures only) | 26 50 00 Lighting | |
| 39 | |
| 40 | If a material does not fit these divisions, assign the closest match and note the limitation. |
| 41 | |
| 42 | ## Spec Generation Workflow |
| 43 | |
| 44 | ### Step 1: Parse and classify materials |
| 45 | |
| 46 | Read the user's input and build an inventory: |
| 47 | |
| 48 | - **Material/product name** — as provided |
| 49 | - **CSI division and section number** — mapped from the material type |
| 50 | - **Section title** — per MasterFormat conventions |
| 51 | |
| 52 | Sort by division number, then section number. Group related items under the same section where appropriate (e.g., two paint types both go under 09 91 00). |
| 53 | |
| 54 | Report the mapping to the user: |
| 55 | |
| 56 | ``` |
| 57 | Identified X materials across Y divisions: |
| 58 | - 07 92 00 Joint Sealants: silicone sealant, urethane sealant |
| 59 | - 09 30 00 Tiling: porcelain floor tile, ceramic wall tile |
| 60 | - 09 91 00 Painting: latex paint, epoxy coating |
| 61 | ``` |
| 62 | |
| 63 | Ask: **"Does this mapping look correct? Any items to add or reassign?"** |
| 64 | |
| 65 | ### Step 2: Generate outline specifications |
| 66 | |
| 67 | For each section, write a three-part outline spec following CSI SectionFormat. A complete worked example is in [sample.md](sample.md) — a commercial office tenant improvement covering Division 09 finish sections and a Division 12 countertop section, with the full three-part structure, `[REVIEW REQUIRED]` flags, and the writing style below. Match its level of detail and formatting. |
| 68 | |
| 69 | #### Part 1 — General |
| 70 | |
| 71 | - **1.01 Section Includes**: Scope of work covered by this section. |
| 72 | - **1.02 Related Sections**: Cross-references to other specification sections (e.g., "Section 07 92 00 — Joint Sealants" from a tiling section). |
| 73 | - **1.03 References**: Applicable standards — ASTM, ANSI, ADA, NFPA, UL, or other testing/cer |