alpacalabsllc/product-data-import
Generate a formatted FF&E specification schedule from notes, CSV, or pasted lists and optionally save it to the project's 33-column CSV library. Use when asked to import products or build a schedule.
npx skills add https://github.com/AlpacaLabsLLC/skills-for-architects --skill product-data-import
Takes raw product data and formats it as a Markdown preview or as rows in the nearest project's product-library.csv, using the shared 33-column schema.
The designer provides product data in any format:
Raw notes:
3x Eames Lounge Chair, Herman Miller, walnut/black leather, $5,695 each
2x Nelson Platform Bench 48", Herman Miller, natural maple, $2,195
1x Noguchi Coffee Table, Herman Miller, walnut/glass, $2,095
Pendant light for above the table - something by Flos, budget $800-1200
Pasted CSV:
Product, Brand, Qty, Price
Eames Lounge Chair, Herman Miller, 3, $5695
Nelson Bench 48, Herman Miller, 2, $2195
A file path:
/as:product-data-import ./product-list.csv
Conversational:
"We need 8 task chairs — Steelcase Leap V2, black, about $1,200 each.
Also 4 monitor arms, any brand, under $300."
Accept whatever the designer gives. Don't ask for more structure — work with what you have.
For each product in the input:
../../schema/product-schema.mdItem number prefixes are defined in ../../schema/product-schema.md under Item Number Prefixes. Read that file for the full mapping of canonical categories to prefixes (e.g. Chair → S, Table → T, Light → L).
Show the formatted schedule as a markdown table:
## FF&E Schedule — [Project Name if known]
[n] items · [total qty] units · $[total extended] estimated
| Item # | Product | Brand | Qty | W | D | H | Unit | Materials | Finish | Unit $ | Ext $ | Lead | Notes |
|--------|---------|-------|-----|---|---|---|------|-----------|--------|--------|-------|------|-------|
| S-01 | Eames Lounge Chair | Herman Miller | 3 | 32.75 | 32.5 | 33.5 | in | Molded plywood, leather | Walnut/Black | $5,695 | $17,085 | 8-12w | |
| T-01 | Nelson Platform Bench 48" | Herman Miller | 2 | 48 | 18.5 | 14 | in | Solid maple | Natural | $2,195 | $4,390 | 6-8w | |
| T-02 | Noguchi Coffee Table | Herman Miller | 1 | 50 | 36 | 15.75 | in | Walnut, glass | — | $2,095 | $2,095 | 6-8w | |
| L-01 | TBD Pendant | Flos | 1 | — | — | — | — | — | — | $800-$1,200 | $800-$1,200 | — | Needs specification |
**Subtotals by category:**
- Seating: $17,085 (3 units)
- Tables: $6,485 (3 units)
- Lighting: $800-$1,200 (1 unit, TBD)
- **Total: $24,370-$24,770**
The Markdown schedule is always available without a write. Persist structured product data only to the nearest project-root product-library.csv. If no ancestor contains PROJECT.md, stop and direct the user to /as:project.
Read ../../schema/product-schema.md for the exact header, category vocabulary, and values. Read ../../schema/csv-conventions.md for parsing and mutation rules. Preview the complete batch, row count, totals, target path, and material field changes, then use the single confirmation gate. After approval, serialize all complete rows as one JSON array and invoke python3 "${CLAUDE_PLUGIN_ROOT}/skills/master-schedule/scripts/csv-library.py" append product --project <project-root> --row-json <batch.json> exactly once. The helper owns batch validation and one atomic replacement; never loop per row or rewrite the persistent CSV directly.
Skill-specific column values:
product-data-importspecifiedQty: 3 · Ext: $17,085 (quantity and extended price, since the schema has no dedicated Qty column)The product library is one row per product, not per unit. Put quantity and extended price in Notes, for example Qty: 3 · Ext: $17,085.
After saving:
✓ FF&E Schedule saved to [product-library.csv path]
[n] line items · [total qty] units · $[total] estimated
[n] items fully specified, [n] items need specification (TBD)
If there are TBD items, offer to research them:
Want me to research the TBD items? I can use /as:product-research to find specific products for:
- L-01: Flos pendant, $800-$1,200 budget
/as:product-research — research specific products to fill TBD slots/as:product-spec-bulk-fetch — pull full specs from product URLs/as:product-data-cleanup — normalize the schedule after assembly/as:product-enrich — auto-tag categories, colors, and materials/as:csv-to-sif — convert the schedule to SIF for dealer procurementTake alpacalabsllc/product-data-import 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.