danpeg/visual-research/visual-research
Claude Code and agent skill by danpeg/visual-research
- community
Checking that the SKILL.md file is still in the repository.
This skill should be used when analyzing a competitor's brand identity, auditing visual brand elements, researching brand positioning, comparing brand aesthetics, evaluating competitor design language, or conducting systematic visual research on brand identity, logo systems, color palettes, or design patterns for competitive analysis. Triggers on: 'research [brand]', 'visual research', 'brand research', 'brand visual audit', 'competitor visual analysis', 'analyze [brand] identity', 'brand audit', 'visual identity analysis', 'find images for [brand]', 'capture [brand] social'.
Install
npx vskill@latest install danpeg/visual-research/visual-researchSKILL.md
Visual Research
Full-pipeline skill for researching a brand's visual identity, capturing imagery from every available source, and packaging it into a branded HTML report with a 13-section competitive analysis.
Setup
Before starting, check available tools and build a capabilities report.
Required:
curl— Instagram API calls, direct image downloads. Pre-installed on macOS/Linux.
Recommended (API keys):
| Key | What it powers | Phase | Fallback | |
|---|---|---|---|---|
GEMINI_API_KEY | Gemini Vision — color extraction, composition analysis from captured images | Analyze | Claude's built-in vision via Read tool. Good quality, Gemini preferred for batch processing |
Check: echo $GEMINI_API_KEY
Optional (CLI tools):
| Tool | What it powers | Phase | Install | Fallback | |
|---|---|---|---|---|---|
| Playwright | Full-page screenshots of websites, social grids, app stores | Capture | npx playwright install chromium | web_fetch for text content. Loses visual capture | |
| yt-dlp | YouTube/TikTok video thumbnails | Extract | pip3 install yt-dlp | web_search for campaign stills from press | |
| Scrapling | Anti-bot scraping for protected sites | Capture/Extract | pip3 install scrapling | web_fetch — works for most sites |
Check each: which playwright, which yt-dlp, python3 -c "import scrapling" 2>/dev/null && echo ok
Setup behavior:
- Check each prerequisite and report what's available
- For missing items, explain what the user loses and how to install
- If anything is missing, STOP and wait for the user to confirm before proceeding. Present a clear summary like:
``` Ready: Playwright, yt-dlp, curl Missing: GEMINI_API_KEY (vision analysis will use Claude instead) Scrapling (will use web_fetch fallback)
Install now, or proceed with what's available? ```
Do NOT continue to Phase 1 until the user explicitly says to proceed.
If everything is available, report the green status and proceed directly to Phase 1 — no confirmation needed.
- Record the capabilities in the output document's Setup section
Source Selection
After Setup confirms tool availability, present the user with source choices before starting the pipeline. Use AskUserQuestion with multiSelect: true to let the user pick which sources to research.
Always included (not selectable): Website homepage + hero image pipeline (~20K tokens). This is the core of any brand research.
Present these 3 questions in a single AskUserQuestion call:
Question 1 — Social sources (header: "Social", multiSelect: true):
| Option label | Description | |
|---|---|---|
| 12 recent posts + engagement data (~30K tokens) | ||
| TikTok | Grid screenshot + video thumbnails (~12K tokens) | |
| YouTube | Channel page + video thumbnails (~12K tokens) | |
| X / Twitter | Profile + recent posts (~8K tokens) |
Question 2 — Design/industry sources (header: "Design", multiSelect: true):
| Option label | Description | |
|---|---|---|
| Agency case studies | Behance/Dribbble portfolios + CMS image extraction (~25K tokens) | |
| Brand New | Under Consideration rebrand articles + imagery (~15K tokens) | |
| Awwwards | Website design showcase screenshots (~12K tokens) | |
| Trade press | It's Nice That, Creative Review, The Drum (~15K tokens) |
Question 3 — Other sources (header: "Other", multiSelect: true):
| Option label | Description | |
|---|---|---|
| App Store | iTunes API — app screenshots + icon (~10K tokens) | |
| Press / media kit | Brand's /press, /newsroom pages for hi-res assets (~12K tokens) | |
| Financial data | SEC filings, Crunchbase, revenue/metrics (~10K tokens) |
After the user responds, record the selected sources as the Source Plan. Before starting Phase 1, print the Source Plan and total estimated token cost:
Token estimates are approximate — actual usage varies by brand (a Fortune 500 with extensive press coverage will use more tokens than a small startup). Estimates are based on: web searches ~2-3K tokens each, web fetches ~5-20K, image vision analysis ~2-5K per image.
Input
Accept a brand config inline or as JSON:
If the user provides just a brand name, discover the rest during Phase 1.
Pipeline
Phase 1 — Discover
Source gating: Only run searches for sources included in the Source Plan. Skip discovery for deselected sources (e.g., don't search for agency case studies if "Agency case studies" was not selected).
Find agency relationships, campaigns, and source URLs.
Read references/source-discovery-guide.md for detailed search strategies.
Core searches:
Check the brand's press room (/press, /newsroom, /media). Verify social handles exist and are public.
Output: List of source URLs for capture, confirmed social handles, agency identification.
Phase 2 — Capture
Source gating: Only capture sources included in the Source Plan. Always capture the website homepage. Skip social platform screenshots for deselected platforms.
Screenshot key brand touchpoints. Output to captures/ directory.
If Playwright is available:
Also capture: app store pages, campaign pages, and agency case study pages found in Phase 1.
Cookie consent / overlay dismissal: Third-party pages (agency portfolios, press sites, campaign microsites) almost always show cookie consent banners that will contaminate screenshots. Before capturing any third-party page, dismiss overlays:
When using playwright screenshot CLI (not scripted), add a wait and use --timeout to allow the page to settle, but note the CLI cannot dismiss banners. For pages known to have consent modals, prefer scripted Playwright over the CLI command.
Without Playwright: Use web_fetch to grab page content as text. Note visual capture was skipped.
Phase 3 — Extract
Source gating: Only extract images from sources included in the Source Plan. Always extract the hero image and logo. Skip deselected sources (e.g., skip Instagram API if Instagram was not selected, skip App Store if not selected).
Pull actual images from APIs and CDNs.
Read references/image-extraction-techniques.md for detailed recipes.
Core extractions:
Hero Image Sourcing (Priority — Slot 0)
The hero image is the most important visual in the report. It must be:
- High resolution (minimum 1200px wide, ideally 1600px+)
- Brand-representative — shows the brand's actual visual identity, not just something with the logo on it
- Professionally produced — press photos, campaign key art, homepage heroes. Not phone photos, not user-generated content
- Compositionally suitable — works at 16:9 aspect ratio with a gradient overlay on the left 40% (text will sit there)
Search in this priority order, collecting candidates into `hero-candidates/`:
- Homepage hero image
- Use Playwright to screenshot the above-the-fold hero section
- Also extract the actual image URL from the page source (look for hero/banner container
<img>tags, CSSbackground-image,<video poster>) - Apply resolution maximizer (see below) to get the full-size asset
- Check if the CMS (DatoCMS, Contentful, Prismic, Sanity) exposes the raw asset URL without resize params
- Press/media kit hero imagery
- Check
/press,/newsroom,/media,/brandpages for downloadable high-res imagery - Look for "brand assets" or "media kit" download links
- Press photos from product launches or conferences are often the highest quality
- Agency case study hero
- Behance/Dribbble case studies typically lead with a hero image that the agency art-directed
- These are purpose-built to showcase the brand's visual identity at its best
- Apply resolution maximizer to Prismic/Sanity/CMS URLs
- Brand New (Under Consideration) hero
- Rebrand articles often lead with a high-quality hero image showing the new identity (800–2000px)
- Best for brands that have undergone a major visual refresh
- Before/after comparison images are also strong hero candidates
- Campaign key art
- Search:
web_search "[Brand] campaign key art [Year]" - Search:
web_search "[Brand] brand campaign hero image" - Trade press (It's Nice That, Creative Review, The Drum) often publishes agency-supplied high-res campaign imagery
- Conference/event photography from the brand's own events
- Awwwards project screenshots
- Website showcases include 1600×1200 project screenshots
- Good when the brand's digital presence is its strongest visual expression
- Newer projects (2022+) are best quality
- Product marketing screenshots
- Product pages often have polished, art-directed hero shots
- App Store screenshots via iTunes Search API (1242×2208 iPhone) — no auth needed
- Marketing landing pages for specific features/products
- Social media — last resort only
- Only if nothing above yields a usable image
- Prefer official brand posts over user photos
- Instagram carousel first slides are usually highest production value
- Avoid: phone photos, UGC, nighttime shots, grainy/compressed images
Selection criteria — choose the best candidate:
| Criterion | Weight | What to check | |
|---|---|---|---|
| Resolution | High | Must be ≥1200px wide. Prefer ≥1600px | |
| Brand representation | High | Does it show the brand's visual identity system (colors, style, aesthetic)? | |
| Production quality | High | Professional photography/design, not phone shots | |
| Composition | Medium | Works at 16:9 with left-side overlay? Subject on right half preferred | |
| Recency | Medium | Current branding, not a 5-year-old campaign | |
| Uniqueness | Low | Not a generic stock photo or widely-circulated press image |
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingSKILL.md
Popularity
- Repository stars
- 4
- Repository forks
- 1
- 7-day trend score
- 8
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/danpeg/visual-research/visual-research)