brand-consistency
Maintain visual coherence across a multi-asset brand set (logo + app icon + favicon + illustrations).
Skill by MohamedAbdallah-14
Chalk Labs
Need help deploying brand-consistency?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/mohamedabdallah-14-brand-consistency
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/brand-consistency
What's inside
- Skill name
brand-consistency- Description
- Maintain visual coherence across a multi-asset brand set (logo + app icon + favicon + illustrations). Builds BrandBundle (palette, typography, style refs, do-not list), enforces palette per model (Recraft `controls.colors`, Midjourney `--sref`, IP-Adapter, LoRA), validates style similarity with CSD and palette ΔE2000, and promotes accepted assets into the reference set so each new generation tightens the lock.
- License
- MIT
- Instructions
- 133 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Brand consistency
Engaged when a user is generating more than one asset for the same brand, or when an existing `brand.json` / `brand.md` is in play. Wraps `asset_brand_bundle_parse`, `asset_generate_*`, and validation.
## BrandBundle shape
```yaml
palette:
- { name: primary, hex: "#0A1F44", usage: mark }
- { name: accent, hex: "#FF6B6B", usage: highlight }
- { name: neutral, hex: "#FAFAFA", usage: background }
typography:
primary: { family: "Geist Sans", fallback: "geometric sans-serif, bold" }
secondary: { family: "Geist Mono", fallback: "monospace" }
style_refs: ["assets/brand/ref-1.png", "assets/brand/ref-2.png"]
lora: "assets/brand/brand.safetensors" # optional Flux/SDXL
sref_code: "--sref 1234567890" # optional Midjourney
style_id: "uuid-of-recraft-style" # optional Recraft
do_not: ["drop shadows", "gradients", "photorealism"]
logo_mark: "assets/brand/mark.svg" # canonical mark for composition
```
Call `asset_brand_bundle_parse({ source })` to build this from a `brand.md`, `brand.json`, DTCG `tokens.json`, or AdCP spec.
## Palette enforcement per model (strongest → weakest)
| Provider | Mechanism | ΔE2000 typical |
|---|---|---|
| Recraft V3/V4 | `controls.colors: ["#hex", …]` (hard enforcement) | 1–5 |
| Flux.2 | JSON `color_palette: ["#hex", …]` | 3–7 |
| Ideogram 3 | `style_reference_images` (palette swatch PNG) or `style_codes` | 5–10 |
| Midjourney | prose color words + `--sref <id> --sw 250–400` | 5–12 |
| gpt-image-1 | hex codes in prose, reinforced 2–3× | 5–15 |
| SDXL / Flux.1 | hex in prose + IP-Adapter palette swatch | 5–15 |
| Imagen / Gemini | prose + post-process recolor | 10–20 (post-fix required) |
**Fallback that always works:** K-means remap in LAB space + ΔE2000 validation. `asset_validate` flags drift; post-process recolors nearest palette entries.
## Style reference management
- **Canonical anchor** — one `.png` or `.svg` that defines the brand look. Required for consistency across >3 assets.
- **Accepted-asset promotion** — after an asset passes validation + user acceptance, add it to `style_refs[]` so subsequent generations see richer brand context.
- **CSD similarity score** — Contrastive Style Descriptor embedding comparison. Threshold: ≥0.72 pass, 0.60–0.72 review, <0.60 fail. Tier-2 validation.
- **Model-specific handles:**
- Midjourney: `--sref <image>` (loose) vs `--cref <image>` (character lock) vs `--mref <image>` (object lock). Use `--sw 250` for tight style, `--sw 100` for loose brand.
- Recraft: `style_id` is a persistent UUID bound to a trained brand style.
- Flux + IP-Adapter: pass reference image; set `ip_adapter_weight: 0.7–0.9` for style, lower for just color.
- SDXL + LoRA: trigger word in prompt + `lora_scale: 0.7–1.0`.
## LoRA training workflow (≥20-asset sets)
ROI breaks even at ~20 assets. For smaller sets, IP-Adapter or `--sref` is cheaper.
```
1. Collect 20+ accepted assets (logo, icons, illustrations) in the brand style.
2. Call trainBrandLora MCP tool (Replicate/Modal endpoint, ~$50–$200, ~2 hours).
3. Store the returned .safetensors path in BrandBundle.lora.
4. Set trigger word (e.g. "acme_brand") + lora_scale: 0.8–1.0 in subsequent Flux/SDXL generations.
5. Re-validate style similarity — should jump to CSD ≥0.85 vs references.
```
## Asset-type adaptation
Same brand expresses differently per asset. Honor the brand, but respect the medium:
| Asset type | Palette strictness | Composition | Transparency | Legibility target |
|---|---|---|---|---|
| `logo` | primary + 1 accent | centered, 80% safe zone | required RGBA | 32×32 minimum |
| `app_icon` | primary bg + 1–2 glyph colors | single central glyph, ~15% padding | opaque 1024² | 27×27 |
| `favicon` | 2–3 colors max | monogram/mark | SVG + ICO multi-res | 16×16 |
| `og_image` | full palette, brand typography | hero layout, headline area | opaque | 1200×630 at 1:1 scale |
| `illustration` | full palette | scene composition | often transparent | hero or empty-state |
| `icon_pack` | monocolor (currentColor) OR 2-tone | 24×24 grid, uniform stroke | SVG + alpha | consistent weight |
## Do-not list encoding
`BrandBundle.do_not[]` should never be forwarded as literal "no X" to Flux/Ideogram/Recraft. Translate per dialect:
```
do_not: ["drop shadows"] → affirmative: "flat design, crisp edges"
do_not: ["gradients"] → affirmative: "solid fills, flat colors"
do_not: ["photorealism"] → affirmative: "flat vector illustration style"
do_not: ["rounded corners"] → affirmative: "sharp geometric corners"
```
SDXL and Midjourney get literal negatives. Everyone else gets positive anchors.
## Typography consistency
Composite, don't generate. Web fonts via Satori for OG images; SVG `<text>` with font stack for favicons (if required); brand-font text in Figma/Illustrator for logo wordmarks.
- `typography.primary.fallback` is what the model sees in the prompt ("geometric sans-serif, bold") — not the font file name. Diffusion samplers cannot read Geist.
- For Flux.2: `typography: { font_class: "geometric sans-serif", weight: "bold" }` can be passed in the JSON schema.
## Validation across the set
After each generation, run in addition to normal tier-0/1:
```
tier_1 (set-aware):
- palette ΔE2000 vs brand palette ≤ 10
- CSD style similarity vs canonical anchor ≥ 0.72
- stroke-width histogram consistent within set (σ ≤ 20%)
tier_2 (VLM-as-judge, if enabled):
- "does this asset look like it comes from the same brand as [ref]?"
- score 1–5; require ≥ 4 for acceptance
```
## Convergence detection
When to stop regenerating:
- 3 of the last 4 generated assets cleared ΔE ≤ 10 AND CSD ≥ 0.72 on the first try → brand bundle is tight.
- 2 of the last 3 required post-process recolor → bundle is loose; consider LoRA training or add more refs.
- Any asset required 3+ regenerations after acceptance → brand brief is ambiguous; ask user to clarify.
## Common mistakesFrom MohamedAbdallah-14/prompt-to-asset, MIT.
More from MohamedAbdallah-14/prompt-to-asset
- 0.539score
ui-mockup-prompt
MohamedAbdallah-14
Translate a UI brief (a page, a screen, a single component, a feature) into a paste-ready prompt for Nano Banana Pro / gpt-image-2 / Ideogram / Flux 2 /…
SkillCFreshness: C★ 24Claude Code +9 - 0.528score
Prompt To Asset
MohamedAbdallah-14
Generate app icons, favicons, OG images, and logos by routing across 30+ image models.
ConnectorCFreshness: CLocal★ 24Claude Code +5 - 0.472score
asset-enhancer
MohamedAbdallah-14
Classify a software-asset brief (logo, app icon, favicon, OG image, illustration, splash, icon pack, transparent mark), route to the right image model…
SkillDFreshness: D★ 24Claude Code +9 - 0.472score
asset-validation-debug
MohamedAbdallah-14
Diagnose and repair asset-generation failures.
SkillDFreshness: D★ 24Claude Code +9 - 0.472score
svg-authoring
MohamedAbdallah-14
Author production-grade inline SVG (logos, favicons, icon packs, stickers, transparent marks) when the P2A `inline_svg` execution mode is selected.
SkillDFreshness: D★ 24Claude Code +9 - 0.472score
t2i-prompt-dialect
MohamedAbdallah-14
Rewrite an asset brief into the exact prompt dialect of the target image model (OpenAI gpt-image-1, Google Imagen/Gemini, SDXL, Flux.1/Flux.2, Midjourney…
SkillDFreshness: D★ 24Claude Code +9 - 0.469score
favicon
MohamedAbdallah-14
Generate a full favicon bundle — favicon.ico (16/32/48 multi-res), icon.svg with prefers-color-scheme dark support, apple-touch-icon.png 180×180 opaque, and…
SkillDFreshness: D★ 24Claude Code +9 - 0.469score
vectorize
MohamedAbdallah-14
Convert a raster image to SVG.
SkillDFreshness: D★ 24Claude Code +9 - 0.469score
app-icon
MohamedAbdallah-14
Generate an app icon from a single 1024² master and fan out to iOS (AppIcon.appiconset with squircle-ready 1024 opaque), Android (adaptive foreground +…
SkillDFreshness: D★ 24Claude Code +9 - 0.469score
illustration
MohamedAbdallah-14
Generate an in-product illustration (empty state, onboarding, hero, spot art) that obeys a brand bundle.
SkillDFreshness: D★ 24Claude Code +9 - 0.469score
logo
MohamedAbdallah-14
Generate a production-grade logo (primary brand mark).
SkillDFreshness: D★ 24Claude Code +9 - 0.469score
og-image
MohamedAbdallah-14
Generate an Open Graph / Twitter Card social unfurler image — 1200×630 JPEG/PNG, <5MB, with deterministic typography.
SkillDFreshness: D★ 24Claude Code +9
Signals
- Stars
- 24
- Forks
- 3
- Open issues
- 3
- Contributors
- 2
- Last commit (this folder)
- Apr 21, 2026 (6 months ago)
- Last release
- Apr 26, 2026 (6 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
- 0.283score
brand-consistency
MohamedAbdallah-14
Maintain visual coherence across a multi-asset brand set (logo + app icon + favicon + illustrations).
SkillDFreshness: D★ 24Claude Code +9 - 0.283score
brand-consistency
MohamedAbdallah-14
Maintain visual coherence across a multi-asset brand set (logo + app icon + favicon + illustrations).
SkillDFreshness: D★ 24Claude Code +9 - 0.283score
brand-consistency
MohamedAbdallah-14
Maintain visual coherence across a multi-asset brand set (logo + app icon + favicon + illustrations).
SkillDFreshness: D★ 24Claude Code +9
More from MohamedAbdallah-14
- 0.715score
unslop
MohamedAbdallah-14
Humanize LLM output so it reads like a careful human wrote it.
SkillBFreshness: B★ 161Claude Code +9 - 0.710score
unslop-file
MohamedAbdallah-14
Humanize natural-language memory files (CLAUDE.md, todos, preferences, docs) by removing AI-isms and adding burstiness while preserving every code block, URL…
SkillBFreshness: B★ 161Claude Code +9 - 0.709score
unslop-reasoning
MohamedAbdallah-14
Strip AI-slop patterns from reasoning traces (chain-of-thought, extended thinking, agent decomposition) — not final prose.
SkillBFreshness: B★ 161Claude Code +9 - 0.709score
unslop-commit
MohamedAbdallah-14
Rewrites commit messages so they sound like a careful human engineer wrote them.
SkillBFreshness: B★ 161Claude Code +9 - 0.709score
unslop-review
MohamedAbdallah-14
Rewrites code review comments so they read like a human teammate wrote them.
SkillBFreshness: B★ 161Claude Code +9 - 0.706score
unslop-help
MohamedAbdallah-14
Quick-reference card for unslop modes, sub-skills, and slash commands.
SkillBFreshness: B★ 161Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get brand-consistency running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
brand-consistency skill. Agent Mart. https://agentmart.dev/skills/mohamedabdallah-14-brand-consistency (last updated 2026-10-24)