alpacalabsllc/product-enrich
Enrich FF&E schedule rows with categories, colors, materials, and style tags. Use to tag, categorize, or fill those missing fields; not to research new products.
npx skills add https://github.com/AlpacaLabsLLC/skills-for-architects --skill product-enrich
Takes product rows from the nearest project's product-library.csv or pasted data and proposes missing category, color, material, and style metadata.
Accept product data in any format:
CSV file:
/as:product-enrich ./products.csv
Pasted data:
/as:product-enrich
Eames Lounge Chair, Herman Miller
Saarinen Tulip Table, Knoll
PH 5 Pendant, Louis Poulsen
Togo Sofa, Ligne Roset
For each product, infer the following fields:
Map to the canonical vocabulary (22 terms) defined in ../../schema/product-schema.md.
More specific classification within the category:
The dominant color of the product as typically sold:
Primary materials, comma-separated:
2-4 descriptive tags from:
If product data includes the named Image URL field, use image analysis to verify and refine the enrichment. The image may reveal:
Show a preview of the enrichment before applying:
## Product Enrichment Preview
| Product | Brand | Category | Subcategory | Color | Material | Style Tags |
|---------|-------|----------|-------------|-------|----------|------------|
| Eames Lounge Chair | Herman Miller | Chair | Lounge Chair | Walnut/Black | Molded plywood, Leather | Mid-Century Modern, Iconic, Residential |
| Saarinen Tulip Table | Knoll | Table | Dining Table | White | Marble, Aluminum | Mid-Century Modern, Sculptural, Organic |
| PH 5 Pendant | Louis Poulsen | Light | Pendant | White | Aluminum | Scandinavian, Classic, Iconic |
| Togo Sofa | Ligne Roset | Sofa | Sofa | Brown | Fabric | Contemporary, Organic, Sculptural |
4 products enriched. Apply? (y/n)
Flag any products where enrichment is uncertain:
⚠ "Custom Reception Desk" — unknown product, category set to Desk but verify
Read ../../schema/product-schema.md and ../../schema/csv-conventions.md. Map enrichment only to canonical named fields: Category, Materials, Colors/Finishes, and appended Tags; place noncanonical subcategory detail in Notes. Do not overwrite a populated field unless the preview explicitly calls that out.
For multiple enriched rows, materialize the complete proposed 33-column CSV as a temporary or user-visible review file. Validate it, preview every material change and the target product-library.csv once, then use the single confirmation gate. After approval, invoke python3 "${CLAUDE_PLUGIN_ROOT}/skills/master-schedule/scripts/csv-library.py" import product --project <project-root> --source <review.csv> exactly once for one atomic replacement; never loop update. A genuinely single-record enrichment may use the same plugin-root helper's update command once with a uniquely matching stable field.
Output the enriched table in markdown.
✓ Enriched 4 products
Categories: 4 assigned (0 already had values)
Colors: 4 assigned
Materials: 4 assigned
Style tags: 14 total tags across 4 products
Uncertain: 1 (flagged for review)
/as:product-spec-bulk-fetch — fetch specs first, then enrich the results/as:product-data-cleanup — cleanup normalizes formatting, enrich adds metadata/as:product-data-import — enriched products make better formatted schedules/as:product-match — enriched tags help find better matchesTake alpacalabsllc/product-enrich 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.