원클릭으로
product-data-cleanup
Clean up an FF&E schedule — normalize casing, dimensions, units, language, materials, and formatting for consistency.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Clean up an FF&E schedule — normalize casing, dimensions, units, language, materials, and formatting for consistency.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Look up ACRIS property transaction records for any NYC property — deeds, mortgages, satisfactions, liens, and ownership history. Use when the user asks who owns a building, when it last sold or for how much, or whether there are mortgages or liens against it. NYC only; for permits or violations use the DOB skills.
Look up Board of Standards and Appeals (BSA) variances and special permits for any NYC property. Use when checking whether a lot carries zoning relief — variances, special permits, appeals — that modifies its as-of-right envelope. NYC only; for base zoning controls use /zoning-analysis-nyc.
Look up DOB permit and job filing history for any NYC building — new-building, alteration, and demolition filings with status and dates. Use when the user asks what work was filed or permitted at an address, or to gauge renovation history during due diligence. NYC only; for open violations use /nyc-dob-violations.
Look up open and resolved DOB and ECB violations for any NYC building, with class, status, and penalty detail. Use when the user asks whether a building has violations, stop-work orders, or outstanding ECB penalties. NYC only; for housing-code violations use /nyc-hpd.
Look up HPD violations, complaints, and building registration for residential buildings.
Check if a NYC building is landmarked or in a historic district using LPC data.
| name | product-data-cleanup |
| description | Clean up an FF&E schedule — normalize casing, dimensions, units, language, materials, and formatting for consistency. |
| allowed-tools | ["Read","Write","Edit","Bash","Glob","Grep","AskUserQuestion","mcp__google-sheets__get_sheet_data","mcp__google-sheets__update_cells","mcp__google-sheets__list_sheets"] |
Takes a messy FF&E schedule and normalizes everything: casing, dimensions, units, language, materials vocabulary, currency formatting, and duplicates. Outputs a clean, consistent, spec-ready schedule.
Operates on the master Google Sheet — the same 33-column schema used by all product skills. Also works on standalone CSV files and pasted tables.
The user provides a schedule in one of these ways:
.csv, .tsv, .xlsx export, or .md fileIf the input format is unclear, ask.
| Field | Rule | Example |
|---|---|---|
| Product Name | Title Case | eames lounge chair → Eames Lounge Chair |
| Brand | Title Case, preserve known abbreviations | HERMAN MILLER → Herman Miller, HAY → HAY |
| Collection | Title Case | cosm → Cosm |
| Category | Title Case, singular | chairs → Chair, TABLES → Table |
| Materials | Sentence case, lowercase after first word | MOLDED PLYWOOD, FULL GRAIN LEATHER → Molded plywood, full grain leather |
| Colors/Finishes | Title Case per item | walnut/black leather → Walnut / Black Leather |
Known brand abbreviations to preserve: HAY, USM, B&B, DWR, CB2, HBF, OFS, SitOnIt, 3form, ICF
Map free-text categories to the canonical vocabulary and alias table defined in ../../schema/product-schema.md. Read that file for the full mapping of variations (English, Spanish, legacy terms) to canonical category names.
If a category is ambiguous, keep the closest match and add a [?] flag for the user to review.
Splitting combined dimensions:
| Input | → W | → D | → H | → Unit |
|---|---|---|---|---|
32 x 24 x 30 in | 32 | 24 | 30 | in |
80 × 60 × 75 cm | 80 | 60 | 75 | cm |
W32 D24 H30 | 32 | 24 | 30 | (infer) |
32"W x 24"D x 30"H | 32 | 24 | 30 | in |
Ancho: 80, Prof: 60, Alto: 75 cm | 80 | 60 | 75 | cm |
Dimension rules:
" as inches, ' as feet (convert to inches: 2'6" → 30)×, x, X, by, por as separatorsin. If values suggest cm (> 100 or explicit), use cm. If truly ambiguous, flag with [?].Do NOT convert units. Keep the original unit. Designers need the manufacturer's spec for ordering.
Detect the language of each field value and normalize to English unless the user specifies otherwise.
| Spanish (common in UY sources) | → English |
|---|---|
| Silla | Chair (category) |
| Mesa | Table (category) |
| Escritorio | Desk (category) |
| Madera | Wood (material) |
| Cuero | Leather (material) |
| Acero | Steel (material) |
| Vidrio | Glass (material) |
| Tela | Fabric (material) |
| Mármol | Marble (material) |
| Roble | Oak (material) |
| Nogal | Walnut (material) |
| Blanco | White (color) |
| Negro | Black (color) |
| Natural | Natural (keep as-is) |
| Cromado | Chrome (finish) |
Rule: Translate category, material, and color/finish fields. Leave Product Name and Brand as-is (proper nouns).
If the user says "keep in Spanish" or specifies a target language, respect that.
Standardize common material terms:
| Variations | → Standard |
|---|---|
| SS, Stainless, S/S | Stainless steel |
| Ply, Plywood, Mold ply | Molded plywood |
| MDF, Medium density | MDF |
| HPL, High pressure laminate | HPL |
| Lam, Laminate | Laminate |
| Fab, Textile | Fabric |
| COM, C.O.M. | COM (Customer's Own Material) |
| COL, C.O.L. | COL (Customer's Own Leather) |
| Powder coat, PC, Pwdr | Powder-coated |
| Chrm, Chrome plated | Chrome |
| Anodized alum, Anod. | Anodized aluminum |
| Ven, Veneer | Veneer |
| Sol. wood, Solid | Solid wood |
$, €, £, ¥) — store symbol as currency code in separate column. and , — detect locale: 1.234,56 is EU format, 1,234.56 is US)5695.00$ alone defaults to USD unless context suggests otherwise (UY site → UYU, EU site → EUR)wood / metal / glass → Wood, Metal, Glass (comma-separated)Read the input. Report: "Loaded N rows with M columns." Map input columns to the canonical schema. If column mapping is ambiguous (e.g., a column called "Size" could be combined dimensions), ask the user.
Scan all rows and produce a summary:
## Cleanup Preview
- **Casing**: X product names need Title Case
- **Categories**: Y rows have non-standard categories (mapping: "chairs" → Seating, etc.)
- **Dimensions**: Z rows have combined dimensions to split
- **Language**: W rows have Spanish-language fields to translate
- **Materials**: V rows have non-standard material terms
- **Prices**: U rows need currency formatting cleanup
- **Duplicates**: T potential duplicate rows found
- **Empty fields**: S rows missing dimensions, R rows missing price
Ask: "Apply all fixes, or select which ones?"
If the user wants to be selective, let them pick from the list. Otherwise, apply all.
Process every row through the active cleanup rules. Track every change made.
Show a before/after diff for a sample of changed rows (up to 5 examples). Then show the full cleaned table.
Report:
## Cleanup Complete
- Rows processed: N
- Changes made: X
- Flagged for review: Y (marked with [?])
Ask: "Save where?" Options:
-clean to filename)