brand — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited brand (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
One-time setup workflow. Run this when a student provides their brand's website URL and wants to get started.
The output is two things:
brand-identity/visual-guidelines.md — brand colours, typography, photography style, packaging, ad creative style, and a ready-to-use prompt modifierbrand-identity/products.json + product-images/ folder — product manifest and images downloaded from the brand's websiteIdentity files save to ./brands/[brand-name]/brand-identity/. Product images save to ./brands/[brand-name]/product-images/.
Use WebFetch to load the brand's homepage first. Then run targeted searches to fill in what the site doesn't show directly. Work through all three stages before writing anything.
Fetch the brand URL. Read it before any external searches — this gives you a baseline impression that external sources can then sharpen.
Run targeted searches to fill in what the site doesn't tell you directly:
"[Brand] font", "[Brand] typeface", "what font does [Brand] use" — you need exact names, not descriptions"[Brand] hex codes", "[Brand] brand colors", "[Brand] color palette" — get the actual hex values"[Brand] design agency", "[Brand] branding case study", "[Brand] rebrand" — knowing who built the identity often unlocks precise language about it"[Brand] brand guidelines", "[Brand] press kit", "[Brand] style guide", "[Brand] media kit" — these occasionally surface publicly"[Brand] founding story", "[Brand] brand story", "[Brand] mission" — needed for voice and copy directionIdentify 2–3 direct competitors. For each, note one specific visual or positioning choice that sets this brand apart from them. One sentence per competitor is enough — this shapes how the prompt modifier frames the brand's distinctiveness.
Create the brand-identity folder first:
mkdir -p ./brands/[brand-name]/brand-identitySave the research as ./brands/[brand-name]/brand-identity/visual-guidelines.md.
Use this exact structure:
# [Brand Name] — Visual Guidelines
## Brand identity
**Name:** [Brand name as styled — e.g. all-caps, lowercase, etc.]
**Tagline:** [if there is one]
**Design agency:** [if known]
**Positioning:** [One sentence: who it's for, what it does, how it sounds]
**Voice:** [5 precise adjectives, comma-separated]
**What sets it apart:** [One sentence per closest competitor — what visually or positionally distinguishes this brand from each]
## Colour palette
- **Primary:** [name] — #XXXXXX
- **Secondary:** [name] — #XXXXXX
- **Accent:** [name] — #XXXXXX
- **Background:** [description] — #XXXXXX (list all backgrounds the brand uses)
- **CTA / button:** [fill colour #XXXXXX] / [text colour #XXXXXX] — [button style: shape, radius, weight]
## Typography
- **Headline:** [typeface name] — [weight range, e.g. 400–900]
- **Body / UI:** [typeface name] — [style, e.g. monospaced, regular]
- **Treatment:** [distinctive choices — all-caps, tight tracking, loose leading, etc.]
## Photography style
- **Lighting:** [quality and source — hard or soft, natural or studio, direction if consistent]
- **Colour grade:** [temperature, saturation, contrast, any film quality — be specific: "matte, dusty-warm midtones" not just "warm"]
- **Composition:** [typical framing, subject placement, negative space]
- **What appears in frame:** [subjects, body language, props, styling — what is and isn't present]
- **Surfaces and backgrounds:** [materials, textures, settings — e.g. bare earth, white cyclorama, concrete]
- **Overall mood:** [5 adjectives that describe the feeling of the imagery]
## Packaging & product
- **Physical form:** [shape, size, material, finish — matte/gloss/soft-touch]
- **Label and logo placement:** [where branding sits — stealth, chest hit, internal, etc.]
- **Distinctive visual features:** [anything that makes the packaging or product immediately recognisable]
- **Product system:** [how the range is unified visually — shared palette, naming system, material language, etc.]
## Ad formats & creative style
- **Formats:** [what formats they run — Instagram feed, Stories, editorial, OOH, etc.]
- **Text on image:** [how copy is used — sparingly, typeface, colour, placement, scale]
- **Photo vs illustration:** [photography only, or mixed — and what kind]
- **UGC:** [whether creator content appears in paid creative, and how it's treated]
- **Pricing and offers:** [how pricing, shipping, and discounts are presented — or deliberately not presented]
## Prompt modifier
[A single paragraph, 50–75 words. Written to open any image generation prompt — this is what gets pasted directly into creative workflows. Must lock in: exact hex values, precise lighting direction, colour grade description, surfaces and backgrounds, mood in 3 adjectives, any hard visual rules. The image model reads this first — it needs to be specific enough to constrain the output, not just describe it.]Before downloading anything, fetch the brand's product list. For Shopify brands, try:
[brand-url]/products.json?sort_by=best-selling&limit=20Or use WebFetch on the brand's shop/collections page and extract product names from the HTML.
Present the list to the user:
Found 20 products on [brand]. Here are the top best sellers:
1. Linea Jacket — Tobacco
2. Cowboy Denim — Carbon
3. Everyday Pleats — Olive
...
Which of these would you like to download? You can:
• Say "all" to download all 20
• List specific numbers or names
• Skip this and add images manually (see below)Create a clean, empty folder ready for images:
mkdir -p ./brands/[brand-name]/brand-identity/product-imagesIf the folder already exists and has files in it, warn the user before proceeding — don't overwrite without confirmation.
Tell the user:
"Your product images folder is ready at: brands/[brand-name]/brand-identity/product-images/>
You can also add images here manually at any time — just drop them in and name them clearly (e.g.linea-jacket-tobacco.jpg,cowboy-denim-carbon.png). Use lowercase, hyphens, no spaces."
If the user wants to download from the site:
Run the scraper from inside brand-identity/ so both product-images/ and products.json land in the right place:
cd ./brands/[brand-name]/brand-identity && python3 ../../../skills/references/brand.py --scrape [brand-url]This saves:
./brands/[brand-name]/brand-identity/product-images/./brands/[brand-name]/brand-identity/products.jsonIf the scraper fails (non-Shopify site, heavy JS rendering): Tell the user and fall back to manual: ask them to drop images into brand-identity/product-images/ and confirm when done. Then write brand-identity/products.json by hand from the filenames present.
If the user wants to add images manually: Tell them the folder is ready, remind them to name files clearly (lowercase, hyphens), and wait for them to confirm when done. Then scan the folder and write brand-identity/products.json from what's there.
When both files are saved, give the student a short summary:
Then tell them: they're ready to start creating. Point them to the next lesson.
satisfy-running, glossier, their-brand~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.