# Brand Agency

The `brand-agency` skill (`skills/brand-agency/SKILL.md`) takes a raw product
photo (or website URL) to a full brand launch package. The creative work lives
in the skill; the durable contract is the **brand-definition artifact**.

## The brand-definition artifact

`projects/<slug>/artifacts/brand-definition.json`
(schema: `schemas/video/artifacts/brand-definition.schema.json`)

The locked brand system: brand name, positioning statement, taglines
(functional/emotional/community), voice rules, a 6-color hex palette
(primary, secondary, tertiary background, dark typography accent, metallic,
contrast — hex strictly validated), typography hierarchy, a 12-week theme map,
and the vision-verified master asset (image path, go-bananas product ref,
Flow character name).

It layers with its neighbors — none replaces another:

| Artifact | Role |
|---|---|
| `brand-dna.json` (`brand-extract`) | extraction EVIDENCE from a website |
| `brand-definition.json` (this) | the locked brand DECISION |
| `project-blueprint.json` (`director-blueprint`) | per-project visual DIRECTION |

## CLI

```bash
vclaw video brand-definition --project <slug> --from-json <path>          # validate only
vclaw video brand-definition --project <slug> --from-json <path> --write  # validate + persist
vclaw video brand-definition --project <slug> --show                      # print the persisted artifact
```

Validation is strict on required sections and palette hex (`#RRGGBB`), lenient
on other sub-fields, and reports every problem in one error.

## Prompt integration

When `brand-definition.json` exists, `filmmaking-prompts` appends a compact
prose `BRAND — Wordmark: …. Palette: …. Voice: ….` line to every scene packet,
after the canonical 10-block body and after any DIRECTOR addendum. Palette
colors render by their authored names (never hex) so the line passes the
prompt-lint prose register. No artifact → byte-identical legacy output.

## Skill phases (summary)

0. Intake — photo or URL; `vclaw video init`; URL runs `brand-extract` first.
1. Product brief — vision-read the photo; `[INFERRED]` flags on every guess.
2. Market research — cited sweep for the single unsolved problem.
3. Brand definition lock — author the 9 sections; persist via the CLI above.
4. Master asset — ONE packshot, vision-verified (wordmark/hex/proportions),
   then registered as a go-bananas product reference AND a Flow Character.
5. 10-image brand kit — `generate_with_product` against the master
   (or `gen-image --backend flow --character <Name>`).
6. Campaign films — character-led films via the native Flow R2V lane
   (`flow-register-characters` → `flow-r2v` per scene → `stitch-ad`; the
   `character-ad` skill, native voice, person+product locked); product-only
   films stay on Seedance/Dreamina with the master reference.
7. Campaign pack — calendar from the theme map, budget, KPIs, portal delivery.

See `skills/brand-agency/SKILL.md` for the full operating procedure and
`docs/design/specs/2026-06-10-brand-agency-design.md` for the design.
