field-service-mobile-branding-configure について
ブランド素材から Salesforce Field Service Mobile 用の14項目の配色を作成して適用するスキルです。ライトモードとダークモードのコントラストを検証し、組織のデフォルト設定を変更する前に承認を求めます。
主な機能
- 01URL、ガイド、色コード、説明から色を導出
- 0214項目の配色を作成
- 03両モードで WCAG AA のコントラストを確認
- 04変更適用前に承認を取得
- 05組織のデフォルト FieldServiceMobileSettings を更新
活用シーン
- 01企業ブランドの配色を Field Service Mobile に適用
- 02モバイル配色の変更前にコントラストを確認
- 03組織のデフォルト配色を更新
MCP 対応
Codey runtime のホスト型 Headless 360 MCP またはローカル dispatch 経由で REST 呼び出しを行います。MCP サーバーを提供するものではありません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill field-service-mobile-branding-configureインストール後、Claude Code で/field-service-mobile-branding-configureを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
examples/dark-blue-scheme.jsonsalesforce-default-scheme.jsonreferences/color-fields.mdcontrast-validation.mdderivation-methodology.md詳細
フィールドサービスモバイルのブランディング
このスキルはブランドソースを取り込み、組織のデフォルトの FieldServiceMobileSettings レコード(DeveloperName='Field_Service_Mobile_Settings'、IsDefault=true)に適用する14項目の配色を作成します。配色の導出から適用までの間に、ユーザーの確認を行います。承認なしに適用することはありません。
ソース: このスキルは Chad Barbour が作成し、上流の Field Service アセットリポジトリからミラーされています。 方法論、配色表、コントラストチェックは上流の内容から変更されていません。内容が変更されたら、上流から更新してください。
実行時の契約: このスキルでの組織とのやり取りはすべて、Codey ランタイム経由でディスパッチする単一の REST 呼び出しです(ローカルでは
dispatch、共有サーフェスではホスト型の Headless 360 MCP)。このスキルは実行環境に依存しません。sfCLI、シェルスクリプト、ローカルの Python、一時ファイルは不要です。配色はエージェントがインラインで導出・検証し、1回の sObject PATCH で書き込みます。シェルコマンドは実行しないでください。
入力の契約
次のいずれかを指定します。
- WebサイトのURL —
WebFetchで取得し、ブランドの主要カラーを抽出します。 - ブランドガイドの貼り付け内容またはドキュメント — 16進コードと色名を解析します。
- 16進カラーコード — そのまま受け付けます。
- 色の説明(例:「赤と白の会社です」) — 続行する前に、少なくとも1つの具体的な16進カラーコードまたはURLを尋ねます。
4つの取り込みケース(A~D)の詳細は、reference/derivation-methodology.md を参照してください。
出力
14項目の配色を、1回の sObject PATCH(PATCH /services/data/vXX.0/sobjects/FieldServiceMobileSettings/{id})で組織のデフォルトの FieldServiceMobileSettings レコードに書き込みます。配色の変更は、メタデータキャッシュが更新された後にデバイスに反映されます(デフォルト:7日。アプリの設定から強制更新できます)。
ワークフロー
1. 対象の組織を確認する
ブランドソースを取得する前に、簡易な認証プローブを実行して組織に接続できることを確認します — SELECT Id FROM Organization LIMIT 1 をディスパッチします(GET /services/data/vXX.0/query)。
- 2xx で
totalSize=1→ セッショントークンは有効です。続行します。 - 401/403 → 組織の再認証が必要です。ユーザーに伝え、そこで停止してください。適用処理には進まないでください。
次に「どの組織に適用しますか?」と尋ね、明示的な確認を待ってから続行します。デフォルトを推測してはいけません。ユーザーがリクエストで組織名に触れていても、想定外の事態を防ぐため、明示的に確認してください。(Codey ランタイムが接続先の組織を解決します。このスキルでは組織のエイリアスを管理しません。)
2. ブランドソースを取り込む
reference/derivation-methodology.md のケース(A~D)に従います。このステップの最後に、次の2つの基準色を用意します。
- プライマリブランドカラー — 非インタラクティブなサーフェスとナビゲーションバーに使用します。
- セカンダリ/インタラクティブカラー — ボタン、リンク、FAB に使用します。
3. 14項目すべての配色を導出する
reference/derivation-methodology.md の導出ルールと、reference/color-fields.md のフィールドの意味に従います。
14個の FieldServiceMobileSettings カラーフィールドと一致するキーを持つフラットなオブジェクトとして、配色をメモリ内に保持します。テンプレートとして examples/salesforce-default-scheme.json を使用します。続行する前に、14項目すべてが揃っていること、およびすべての値が ^#[0-9A-Fa-f]{6}$ に一致することを自己確認します(6桁の16進数で、# が必要です。3桁の省略形と # のない値は無効です)。一致しない値は提案する前に修正してください。
4. コントラストを検証する(ライトモード+ダークモード)
reference/contrast-validation.md にある各ペアの WCAG AA コントラスト比をインラインで計算します。これは、すでに取得している 16 進値に対する決定論的な計算であり、外部ツールは必要ありません。各 #RRGGBB ペアについて、次の手順で計算します。
- 各チャンネルを正規化します。
r = R/255, g = G/255, b = B/255 - 各チャンネルを線形化します。
c ≤ 0.03928 → c/12.92、それ以外は((c+0.055)/1.055)^2.4 - 相対輝度を計算します。
L = 0.2126·r + 0.7152·g + 0.0722·b - コントラスト比を計算します。
(L_lighter + 0.05) / (L_darker + 0.05)
reference/contrast-validation.md にあるライトモードの 5 ペアすべてとダークモードの 5 ペアすべてを評価します。ペアは ≥ 4.5:1 の場合に合格です(WCAG AA、通常のテキスト)。不合格のペアは、ステップ 5 で修正案とともにユーザーに提示してください。ブランドカラーは両モードで固定されるため、ライトモードの配色が合格しても、ダークモードのペアでは不合格になる場合があります。
5. 提案を提示して確認する
ユーザーに次の内容を提示します。
- 14 フィールドすべてについて、16 進値と役割を記載した
Brand & Navigation/Contrast Scale/Feedback Colorsの表。 - ステップ 4 のライトモードとダークモードのコントラスト結果。不合格のペアにはフラグを付けます。
- 対象の組織エイリアス。
適用する前に、ユーザーに確認を求めます。不合格のペアに対する代替案を提案する際は、reference/contrast-validation.md の修正案を使用してください。
6. 組織に適用する
ステップ 5 でユーザーが提案を承認した後にのみ適用します。REST 呼び出しは 3 回です。
-
FLS を確認する(任意ですが推奨)。
GET /services/data/vXX.0/sobjects/FieldServiceMobileSettings/describeを呼び出し、14 個のカラー項目それぞれでupdateable: trueであることを確認します。updateable: falseの項目(またはフィルタリングされた describe)は、実行ユーザーに編集アクセス権がないことを示す最初の兆候です。PATCH を試す前にユーザーに伝えてください。 -
組織のデフォルトレコードを特定する。
SELECT Id FROM FieldServiceMobileSettings WHERE DeveloperName = 'Field_Service_Mobile_Settings' AND IsDefault = true LIMIT 1を指定してGET /services/data/vXX.0/queryを呼び出します。totalSize = 0は Field Service Mobile がプロビジョニングされていないことを意味します。エラーをユーザーに伝えて停止してください(ステップ 7 を参照)。それ以外の場合はrecords[0].Idを取得します。 -
配色を適用する。 14 個のカラー項目をフラットな JSON ボディに指定して、
PATCH /services/data/vXX.0/sobjects/FieldServiceMobileSettings/{id}を呼び出します。マージ方式のため、ボディに含まれるフィールドのみが書き込まれます。IsDefaultは更新不可のため、送信しないでください。本文のない 204 は成功を意味します。その後、レコードを GET して値が反映されたことを確認します。
7. 結果を報告する
成功した場合は、次の内容を出力します。
FieldServiceMobileSettingsレコード ID。- 更新日時。
- メタデータキャッシュはデフォルトで 7 日間有効であるため、キャッシュが更新されるか、技術者がアプリの設定から強制更新するまで、デバイスには新しい配色が表示されないことを伝えます。
Field_Service_Mobile_Settings レコードが存在しないために適用に失敗した場合は、エラーをユーザーに伝えて停止します。組織で Field Service Mobile が設定されていない可能性があります。デフォルトレコードを作成するために「設定」→「Field Service Mobile Settings」を開き、その後もう一度試すようユーザーに案内してください。
対象範囲
自動生成されるもの:
- 1 つまたは 2 つのブランドカラーを基準に、任意のブランドニュートラルカラーとセマンティックカラーを加えて導出される、14 フィールドすべての配色。
- エージェントがインラインで計算する、ライトモード 5 ペア+ダークモード 5 ペアにわたる WCAG AA コントラスト検証。
- 組織のデフォルト
FieldServiceMobileSettingsレコードへの、単一の sObject PATCH による適用。
対象外:
- スプラッシュ画面、プロファイルタブの背景画像、プッシュ通知アイコン — 「設定」からのアップロードのみ。
- プロファイルごとの
FieldServiceMobileSettingsレコード(複数設定の組織)— このスキルの対象は、IsDefault=trueの単一レコードです。組織に複数のレコードがある場合は、最初にクエリを実行し、更新するDeveloperNameを確認してください。 - ディスパッチャーコンソール/ガントのカラー(
FSLQA__GanttPalette__c)。 BrandingSetメタデータ(Experience Cloud/Lightning アプリのブランディング — FS モバイルアプリのテーマには影響しません)。
このスキルのファイル
reference/color-fields.md— 14 個のフィールド、説明、デフォルト値、JSON スキーマ。reference/contrast-validation.md— ライトモードとダークモードのペア定義、数式、よくある修正方法。reference/derivation-methodology.md— ブランドソースを完全な配色に変換する方法、エッジケース。examples/salesforce-default-scheme.json— 標準搭載の Salesforce パープル/ブルー配色。examples/dark-blue-scheme.json— Salesforce をテーマにしたダークブルー配色(コントラスト警告の例も兼ねています)。
コントラストの検証と配色の導出は、エージェントがインラインで実行します(手順 3~4 を参照)。このスキルには実行可能なスクリプトはありません。Org への書き込みは、Codey ランタイム経由でディスパッチされる単一の REST 呼び出しです。
関連スキル
configure-field-service-mobile— ページレイアウト、権限、FieldServiceSettingsの切り替え設定。このスキルではブランディングをこちらに任せ、このスキルはモバイルの構造設定をそちらに任せます。fs-data-capture-form-deployer— Data Capture Flow のメタデータを生成してデプロイします。