--- name: product-enrich description: 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. allowed-tools: - Read - Write - Edit - Bash - Glob - Grep - AskUserQuestion --- # /as:product-enrich — Product Enrichment Takes product rows from the nearest project's `product-library.csv` or pasted data and proposes missing category, color, material, and style metadata. ## When to Use - After a bulk import where products are missing categories or tags - When a designer clips products quickly without filling in details - To standardize metadata across products from different sources - Before generating an FF&E schedule (enriched data makes better schedules) ## Step 1: Accept Input 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 ``` ## Step 2: Analyze Each Product For each product, infer the following fields: ### Category Map to the canonical vocabulary (22 terms) defined in `../../schema/product-schema.md`. ### Subcategory More specific classification within the category: - Chair → Task Chair, Lounge Chair, Dining Chair, Side Chair, Stool, Bench - Table → Dining Table, Coffee Table, Side Table, Console Table, Conference Table - Light → Pendant, Floor Lamp, Table Lamp, Wall Sconce, Ceiling, Task Light, Chandelier - Sofa → Sofa, Sectional, Loveseat, Daybed, Settee - Storage → Credenza, Bookcase, Filing Cabinet, Wardrobe, Sideboard, Dresser - Desk → Writing Desk, Executive Desk, Standing Desk, Workstation ### Primary Color The dominant color of the product as typically sold: - Use standard color names: Black, White, Gray, Brown, Beige, Navy, Blue, Green, Red, Orange, Yellow, Pink, Purple, Natural, Walnut, Oak, Teak, Chrome, Brass, Copper, Multi ### Material Primary materials, comma-separated: - Wood (specify type if known: Walnut, Oak, Maple, Teak, Birch, Ash, Beech) - Metal (specify: Steel, Aluminum, Brass, Chrome, Iron, Copper) - Upholstery (specify: Leather, Fabric, Velvet, Bouclé, Mohair, Linen, Wool) - Other: Glass, Marble, Concrete, Ceramic, Plastic, Fiberglass, Rattan, Cane, Acrylic ### Style Tags 2-4 descriptive tags from: - Period/movement: Mid-Century Modern, Art Deco, Bauhaus, Scandinavian, Japanese, Industrial, Contemporary, Traditional, Minimalist, Postmodern, Memphis - Character: Organic, Geometric, Sculptural, Modular, Stackable, Compact, Statement, Classic, Iconic - Context: Residential, Contract, Hospitality, Healthcare, Education, Outdoor ### Image Analysis If product data includes the named `Image URL` field, use image analysis to verify and refine the enrichment. The image may reveal: - Actual color (not just what the name suggests) - Material details not in the product name - Style characteristics ## Step 3: Present Preview 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 ``` ## Step 4: Apply ### To the project library 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 --source ` 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. ### To conversation Output the enriched table in markdown. ## Step 5: Summary ``` ✓ 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) ``` ## Pairs With - `/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 matches