Visual Brand Extractor
Extract a client's visual identity from their website and convert the findings into reusable brand artifacts. The runbook uses web page content, CSS, metadata, and visible design patterns to identify color roles, font pairings, layout conventions, and the overall visual direction
8 steps · start to finish.
- 1Step 1
Environment Setup
▶- Create the results directory and confirm the required inputs are present.
- Normalize the client name into a filesystem-safe slug for internal references.
- Initialize a validation log with setup status and resolved parameters.
mkdir -p /app/results python - <<'PY' import json, pathlib required = ["WEBSITE_URL", "CLIENT_NAME"] missing = [name for name in required if not globals().get(name)] pathlib.Path("/app/results/setup_check.json").write_text(json.dumps({"missing": missing}, indent=2)) PYIf a required input is missing, stop after writing
/app/results/validation_report.jsonwithoverall_passed=false. - 2Step 2
Fetch Target Pages
▶Fetch the client's homepage first, then inspect up to `max_pages` additional pages that best expose product UI, pricing, docs, case studies, or marketing layouts. Prefer canonical public pages and same-origin CSS. Record each fetched URL, HTTP status, content type, and whether th
- 3Step 3
Extract Color Palette
▶Inspect CSS custom properties, meta theme colors, explicit CSS color declarations, utility classes, inline styles, and visible page screenshots or rendered styles when available. Group colors into roles:
- 4Step 4
Extract Typography
▶Identify font sources from CSS imports, `@font-face`, Google Fonts links, CSS variables, and computed font-family declarations. Separate display and body typography when the evidence supports it. When proprietary fonts appear, choose practical fallbacks and explain the substituti
- 5Step 5
Analyze Visual Patterns
▶Summarize layout density, corner radius, border usage, shadow treatment, image style, icon style, animation tendencies, CTA shape, and spacing rhythm. Synthesize the brand vibe in concrete design language that can guide slide and asset generation without relying on vague adjectiv
- 6Step 6
Generate Brand Artifacts
▶Write the required artifacts:
- 7Step 7
Validate Artifacts
▶Run structural checks before finishing:
- 8Step 8
Iterate on Errors (max 3 rounds)
▶If validation fails, perform a targeted correction and re-run Step 7. Limit the repair loop to max 3 rounds. If JSON is invalid, fix only the malformed artifact. If a file is missing, regenerate only that file from the existing extraction notes. If the confidence is low because s