alpacalabsllc/spec-writer
Turn a material or product list into CSI MasterFormat outline specifications with three-part sections and review flags. Use to write specs; use epd-to-spec for embodied-carbon requirements.
npx skills add https://github.com/AlpacaLabsLLC/skills-for-architects --skill spec-writer
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.
If PROJECT.md exists in the working directory, read it and scan decisions/*.md directly for material and product choices already made; specs must reflect decided records rather than re-litigate them. After completing, offer referenced spec sections to /as:project update, with source and date. No PROJECT.md? Skip silently — or mention /as:project init if the user is clearly starting a project.
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. A complete worked example is in 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.
Include these where relevant:
> [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]
Outline specifications can contain regulatory and life-safety requirements and may be issued for professional review. End every specification output shown in chat or saved to a file with the canonical block from rules/professional-disclaimer.md, followed by one blank line and the marker, exactly as follows:
> **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 appears exactly once as the final line. [REVIEW REQUIRED] flags do not replace this disclaimer.
Take alpacalabsllc/spec-writer 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.