product-data-cleanup について
product-data-cleanupは、FF&E商品スケジュールを正規化し、データ上の問題を確認するスキルです。プレビューまたは単独のクリーン済みファイルを作成でき、ライブラリや採用済みスケジュールの変更は各所有者に引き継ぎます。
主な機能
- 01大文字小文字、カテゴリ、素材を正規化
- 02単位の根拠を保って寸法を分割
- 03言語、価格、通貨表記を整理
- 04重複候補をレビュー用に提示
- 05変更プレビューと処理結果を提示
活用シーン
- 01表記が不統一なFF&Eスケジュールを整理
- 02カテゴリ、素材、色の項目を統一
- 03寸法や通貨が不明なデータを確認
- 04レビュー用の単独クリーンファイルを作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alpacalabsllc/ skills-for-architects --skill product-data-cleanupインストール後、Claude Code で/product-data-cleanupを入力して読み込まれたか確認します。
同梱ファイルhost-contract.jsonREADME.md
詳細
/as:product-data-cleanup — Product Data Normalizer
作業を開始する前に、ホスト契約とこのコンポーネントの宣言(skill:product-data-cleanup)を読みます。共有カタログから、参照されているモードプロファイルのみを読み込みます。実際のタスクに必要なモードを組み合わせます。宣言は要件であり、アクセス権や許可の証明ではありません。
ライブラリの変更は/as:product-libraryが担当します。選択した行と変更セット、およびエビデンスをすべて準備してから、既存の承認のもとでネイティブ保存を引き継ぎます。担当側はバッチ全体を検証し、正確なリクエスト、プレビュー、現在の状態を紐付け、実際に公開されたことを確認します。このスキルが単独でproduct-library.csvを変更することはありません。
ホストアダプター:呼び出し、質問、対象へのアクセス、任意の委譲については、提供方法別のガイダンスをお読みください。
レコードの権限とホストへの引き継ぎ
構造化されたエビデンスの引き継ぎでは、ネイティブの製品観察の所有者とスキーマをすべて確認してください。エンベロープ全体に対してネイティブの validate/validate-batch を適用し、選択した項目、現行リビジョン、フィールドの明示的なバインディングのみで適応してください。型付きの値、ソース/ロケーター/時刻、未確定の状態を正確に保持し、エンベロープ全体、監査観察、競合、通知をまとめて保持してください。既存の null/空欄/ユーザーによる上書きは維持してください。これは未採用のエビデンスであり、レビュー用の提案です。仕様を書き込む権限を与えるものではありません。
プロジェクトに紐づく作業では、ネイティブのコンテキスト解決を適用し、検証済みのプロジェクト ID を使用して、プロジェクトの指示を確認してください。インラインのソース作業や単発のソース作業では、プロジェクトを作成する必要はありません。再利用可能な CSV の保管場所は product-library が所有し、採用済み仕様の ID/リビジョンは master-schedule が所有し、受け入れ済みのジョブ入力は product-data-import が所有します。ディレクトリ、ソース文書、または提出された宣言から権限を推定しないでください。
採用済みのプロジェクトスケジュール、単発のソース作業、任意の再利用可能な product-library.csv を明確に区別してください。採用済みの項目/スケジュールレコードが正とされます。/as:master-schedule を通じて固定されたリビジョンを読み込み、期待するリビジョン、エビデンス、保持する上書き内容を添えて、変更をその所有者に提案してください。このスキルは、正規の項目/スケジュールレコードを独自に書き換えたり、承認を推定したりしません。以下のライブラリ保存の指示は、任意の CSV ライブラリにのみ適用されます。プロジェクトスケジュールの採用や更新には適用されません。
ホストは、利用可能な機能を使用して、提供されたワークブックを読み取り、編集します。元のファイル、選択済みの画像、数式、実際のハイパーリンク、無関係なセルを保持してください。採用済みスケジュールでは、採用/調整、および編集前のネイティブバックアップと、検証済みの編集前後のレコード CSV 復旧スナップショットを /as:master-schedule 経由で処理してください。また、ホストが抽出したワークブックデータとマッピングは別途保持してください。単発モードでは、スケジュールのスナップショットを呼び出したりレコードを採用したりせず、ホストがネイティブバックアップと、実際にワークブックから抽出した CSV スナップショット/マッピングをジョブの復旧ファイルに保持します。三者間の競合と削除案には明示的な解決が必要です。ワークブックへのアクセスがサポートされていない場合は、完了したと偽らず、具体的な引き継ぎを行ってください。単発作業では、明示的な採用を行わず、受け入れられたソースをタスク入力として維持します。
各観察には、ソース ID、ページ/URL ロケーター、取得時刻、選択済みと選択可能な構成、単位、不確実性を保持してください。SKU の組み合わせ、寸法、仕上げの選択、価格、通貨を決して捏造しないでください。$ だけでは通貨を特定できません。明示的に変更されるまでは、ユーザーの選択を保持してください。現時点での事実に関する主張には、実際のソース取得が必要です。アクセスできないエビデンスは未確定のままにしてください。受け入れ済みのジョブ入力と修正は /as:product-data-import が管理し、差異は /as:product-audit が報告します。差異を黙って適用することはありません。入力の解決後、/as:product-cut-sheet と /as:ffe-spec-book は共有ドキュメントテンプレートとホストのレンダリングを使用します。
雑然とした FF&E スケジュールを整理し、大文字/小文字、寸法、単位、言語、素材の用語、通貨の書式、重複をすべて正規化します。整理された、一貫性のある、仕様書にそのまま使えるスケジュールを出力します。
整理結果は、インラインプレビューとして出力することも、ライブラリに採用せず、明示的な依頼に応じて単独の整理済みファイルとして出力することもできます。再利用可能なライブラリへの変更が依頼された場合に限り product-library に引き継ぎます。採用済みスケジュールの変更は master-schedule に引き継ぎます。
入力
ユーザーは、次のいずれかの方法でスケジュールを提供します。
- プロジェクトライブラリ —
PROJECT.mdを含む祖先ディレクトリのうち、最も近い場所にあるproduct-library.csv。 - CSV ファイルのパス — 単発のクリーンアップでは、提供されたスキーマを維持します。正規ライブラリへのインポートを依頼された場合に限り、正確な 33 列のヘッダーを検証します。
- 貼り付けられた表 — 想定される出力スキーマをプレビューします。ライブラリへの保存を依頼された場合に限り、正規のマッピングが必要です。
入力形式が不明な場合は、確認してください。
クリーンアップルール
1. 大文字と小文字
| フィールド | ルール | 例 |
|---|---|---|
| Collection | タイトルケース | cosm → Cosm |
| Category | タイトルケース、単数形 | chairs → Chair、TABLES → Table |
| Materials | 文頭のみ大文字、それ以降は小文字 | MOLDED PLYWOOD, FULL GRAIN LEATHER → Molded plywood, full grain leather |
| Colors/Finishes | 項目ごとにタイトルケース | walnut/black leather → Walnut / Black Leather |
そのまま保持する既知のブランド略称: HAY、USM、B&B、DWR、CB2、HBF、OFS、SitOnIt、3form、ICF
2. カテゴリの正規化
自由記述のカテゴリを、../../schema/product-schema.md で定義されている正規語彙と別名テーブルにマッピングします。英語、スペイン語、旧用語などのバリエーションから正規カテゴリ名への対応をすべて確認するには、そのファイルを読んでください。
カテゴリが曖昧な場合は、元の値をそのまま保持し、確認用の候補を別途提案します。推測したカテゴリを公開したり、正規カテゴリのフィールドに確認マーカーを入れたりしないでください。
3. 寸法
複合寸法の分割:
| 入力 | → W | → D | → H | → Unit |
|---|---|---|---|---|
32 x 24 x 30 in、ソースに W×D×H と記載 | 32 | 24 | 30 | in |
80 × 60 × 75 cm、ソースに W×D×H と記載 | 80 | 60 | 75 | cm |
W32 D24 H30、単位の根拠なし | — | — | — | 不明。元の値を保持 |
32"W x 24"D x 30"H | 32 | 24 | 30 | in |
Ancho: 80, Prof: 60, Alto: 75 cm | 80 | 60 | 75 | cm |
寸法のルール:
- 常に W、D、H の個別列と Unit 列に保存します。
- 寸法がすでに分割されている場合は、数値であることを検証します(数値から単位の文字列を取り除きます)。
"はインチ、'はフィートとして解釈します。フィートまたはフィート・インチ表記(2'6")にはin/cm/mmの Unit 値がありません。ユーザーが換算を依頼した場合に限りインチに換算し(30)、それ以外の場合は元の値を保持して[?]のフラグを付けます。- 区切り文字として
×、x、X、by、porを受け付けます。 - W × D × H は出力上の慣例であり、ソースの軸順を証明するものではありません。明示されたソースのラベルや凡例を使い、割り当てられない軸は不明のままにします。L/B のマッピングは、ソースの用語に根拠がある場合に限ります。全体寸法、切り欠き寸法、梱包箱寸法は分けて保持します。
- 証拠データでは元の精度を保持し、表示用に射影するよう依頼された場合に限り丸めます。
- 単位が欠落している場合は、数値の大小にかかわらず不明のままにします。家具としてもっともらしいサイズだからといって、インチやセンチメートルと推測しないでください。
既定ではソースの単位を保持します。換算は依頼された場合に限り行い、元の値と正確な換算根拠を保持します。ネイティブの寸法の意味を読み、軸と単位を明示的にマッピングした後に dimension_values.normalize を適用します。対応している場合は、実際の寸法出力列に値を入力します。Notes のみに元の寸法を記載しても、正規化された出力にはなりません。引き渡しの前に、CSV ヘッダーの検証とは別に、構造化された観測値を検証します。
4. 言語の正規化
各フィールドの値の言語を検出し、ユーザーから別途指定がない限り、英語に正規化します。
| スペイン語(UY のソースでよく使われます) | → 英語 |
|---|---|
| Silla | Chair(カテゴリ) |
| Mesa | Table(カテゴリ) |
| Escritorio | Desk(カテゴリ) |
| Madera | Wood(素材) |
| Cuero | Leather(素材) |
| Acero | Steel(素材) |
| Vidrio | Glass(素材) |
| Tela | Fabric(素材) |
| Mármol | Marble(素材) |
| Roble | Oak(素材) |
| Nogal | Walnut(素材) |
| Blanco | White(色) |
| Negro | Black(色) |
| Natural | Natural(そのまま) |
| Cromado | Chrome(仕上げ) |
ルール: カテゴリ、素材、色/仕上げのフィールドを翻訳します。製品名とブランドはそのままにします(固有名詞)。
ユーザーが「スペイン語のままにする」と指定するか、対象言語を指定した場合は、その指示に従います。
5. 素材と仕上げの用語
ソースで裏付けられ、意味を保持する用語の変更のみ適用します。複数の意味を持つ略語は変更せず、確認用の注記を付けます。組成、製造方法、仕上げに関する情報を追加してはいけません。意味の修正案には根拠と明示的な許可が必要です。以下の例は、ソースが同じ意味を示している場合に限り適用します。
| 表記の揺れ | → 標準表記 |
|---|---|
| SS, Stainless, S/S | Stainless steel |
| Ply, Plywood | Plywood |
| Mold ply, Molded plywood | 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 |
6. 価格と通貨
- 価格の数値から通貨記号(
$、€、£、¥)を取り除きます。記号のみでは「通貨」列を設定しません。以下の通貨検出ルールを適用します。 - 桁区切り記号(
.と,の両方)を取り除きます(ロケールを判定します。1.234,56は EU 形式、1,234.56は US 形式です)。 - 単純な小数値として保存します:
5695.00 - 価格に「Contact」、「Quote」、「Trade」、「A consultar」、「Consultar」と記載されている場合は、数値の価格を空欄(不明、ゼロではありません)にし、元の価格表記を「Notes」に保持します。
- 通貨の検出:
$だけでは通貨を特定できません。ソースまたはユーザーが指定した ISO 通貨を使用します。それ以外は不明のままにします。サイトの所在地だけでは不十分です。 - 価格表に複数の通貨が混在する場合は、各行に元の通貨を保持します。先頭に注記を追加します。
7. 重複の検出
- 製品名とブランドが同一の行には、重複の可能性があることを示します。
- URL が同一の行には、重複の可能性があることを示します。ファミリーやコンフィギュレーターへのリンクは、選択された項目が異なる場合があります。
- 自動で削除せず、重複項目をユーザーに提示し、どれを残すか確認します。
8. 空白と書式
- すべてのフィールドの先頭と末尾の空白を削除します。
- 連続する複数の空白を単一の空白にまとめます。
- フィールド値内の改行を削除します。
- リストの区切りを統一します:
wood / metal / glass→Wood, Metal, Glass(カンマ区切り) - 末尾のカンマやセミコロンを削除します。
ワークフロー
Step 1: 価格表を読み込む
入力を読み込みます。次のように報告します:「N 行、M 列を読み込みました。」 入力列を標準スキーマに対応付けます。列の対応付けが曖昧な場合(例:「Size」という列が複合寸法を示している可能性がある場合)は、ユーザーに確認します。
Step 2: 問題を分析する
すべての行をスキャンし、概要を作成します。
## Cleanup Preview
- **Casing**: X product names need Title Case
- **Categories**: Y rows have non-standard categories (mapping: "chairs" → Chair, 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
Step 3: 対象範囲を確認する
問題の概要は変更内容のプレビューです。以前に選択されたクリーンアップのグループと、既存の明示的な許可を使用します。未解決の選択可能なグループがある場合に限り、1 回の確認で提示します。同じ質問を先に文章で尋ねてはいけません。
Step 4: 修正を適用する
有効なクリーンアップルールをすべての行に適用します。行った変更をすべて記録します。
Step 5: 結果を提示する
変更した行のサンプルについて、変更前/変更後の差分を最大5例表示します。その後、クリーニング済みの表全体を表示します。
報告:
## Cleanup Complete
- Rows processed: N
- Changes made: X
- Flagged for review: Y (marked with [?])
Step 6: 保存する
スタンドアロンのクリーニング済みファイルが明示的に依頼された場合は、合意済みのソース列と未解決の元の値を保持し、元データと変更レポートも残したうえで、以下の完全なネイティブ出力管理手順に従います。単発のエクスポートをライブラリのスキーマに無理に当てはめたり、レコードを採用したりしないでください。
再利用可能なライブラリへの保存が依頼された場合は、../../schema/product-schema.md と ../../schema/csv-conventions.md を読みます。複数の行を変更する場合は、提案する33列のCSV全体を一時的なレビュー用ファイルまたはユーザーが確認できるファイルとして実体化し、その候補を検証して、変更全体を一度プレビューし、既存の明示的な承認を利用するか、不足している承認を一度だけ求めます。承認後、完全なバッチを product-library のネイティブインポート操作に渡します。公開はオーナーがガード付きで一度に行い、行ごとのループでは行いません。真に単一レコードの編集であれば、一意に一致する安定フィールドを1つ指定し、依頼内容と現在の状態を示す正確な証拠を添えて、ネイティブ更新を使用してもかまいません。任意の入力ファイルを上書きしたり、product-library.csv を手作業で編集したりしないでください。
エッジケース
- 複数言語が混在するスケジュール:列ごとに主な言語を検出し、1つの言語に統一します
- 結合セルや不規則な書式:問題を指摘し、対処方法をユーザーに確認します
- スキーマにない余分な列:スタンドアロン出力では保持します。正規ライブラリに保存する場合は、永続化する前にマッピングを確定します
- 空の行:削除候補としてプレビューに列挙します。承認された範囲内でのみ削除します
- ヘッダーの検出:既知のフィールド名に一致するテキストがある最初の行をヘッダー行として自動検出します。判断が難しい場合は確認します。
元の製品情報の根拠
タスクに必要な、選択されたメーカー、製品、バリエーションの正確な情報を元の文書から取得します。例示データは架空のものであり、根拠として使用しません。製品情報、認証、価格、ベンダーの形式定義を、再利用可能な参照情報としてプラグインにコピーしないでください。未解決の値は保持し、代表画像と選択された正確なバリエーションを区別してください。
ネイティブ出力とオーナーへの引き渡し
永続的に保存する文書レポートが依頼された場合は、正確な座標に基づく配置、クエリ、登録に receive のネイティブ文書オーナーを使用します。ラベルからプロジェクトフォルダーを組み立てないでください。単発レポートは、明示的に承認された保存先のみを使用し、studio/プロジェクトの設定は不要です。正規の採用済み改訂版と再利用可能なライブラリへの保存は、それぞれのオーナーが管理します。既存の明示的な承認は有効なまま扱い、不足している実質的な範囲またはネイティブ権限のみを取得します。
このスキルが実際に保存または編集する出力にはすべて、完全な影響範囲に対してネイティブ変更シーケンスを適用します。元データの全バイトとアクセス権、ソース/識別情報のガード、準備済み出力全体、不在条件/事前条件を保持します。最初の公開処理の前に永続的な保存を完了し、保持したすべての内容とアクセス権を独立して再読み込みして確認します。無関係なデータと、該当する場合は実際のワークブック機能を保持します。実際の保存先ごとに全バイトとモード/該当する所有権/ACLを再度開いて確認し、変更、ソースの系譜、保護された元データを検証してから完了を報告します。バイトが正しいこと、作成モード引数があること、またはレシートが出力されたことだけでは不十分です。保護に対応できない場合や公開が不確かな場合は、復旧の証拠を添えてブロック中/保留中の状態を維持します。
選択したモードに適したネイティブ機能を使用します。選択した方法で必要な場合に限り、プロセス実行を使用できます。Arch Studio の runner、実行ファイルのダウンロード、ソースの再構築は必要ありません。読み取り専用/インライン作業には書き込み機能は不要です。実際に行った調査/抽出、検証済みの提案、独立して検証済みのオーナー保存は、それぞれ分けて報告します。実際の証拠がない限り、オーナーへの引き渡しが完了したと主張しないでください。
ネイティブブックの保持に関する比較
明示的に選択された変更前/変更後のネイティブ .xlsx または .xlsm のペアと、許可されたセル編集が利用可能な場合は、ブック比較の担当仕様 をすべて読み込み、実際の ZIP/XML 検査を用いてネイティブの workbook_preservation.compare を実行します。メンバーのバイト列、宣言されたワークシート/セルの側面、数式とキャッシュの区別、XML の空白規則を正確に保持してください。この読み取り専用の比較は、編集を許可するものではなく、タスクで必要となる実際の対象セルの読み戻し、バックアップ、機能検査、再計算、視覚的な確認の代わりにもなりません。プロバイダー形式やバイナリ形式、および利用できない検査精度は明示的なギャップとして扱ってください。それらを隠すためにブックを再保存/変換してはなりません。Arch Studio のヘルパーやプロセスランタイムは必須ではありません。