03 · Brand Layer
Prompts & examples
Say it in one sentence. Guided mode fills the rest, then shows you what it chose, with the artefacts to prove it.
01 · Guided mode
Guided mode
- 01Identify the output type from the request (see `outputs` below, matching on `match` keywords). If nothing matches, use the closest type and say which one you used.
- 02Fill every parameter of that type from its `default`. Defaults are a starting point, never an invention: resolve each one to a real value from the brand spec (design.md, layouts.md, icons.json, verbal-identity.md).
- 03Ask for parameters marked `blocking` that the request has not already answered, at most `maxQuestions` of them, in one message. Give each question a suggested answer in brackets, and end with: reply `go` to accept all suggestions.
- 04The parameter list is a floor, not a ceiling. You may add your own question when `ownQuestions` allows it: use your judgement about what this specific request needs, inside the boundary that block sets. It comes out of the same `maxQuestions` budget.
- 05If the user replies with a `goWord`, or already gave the content, produce the asset immediately. Never ask twice about the same thing.
- 06After the asset, append the `brandChoices` block: every parameter you resolved, the value you used, and the one-word alternative. Then offer the `nextStep` of that output type as a single question.
- 07If the user answers with one of those words, redo only what that word changes. Keep everything else identical.
- 08Run the `selfCheck` list before you deliver. Anything on the `locked` list is not a parameter and is never offered as a choice.
- 09Write the questions and the report in the language the user is writing in, whatever the brand's own default language for the copy is.
At most 3 questions, asked once, each with a suggested answer. Everything else is filled from the defaults below and reported back, so nothing is decided silently.
The parameter list covers what recurs. It cannot cover the launch date, the client whose logo sits beside ours, or which of three products a post is about. So the agent may ask one question of its own, out of the same budget, inside this boundary.
- The request needs a fact only the user has: a date, a number, a price, a client or product name, a market, an audience, an event.
- Two readings of the request would produce materially different assets and the brand prefers neither. Ask which, do not average them.
- The request implies something the brand genuinely does not cover, and the fallback contract would change the outcome rather than just fill a gap.
- Something in the request contradicts the brand and the way out is a real choice: a format the catalogue does not have, a claim the voice rules will not carry, a channel with its own constraints. Name the conflict and ask which way to go. If the conflict is with a `locked` value (a different accent colour, a recoloured logo), do NOT ask: say plainly what the brand does instead, then carry on. Asking would imply it was negotiable.
- Anything on the `locked` list. Those are not choices and asking implies they are.
- Anything that already has a `default`. Fill it and report it in the `brandChoices` block; the user changes it in one word if they want to.
- A preference you can infer from the request, the brand, or what was already said in this conversation.
- Confirmation of something already agreed, or a question you have asked once. Never ask twice.
- A question you cannot act on differently depending on the answer. If both answers lead to the same asset, do not ask it.
go to accept the suggestion.- surface: dark (want "light"?)
- format: 4:5 portrait (want "1:1 square"?)
- icons: none (want "line icons"?)
- image: no (want "yes"?)
- logo: primary wordmark lockup (want "wordmark"?)
Want a social version of the same poster on the portrait canvas too?
Open a row to see every parameter, its default and the alternatives the agent offers you afterwards.
| Parameter | Default | Alternatives |
|---|---|---|
| headlineaskedWhat is the headline? | a short brand line drawn from the verbal identity | - |
| surfaceDark or light version? | dark | light |
| formatWhich format? | 4:5 portrait | 1:1 square, A3 print, 16:9 landscape |
| iconsUse an icon or a geometric motif? | none | line icons, 3d icons, geometric motif |
| imageUse a photograph? | no | yes |
| logoWhich logo variant? | primary wordmark lockup | wordmark, symbol |
| languageWhich language? | Slovak | English |
Offered next · a social version of the same poster on the portrait canvas
| Parameter | Default | Alternatives |
|---|---|---|
| topicaskedWhat is the deck about? | the brand's positioning story from the verbal identity | - |
| slidesHow many slides? | 10 | - |
| surfaceDark, light, or a mix? | mixed | dark, light |
| ratioWhich aspect ratio? | 16:9 | 4:3, 1080x1350 |
| sequenceWhich slide types, in which order? | picked from the presentation catalog by the content: cover-main, agenda, a divider per chapter, the content slides, cover-closing | - |
| formatWhich file format? | HTML | PPTX, PDF |
| iconsUse icons on the pillar slides? | line icons | none, 3d icons |
| chartInclude a data slide? | yes | no |
| languageWhich language? | Slovak | English |
Offered next · a PDF export, or a PPTX you can edit in PowerPoint
| Parameter | Default | Alternatives |
|---|---|---|
| dataaskedWhat data goes in it? | a plausible sample set, clearly labelled as sample data | - |
| sizeHow many columns and rows? | 5 columns, 5 rows | - |
| surfaceDark or light version? | light | dark |
| tagsUse status tags in a column? | no | yes |
| languageWhich language? | Slovak | English |
Offered next · a chart of the same data
| Parameter | Default | Alternatives |
|---|---|---|
| dataaskedWhat data should it show? | a plausible sample series, clearly labelled as sample data | - |
| typeWhich chart type? | bar chart | line chart, donut, stacked bar, stat tiles |
| surfaceDark or light version? | dark | light |
| seriesHow many series? | 1 | - |
| languageWhich language? | Slovak | English |
Offered next · a second chart type on the same data, or a stat-tile row above it
| Parameter | Default | Alternatives |
|---|---|---|
| subjectaskedWhat is it about, and who reads it? | the brand's positioning, addressed to a C-level reader | - |
| registerWhich register? | consultative | - |
| lengthHow long? | short | medium, long |
| ctaWhich call to action? | one soft next step | - |
| languageWhich language? | Slovak | English |
Offered next · a visual to go with the copy
| Parameter | Default | Alternatives |
|---|---|---|
| purposeaskedWhat is the page for, and what should it say? | a single-message landing page built on the brand's positioning | - |
| surfaceDark or light version? | dark | light |
| sectionsWhich sections? | hero, three content sections, footer | - |
| componentsTake the markup from the component snippets? | yes | no |
| languageWhich language? | Slovak | English |
Offered next · the light-surface inversion of the same page
- The accent colour. It is always the brand primary, on every surface, in every state.
- The typeface and the type scale. Both come from the design spec.
- The logo. White or black only, never recoloured, never retyped as text.
- The UPPERCASE rule for H1/display headlines and section titles (H2).
- The chart palette. Charts never use a library-default rainbow.
- Status colours (success/warning/error/info). Functional feedback only, never decoration.
- The accent is the brand primary, used for emphasis only, never as a large fill.
- The case follows `typeRules.case`.
- The logo is white or black, hotlinked from its real asset URL, not redrawn or retyped.
- Every text colour came from a role or a `.bl-text-*` class and satisfies `colorRules.text`; on a light surface it came from the `lightSurface` map, not from a dark-tuned token.
- Every colour, size, radius and component came from the spec, or from `fallback` where the spec is silent.
- Any chart uses the chart palette; any icon comes from the icon library, in the variant that matches the surface.
- Copy follows the verbal identity (register, lexicon, mechanics), not generic marketing language, and contains no em dash.
- Anything the spec does not define went through the fallback contract.
The agent reads exactly this, as a file: https://galton-ai-assets.vercel.app/intake.md (or the get_intake MCP tool). It is part of llms-full.txt, so the upload path behaves the same way.
02 · Tested prompts & results
Tested prompts & results
Pages & sites
Full pages composed from the system — hero to footer.
Make a simple landing page for GALTON.
How you would actually type it. Guided mode fills the surface, format, icons, logo variant and language from the brand defaults, asks at most one question, and lists every choice under the result.
Tested withClaude + Brand Layer (design.md + brand.css), July 2026
One prompt, zero corrections — hero, cards, stats and footer all resolved from the spec. The accent lands only on the hero word, the CTA and hover states.
Components
Single UI pieces built from the component tokens.
Product UI
Dense application surfaces — navigation, tables, controls.
Data visualization
Charts on the brand's chart palette — no library rainbows.
Documents
Print and inbox surfaces — where the system inverts to black-on-white.
Visuals
Standalone images in the brand-layer style.
Advertising
Campaign copy and paid formats — the voice under hard character and pixel limits.
Audio & video
Scripts in the brand voice — and the voice itself, synthesised by a local AI model.
Presentations
Native .pptx decks on the brand system.
Each artefact is the unedited output of one agent run. The agent received the **director prompt** exactly as printed, plus access to this Brand Layer (the design spec, the stylesheet, the verbal identity and the layout catalog) through the same lanes any external agent uses. Nothing was colour-corrected afterwards; where a run drifted off-brand it was re-run against the spec, not patched by hand. The one-sentence and parameter versions above each example are not decoration and not a claim about that artefact. They are the same request written the way a person actually types it, and guided mode is what closes the gap: it fills the unstated parameters from the brand defaults, asks at most one question, and reports every choice back. If you want to see what a one-sentence prompt produces on its own, the before/after page shows exactly that, run without a director brief anywhere in sight.
03 · How to prompt
How to prompt
- One sentence is a complete brief. Guided mode fills what you left out and tells you what it filled.
- Say what you want changed in one word ("light", "square", "no icons") instead of rewriting the prompt.
- A one-sentence request is a complete brief. Run guided mode (intake.md / get_intake) before producing: fill the unset parameters from the defaults, ask at most the blocking one, report every choice back.
- Describe intent and structure; let the agent resolve exact values from the spec.
- Reference roles — "primary CTA", "the accent", "display headline" — not hex codes.
- Keep the logo white or black only; never recolour it.
- Don't use the accent as a large fill, and set the case from `typeRules.case`.
- The accent is ALWAYS the yellow primary. Never introduce red, blue or green as an accent, selected state, slider fill, link or focus ring.
- Apply `colorRules.text` to every text colour, and `colorRules.alpha` to everything that is not text.
- Never invent a value: `criticalRule` is the short form, `fallback` is the contract for deriving one, and asking the human is always allowed.
- Status hues (success/warning/error/info) are functional only — semantic feedback, never decoration or a brand accent.
- In charts, use the `chart` palette (yellow + neutrals), not a library-default rainbow.
