alpacalabsllc/product-research
Find and compare current FF&E candidates from a design brief, with sourced purchasing facts and optional CSV-library save. Use to research or source products; not to match from an image or pair coordinating items.
npx skills add https://github.com/AlpacaLabsLLC/skills-for-architects --skill product-research
Receives a brief from a designer, researches products across the web, and returns a curated shortlist. Selected products can be saved to the nearest project's product-library.csv.
Designer gives a brief
↓
Claude searches the web
↓
Presents candidates with specs + reasoning
↓
Designer picks winners
↓
Saved to project product library
The designer describes what they're looking for. A brief can be loose or specific:
Loose:
> "I need acoustic panels for a tech office lobby"
Specific:
> "Looking for a round dining table, 48-54" diameter, solid wood top (walnut or oak preferred), steel or brass base, under $3,000, needs to be in stock or <6 week lead time"
Extract as many of these as the designer provides. Don't ask for fields they didn't mention — work with what you have.
| Field | Examples |
|-------|---------|
| Category | Table, seating, lighting, acoustic panel, planter, storage |
| Use context | Office lobby, conference room, outdoor terrace, home office |
| Style / aesthetic | Scandinavian, mid-century, industrial, minimal, warm, bold |
| Materials | Solid wood, marble, steel, fabric, mesh, recycled |
| Dimensions | "48-54 inch diameter", "under 30 inches tall", "fits a 6x4 space" |
| Budget | Under $3,000, $500-$1,000 range, high-end, budget-friendly |
| Sustainability | GREENGUARD, FSC, Cradle to Cradle, recycled content, B Corp |
| Lead time | In stock, under 6 weeks, no rush |
| Quantity | 1 hero piece, 12 for a conference room, 50+ for open office |
| Indoor/Outdoor | Indoor, outdoor, both |
| Must-haves | Stackable, COM available, ADA compliant, weatherproof |
| Brands to consider | "I like Muuto and HAY", "no Herman Miller" |
| Brands to avoid | "Not Ikea", "nothing from Amazon" |
Don't interview the designer. If the brief is "acoustic panels for a lobby," that's enough to start searching. You can clarify *after* showing initial results if needed ("I found options in fabric, felt, and wood slat — any preference?").
Search the web for products matching the brief. Use multiple targeted queries to cover different angles:
For a brief like "round dining table, walnut, under $3,000":
round walnut dining tablebest round wood dining tables architects designerscontract round dining table solid wood specifications (for commercial projects)Muuto round table, HAY dining tableFSC certified round dining tableRun 3-5 searches depending on brief complexity. Aim for breadth — different price points, brands, styles.
Attempt to fetch the product page with WebFetch to extract full specs. If the page is JS-rendered and returns no data:
Not verified; do not turn a search snippet into a confirmed fact.For every price, availability, lead-time, finish, dimension, and certification claim, retain the source URL and access date. Prefer the manufacturer's current product page or price list; use an authorized dealer only when the manufacturer does not publish the fact. A candidate may remain useful with Not verified fields, but the shortlist must make those gaps visible.
Target: 6-10 candidates that genuinely match the brief. Don't pad the list with weak matches.
Show results as a numbered shortlist with enough detail to evaluate:
## Product Research: Round Dining Tables (walnut, under $3,000)
### 1. Alle Table Round — Hem
Designer: Staffan Holm · 59" dia × 29"H
Materials: Solid oak top, powder-coated steel base
Price: $2,399 USD · Lead: 8-12 weeks
Finishes: Natural oak, smoked oak, walnut stain
Indoor · COM: N/A
🔗 hem.com/en-us/furniture/tables/alle/30421
Why: Clean Scandinavian lines, strong scale for a lobby, within budget.
Walnut stain option available. Hem has good contract pricing.
### 2. Snaregade Round — Menu
Designer: Norm Architects · 54" dia × 28.5"H
Materials: Oak veneer top, powder-coated steel base
Price: $2,195 USD · Lead: 6-8 weeks
Finishes: Dark stained oak, light oak
Indoor · COM: N/A
🔗 menuspace.com/snaregade-round
Why: Norm Architects pedigree, slightly under budget,
faster lead time. Veneer top (not solid) — flag if that matters.
### 3. ...
---
## Summary
| # | Product | Brand | Ø | Price | Lead | Material | Notes |
|---|---------|-------|---|-------|------|----------|-------|
| 1 | Alle Round | Hem | 59" | $2,399 | 8-12w | Solid oak | Walnut stain ✓ |
| 2 | Snaregade Round | Menu | 54" | $2,195 | 6-8w | Oak veneer | Not solid wood |
| 3 | ... | ... | ... | ... | ... | ... | ... |
Which ones should I save to your product library?
When the designer picks candidates ("save 1, 3, and 5"), prepare rows for the nearest project-root product-library.csv. A project root is the nearest ancestor containing PROJECT.md; do not create a library outside one.
Read ../../schema/product-schema.md for the exact 33-column row contract and ../../schema/csv-conventions.md for local-file rules. Preview all selected products and the target path, 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 validates the complete batch and library before one atomic replacement; never loop per row or hand-edit persistent CSV.
Skill-specific column values:
researchsaved✓ Saved 3 products to your library (rows 48-50).
Tagged: lobby-reno, walnut
Want me to refine the search? Different style, budget, or materials?
The designer may want to refine:
Each iteration can add more products to the library.
Source field (research) identifies where each row came from.Take alpacalabsllc/product-research 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.