/as:product-research — Product Research
Harness note: use /as:<skill> on Claude Code and $<skill> on Codex. Resolve <skill-root> as the directory containing this loaded SKILL.md and <plugin-root> as the plugin root that contains skills/, and use equivalent native tools when host tool names differ.
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.
How It Works
Designer gives a brief
↓
Claude searches the web
↓
Presents candidates with specs + reasoning
↓
Designer picks winners
↓
Saved to project product library
Step 1: Take the Brief
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"
What to capture from the brief
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?").
Step 2: Research
Search the web for products matching the brief. Use multiple targeted queries to cover different angles:
Search strategy
For a brief like "round dining table, walnut, under $3,000":
- Category + material search:
round walnut dining table
- Design-focused search:
best round wood dining tables architects designers
- Trade/contract search:
contract round dining table solid wood specifications (for commercial projects)
- Specific brand searches if the designer mentioned preferences:
Muuto round table, HAY dining table
- Sustainability search if relevant:
FSC certified round dining table
Run 3-5 searches depending on brief complexity. Aim for breadth — different price points, brands, styles.
For each candidate found
Attempt to fetch the product page with WebFetch to extract full specs. If the page is JS-rendered and returns no data:
- Use the search result only to identify the candidate and locate another current, authoritative source.
- Never fill price, availability, lead time, dimensions, finishes, certifications, or other purchasing facts from model memory.
- Label any volatile fact without a current manufacturer, authorized-dealer, or certification-registry source as
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.
Step 3: Present Candidates
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?
Presentation rules
- Lead with the summary table if there are 6+ candidates — designers scan visually
- Include "Why" for each — explain why this product matches the brief, and flag any compromises
- Flag trade-offs honestly — "veneer not solid", "over budget but worth seeing", "long lead time"
- Don't oversell — if a product is a weak match, say so or don't include it
- Group by angle if useful — "Budget options", "Premium picks", "Fastest delivery"
Step 4: Save to the project 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.
Row format
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 "<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:
- AG (Source):
research
- AF (Status):
saved
- AD (Tags): From brief context (e.g. "lobby-reno, walnut")
- AE (Notes): The "Why" reasoning from the presentation
- T (Selected Color/Finish): Blank (designer hasn't configured yet)
After saving
✓ Saved 3 products to your library (rows 48-50).
Tagged: lobby-reno, walnut
Want me to refine the search? Different style, budget, or materials?
Step 5 (Optional): Iterate
The designer may want to refine:
- "More like #1 but cheaper" → Search for alternatives in that style/brand tier
- "What about outdoor versions?" → New search with added constraint
- "Can you find the spec sheet PDF for #3?" → Search for manufacturer cut sheet
- "Compare #1 and #3 side by side" → Detailed comparison
- "Any of these have GREENGUARD?" → Check certifications for the shortlist
Each iteration can add more products to the library.
Conversation Style
- Don't over-ask before searching. A one-line brief is enough to start.
- Show results, then refine. It's faster to react to real options than to specify everything upfront.
- Be opinionated. The designer wants a knowledgeable research assistant, not a search engine. Flag the best options, note trade-offs, suggest alternatives.
- Know the industry. Reference relevant brands, designers, trade platforms. Understand contract vs. residential, COM/COL, lead times, certifications.
Notes
- JS-rendered product pages are common (Hem, Muuto, Vitra, etc.). If WebFetch returns no data, use search result snippets + general knowledge. Note when specs are unverified.
- The library is shared. Products from this skill live alongside bulk-fetch imports and PDF extractions. The
Source field (research) identifies where each row came from.
1---2name: product-research3description: 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.4---56# /as:product-research — Product Research78<!-- architecture-studio:harness-compatibility -->9> Harness note: use `/as:<skill>` on Claude Code and `$<skill>` on Codex. Resolve `<skill-root>` as the directory containing this loaded `SKILL.md` and `<plugin-root>` as the plugin root that contains `skills/`, and use equivalent native tools when host tool names differ.1011Receives 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`.1213## How It Works1415```16Designer gives a brief17 ↓18Claude searches the web19 ↓20Presents candidates with specs + reasoning21 ↓22Designer picks winners23 ↓24Saved to project product library25```2627## Step 1: Take the Brief2829The designer describes what they're looking for. A brief can be loose or specific:3031**Loose:**32> "I need acoustic panels for a tech office lobby"3334**Specific:**35> "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"3637### What to capture from the brief3839Extract as many of these as the designer provides. **Don't ask for fields they didn't mention** — work with what you have.4041| Field | Examples |42|-------|---------|43| **Category** | Table, seating, lighting, acoustic panel, planter, storage |44| **Use context** | Office lobby, conference room, outdoor terrace, home office |45| **Style / aesthetic** | Scandinavian, mid-century, industrial, minimal, warm, bold |46| **Materials** | Solid wood, marble, steel, fabric, mesh, recycled |47| **Dimensions** | "48-54 inch diameter", "under 30 inches tall", "fits a 6x4 space" |48| **Budget** | Under $3,000, $500-$1,000 range, high-end, budget-friendly |49| **Sustainability** | GREENGUARD, FSC, Cradle to Cradle, recycled content, B Corp |50| **Lead time** | In stock, under 6 weeks, no rush |51| **Quantity** | 1 hero piece, 12 for a conference room, 50+ for open office |52| **Indoor/Outdoor** | Indoor, outdoor, both |53| **Must-haves** | Stackable, COM available, ADA compliant, weatherproof |54| **Brands to consider** | "I like Muuto and HAY", "no Herman Miller" |55| **Brands to avoid** | "Not Ikea", "nothing from Amazon" |5657**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?").5859## Step 2: Research6061Search the web for products matching the brief. Use multiple targeted queries to cover different angles:6263### Search strategy6465For a brief like "round dining table, walnut, under $3,000":66671. **Category + material search**: `round walnut dining table`682. **Design-focused search**: `best round wood dining tables architects designers`693. **Trade/contract search**: `contract round dining table solid wood specifications` (for commercial projects)704. **Specific brand searches** if the designer mentioned preferences: `Muuto round table`, `HAY dining table`715. **Sustainability search** if relevant: `FSC certified round dining table`7273Run **3-5 searches** depending on brief complexity. Aim for breadth — different price points, brands, styles.7475### For each candidate found7677Attempt to fetch the product page with WebFetch to extract full specs. If the page is JS-rendered and returns no data:78- Use the search result only to identify the candidate and locate another current, authoritative source.79- Never fill price, availability, lead time, dimensions, finishes, certifications, or other purchasing facts from model memory.80- Label any volatile fact without a current manufacturer, authorized-dealer, or certification-registry source as `Not verified`; do not turn a search snippet into a confirmed fact.8182For 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.8384**Target: 6-10 candidates** that genuinely match the brief. Don't pad the list with weak matches.8586## Step 3: Present Candidates8788Show results as a numbered shortlist with enough detail to evaluate:8990```91## Product Research: Round Dining Tables (walnut, under $3,000)9293### 1. Alle Table Round — Hem94Designer: Staffan Holm · 59" dia × 29"H95Materials: Solid oak top, powder-coated steel base96Price: $2,399 USD · Lead: 8-12 weeks97Finishes: Natural oak, smoked oak, walnut stain98Indoor · COM: N/A99🔗 hem.com/en-us/furniture/tables/alle/30421100Why: Clean Scandinavian lines, strong scale for a lobby, within budget.101Walnut stain option available. Hem has good contract pricing.102103### 2. Snaregade Round — Menu104Designer: Norm Architects · 54" dia × 28.5"H105Materials: Oak veneer top, powder-coated steel base106Price: $2,195 USD · Lead: 6-8 weeks107Finishes: Dark stained oak, light oak108Indoor · COM: N/A109🔗 menuspace.com/snaregade-round110Why: Norm Architects pedigree, slightly under budget,111faster lead time. Veneer top (not solid) — flag if that matters.112113### 3. ...114115---116117## Summary118119| # | Product | Brand | Ø | Price | Lead | Material | Notes |120|---|---------|-------|---|-------|------|----------|-------|121| 1 | Alle Round | Hem | 59" | $2,399 | 8-12w | Solid oak | Walnut stain ✓ |122| 2 | Snaregade Round | Menu | 54" | $2,195 | 6-8w | Oak veneer | Not solid wood |123| 3 | ... | ... | ... | ... | ... | ... | ... |124125Which ones should I save to your product library?126```127128### Presentation rules129130- **Lead with the summary table** if there are 6+ candidates — designers scan visually131- **Include "Why"** for each — explain why this product matches the brief, and flag any compromises132- **Flag trade-offs honestly** — "veneer not solid", "over budget but worth seeing", "long lead time"133- **Don't oversell** — if a product is a weak match, say so or don't include it134- **Group by angle** if useful — "Budget options", "Premium picks", "Fastest delivery"135136## Step 4: Save to the project library137138When 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.139140### Row format141142Read `../../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 "<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.143144Skill-specific column values:145- **AG (Source):** `research`146- **AF (Status):** `saved`147- **AD (Tags):** From brief context (e.g. "lobby-reno, walnut")148- **AE (Notes):** The "Why" reasoning from the presentation149- **T (Selected Color/Finish):** Blank (designer hasn't configured yet)150151### After saving152153```154✓ Saved 3 products to your library (rows 48-50).155 Tagged: lobby-reno, walnut156157Want me to refine the search? Different style, budget, or materials?158```159160## Step 5 (Optional): Iterate161162The designer may want to refine:163164- **"More like #1 but cheaper"** → Search for alternatives in that style/brand tier165- **"What about outdoor versions?"** → New search with added constraint166- **"Can you find the spec sheet PDF for #3?"** → Search for manufacturer cut sheet167- **"Compare #1 and #3 side by side"** → Detailed comparison168- **"Any of these have GREENGUARD?"** → Check certifications for the shortlist169170Each iteration can add more products to the library.171172## Conversation Style173174- **Don't over-ask before searching.** A one-line brief is enough to start.175- **Show results, then refine.** It's faster to react to real options than to specify everything upfront.176- **Be opinionated.** The designer wants a knowledgeable research assistant, not a search engine. Flag the best options, note trade-offs, suggest alternatives.177- **Know the industry.** Reference relevant brands, designers, trade platforms. Understand contract vs. residential, COM/COL, lead times, certifications.178179## Notes180181- **JS-rendered product pages** are common (Hem, Muuto, Vitra, etc.). If WebFetch returns no data, use search result snippets + general knowledge. Note when specs are unverified.182- **The library is shared.** Products from this skill live alongside bulk-fetch imports and PDF extractions. The `Source` field (`research`) identifies where each row came from.