# Prompt Anatomy: BRIEF-DNA

Use this reference whenever the agent must turn a short user request into a
high-quality `gpt-image-2` prompt. The output prompt should read like a senior
design brief, not like generic prompt prose.

## Core Rule

If a slot is missing, the model fills it with the statistical middle. The middle
is usually generic, glossy, stock-like, or visually safe. Fill every relevant
slot explicitly.

## The 12 Slots

Render slots in this order:

1. **Intent**: medium, format, brand/client, purpose.
2. **Reference framing**: for image inputs; say whether the reference is style,
   structure, object, pose, color, or layout. Say when not to copy directly.
3. **Style DNA**: 2-4 concrete schools/genres or Director presets.
4. **Color and material**: palette, substrate, print/digital surface, texture.
5. **Composition**: hierarchy, grid, camera/shot, density, negative space.
6. **Content literals**: ALL visible text — brand wordmarks, headlines,
   product names, prices, claims, supporting copy, URLs, labels — verbatim.
   `gpt-image-2` renders typography accurately when given the literal strings,
   and skips or hallucinates text when this slot is empty. If the brief mentions
   a brand or product but no literals are provided, ASK before generating.
7. **Decorations and micro-elements**: badges, annotations, lines, icons,
   stamps, leader lines, labels.
8. **Image blocks**: count and role of photo/reference/abstract blocks.
9. **Anti-patterns**: 3-8 explicit things to avoid.
10. **Energy**: brand position and emotional register.
11. **Functional priority**: what matters most if constraints conflict.
12. **Final mantra**: one closing sentence that restates the essence.

Slots 1, 3, 4, 5, 6, 9, and 12 are required for image work that must look
designed. Slots 2, 7, 8, 10, and 11 are conditional but strongly recommended.

## T2I Template

```text
Create <format/medium> for <client/brand/product>. The piece should function as <purpose>.

Style DNA:
<2-4 concrete style anchors or Director presets, with descriptive phrases.>

Color and material:
<specific palette, surface, texture, print/digital material.>

Composition:
<hierarchy, grid/camera/shot, density, spacing, alignment.>

Content to include exactly:
<all required literal text, product names, prices, claims, labels.>

Decorative and structural elements:
<badges, annotations, arrows, leader lines, icons, photo blocks.>

Avoid:
<anti-patterns relevant to genre, brand position, and user dislikes.>

Functional priority:
<e.g. design poster first, menu second; product accuracy over background.>

Final mantra:
<one sentence that compresses the entire creative target.>
```

## I2I / Reference Template

```text
Use the provided image(s) as <style/object/layout/pose/color> reference only.
Do not copy the image directly unless the user explicitly asks for faithful
editing. Preserve <what to preserve>. Change <what to change>.

Then render the same 12-slot brief as above.
```

Reference framing examples:

- Style anchor only: match visual language, density, material, and composition;
  do not copy layout or identifiable content.
- Product reference: preserve product shape, proportions, material, color, and
  recognizable details.
- Logo reference (creative placement): pass logo as image-url and frame as
  "use Image A as the wordmark anchor, preserve glyph shapes and proportions,
  place at <position> at ~<size>% width, in <treatment>". `gpt-image-2`
  reproduces logos in-prompt with high fidelity — DO NOT default to
  post-process overlay for one-off creative work.
- Logo reference (repeated exact position): when the same logo must appear
  pixel-identically across multiple deliverables (carousel slot, watermark
  uniformity, packshot family), generate the base in-prompt and apply
  `scripts/apply-logo.mjs` afterwards.
- Person reference: use only approved user-provided references.

## Slop Words

Do not accept these as final slot values without clarifying or translating:

- `modern`
- `cool`
- `professional`
- `premium`
- `clean`
- `edgy`
- `creative`
- `high quality`

Translate them via `translation-map.md` or ask one short clarification.

## Library References

When filling slots, draw from these libraries instead of inventing terms:

- **Slot 3 (Style DNA)**: pick 2-4 entries from `style-dna-library.md` and
  combine them. Single-genre output is always cliche.
- **Slot 4 (Color/Material)**: each library entry has a `default_color_hint`
  you can adapt; client `profile.md` brand colors override this.
- **Slot 5 (Composition)**: in Director Mode, pull Shot Type / Focal Length /
  Aperture / Lens / Lighting / Camera / Film Stock from
  `director-vocabulary.md` (or the underlying `src/components/director/constants.ts`).
  Otherwise, the chosen Style DNA implies composition rules (e.g.
  `brutalist_editorial` implies Swiss-grid + typographic hierarchy).
- **Slot 7 (Decorations)**: each library entry has a `default_decoration_hint`.
- **Slot 9 (Anti-patterns)**: always pull from `anti-patterns.md` — at least
  3 from `global_always` plus 2-3 by_genre and 1-2 by_brand_position.
- **Slot 10 (Energy)**: derived from client `profile.md` brand_position; if
  missing, infer from the dominant Style DNA library entry.

## Brand-asset rendering: in-prompt vs post-process

`gpt-image-2` is excellent at rendering text and logos directly. The default
should be: render in-prompt. Reach for post-processing only when there is a
specific reason.

| Use case | Approach | Why |
| --- | --- | --- |
| Brand wordmark in editorial / hero / poster | Slot 6 (literal text) + Slot 7 (placement + size + treatment) | Logo is part of the design; treatment matters |
| Headline / tagline / supporting copy in image | Slot 6, verbatim | Model needs the literal strings |
| Product name on packshot | Slot 6 + Slot 7 (where on the packshot) | Same as above |
| Reference-fidelity logo (preserve glyph shapes) | Pass as image-url, frame as "logo reference, preserve glyph shapes" via `image edit` | i2i is more reliable than hallucinating a glyph |
| Same logo at exact same pixel position across N carousel slides | Generate base, then `scripts/apply-logo.mjs` | Deterministic across slides |
| Watermark uniformity across thousands of assets | `scripts/apply-logo.mjs` | Pixel-identical at scale |
| Slide numbering 1/5, 2/5, ... | `scripts/apply-carousel-number.mjs` | Deterministic, never hallucinated |

Anti-rule: do not assume the model "knows" a brand's wordmark, copy, or
layout. Empty Slot 6 + a brand-named brief = predictably text-less, generic
output. If you saw the brand name in the brief, the strings belong in the
prompt.

## Phase-style input mapping

Some users brief in numbered phases (Phase 1: Concept; Phase 2: Photography;
Phase 3: Color; ...). Treat the phase brief as a notation variant of
BRIEF-DNA, not as a different system. Map first, then compose.

| Common phase label | Maps to slot |
| --- | --- |
| Concept / Mood / Aesthetic / Core idea | 3 (Style DNA) + 10 (Energy) |
| Model / Photography / Subject / Pose | 5 (Composition) + Director vocabulary |
| Photography Base (lens, f-stop) | 5 (Composition, camera spec) |
| Color blocking / Palette / Color foundation | 4 (Color and material) |
| Texture / Background / Substrate | 4 (Color and material) |
| Graphic elements / Decorations / Layer | 7 (Decorations) |
| Typography / Headline / Logo / Copy | 6 (Content literals, verbatim) + 7 (Decoration treatment) |
| Composition / Layout / Layering order / Negative space | 5 (Composition) |
| Brand intelligence / Brand DNA / Voice | 10 (Energy) + 12 (Final mantra) |
| Final mood / Output mood (terse keywords) | 12 (Final mantra) |
| Technical specs (aspect, resolution, color mode) | 1 (Intent) + quote-price.mjs settings |

When percentages / ratios appear in the phase brief ("70% attitude / 30%
natural", "40-50% coverage", "20-25% negative space"), preserve them
verbatim in the corresponding slot — they are constraints, not flavor.

A four-keyword Final Output Mood ("Dominant. Minimal-chaos. Architectural.
High-fashion street authority.") is a valid Slot 12 form — sometimes more
useful than a single sentence because each word independently anchors a
direction.

## ZUR AMPEL Lesson

The sample works because it fills the slots:

- Intent: square poster for a German Imbiss.
- Reference: style anchor only, no direct copy.
- Style DNA: Swiss-grid, brutalist editorial, zine/risograph, street-poster.
- Material: signal-red ink on warm off-white paper, grain, ink bleed.
- Composition: oversized condensed title, slanted secondary word, narrow body,
  strong hierarchy, visible grid, negative space plus dense info.
- Content: all menu text and prices provided literally.
- Decorations: stamps, annotations, badges, doodles, leader lines.
- Image blocks: one food photo block and one abstract atmosphere block.
- Anti-patterns: no glossy mockup, no generic menu template, no corporate polish.
- Priority: design poster first, functional menu second.
- Mantra: high-end brutalist brand poster with menu/editorial/street-poster
  energy for a German Imbiss.

Use this as a mental model, not as a copied style.

## ADIDAS YEEZY Lesson (phase-style input)

A nine-phase brief for a YEEZY BOOST 700 social poster maps cleanly into the
12 slots:

- Phase 1 Conceptual Framework ("controlled rebellion", "BUILT DIFFERENT.")
  → Slot 3 Style DNA (editorial-meets-street, sculptural collage) + Slot 10
  Energy (controlled rebellion).
- Phase 2 Model & Photography (one model, 70/30 attitude/natural,
  3/4 body, low angle) → Slot 5 Composition.
- Phase 3 Color Blocking (muted stone grey hero, soft beige haze, irregular
  brush edges, 40-50% coverage, 15% grain) → Slot 4 Color/Material.
- Phase 4 Graphic Elements (3-5 abstract elements, asymmetric placement,
  small + medium scale) → Slot 7 Decorations.
- Phase 5 Typography Integration (logo top-right, "BUILT DIFFERENT.",
  "FORM OVER EVERYTHING.", "YEEZY BOOST 700") → Slot 6 Content literals
  verbatim + Slot 7 (treatment + position).
- Phase 6 Texture & Background (warm off-white, paper grain) → Slot 4.
- Phase 7 Composition Rules (asymmetric balance, layering order, focal point
  60/40) → Slot 5.
- Phase 8 Brand Intelligence ("less noise, more intention", "presence over
  movement") → Slot 10 Energy + Slot 12 Final mantra.
- Phase 9 Footer (URL, minimal strip) → Slot 6 + Slot 7.
- Final Output Mood ("Dominant. Minimal-chaos. Architectural. High-fashion
  street authority.") → Slot 12 Final mantra (terse-keyword form).

Failure mode to watch for: agents see a phase-style brief, render the image
without writing Slot 6 verbatim, and the model returns a poster with no
visible brand wordmark and no headline. The fix is mechanical — write every
literal string from the brief into Slot 6 before composing the prompt.
