brand-consistencylisted
Install: claude install-skill MohamedAbdallah-14/prompt-to-asset
# 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 +