awwwards-design-md
Create an evidence-backed DESIGN.md for any public website URL. Use when asked to extract a site's design system, colors, typography, spacing, radii, shadows, components, or to generate a design.md compatible with Google's design.md format. Composes the awwwards MCP inspection/capture tools; does not invent brand intent, source token names, or unobserved states.
How do I install this agent skill?
npx skills add https://github.com/insane0777/awwwards-skills --skill awwwards-design-mdIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill is safe to use. It provides a structured workflow for extracting design tokens and system information from public websites using specialized Awwwards MCP tools. It includes comprehensive local validation scripts that employ safe parsing techniques and utilizes linting tools from trusted organizations.
- Socketpass
No alerts
- Snykwarn
Risk: MEDIUM · 1 issue
What does this agent skill do?
Awwwards DESIGN.md
Build a DESIGN.md plus a machine-readable design-evidence.json from a single public page. The document is a cited subset of what was observed, not an official brand system or the site's original source tokens.
Before starting
Require:
- an absolute public
http(s)URL; - the awwwards MCP available in the current agent;
- Playwright installed for the browser tools.
Supported inputs:
url: required, absolute public http(s) URL
outDir: optional, default current directory
viewport: desktop (default) or mobile
One URL and one viewport per run. No crawling, login, authenticated pages, asset downloads, or automatic motion recording.
If publicOnly is unavailable on the installed awwwards-mcp version, stop.
Do not replace it with an unguarded capture. The skill requires the guarded
capability added for arbitrary public URLs.
Workflow
Use full-profile tools. For the v2 surface, use the equivalents in
v2-routing.md; do not mix profiles.
- Guard check — call
export_design_tokenswithpublicOnly:true,selector:"body", the requested viewport, andmaxNodes:800. A refusal is final: reportBLOCKED_DESTINATIONorINVALID_URL. - Structure — call
analyze_page_structurewithpublicOnly:true,maxBands:20, and the same viewport. - Screenshot — call
capture_live_sitewithpublicOnly:true,inline:false, and the same viewport. Inspect the saved image yourself before writing visual claims. - Components — choose up to three representative roots from the observed
structure. Call
capture_componentwithpublicOnly:true,maxNodes:150,maxDepth:12, andcompact:false. Do not guess selectors that the structure capture did not show. - Write — fill
DESIGN.mdusing the template below anddesign-evidence.jsonusing the evidence contract. - Validate — run the bundled validator. Optionally run Google's linter.
- Report — summarize what was captured, what was omitted, and every inconclusive or blocked step.
Do not continue after a failed guard, robots block, navigation failure, or missing required evidence. Report the failure instead.
Evidence rules
Classify every material statement:
- observed — directly present in a tool response, screenshot, or node.
- inferred — a grouping or name derived from observed values.
- proposed — a recommendation for the user's project.
Never label inferred/proposed values observed. Never claim:
- an official brand system;
- recovered original token names;
- complete responsive, hover, focus, or dark-mode coverage;
- accessibility compliance;
- rights to reuse assets;
- pixel-perfect reconstruction.
Every design value in the document needs a claim in the sidecar with:
{
"id": "color-1",
"value": "#111111",
"classification": "observed",
"artifactId": "tokens",
"path": "/tokens/colors/0",
"property": "color",
"viewport": "desktop",
"state": "default",
"method": "computed-style aggregate",
"sampleCount": 37,
"limitations": []
}
path is a JSON pointer into the captured tool response or a node path in a
component pack. It is not a guaranteed reusable CSS selector.
DESIGN.md template
Use this exact section order. Keep the YAML front matter valid.
---
version: alpha
name: <site title or host>
description: <one sentence: what this page appears to be>
colors: {}
typography: {}
rounded: {}
spacing: {}
components: {}
---
## Overview
<What was observed. One paragraph. Cite sources inline as [S1], [S2].>
## Colors
<Observed palette with counts. Distinguish page background, text, accents.>
## Typography
<Families, weights, sizes, line heights, letter spacing. Do not merge
independently aggregated values into a heading style unless a component
capture proves that tuple.>
## Layout
<Section bands, max widths, spacing rhythm, grid/flex evidence.>
## Elevation & Depth
<Shadows, borders, overlays, z-index evidence. Omit with a reason when absent.>
## Shapes
<Radii, borders, icon/button shapes.>
## Components
<Up to three components. For each: observed selector, node path, size,
typography tuple, colors, spacing, border/radius/shadow, states actually seen.>
## Do's and Don'ts
<Only rules grounded in observed evidence or clearly marked proposals.>
## Sources
- [S1] `export_design_tokens` — `<redacted URL>` — `<capturedAt>` — `<artifactId>`
- [S2] `analyze_page_structure` — ...
- [S3] `capture_live_site` — `<saved file>`
- [S4] `capture_component` — `<selector>` — `<node path>`
## Coverage and limitations
<What was not observed; mobile/dark/hover/state gaps; truncation; blocked
resources; robots/auth restrictions.>
## Unresolved details
<Values the evidence cannot establish. Never fill these with guesses.>
Keep DESIGN.md at or below 24 KiB UTF-8.
design-evidence.json
{
"schemaVersion": "awwwards-design-evidence-v1",
"requestedUrlHash": "<sha256 of the requested URL>",
"redactedFinalUrl": "<origin+pathname>",
"capturedAt": 0,
"viewport": "desktop",
"toolVersion": "<installed awwwards-mcp version>",
"captures": [
{
"id": "tokens",
"tool": "export_design_tokens",
"artifactId": "tokens",
"capturedAt": 0,
"sha256": "<sha256 of the canonical tool JSON>",
"artifactPath": "tokens.json",
"coverage": "<complete|partial|unknown>",
"limitations": []
}
],
"claims": [],
"omissions": [],
"validation": {
"documentBytes": 0,
"sidecarBytes": 0,
"localValidator": "pass",
"googleLint": "not-run"
}
}
Every capture record must correspond to a real tool response saved next to the
sidecar (artifactPath); its SHA-256 must match that file, and every claim
path must resolve in the saved response. Keep the sidecar at or below
256 KiB. Never embed screenshots as base64 in Markdown; reference the saved
file path.
Validation
From the installed skill directory:
node scripts/validate-design-md.mjs DESIGN.md design-evidence.json
The validator needs Node 22+, Python 3, and PyYAML
(pip install pyyaml), because it parses the front matter with a real YAML
parser instead of guessing. If Python/PyYAML is unavailable, use Google's
linter below as the YAML check and keep the rest of the manual review.
Optional Google-format validation:
npx --yes --package="@google/design.md" designmd lint DESIGN.md
Lint success proves document structure, not extraction accuracy. Manually check at least ten emitted values against the tool responses and screenshot.
Stop conditions
Return a short failure report, not a document, for:
INVALID_URL— not absolute public http(s);BLOCKED_DESTINATION— private/loopback/metadata/reserved host;ROBOTS_DISALLOWEDorROBOTS_UNAVAILABLE— when the MCP reports it;PAGE_BLOCKEDorTIMEOUT;- missing tokens/structure with no usable screenshot;
- a component capture that cannot identify a real root.
Do not
- Do not call
create_design_briefas a substitute: it takes Awwwards slugs and synthesizes direction, not arbitrary-URL source evidence. - Do not add a dedicated
get_design_mdtool or claim one exists. - Do not crawl multiple pages, download assets, or bypass authentication.
- Do not invent CSS variables, source token names, or states.
- Do not write
DESIGN.mdfrom memory or from the screenshot alone.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/insane0777/awwwards-skills/awwwards-design-md">View awwwards-design-md on skillZs</a>