CSI outline specification writer — takes a materials or products list and generates structured specs with MasterFormat divisions, performance criteria, and acceptable manufacturers.
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.
The user provides materials/products in one of these ways:
If the user invokes the skill without input, ask:
Map every material/product to the correct division and section number using MasterFormat 2020:
| Division | Title | Common Sections |
|---|---|---|
| 03 | Concrete | 03 30 00 Cast-in-Place Concrete, 03 45 00 Precast Architectural Concrete |
| 04 | Masonry | 04 20 00 Unit Masonry, 04 40 00 Stone Assemblies |
| 05 | Metals | 05 12 00 Structural Steel Framing, 05 50 00 Metal Fabrications, 05 51 00 Metal Stairs |
| 06 | Wood, Plastics, and Composites | 06 10 00 Rough Carpentry, 06 20 00 Finish Carpentry, 06 40 00 Architectural Woodwork |
| 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 |
| 08 | Openings | 08 11 00 Metal Doors and Frames, 08 14 00 Wood Doors, 08 44 00 Curtain Wall, 08 80 00 Glazing |
| 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 |
| 10 | Specialties | 10 14 00 Signage, 10 21 00 Compartments and Cubicles, 10 28 00 Toilet Accessories |
| 12 | Furnishings | 12 24 00 Window Shading, 12 36 00 Countertops, 12 48 00 Rugs and Mats |
| 22 | Plumbing (fixtures only) | 22 40 00 Plumbing Fixtures |
| 26 | Electrical (fixtures only) | 26 50 00 Lighting |
If a material does not fit these divisions, assign the closest match and note the limitation.
Read the user's input and build an inventory:
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).
Report the mapping to the user:
Identified X materials across Y divisions:
- 07 92 00 Joint Sealants: silicone sealant, urethane sealant
- 09 30 00 Tiling: porcelain floor tile, ceramic wall tile
- 09 91 00 Painting: latex paint, epoxy coating
Ask: "Does this mapping look correct? Any items to add or reassign?"
For each section, write a three-part outline spec following CSI SectionFormat:
Include these where relevant:
Substitution Procedures: "Substitution requests shall be submitted in writing to the Architect a minimum of 10 days prior to bid date. Include product data, samples, and a point-by-point comparison with the specified product."
Mock-Up Requirements: For exposed finishes (masonry, architectural woodwork, tile, curtain wall), require a mock-up panel of specified size for Architect approval before proceeding with production work.
Generic Spec Flags: If a section is generic and lacks project-specific detail, append a note:
[REVIEW REQUIRED] This section contains generic outline specifications. A senior specifier shall review and supplement with project-specific requirements, local code references, and coordination with the design intent.
Apply the [REVIEW REQUIRED] flag when:
Compile all sections into a single .md file organized by division number.
Default output path: ./outline-specs-[project-slug].md
[project-slug] from the project name or type provided by the user (lowercase, hyphenated — e.g., outline-specs-brannan-office.md)outline-specs-draft.mdFile structure:
# Outline Specifications — [Project Name]
Generated: [date]
Project Type: [type]
Divisions: [count]
Sections: [count]
---
## Division 07 — Thermal and Moisture Protection
### Section 07 92 00 — Joint Sealants
#### Part 1 — General
**1.01 Section Includes**
...
#### Part 2 — Products
**2.01 Manufacturers**
...
#### Part 3 — Execution
**3.01 Examination**
...
---
## Division 09 — Finishes
### Section 09 30 00 — Tiling
...
After writing the file, report:
Specifications written: X sections across Y divisions
Output: [file path]
Sections flagged for review: [count]
- [list flagged sections]