Skip to content

Refine Brand Manifest schema: structured tone guidelines and standardized logo tags #945

@pkras

Description

@pkras

Problem Statement

The current Brand Manifest tone field is too freeform for creative agents to reliably interpret. Similarly, the logos array lacks standardized semantic tags to indicate appropriate usage contexts.

This makes it difficult for creative agents to:

  • Generate copy that consistently matches brand voice
  • Select the appropriate logo variant for different creative contexts
  • Apply brand guidelines programmatically

Proposed Solution

1. Structured Tone Object

Replace freeform tone string with a structured object containing:

  • voice: High-level voice descriptor (the what)
  • attributes: Personality traits (the character)
  • dos: Specific guidance for copy generation (the how)
  • donts: Guardrails to avoid brand violations (the boundaries)

Before (current):

{
  "tone": "warm and inviting"
}

After (proposed):

{
  "tone": {
    "voice": "warm and inviting",
    "attributes": ["friendly", "optimistic", "conversational", "authentic"],
    "dos": [
      "Use simple, everyday language",
      "Address the reader directly",
      "Show empathy and understanding",
      "Keep sentences short and punchy"
    ],
    "donts": [
      "Avoid corporate jargon",
      "Don't be overly formal or stiff",
      "Avoid technical terms unless necessary",
      "Don't make exaggerated claims"
    ]
  }
}

2. Standardized Logo Tags

Define a standard vocabulary for logo tags to help creative agents select appropriate logo variants:

Proposed tag categories:

Background compatibility:

  • dark-bg - Use on dark backgrounds
  • light-bg - Use on light backgrounds
  • transparent-bg - Has transparent background

Orientation:

  • square - Square/circular lockup
  • horizontal - Wide horizontal layout
  • vertical - Tall vertical layout
  • stacked - Vertically stacked elements

Usage context:

  • primary - Main brand logo
  • secondary - Alternative version
  • icon - Icon/symbol only
  • wordmark - Text/wordmark only
  • full-lockup - Complete logo with all elements

Example:

{
  "logos": [
    {
      "url": "https://cdn.brand.com/logo-dark.png",
      "tags": ["dark-bg", "horizontal", "primary"],
      "usage": "Primary logo for use on light backgrounds"
    },
    {
      "url": "https://cdn.brand.com/logo-light.png",
      "tags": ["light-bg", "horizontal", "primary"],
      "usage": "Primary logo for use on dark backgrounds"
    },
    {
      "url": "https://cdn.brand.com/icon.png",
      "tags": ["transparent-bg", "square", "icon"],
      "usage": "Icon-only variant for small formats"
    }
  ]
}

Rationale

These structured fields enable creative agents to:

  • Generate brand-compliant copy by following specific dos/donts rather than interpreting vague tone descriptors
  • Select appropriate logos based on creative format requirements (background color, aspect ratio, prominence needs)
  • Automate brand guideline compliance without requiring human review of every detail

This is especially critical for generative creative workflows where the agent needs clear, actionable rules.

Implementation Notes

  • Maintain backward compatibility where possible (existing freeform tone strings could still work)
  • Document best practices for brands writing manifests with these fields
  • Provide examples in the Brand Manifest documentation
  • Consider validation schemas to help brands structure these correctly

Next Steps

  1. Creative WG review and feedback
  2. Update Brand Manifest schema specification
  3. Update documentation with examples
  4. Validate with creative agent implementations (e.g., Celtra)

Proposed by: Creative Working Group
Related to: PR #622 (Creative Standards Protocol)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions