Cahier des charges design (brief → spec)
/SKILLAnalyse un brief de design structuré (format protocole I-Lang) et le transforme en spécification exploitable.
name: design-brief
description: |
Parse a structured design brief written in I-Lang protocol format into a
concrete design spec. Eliminates ambiguity from vague requests like
"make it professional" by requiring explicit dimensions: palette, typography,
layout, mood, density, and constraints.
Trigger keywords: "design brief", "create a design brief", "ilang brief", "structured brief".
triggers:
- "design brief"
- "create a design brief"
- "ilang brief"
- "structured brief"
od:
mode: design-system
platform: desktop
scenario: planning
preview:
type: html
entry: brief-preview.html
reload: debounce-100
design_system:
requires: false
generates: true
sections: [visual-theme, color-palette, typography, component-stylings, layout, depth-elevation, dos-and-donts, responsive, agent-prompt-guide]
inputs:
- name: brief
type: string
required: true
description: "I-Lang formatted design brief or natural language description"
outputs:
primary: DESIGN.md
secondary: brief-preview.html
capabilities_required:
- file_write
Design Brief Skill
Parse a structured design brief into a concrete DESIGN.md and optional visual preview. Agent, follow this workflow exactly.
Background
The 8 dimensions in this skill are derived from analysis of the 71 design systems bundled with Open Design. Every DESIGN.md in design-systems/ resolves at minimum: color palette, accent, typography, display font, layout model, and component style. We distilled these into 8 orthogonal dimensions that cover the decisions a designer makes before any pixel is placed. Mood and density were added because they are the two most common sources of ambiguity in natural language briefs ("make it clean" means different things to different people).
Dimensions intentionally excluded from the brief level: animation timing, responsive strategy, and accessibility contrast. These are enforced at the template level by individual skills (e.g., saas-landing handles its own responsive logic), though the generated DESIGN.md includes sensible breakpoint defaults for downstream consumption.
1. Accept input
The user provides a design brief in one of two formats:
Option A: I-Lang structured brief
[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_firstOption B: Natural language
"I need a landing page for a developer tool. Clean, minimal, dark mode. Inter font. No flashy animations."
If the user provides Option B, convert it to the structured format using the mapping table below, then proceed. Identify every dimension explicitly stated and flag dimensions that were left unspecified.
Natural language → I-Lang mapping
For each sentence in the natural language input, identify dimension keywords and map to the closest structured value:
| Natural language phrase | Dimension | I-Lang value |
|---|---|---|
| "dark mode", "dark theme" | palette | monochrome_dark |
| "light", "white background" | palette | light_clean |
| "earthy", "warm tones" | palette | earth_tones |
| "pop of color", "vibrant" | accent | electric_blue (default) or coral |
| "subtle accent" | accent | muted_sage (default) or slate |
| "clean", "minimal", "simple" | mood | professional_minimal |
| "playful", "fun", "friendly" | mood | playful |
| "bold", "brutalist", "raw" | mood | brutalist |
| "editorial", "magazine-like" | mood | editorial |
| "spacious", "lots of whitespace" | density | spacious |
| "compact", "dense", "information-rich" | density | compact |
| "Inter", "system font" | typography | inter (default) or system_ui |
| "serif", "traditional" | typography | georgia (default) or playfair |
| "monospace", "code-like" | typography | jetbrains_mono |
| "no animations", "static" | exclude | animations |
| "no gradients" | exclude | gradients |
| "no stock photos" | exclude | stock_photos |
| "single page" | layout | single_column |
| "two columns", "sidebar" | layout | two_column |
| "mobile first" | responsive | mobile_first |
When a phrase maps to multiple dimensions (e.g. "clean dark landing page" → mood=professionalminimal + palette=monochromedark + layout=single_column), resolve each dimension independently. When multiple values are listed for a single mapping, the first is the default; the agent may select the alternative only if surrounding context strongly favors it.
2. Validate dimensions
Every design brief must resolve these 8 dimensions. If any are missing from the input, select sensible defaults using the rules in Section 2.2.
The values listed below form a clo