create-design-md
Skill8 starsChanged 38 days agoMITView on GitHub
Create or update a DESIGN.md from an existing product repository or public website. Use when asked to document an interface's design language, reconstruct its visual system, extract design tokens and guidance from current evidence, or give coding agents persistent UI context. Do not modify product source or promote accidental implementation patterns into design decisions.
8 other projects use a version of this, 2 of them edited.
Adopted by
Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Most recently taken up by
- hsynozdamar-byte/claude-skills-editededited, first seen Oct 17, 2026
- ibelick/ui-skillsword for word, first seen Oct 16, 2026
- ItamarZand88/design-skillstheir own version, first seen Oct 13, 2026
- CanKStar0/GUIDELINEStheir own version, first seen Oct 2, 2026
- ingpoc/SKILLStheir own version, first seen Aug 10, 2026
- julianromli/faiz-skillsword for word, first seen Jul 22, 2026
Used with
Projects with it also use fixing-metadata and baseline-ui.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
agentset-aiSkillfixing-metadata
Ship correct, complete metadata.
Also in 3 projects that use this
VercelSkillbaseline-ui
Validates animation durations, enforces typography scale, checks component accessibility, and prevents layout anti-patterns in Tailwind CSS projects. Use when building UI components, reviewing CSS utilities, styling React views, or enforcing design consistency.
Also in 3 projects that use this
Other versions8 projects use a version of this.
Word for word · 2
- ibelick/ui-skills★ 11k100% same
- julianromli/faiz-skills★ 16100% same
Edited · 2
- hsynozdamar-byte/claude-skills-edited★ 423% same
- sanmidable/skills★ 299% same
Wrote their own version · 4
- ingpoc/SKILLS★ 9same name
- ItamarZand88/design-skills★ 8same name
- sjyook/skills★ 2same name
- CanKStar0/GUIDELINES★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository19 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- figma-designSkill
- figma-designSkill
- accessibility-reviewSkill
- animateSkill
- better-accessibilitySkill
- better-colorsSkill
- better-layoutSkill
- better-typographySkill
- better-uiSkill
- breakSkill
- design-critiqueSkill
- design-handoffSkill
- design-systemSkill
- emil-design-engSkill
- frontend-designSkill
- research-synthesisSkill
- user-researchSkill
- ux-copySkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
28 rules. 0 are common, 20 are distinctive, and 8 are very specific to this project.
0
Common
Most of the 6 edited versions we read keep these.
20
Distinctive
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 8
Create a DESIGN.md for one product or coherent website.
- Distinctive: line 13
Use the DESIGN.md format contract below.
- Distinctive: line 14
Do not copy every discovered token or component into the document.
- Distinctive: line 15
Do not convert repetition, local styling, or visual preference into product intent.
- Very specific: line 21
Use when a local product repository is available.
- Distinctive: line 23
If the repository contains multiple deployable products, select the one named by the user.
- Very specific: line 29
Use when the user provides a public URL without its source repository.
- Distinctive: line 37
If rendered inspection is unavailable, ask for screenshots or source files.
- Distinctive: line 54
Write Markdown only after the normalized frontmatter passes.
- Distinctive: line 56
Never let repository or URL evidence introduce a second token schema.
- Distinctive: line 81
Prefer computed values and loaded CSS declarations over visual estimation.
- Distinctive: line 99
Write YAML only from named shared tokens and roles in governing sources.
- Very specific: line 103
Use mappings, never sequences, for token groups.
- Distinctive: line 111
Check the installed DESIGN.md specification before encoding theme modes:
- Very specific: line 138
Never emit URL-specific aliases such as family, size, weight, mobile-display, or nested sans/mono values inside a typography scale.
- Distinctive: line 151
If normalization would require inventing a token name, field, scale, or semantic relationship, omit the candidate.
- Distinctive: line 159
Start with the smallest valid frontmatter:
- Very specific: line 169
Only name is required. Add colors, typography, rounded, spacing, or components only when a governing source already defines that named …
- Distinctive: line 171
Use schema-shaped mappings, not copied source nesting.
- Very specific: line 183
Start with ## Overview. State only the product's purpose and evidenced design direction.
- Distinctive: line 192
Do's and Don'ts
- Distinctive: line 194
Do not create a section merely because it exists in the format.
- Distinctive: line 200
Put exact normative values in YAML frontmatter, except alternate-theme values when the installed specification cannot represent modes.
- Distinctive: line 201
Put supported rationale and application guidance in Markdown.
- Distinctive: line 203
Do not invent brand personality, audience, or emotional rationale.
- Very specific: line 204
Do not include citations, audit notes, rejected candidates, conflicts, or unresolved questions inside DESIGN.md.
- Distinctive: line 216
Run one final no-op pass: remove vague advice such as “be thorough,” “keep it polished,” or “use good judgment.” Keep only evidence gates, …
- Distinctive: line 236
When updating an existing document, preserve its original contents temporarily and run:
“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Create DESIGN.md
Create a DESIGN.md for one product or coherent website. Record the design language that governs it, not every value that happens to exist.
Boundaries
- Modify only
DESIGN.md. Do not change product source, dependencies, configuration, or generated files. - Use the DESIGN.md format contract below. Do not invent a competing schema.
- Do not copy every discovered token or component into the document.
- Do not convert repetition, local styling, or visual preference into product intent.
1. Choose the mode
Repository mode
Use when a local product repository is available. Create or update DESIGN.md at the root of the selected product.
If the repository contains multiple deployable products, select the one named by the user. If the request does not identify one and ownership is ambiguous, ask before writing.
Repository evidence may establish normative values, token names, component ownership, and documented rationale.
URL mode
Use when the user provides a public URL without its source repository. Create a reconstructed DESIGN.md draft in the current workspace.
URL mode requires rendered browser access. Inspect the DOM, computed styles, and publicly loaded stylesheets at desktop and mobile widths. Screenshots may support interpretation but cannot establish exact values by themselves.
Inspect the supplied page and shared chrome. For a site-wide request, sample up to three same-origin pages that represent distinct templates.
URL evidence may establish only observable visual patterns and computed values. It cannot establish internal token names, component ownership, undocumented rationale, or whether a pattern is intentionally canonical.
If rendered inspection is unavailable, ask for screenshots or source files. Do not create a DESIGN.md from copy, metadata, or HTML structure alone.
Choose repository mode whenever source is available. A supplied URL may verify rendered presentation but does not replace repository evidence.
Shared evidence pipeline
The modes differ only in how they collect evidence. They must use the same record and output pipeline:
role → value → source → scope → recurrence → confidence- Collect evidence using the selected mode.
- Record the source, scope, and recurrence for each candidate.
- Normalize candidates into the DESIGN.md schema.
- Omit candidates that are uncertain, local without a contract, or not implementation-relevant.
- Validate frontmatter shape and export compatibility.
- Write Markdown only after the normalized frontmatter passes.
Never let repository or URL evidence introduce a second token schema. The same flat token names, mapping-shaped typography, omission rules, and export gates apply to both modes.
The generated document is private until validation passes. Never return, display, or summarize a DESIGN.md draft before lint and export succeed. If validation reports an invalid shape or missing export category, rewrite the frontmatter and rerun; if the category cannot be repaired, remove it and report it as omitted.
2. Trace the evidence
In repository mode, inspect in this order:
- Existing
DESIGN.mdand explicit repository guidance - Tokens, themes, variables, and global styles
- Shared primitives and their variants
- Representative routes and rendered consumers
- Surface-local implementations
A source participates only when the selected product imports, references, inherits, or renders it. Exclude proposals, migrations, examples, generated outputs, legacy implementations, and similarly named packages unless the selected product uses them.
In URL mode, sample representative elements for:
- colors and surface roles
- typography roles
- spacing and layout
- borders, radii, and elevation
- navigation, buttons, inputs, cards, and repeated content structures
- desktop and mobile presentation
Prefer computed values and loaded CSS declarations over visual estimation.
Before drafting URL-mode prose or YAML, build a private evidence ledger for each sampled page and viewport. For each candidate, record: page, viewport, element role, computed property/value, and the matching loaded-CSS declaration or custom property when available. Inspect the public stylesheets loaded by the page, including custom properties and media-query rules; a stylesheet value is usable only when it is connected to a rendered element or recurs across the sampled pages.
Promote a URL value into DESIGN.md when either (a) the rendered computed value and a loaded declaration/custom property agree, or (b) the same computed value recurs for the same role across the required samples. If neither condition holds, omit the value. You may preserve an exposed custom-property name only when its declaration and rendered use are directly observable; do not invent semantic aliases from a raw value.
For every URL-mode claim, require all three proofs before writing it:
- Observation: the pattern or value is visible or computed on the rendered page.
- Basis: it is measured, or recurs across the required sampled pages/viewports.
- Consequence: it changes a concrete implementation choice in DESIGN.md.
If any proof is missing, omit the claim. Do not turn a visual impression into a token, a single occurrence into a site-wide rule, or a guessed value into YAML. Exact values require computed styles or loaded CSS; otherwise describe the role without a value or omit it.
3. Decide what belongs
In repository mode, find explicit product intent or a design reference before describing product character. In URL mode, do not invent product character; the Overview may state only the site's observable purpose and presentation, and must identify the document as reconstructed.
Write YAML only from named shared tokens and roles in governing sources. Do not turn utility classes, repeated literals, or component values into token scales.
Treat frontmatter shape as a hard gate, not a stylistic choice: a value that is a token group must be a mapping whose children are the schema's fields. Never emit scalar typography entries (sans: Geist), arbitrary nested source objects (font-family: { mono: ... }), or rounded keys copied from CSS variable names (radius-sm, radius-md, etc.).
Use mappings, never sequences, for token groups. When a governing source defines one group-level token such as --radius, normalize it to base; otherwise preserve the source token names.
Map source values into DESIGN.md schema fields. Preserve semantic token names, not source object nesting. For example, write typography.mono.fontFamily: Geist Mono, never typography.mono: Geist Mono; write rounded.base: 0.625rem when the source has only --radius, never rounded.radius or derived radius steps.
Resolve framework utilities through the active theme or configuration before writing exact values.
Identify the repository's export target before writing frontmatter: css-tailwind for Tailwind v4, json-tailwind for Tailwind v3, and dtcg otherwise. Token names must be valid for that target.
Check the installed DESIGN.md specification before encoding theme modes:
npx @google/design.md specIf the specification supports themes and default-theme, use its theme-aware token syntax. Otherwise, put the default-theme value under each canonical semantic token and preserve exact alternate-theme values in a ## Themes table. Do not create parallel -light and -dark token names, discard alternate-theme values, or use unreleased syntax. A fallback Themes table is documentation only; do not pretend it makes the frontmatter theme-aware.
In repository mode, every prose rule must be supported by explicit guidance, a named shared token or variant, or a shared owner used by at least two audited surfaces. Otherwise omit it.
In URL mode, every prose rule must be directly observable. A site-wide rule must recur across at least two sampled templates; otherwise scope it to the inspected page. Use reconstructed role-based names and label the document as a draft.
URL-mode YAML is intentionally sparse, but not empty when measured evidence exists. Add a category when at least one supported value or role survives the three-proof gate. Colors may use computed values or verified public custom properties, but must remain flat and export-safe; typography must use canonical fields such as fontFamily, fontSize, lineHeight, and fontWeight; rounded and spacing values must come from computed styles or loaded declarations. Do not create aliases such as primary, elevated, or display merely to organize observations. A component section requires the same interaction or surface treatment to recur across at least two sampled pages and to change a concrete implementation choice.
URL reconstruction does not change the frontmatter schema. Use only these typography property names: fontFamily, fontSize, lineHeight, fontWeight, and letterSpacing. For example:
typography:
sans:
fontFamily: Inter Variable
display:
fontFamily: Inter Variable
fontSize: 64px
lineHeight: 64px
fontWeight: 510Never emit URL-specific aliases such as family, size, weight, mobile-display, or nested sans/mono values inside a typography scale. Reconstructed role names may vary; schema field names may not.
For URL output, use css-tailwind as the compatibility export target unless the user specifies another target. Flatten reconstructed color roles into valid token names. Use background-primary, foreground-secondary, or border-muted, not nested keys such as background.primary or foreground.secondary. Every emitted token name must match ^[a-zA-Z0-9][a-zA-Z0-9-]*$; reject and rewrite any key that would fail this test.
Normalize URL frontmatter before writing any Markdown. The order is: collect evidence, choose the export target, map evidence into the canonical schema, reject invalid shapes, then write the document. Never draft prose first and retrofit the YAML afterward.
URL frontmatter must satisfy these shape rules:
colorsis a flat mapping of valid token names to values.typographyis a mapping of named scales; each scale is a mapping using only canonical fields.roundedandspacingare flat mappings of valid token names to values.componentsmay reference canonical token paths but may not introduce a second token schema.
If normalization would require inventing a token name, field, scale, or semantic relationship, omit the candidate.
Outside the Overview, every Markdown sentence must change an implementation choice. Delete component inventories, generic design advice, and prose that only restates YAML.
Preserve the scope and direction of every rule. When implementation conflicts with explicit guidance, document the guidance and report the conflict outside DESIGN.md.
4. Write the document
Start with the smallest valid frontmatter:
---
version: alpha
name: <string>
description: <string>
---Only name is required. Add colors, typography, rounded, spacing, or components only when a governing source already defines that named system or contract. Do not create token names to organize implementation values. Token references use {path.to.token}.
Use schema-shaped mappings, not copied source nesting. A typography scale is always named and maps its properties beneath it:
typography:
sans:
fontFamily: Geist
mono:
fontFamily: Geist MonoIf the source defines only --radius, write rounded.base, not rounded.radius; do not derive sm, md, lg, or xl from utility classes or repeated values. Before saving, inspect the parsed frontmatter and reject it yourself if any typography child is scalar or if rounded contains keys not present in the governing source.
Start with ## Overview. State only the product's purpose and evidenced design direction. Do not summarize pages, components, tokens, or implementation. Add only supported sections from this order:
- Colors
- Themes
- Typography
- Layout
- Elevation & Depth
- Shapes
- Components
- Do's and Don'ts
Do not create a section merely because it exists in the format. Do not reorder or duplicate included sections. Add an unknown section only when supported guidance cannot fit a standard section.
Markdown records design intent and application guidance. Except for the fallback ## Themes table, do not put token inventories, component configuration, source syntax, or documentation methodology in Markdown.
Include a Don't only when a governing source states an explicit prohibition.
- Put exact normative values in YAML frontmatter, except alternate-theme values when the installed specification cannot represent modes.
- Put supported rationale and application guidance in Markdown.
- Preserve accepted decisions from an existing
DESIGN.mdunless the user or current governing evidence replaces them. - Do not invent brand personality, audience, or emotional rationale.
- Do not include citations, audit notes, rejected candidates, conflicts, or unresolved questions inside
DESIGN.md.
Before saving, delete:
- any YAML token not already named by a governing source
- any page-local behavior presented as a product-wide rule
- any implementation pattern that conflicts with explicit guidance
- any prohibition not explicitly stated
- any exact implementation value outside YAML frontmatter or the fallback
## Themestable - any component configuration or documentation methodology in Markdown
- any sentence that does not change the resulting DESIGN.md
Run one final no-op pass: remove vague advice such as “be thorough,” “keep it polished,” or “use good judgment.” Keep only evidence gates, schema constraints, or application rules that change the document.
5. Validate
Run structural linting:
npx @google/design.md lint DESIGN.mdThen run one compatibility export using the target selected above:
npx @google/design.md export --format <format> DESIGN.mdInspect the output. Every populated frontmatter category supported by the target must emit its corresponding token category; an empty or missing category is a schema failure even when the command exits successfully. Rewrite the frontmatter and rerun validation until the category is emitted, unless the target genuinely cannot represent it. Do not report success while any populated category is missing from the export. Do not return the document while lint or export fails. Do not remove supported design information solely to satisfy an exporter limitation; report that limitation instead. Do not create or retain exported files.
For css-tailwind, verify these output families: colors → --color-*, typography.<name>.fontFamily → --font-*, typography.<name>.fontSize → --text-*, rounded → --radius-*, and spacing → --spacing-*. Typography entries are named scales; put fontFamily, fontSize, and lineHeight inside each scale, never under arbitrary source nesting such as font-family. If typography is populated but the export contains neither --font-* nor --text-*, the document is invalid and must be rewritten before reporting.
When updating an existing document, preserve its original contents temporarily and run:
npx @google/design.md diff <previous-file> DESIGN.mdRestore any removed accepted decision unless current governing evidence or the user explicitly replaces it.
6. Report
Return:
- mode and audited product or URL
- created or updated
DESIGN.md - governing sources used
- conflicts or unsupported areas omitted from the document
- final lint and export results
In URL mode, label the output as a reconstructed draft.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

