Capture Brand
A brand capture is evidence gathering first and design synthesis second. Build
an auditable kit that is enough to create a basic brand-inspired page, without
pretending to be the brand or copying protected product flows.
Workflow
Resolve the brand. If the user gave only a name, identify the official
domain before gathering assets. If the name is ambiguous, ask or present the
top candidates instead of guessing.
Prefer official evidence. Use user-provided guidelines/assets first,
then official brand, media, press, design-system, and website sources. Label
third-party sources as fallback evidence.
Capture the web surface. For a URL, run:
scripts/capture_web_brand.py https://example.com --out brand-capture
The script saves raw HTML/CSS, candidate assets, sources.md, and
tokens.raw.json. Use it as evidence, not as the final judgement. It
fetches with urllib (no JS execution), so on SPA or CSS-in-JS sites the
captured HTML/CSS is thin - expect to lean on rendered screenshots and
devtools inspection instead. For
Wayback or other archive URLs, prefer clean replay URLs such as if_ for
screenshots and inspection, and treat normal replay pages as potentially
contaminated by archive toolbar assets.
Inspect screenshots. Render with a real browser - playwright-cli (or
the Playwright MCP tools when available) - at roughly 1280px-wide desktop
and 390px-wide mobile viewports. Capture at least desktop and mobile when
the final deliverable is visual. Note responsive layout patterns and avoid
overfitting to one viewport.
Normalise the kit. Convert raw evidence into tokens.json,
brand-brief.md, and a local assets/ set. Keep unreviewed downloads under
raw/assets/candidates/; put only selected, renamed assets in
assets/{logos,icons,images,screenshots}. Cite the source for every major
colour, font, logo, image, and style claim.
Hand off a page brief. If the user wants a page recreation, produce a
neutral brand-inspired layout brief or implementation. Do not copy
trust-sensitive flows (login, payment, checkout, … - full list in
references/safety.md).
Verify. Check files open, sources are traceable, tokens.json is valid
JSON, local asset paths exist, fonts are usable or have fallbacks, and the
final page reads as inspired by the brand rather than a pixel copy.
Output Contract
Create or update a brand-capture/ folder following the layout in
references/token-schema.md (Folder contract).
tokens.json is the compact handoff file. brand-brief.md explains what to
use, what to avoid, confidence levels, and source citations. verification.md
records checks run and any remaining unknowns.
Use these confidence labels:
confirmed: observed in official guidelines or current official website
likely: inferred from repeated official evidence
fallback: from third-party source or weak official signal
unknown: not found or too ambiguous to call
Evidence Rules
- Never rely on memory for current logos, colours, or typography.
- Never treat image search as authoritative.
- Never use a third-party logo when an official current asset is available.
- Keep raw captures separate from the final curated assets.
- Preserve original filenames where useful, but rename curated assets by role
(
logo-primary.svg, favicon-32.png, og-image.png).
- If the brand uses a paid or proprietary font, record it and choose legal
fallbacks unless the user supplies licensed files.
- If an API or third-party source is useful, check its current docs and terms
during the task; do not assume cached endpoint behaviour.
Boundaries
Allowed: mood, palette, typography direction, spacing/radius/elevation cues,
logo placement in neutral contexts, and simple page/component styling.
Constrain or refuse: deceptive clones, fake affiliation, credential capture,
payment/account flows, exact replicas, counterfeit goods, impersonation, and
use of marks in ways that imply endorsement. When the user likely owns the
brand or provides official assets, continue but still keep source notes.
References
| Need |
Read |
| Source priority, ambiguity, third-party services, citation rules |
references/source-priority.md |
| Token schema and final folder contract |
references/token-schema.md |
| Trademark, copyright, phishing, and exact-copy boundaries |
references/safety.md |
| Turning the kit into a basic page without cloning |
references/frontend-handoff.md |
| Forward-test prompts and expected behaviours |
references/evals.md |
1---2name: capture-brand3description: Captures a brand kit from a company or product name, domain, URL, website, or brand-guidelines link: official source resolution, logos, favicons, social images, screenshots, colours, typography, visual style notes, design tokens, and a basic on-brand page brief. Use when the user asks to copy, capture, match, recreate, clone the vibe of, extract tokens/assets from, or make a page feel on-brand from a web link or just a brand name. Not for phishing, fake affiliation, counterfeit pages, or exact replicas of protected flows.4---5
6# Capture Brand
7
8A brand capture is evidence gathering first and design synthesis second. Build
9an auditable kit that is enough to create a basic brand-inspired page, without
10pretending to be the brand or copying protected product flows.
11
12## Workflow
13
141. **Resolve the brand.** If the user gave only a name, identify the official
15 domain before gathering assets. If the name is ambiguous, ask or present the
16 top candidates instead of guessing.
172. **Prefer official evidence.** Use user-provided guidelines/assets first,
18 then official brand, media, press, design-system, and website sources. Label
19 third-party sources as fallback evidence.
203. **Capture the web surface.** For a URL, run:
21
22 ```bash
23 scripts/capture_web_brand.py https://example.com --out brand-capture
24 ```
25
26 The script saves raw HTML/CSS, candidate assets, `sources.md`, and
27 `tokens.raw.json`. Use it as evidence, not as the final judgement. It
28 fetches with urllib (no JS execution), so on SPA or CSS-in-JS sites the
29 captured HTML/CSS is thin - expect to lean on rendered screenshots and
30 devtools inspection instead. For
31 Wayback or other archive URLs, prefer clean replay URLs such as `if_` for
32 screenshots and inspection, and treat normal replay pages as potentially
33 contaminated by archive toolbar assets.
344. **Inspect screenshots.** Render with a real browser - `playwright-cli` (or
35 the Playwright MCP tools when available) - at roughly 1280px-wide desktop
36 and 390px-wide mobile viewports. Capture at least desktop and mobile when
37 the final deliverable is visual. Note responsive layout patterns and avoid
38 overfitting to one viewport.
395. **Normalise the kit.** Convert raw evidence into `tokens.json`,
40 `brand-brief.md`, and a local `assets/` set. Keep unreviewed downloads under
41 `raw/assets/candidates/`; put only selected, renamed assets in
42 `assets/{logos,icons,images,screenshots}`. Cite the source for every major
43 colour, font, logo, image, and style claim.
446. **Hand off a page brief.** If the user wants a page recreation, produce a
45 neutral brand-inspired layout brief or implementation. Do not copy
46 trust-sensitive flows (login, payment, checkout, … - full list in
47 `references/safety.md`).
487. **Verify.** Check files open, sources are traceable, `tokens.json` is valid
49 JSON, local asset paths exist, fonts are usable or have fallbacks, and the
50 final page reads as inspired by the brand rather than a pixel copy.
51
52## Output Contract
53
54Create or update a `brand-capture/` folder following the layout in
55`references/token-schema.md` (Folder contract).
56
57`tokens.json` is the compact handoff file. `brand-brief.md` explains what to
58use, what to avoid, confidence levels, and source citations. `verification.md`
59records checks run and any remaining unknowns.
60
61Use these confidence labels:
62
63- `confirmed`: observed in official guidelines or current official website
64- `likely`: inferred from repeated official evidence
65- `fallback`: from third-party source or weak official signal
66- `unknown`: not found or too ambiguous to call
67
68## Evidence Rules
69
70- Never rely on memory for current logos, colours, or typography.
71- Never treat image search as authoritative.
72- Never use a third-party logo when an official current asset is available.
73- Keep raw captures separate from the final curated assets.
74- Preserve original filenames where useful, but rename curated assets by role
75 (`logo-primary.svg`, `favicon-32.png`, `og-image.png`).
76- If the brand uses a paid or proprietary font, record it and choose legal
77 fallbacks unless the user supplies licensed files.
78- If an API or third-party source is useful, check its current docs and terms
79 during the task; do not assume cached endpoint behaviour.
80
81## Boundaries
82
83Allowed: mood, palette, typography direction, spacing/radius/elevation cues,
84logo placement in neutral contexts, and simple page/component styling.
85
86Constrain or refuse: deceptive clones, fake affiliation, credential capture,
87payment/account flows, exact replicas, counterfeit goods, impersonation, and
88use of marks in ways that imply endorsement. When the user likely owns the
89brand or provides official assets, continue but still keep source notes.
90
91## References
92
93| Need | Read |
94|---|---|
95| Source priority, ambiguity, third-party services, citation rules | `references/source-priority.md` |
96| Token schema and final folder contract | `references/token-schema.md` |
97| Trademark, copyright, phishing, and exact-copy boundaries | `references/safety.md` |
98| Turning the kit into a basic page without cloning | `references/frontend-handoff.md` |
99| Forward-test prompts and expected behaviours | `references/evals.md` |