mcpField
D
design-brief

design-brief

github.com/mphinanceデザイン・UI3285 回インストール4 日前に更新
リポジトリ

design-brief について

design-briefは、構造化または自然言語のデザインブリーフをDESIGN.mdにまとめ、任意でHTMLプレビューを作成するスキルです。デザイントークンの決定と、未指定項目に適用したデフォルトの明示を支援します。

主な機能

  1. 01構造化・自然言語のブリーフ解析
  2. 028つのデザイン次元の解決
  3. 03トークンに基づくDESIGN.md生成
  4. 04任意のHTMLプレビュー作成
  5. 05デフォルト適用項目の報告

活用シーン

  1. 01ランディングページのブリーフをデザイントークンに変換
  2. 02未指定のデザイン項目に適用したデフォルトを記録

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mphinance/alpha-skills --skill design-brief

インストール後、Claude Code で/design-briefを入力して読み込まれたか確認します。

同梱ファイルREADME.md

詳細

デザインブリーフスキル

構造化されたデザインブリーフを、具体的な DESIGN.md と任意のビジュアルプレビューに変換します。エージェントは、このワークフローに正確に従ってください。

背景

このスキルの8つの次元は、Open Design に含まれる71のデザインシステムの分析から導き出されています。design-systems/ 内のすべての DESIGN.md では、少なくともカラーパレット、アクセント、タイポグラフィ、ディスプレイフォント、レイアウトモデル、コンポーネントスタイルが定義されています。これらを、デザイナーがピクセルを配置する前に行う判断を網羅する、互いに直交する8つの次元に集約しました。自然言語のブリーフで最もよく曖昧さの原因となるのがムードと密度であるため、これらも追加しました(「すっきりさせて」という表現の意味は、人によって異なります)。

ブリーフの段階では、アニメーションのタイミング、レスポンシブ戦略、アクセシビリティのコントラストは対象外としています。これらは個々のスキルがテンプレートの段階で適用します(例:saas-landing は独自のレスポンシブロジックを処理します)。ただし、生成される DESIGN.md には、後続で利用できる適切なブレークポイントのデフォルト値が含まれます。

1. 入力を受け取る

ユーザーは、次のいずれかの形式でデザインブリーフを提供します。

オプション A:I-Lang 構造化ブリーフ
[PLAN:@DESIGN|type=saas_landing]
  |palette=navy_and_white|accent=coral
  |typography=inter|display=space_grotesk
  |layout=single_column|max_width=1200px
  |mood=professional_minimal
  |density=spacious|section_gap=96px
  |hero=headline+subhead+cta
  |sections=features,pricing,testimonials,footer
  |exclude=animations,parallax,gradients
  |responsive=mobile_first
オプション B:自然言語

「開発者向けツールのランディングページが必要です。すっきりとしたミニマルなダークモードで、フォントは Inter。派手なアニメーションは不要です。」

ユーザーがオプション B を提供した場合は、以下の対応表を使用して構造化形式に変換してから、次に進みます。明示されているすべての次元を特定し、指定されていない次元にはその旨を明記します。

自然言語 → I-Lang 対応表

自然言語の入力の各文について、次元に関するキーワードを特定し、最も近い構造化値に対応付けます。

自然言語の表現次元I-Lang の値
"dark mode", "dark theme"palettemonochrome_dark
"light", "white background"palettelight_clean
"earthy", "warm tones"paletteearth_tones
"pop of color", "vibrant"accentelectric_blue(デフォルト)または coral
"subtle accent"accentmuted_sage(デフォルト)または slate
"clean", "minimal", "simple"moodprofessional_minimal
"playful", "fun", "friendly"moodplayful
"bold", "brutalist", "raw"moodbrutalist
"editorial", "magazine-like"moodeditorial
"spacious", "lots of whitespace"densityspacious
"compact", "dense", "information-rich"densitycompact
"Inter", "system font"typographyinter(デフォルト)または system_ui
"serif", "traditional"typographygeorgia(デフォルト)または playfair
"monospace", "code-like"typographyjetbrains_mono
"no animations", "static"excludeanimations
"no gradients"excludegradients
"no stock photos"excludestock_photos
"single page"layoutsingle_column
"two columns", "sidebar"layouttwo_column
"mobile first"responsivemobile_first

1つの表現が複数の次元に対応する場合(例:「すっきりとしたダークなランディングページ」→ mood=professional_minimal + palette=monochrome_dark + layout=single_column)は、各次元を個別に解決します。1つの対応項目に複数の値が記載されている場合、先頭の値をデフォルトとします。周囲の文脈から別の値が明らかに適切だと判断できる場合に限り、エージェントは代替値を選択できます。

2. 寸法を検証する

すべてのデザインブリーフで、以下の8つの寸法を確定する必要があります。入力に不足している項目がある場合は、セクション2.2のルールを使用して適切なデフォルトを選択してください。

以下に記載されている値は、クローズドな語彙を構成します。セクション2.1に具体的なトークンのマッピングがあるのは、この表に記載された値のみです。ユーザーがここに記載されていない値を指定した場合、エージェントは推測せず、明確化を求める必要があります。

#寸法キー値の例
1カラーパレットpalettenavy_and_white, earth_tones, monochrome_dark, light_clean
2アクセントカラーaccentcoral, electric_blue, emerald, muted_sage
3本文のタイポグラフィtypographyinter, system_ui, dm_sans, georgia
4ディスプレイ用タイポグラフィdisplayspace_grotesk, clash_display, same_as_body, playfair
5レイアウトモデルlayoutsingle_column, two_column, asymmetric
6雰囲気moodprofessional_minimal, playful, brutalist, editorial
7密度densitycompact, balanced, spacious
8制約excludeanimations, gradients, stock_photos, carousel
2.1 シンボリック値から具体的なトークンへの解決

各シンボリック値は具体的なデザイントークンに対応します。エージェントは、DESIGN.md を作成する前にこれらを解決する必要があります。

シンボリック値具体的なトークン
palette=navy_and_white背景: #0F172A, 表面: #1E293B, テキスト: #F8FAFC, セカンダリ: #94A3B8
palette=monochrome_dark背景: #09090B, 表面: #18181B, テキスト: #FAFAFA, セカンダリ: #A1A1AA
palette=light_clean背景: #FFFFFF, 表面: #F8FAFC, テキスト: #0F172A, セカンダリ: #64748B
palette=earth_tones背景: #FFFBEB, 表面: #FEF3C7, テキスト: #451A03, セカンダリ: #92400E
accent=coralアクセント: #F97316, ホバー: #EA580C
accent=electric_blueアクセント: #3B82F6, ホバー: #2563EB
accent=emeraldアクセント: #10B981, ホバー: #059669
accent=muted_sageアクセント: #84A98C, ホバー: #6B8F73
accent=slateアクセント: #64748B, ホバー: #475569
typography=inter本文: Inter, 400, 1rem/1.6
typography=system_ui本文: system-ui, 400, 1rem/1.6
typography=dm_sans本文: DM Sans, 400, 1rem/1.6
typography=georgia本文: Georgia, 400, 1.125rem/1.7
display=space_groteskディスプレイ: Space Grotesk, 700, clamp(2rem, 5vw, 3.5rem)
display=clash_displayディスプレイ: Clash Display, 700, clamp(2rem, 5vw, 3.5rem)
display=playfairディスプレイ: Playfair Display, 700, clamp(2rem, 5vw, 3.5rem)
display=same_as_bodyディスプレイ: 本文のフォントファミリーを継承、ウェイト600
density=compactセクション間隔: 48px, コンテンツのパディング: 16px/24px
density=balancedセクション間隔: 72px, コンテンツのパディング: 24px/40px
density=spaciousセクション間隔: 96px, コンテンツのパディング: 24px/48px

この表にないシンボリック値は無効です。ユーザーが認識できない値(例: palette=ocean_blue)を指定した場合、エージェントは明確化を求める必要があります。「palette=ocean_blue は認識できません。navy_and_white、monochrome_dark、light_clean、earth_tones のいずれかのことですか?」

2.2 デフォルトの解決ルール

ディメンションが指定されていない場合は、ムードとの相性に基づいてデフォルトが選択されます。

未指定のディメンションデフォルトのルール
palettemood=editorial の場合 → light_clean。mood=brutalist の場合 → monochrome_dark。それ以外の場合 → light_clean。
accentpalette がダークの場合 → coral。palette がライトの場合 → electric_blue。
typography常に → inter(クロスプラットフォームで最も読みやすいため)。
displaymood=editorial の場合 → playfair。mood=brutalist の場合 → space_grotesk。それ以外の場合 → same_as_body。
layout常に → single_column(レスポンシブ対応で最も安全なデフォルト)。
mood常に → professional_minimal(最も主張が控えめ)。
density常に → balanced。
exclude常に → なし(指定がない限り制約はありません)。

mood も指定されていない場合、すべてのデフォルトは安全で中立的なセットにフォールバックします:palette=light_clean、accent=electric_blue、typography=inter、display=same_as_body、layout=single_column、mood=professional_minimal、density=balanced、exclude=none。

3. DESIGN.md を生成する

このスキルは、解決済みの概要ディメンションに基づいて、新しい DESIGN.md を一から生成します。作業ディレクトリに DESIGN.md がすでに存在する場合、エージェントは上書きするかスキップするかをユーザーに確認する必要があります。

Open Design の 9 セクション規約に従って DESIGN.md を作成します。色のすべての HEX 値、フォントスタック、間隔の値は、セクション 2.1 の解決済みトークンから取得する必要があります。解決テーブルにない値を独自に作成しないでください。

# [Project Name] Design System

## Visual Theme & Atmosphere
- Mood: [resolved from mood]
- Feel: [derived from mood — e.g., professional_minimal → "Clean, confident, restrained"]
- References: [if mood=editorial → "Magazine layouts, Monocle, Cereal"; if mood=brutalist → "Exposed structure, raw typography"]

## Color Palette & Roles
- Background: [resolved from palette]
- Surface: [resolved from palette]
- Text primary: [resolved from palette]
- Text secondary: [resolved from palette]
- Accent: [resolved from accent]
- Accent hover: [resolved from accent]

## Typography Rules
- Display: [resolved from display], 700, clamp(2rem, 5vw, 3.5rem)
- Body: [resolved from typography], 400, 1rem/1.6
- Mono: JetBrains Mono, 400, 0.875rem

## Component Stylings
- Buttons: [if mood=playful → "rounded-full", otherwise → "rounded-md"], accent bg, contrast text
- Cards: surface bg, subtle border, 12px radius
- Inputs: [if mood=brutalist → "thick border", otherwise → "transparent bg, bottom border"]

## Layout Principles
- Max width: 1200px
- Grid: [resolved from layout]
- Section spacing: [resolved from density]
- Content padding: [resolved from density]

## Depth & Elevation
- Shadows: [if mood=brutalist → "hard 4px offset", if mood=professional_minimal → "none", otherwise → "subtle sm"]
- Borders: 1px solid [derived from palette, 8% opacity of text color]

## Do's and Don'ts
- DO use the declared color tokens exclusively.
- DO maintain consistent section spacing.
- DO ensure all text meets WCAG AA contrast ratio.
- DON'T invent colors outside the palette.
- DON'T add decorative shadows unless Depth & Elevation allows them.
- DON'T use more than 2 display/body typefaces (monospace is a utility face for code and data — it does not count toward this limit).

## Responsive Behavior
- Breakpoints: 640px (sm), 768px (md), 1024px (lg), 1280px (xl)
- Mobile: single column, stack all sections vertically
- Tablet: allow 2-column feature grids
- Desktop: full layout with max-width constraint
- Images: fluid, max-width 100%, maintain aspect ratio

## Agent Prompt Guide
- Do NOT invent colors outside this palette.
- Do NOT add box-shadows unless specified above.
- Accent color appears maximum 3 times per viewport.
- All interactive elements need :focus-visible outline.
- [if exclude contains items → list each as "Do NOT use {item}."]

4. brief-preview.html を生成する

解決済みのデザイントークンを視覚的に表示する単一の HTML ファイルを作成します。プレビューには、次の 4 つのセクションをこの順序で含めてください。

  1. カラーパレットのスウォッチ — 長方形を横一列に並べ、それぞれに Color セクションの色を 1 つ表示します。それぞれに役割(Background、Surface、Text、Accent)と HEX コードのラベルを付けます。
  2. タイポグラフィの見本 — Display、Body、Mono フォントを、指定されたサイズで示すテキストブロックを 3 つ作成します。それぞれにサンプル文(「The quick brown fox...」)を使用します。
  3. 間隔ルーラー — セクション間隔とコンテンツのパディングの値を示す、視覚的なルーラーまたは積み重ねたバーを作成し、px 値のラベルを付けます。
  4. コンポーネントのプレビュー — 解決済みのトークンを使用して、実際に動作するコンポーネントを 2~3 個(プライマリボタン、タイトルと本文を含むカード、テキスト入力)表示します。スクリーンショットではなく、機能する HTML/CSS を使用してください。

プレビュー自体にも、解決済みのデザインシステムトークン(背景色、フォント、間隔)を適用します。プレビューは、デザインシステムのドキュメントページのような見た目にしてください。

5. 未指定のディメンションを報告する

出力の最後に、ユーザーが指定しなかったディメンションと、適用されたデフォルトおよび各デフォルトを選択したルールを一覧表示します。

Dimensions resolved from defaults:
- display: set to "same_as_body" (rule: mood=professional_minimal → same_as_body)
- density: set to "balanced" (rule: static fallback, no spacing preference given)
- exclude: set to "none" (rule: no constraints unless specified)

これにより、暗黙の仮定が最終的なデザインに引き継がれるのを防げます。

コメント