Communitygithub.com

tmj-90/brand

製品のブランドを確立または監査し、工場の成果物が意図的でテンプレート的でないものにするために使用します。チケットで「ブランドを作成する」「デザインシステム/ビジュアルアイデンティティ/パレット/タイポグラフィを定義する」と依頼された場合や、納品されたUIが汎用的で明確な方向性を必要とする場合に呼び出します。既存のブランドを検出し、そのスタイルを拡張するか、特定の方向性(パレット、タイプペアリング、ボイス)にコミットしてBRAND.mdを作成します。UIを構築する前にデザインの基盤が必要な場合に呼び出してください。

brand とは?

このスキルは、AIエージェントが製品のブランドを確立または監査するためのものです。主にClaude CodeやCursor、CodexなどのAI開発エージェントで使用されることを想定しており、「ブランドを作成する」「デザインシステムを定義する」といったチケットに応答する際に役立ちます。スキルはまず、リポジトリ内の既存のBRAND.mdやトークンファイル、マーケティングコピーなどを検索して、ブランドがすでに存在するかどうかを判断します。存在する場合は、そのスタイルを維持しつつ、コントラスト比の計測や不足しているトークンの補完など、監査と拡張を行います。存在しない場合は、エディトリアル/マガジン、スイス/インターナショナル、ネオ・ブルータリズムなど、製品とオーディエンスに合った特定のデザイン方向性にコミットし、カラーパレット(oklchトークン)、タイプペアリング(clamp()流体スケール、セルフホスティング計画)、ボイス(ターゲット、約束、特性)を定義します。最終的にBRAND.mdと対応するトークンファイルを生成し、未解決の戦略的質問があればブロックとして報告します。このスキルは「デザインシステム」スキルにトークン構造を、「フロントエンドデザイン」スキルに実装面を委譲します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/tmj-90/gaffer/tree/HEAD/runner/skills/brand

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

ブランドの確立または監査

UIをブランドなしで出荷する工場は、テンプレートを出荷しているに等しい。このスキルは製品に具体的なビジュアルおよび言語的アイデンティティを与えるか、既存のものを監査・拡張し、それを配信エージェントが利用できる形式(BRAND.mdとトークン)で書き留める。アイデンティティ(方向性、パレット、タイプペアリング、ボイス)を管轄する。トークンの構造はdesign-systemスキルに属し、表面の実行はfrontend-designスキルに属する。

深度参照先
パレット階層、oklchトークン、コントラスト、タイプペアリングと流体スケールreferences/color-and-typography.md
ボイスのスペクトル、特性、メッセージング階層、一貫性チェックリストreferences/voice-and-messaging.md

手順

  1. 検出. search_loreを呼び出して、ブランド、ポジショニング、ボイス、デザインADRを検索する。リポジトリ内でBRAND.md、DESIGN.md、トークンファイル(*.tokens.json、tokens.css、theme.ts)、カスタムプロパティの:rootブロック、ロゴアセット、マーケティングコピーを探す。製品のREADMEとチケットを読んで、オーディエンスと目的を把握する。判断する:ブランドは存在するか?

  2. ブランドが存在する → そのスタイルで監査し拡張する. 自分の好みで置き換えない。

    • 必要な品質(手順4)と下記の禁止リストに照らしてスコアリングし、各ギャップをファイルと値で明示する。
    • ブランドが使用するすべてのテキスト/背景ペアを、すべてのテーマでWCAGコントラスト(本文4.5:1、大テキストとUIは3:1)に対して測定する — 比率を計算すること。oklchの明度はコントラスト比ではない。テキストとして不合格のブランドカラーは、より暗いテキストセーフバリアントを取得する。例外は認めない。
    • 既存の方向性のギャップを埋める:ホバー/アクティブ段階、不足しているサーフェス階層、ダークバリアント、テキストセーフなアクセント、不足しているセマンティックロール。
  3. ブランドがない → 1つの方向性にコミットする そして、それがなぜこの製品とオーディエンスに適しているかを書く:エディトリアル/マガジン、スイス/インターナショナル、ネオ・ブルータリズム、ベントー、リアルな奥行きを伴うグラスモーフィズム、ライトまたはダークラグジュアリー、レトロフューチャリズム。「クリーンミニマル」は方向性ではない。ダークモードは習慣ではなくユーザーのために選ばれる。次に定義する:

    • パレット をoklchトークンで、色ごとに明示された役割とともに記述する:サーフェス(少なくとも2階層)、テキスト(プライマリ、ミュート)、アクセント、およびセマンティックロール success / warning / danger / info — それぞれに、塗りつぶし色がテキストとして不合格の場合のテキストセーフバリアントも含める。
    • タイプペアリング — ディスプレイ + テキストファミリー(理由付き。製品がコードやデータを表示する場合はモノも含む)、clamp()流体スケール、ローディング計画:セルフホスト、サブセット化、1つの重要なウェイトをプリロード、メトリックマッチドフォールバック。
    • ボイス — オーディエンス、ワンラインプロミス、3~5のボイス特性(それぞれに「言うこと/言わないこと」のペア)、およびエラーや空状態でボイスがどう変わるか。
  4. 必要な品質をチェックする. ブランドは、納品されたUIがfrontend-designスキルにリストされている10の品質のうち少なくとも4つ(スケール階層、スペーシングリズム、奥行き、タイポグラフィックキャラクター、セマンティックカラー、設計された状態、構成、雰囲気、明確化するモーション、システム内のデータ可視化)を示すことを可能にしなければならない。4つ以上をBRAND.mdに記述する。

  5. 成果物を書く. BRAND.md:方向性と根拠、パレットテーブル(トークン、値、役割、コントラスト結果)、タイプペアリングとスケール、ボイス、提供される品質、未解決の質問。作業がビジュアルの場合、リポジトリの形式(DTCG JSONまたはCSSカスタムプロパティ — design-systemスキルを参照)のトークンファイル、例えば:

    :root {
      --color-surface: oklch(98% 0.01 95);
      --color-text: oklch(22% 0.02 265);
      --color-accent: oklch(64% 0.19 28); /* 塗りのみ。テキストは --color-accent-text を使用 */
      --color-accent-text: oklch(50% 0.19 28);
      --text-display: clamp(2.5rem, 1rem + 6vw, 6rem);
      --text-base: clamp(1rem, 0.94rem + 0.3vw, 1.125rem);
      --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
    }
    
  6. 不明な戦略は報告し、発明しない. ポジショニングやオーディエンスが本当に未決定で、チケットがそれを解決していない場合、でっち上げてはいけない。配信スキルとして、mark_ticket_blockedを具体的な質問とともに呼び出す。ロアシードとして、suggest_loreを未解決の質問を明記してブランドに対して呼び出す。

  7. 確定させる. 配信スキルとして(チケットのワークツリーブランチで作業している — git branch --show-currentで確認する)、コミットし、record-evidenceスキルでACごとの証拠を記録(BRAND.mdの差分、コントラストテーブル、品質リスト)したら停止する。ランナーがレビューのために送信する。ロアシードとして、suggest_loreでブランドを提案する。人間が承認するまでは提案のまま留まる。

禁止(監査ではこれらを捕捉しなければならない)

  • 均一なスペーシングと階層のないデフォルトのカードグリッド。
  • 中央揃えの見出し + グラデーションブロブヒーロー(汎用的なCTA付き)。
  • 未修正のライブラリ/Tailwind/shadcnデフォルトを完成デザインとして流用すること。
  • すべてのコンポーネントで同一の半径、スペーシング、シャドウ。
  • 1つの装飾的なアクセントカラーのみを持つグレーオンホワイト。
  • 理由のないデフォルトフォントスタック。理由のない2つ以上のファミリー。
  • 4.5:1に失敗するアクセントカラーをボディサイズテキストに使用すること。
  • 習慣ではなくフィット感で選ばれる反射的なダークモード。

完了条件

BRAND.mdが1つの方向性とその根拠を述べていること。すべてのパレットペアが測定されたコントラスト結果を持ち、すべてのテーマで合格すること。タイプペアリング、スケール、ローディング計画が定義されていること。ボイスが例示とともに特性を持っていること。4つ以上の必要な品質が指定されていること。未解決の戦略的質問が推測ではなくリストアップされていること。トークンがリポジトリの形式で存在すること。

ルール

  • 方向性にコミットし、その理由を述べること。「クリーンミニマル」は不可。
  • リテラルではなくトークンを使用すること。これにより配信エージェントが再利用できる。
  • 既存のブランドはそのスタイルで拡張すること。好みで上書きしない。
  • モーショントークンはtransform/opacity用とする。レイアウトに依存するアニメーションをシステムに組み込まない。
  • 不明な戦略は、名前付きの未解決質問として扱い、決して答えを発明しない。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

関連スキル