sf-industry-cme-epc-model
Salesforce Industries CME の EPC 製品モデリングスキルで、Product2 ベースのカタログ作成を支援します。EPC 製品の作成・設定、製品属性の構成、Product Child Items を使ったオファーバンドルの構築、または製品カタログ変更に関わる EPC DataPack JSON メタデータのレビューを行う際に使用してください。OmniScript・FlexCard・Integration Procedure の設計(sf-industry-commoncore-* を使用)、Apex ビジネスロジックの実装(sf-apex を使用)、デプロイパイプラインのトラブルシューティング(sf-deploy を使用)には本スキルを使用しないでください。
description の原文を見る
> Salesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use sf-industry-commoncore-* skills), implementing Apex business logic (use sf-apex), or troubleshooting deployment pipelines (use sf-deploy).
SKILL.md 本文
sf-industry-cme-epc-model: CME EPCプロダクトおよびオファーモデリング
Salesforce Industries CME EPCの専門家向けスキル。Product2ベースのカタログエントリ作成、設定可能な属性の割り当て、Product Child Item関係を通じたオファーバンドル構築に最適化されています。
このスキルはDataPackスタイルのメタデータ作成に最適化されており、assets/に含まれるテンプレートセットを使用します:
assets/product2-offer-template.jsonassets/attribute-assignment-template.jsonassets/product-child-item-template.jsonassets/pricebook-entries-template.jsonassets/price-list-entries-template.jsonassets/object-field-attributes-template.jsonassets/orchestration-scenarios-template.jsonassets/decomposition-relationships-template.jsonassets/compiled-attribute-overrides-template.jsonassets/override-definitions-template.jsonassets/parent-keys-template.json
追加のパッケージ化されたサンプルはassets/examples/配下で利用可能で、バンドル/シンプルオファーサンプルごとに1つのフォルダが存在します。
ルートのassets/フォルダには、バンドル作成用の標準的なベースラインテンプレートセットが含まれています。
クイックリファレンス
- プライマリオブジェクト:
Product2(EPCプロダクトおよびオファーレコード) - 属性データ:
%vlocity_namespace%__AttributeMetadata__c、%vlocity_namespace%__AttributeDefaultValues__c、および%vlocity_namespace%__AttributeAssignment__c - オファーバンド構成:
%vlocity_namespace%__ProductChildItem__c - オファーマーカー:
%vlocity_namespace%__SpecificationType__c = "Offer"および%vlocity_namespace%__SpecificationSubType__c = "Bundle" - コンパニオンバンドルアーティファクト: 価格表エントリ、価格リストエントリ、オブジェクトフィールド属性、オーケストレーションシナリオ、分解関係、コンパイル属性オーバーライド、オーバーライド定義、親キー
スコアリング: 6つのカテゴリにわたる120ポイント。
閾値: >= 95 デプロイ準備完了 | 70-94 要レビュー | < 70 ブロック対象。
アセットテンプレートセット
バンドルペイロード作成時は、ルートのassets/テンプレートを使用してください:
product2-offer-template.jsonattribute-assignment-template.jsonproduct-child-item-template.jsonpricebook-entries-template.jsonprice-list-entries-template.jsonobject-field-attributes-template.jsonorchestration-scenarios-template.jsondecomposition-relationships-template.jsoncompiled-attribute-overrides-template.jsonoverride-definitions-template.jsonparent-keys-template.json
実際の異なるバリエーションについては、assets/examples/配下のサンプルごとのフォルダを使用してください。
主要な責務
- プロダクト作成: 一貫した命名規則、ライフサイクル日付、ステータス、分類フィールドでEPC Product2レコードを作成する。
- 属性モデリング: カテゴリベースの属性、デフォルト値、有効値セット、表示順序、必須フラグを定義する。
- オファーバンドルモデリング:
%vlocity_namespace%__ProductChildItem__cレコードと明確な数量ルールを使用して、子プロダクトでオファーを構成する。 - コンパニオンメタデータ生成: 同じオファーベースラインから、関連するすべてのバンドルファイル(価格設定、オブジェクトフィールド属性、オーケストレーション/分解、オーバーライド、親キー)を生成および整合させる。
- DataPack整合性: レコードソースキー、グローバルキー、ルックアップオブジェクト、名前空間フィールドをデプロイメント用に内部的に一貫性を保つ。
呼び出しルール(必須)
以下のいずれかのプロンプト意図がマッチするたびにこのスキルにルーティングしてください:
-
プロダクトバンドルを作成する:
- ユーザーがEPCオファーバンドルを作成/構築/生成/モデリングすることを要求している。
- ユーザーがProduct Child ItemsでProduct2オファーセットアップを要求している。
- ユーザーがテンプレート/サンプルからバンドルDataPack JSONアーティファクトを生成することを要求している。
-
既存のプロダクトバンドルをスコア化またはレビューする:
- ユーザーが既存のEPCバンドルをスコア化/評価/検証/監査することを要求している。
- ユーザーが120ポイントのルーブリックを既存のProduct2/PCI/属性ペイロードに適用することを要求している。
- ユーザーがバンドルメタデータのリスク検出、品質ギャップ、修正推奨を要求している。
指示優先度: プロンプトが短く、EPCという名前を明確に記載していなくても、これら2つの意図をsf-industry-cme-epc-modelの直接的なトリガーとして扱ってください。
ワークフロー(作成/レビュー)
フェーズ1: カタログ意図を特定する
以下を質問してください:
- プロダクトタイプ: spec product または offer bundle
- ドメイン分類: Family、Type/SubType、カテゴリパス、チャネル
- 属性要件: 必須/オプション、ピックリスト値、デフォルト値
- バンドル構成: 子プロダクト、数量制約、オプション vs 必須
- ターゲット組織の名前空間モデル:
%vlocity_namespace%、vlocity_cmt、またはCore
フェーズ1A: 完全なバンドル用の明確化質問(必須)
新しいオファーバンドルペイロードを生成する前に、必要なすべての入力が既知になるまで明確化質問を行ってください。
必須の明確化チェックリスト:
- オファーのアイデンティティ
- オファーの名前と
ProductCodeは何か? - これは新規か、既存のProduct2オファーへの更新か?
- オファーの名前と
- カタログ分類
- Family、Type/SubType、チャネル/販売コンテキスト値は何か?
- 今すぐ
SpecificationType=OfferとSpecificationSubType=Bundleを設定すべきか?
- ライフサイクルと可用性
EffectiveDateとSellingStartDateは何か?- 作成時に
IsActiveと%vlocity_namespace%__IsOrderable__cをtrueにすべきか?
- 子プロダクト構成
- どの子プロダクトが含まれているか(各々の名前/コード)?
- 各子について、必須/オプションのセマンティクスと順序は何か?
- 子ごとの数量動作
MinQuantity、MaxQuantity、およびデフォルトQuantityは何か?- 各行に対して
%vlocity_namespace%__MinMaxDefaultQty__cを強制すべきか?
- 属性モデル
- どの属性が必須でどれがオプションか?
- 有効値、デフォルト値、表示タイプ、表示順序は何か?
- 価格設定とコンパニオンアーティファクト
- 今すぐ価格表と価格リストエントリを生成すべきか?
- オーケストレーション/分解/オーバーライド/親キーファイルは同じリクエストに含めるべきか?
- 名前空間とキーイング
- どの名前空間規則を使用すべきか(
%vlocity_namespace%、vlocity_cmt、またはCore)? - 保持すべき既存のグローバルキー/ソースキーはあるか?
- どの名前空間規則を使用すべきか(
必須チェックリスト項目が未回答の場合、最終バンドルファイルを生成せず、まず焦点を絞ったフォローアップ質問をしてください。
フェーズ2: Product2バックボーンを構築する
新しいEPCレコードごとに以下を定義します:
NameProductCode(ユニーク、安定、環境非依存)%vlocity_namespace%__GlobalKey__c(安定したUUID形式のキー)%vlocity_namespace%__SpecificationType__cおよび%vlocity_namespace%__SpecificationSubType__c%vlocity_namespace%__Status__cおよび日付フィールド(EffectiveDate、SellingStartDate)IsActiveおよび%vlocity_namespace%__IsOrderable__c
ベースラインの構造としてassets/product2-offer-template.jsonを使用してください。
フェーズ3: 属性を追加する
属性が必要な場合:
%vlocity_namespace%__AttributeMetadata__cカテゴリおよびproductAttributesレコードを入力します。%vlocity_namespace%__AttributeDefaultValues__cを属性コードからデフォルト値へのマッピングで入力します。%vlocity_namespace%__AttributeAssignment__cレコードを以下の項目で作成します:- カテゴリリンク
- 属性リンク
- UI表示タイプ(ドロップダウンなど)
- 有効値とデフォルトマーカー
割り当てベースラインとしてassets/attribute-assignment-template.jsonを使用してください。
フェーズ4: オファーバンドルを構築する
オファーの場合:
- 親
Product2レコードをオファー(SpecificationType=Offer、SpecificationSubType=Bundle)として保持します。 - ルート
%vlocity_namespace%__ProductChildItem__c行を作成します(IsRootProductChildItem=true)。 - 以下の項目で構成ごとに子行を追加します:
- 親と子の参照
- 順序とラインナンバー
- 最小/最大/デフォルト数量動作(
MinMaxDefaultQty、MinQuantity、MaxQuantity、Quantity)
- 動作が継承/デフォルト動作と異なる場合のみオーバーライド行を使用します。
子関係の構造についてはassets/product-child-item-template.jsonを使用してください。
完全なバンドルペイロードについては、以下も整合させて含めます:
assets/pricebook-entries-template.jsonassets/price-list-entries-template.jsonassets/object-field-attributes-template.jsonassets/orchestration-scenarios-template.jsonassets/decomposition-relationships-template.jsonassets/compiled-attribute-overrides-template.jsonassets/override-definitions-template.jsonassets/parent-keys-template.json
フェーズ4B: コンパニオンメタデータファイルを生成する
ユーザーがバンドルの生成を要求する場合、すべてのコンパニオンファイルを1つのまとまったセットとして同時に生成/更新します:
pricebook-entries-template.jsonおよびprice-list-entries-template.json- Product2 GlobalKey/ProductCodeの参照を親オファーと整合させます。
object-field-attributes-template.json- オブジェクトクラス参照とフィールドマッピングを同じオファーモデルと整合させます。
orchestration-scenarios-template.jsonおよびdecomposition-relationships-template.json- 分解およびオーケストレーションアーティファクトをバンドル子アイテムと整合させます。
compiled-attribute-overrides-template.jsonおよびoverride-definitions-template.json- オーバーライドキーと参照を属性メタデータおよび割り当てと整合させます。
parent-keys-template.json- 親リンク値を生成されたアーティファクトキーと同期させます。
必須ルール: ユーザーが明示的に限定されたファイルスコープを要求していない限り、完全なバンドルペイロードが要求される場合に部分的なサブセットのみを生成しないでください。
フェーズ5: 検証とハンドオフ
完了ブロックを提供します:
EPC Model Complete: <Name>
Type: <Spec Product|Offer Bundle>
ProductCode: <code>
Attributes: <count>
Bundle Children: <count>
Companion Metadata Files: <count generated>
Validation Score: <score>/120
Risks: <none|list>
生成時のガードレール(必須)
アンチパターンが現れた場合、進める前に確認を要求して停止してください。
| アンチパターン | 失敗する理由 | 必須の修正 |
|---|---|---|
ProductCodeがないか不安定なコード値 | 見積/カートリファレンスが壊れる | 決定論的なコード規則を使用 |
| 関係に組織固有IDをハードコーディング | 組織/環境間で失敗 | マッチングキー/グローバルキーでルックアップオブジェクトを使用 |
| ルートPCI行のないオファーバンドル | 実行時バンドルトラバーサル問題 | ルート%vlocity_namespace%__ProductChildItem__cを追加 |
| 有効値に存在しない属性デフォルト | 無効なカート設定デフォルト | デフォルトが許可された値セットに存在することを確認 |
| 同じ属性カテゴリの表示順序が重複 | UI順序の競合 | ユニークでスペースを空けた順序値を強制 |
| 不完全な子参照のアクティブとしてマークされたオファー | 実行時バンドルが壊れる | アクティブ化前に子リンクセットを完成および検証 |
混在した命名スタイル(snake_case、アドホックな省略) | 保守性と発見可能性が低下 | リファレンスドキュメントからの命名規則を強制 |
スコアリングモデル(120ポイント)
1) カタログアイデンティティと命名(20ポイント)
- プロダクト名の明確さとユニーク性
ProductCode規則品質- Type/SubType/Family整合性
- 安定的なキーイング(
GlobalKey、ソースキー整合性)
2) EPCプロダクト構造(20ポイント)
- 必須Product2 + EPCフィールドが存在
- ライフサイクル日付とステータス整合性
- 注文可能/アクティブフラグの整合性
- レコードタイプと分類整合性
3) 属性モデリング(25ポイント)
- カテゴリと属性グループ化品質
- 有効値 + デフォルト整合性
- 必須/読み取り専用/フィルタ可能セマンティクス
- 表示順序とUX整合性
4) オファーバンドル構成(25ポイント)
- ルートPCI存在と正確性
- 子参照と順序整合性
- 数量制約の正確性
- オプション/必須セマンティクスが最小/最大/デフォルトに反映
5) DataPack整合性(15ポイント)
- 名前空間プレースホルダー正確性
- ルックアップオブジェクトキー整合性
- 環境固有で脆いフィールドがない
6) ドキュメントとハンドオフ(15ポイント)
- モデル化意図の明確な説明
- テストチェックリストが含まれている
- リスクと前提条件が明示的に記載されている
CLIおよび検証コマンド
# 候補となるEPCプロダクトをクエリ
sf data query -q "SELECT Id,Name,ProductCode,Family,IsActive FROM Product2 ORDER BY LastModifiedDate DESC" -o <org>
# オファーのProduct Child Itemsをクエリ
sf data query -q "SELECT Id,Name,%vlocity_namespace%__ParentProductName__c,%vlocity_namespace%__ChildProductName__c,%vlocity_namespace%__MinMaxDefaultQty__c FROM %vlocity_namespace%__ProductChildItem__c WHERE %vlocity_namespace%__ParentProductName__c='<Offer Name>'" -o <org>
# Product2メタデータパッケージメンバーを取得(プロジェクト形式に該当する場合)
sf project retrieve start -m Product2:<DeveloperNameOrName> -o <org>
# ドライランモードでデプロイメントを検証
sf project deploy start -x manifest/package.xml --dry-run -o <org>
サンプルスキル呼び出しコマンド
エージェント/CLIワークフローからこのスキルを呼び出すには、これらのサンプルを使用してください:
# 完全なコンパニオンメタデータを使用して新しいEPCオファーバンドルを作成
cursor-agent "Create a Product2 offer bundle named Business Internet Plus with ProductCode BIZ-INT-PLUS-01, 3 child products, and generate all companion DataPack JSON files from the assets templates."
# 既存のEPC Product2レコードに設定可能な属性を追加
cursor-agent "Update Product2 Business Internet Essential with attribute metadata/defaults/assignments for Bandwidth, ContractTerm, and StaticIPCount, including valid values and defaults."
# オファー用のProductChildItem関係を構築
cursor-agent "Create root and child %vlocity_namespace%__ProductChildItem__c records for offer Business Internet Essential VPL with min/max/default quantity rules."
# 既存のDataPackをEPCモデリング品質でレビュー
cursor-agent "Review the Product2 bundle JSON files under skills/sf-industry-cme-epc-model/examples/business-internet-plus-bundle/, score against the 120-point rubric, and return risks plus required fixes."
# Specプロダクトをバンドル対応オファーペイロードに変換
cursor-agent "Transform Product2 Dedicated Fiber 1G from spec product to offer bundle (SpecificationType=Offer, SpecificationSubType=Bundle) and generate aligned PCI + pricing artifacts."
環境が異なるコマンドラッパーを使用している場合、引用符で囲まれた指示テキストを保持し、cursor-agentをローカルエージェントコマンドに置き換えてください。
クロススキル統合
| スキルから | sf-industry-cme-epc-modelへ | タイミング |
|---|---|---|
| sf-industry-commoncore-omnistudio-analyze | -> sf-industry-cme-epc-model | 最初に現在の依存関係と名前空間インベントリが必要 |
| sf-metadata | -> sf-industry-cme-epc-model | EPCモデリング前にオブジェクトまたはフィールド準備状態が必要 |
| sf-soql | -> sf-industry-cme-epc-model | 既存カタログクエリ分析が必要 |
| sf-industry-cme-epc-modelから | スキルへ | タイミング |
|---|---|---|
| sf-industry-cme-epc-model | -> sf-industry-commoncore-omniscript | モデル化されたカタログを使用してガイド付き販売UXを設定 |
| sf-industry-cme-epc-model | -> sf-industry-commoncore-integration-procedure | プロダクトと価格設定ペイロード上でサーバーサイドオーケストレーションを構築 |
| sf-industry-cme-epc-model | -> sf-deploy | 検証済みカタログメタデータをデプロイ |
外部参考資料
- EPCの概要: Salesforce Help - Enterprise Product Catalog
- EPC命名規則: Salesforce Help - EPC Naming Conventions
- EPCプロダクトカタログデータモデル: Salesforce Help - Product Catalog ERD
追加のローカル参考資料:
references/epc-field-guide.mdreferences/naming-conventions.md
注釈
- このスキルはDataPackファースト指向であり、
vlocity/Product2/...アーティファクト作成に最適化されています。 - テンプレートで
%vlocity_namespace%プレースホルダーを保持して、ポータビリティを維持してください。 - 再利用可能なspec productsを最初に作成してから、子関係でオファーをアセンブルすることを推奨します。
ライセンス
MIT License。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- jaganpro
- リポジトリ
- jaganpro/sf-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/jaganpro/sf-skills / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。