ai_qc/backend/profiles
nickviljoen 20259dcad0 Add Honda client, video QC, session refresh, Amazon check tuning
- Add Honda client with static_general and video_general profiles
- Add video QC capability using Gemini native video analysis (4 checks:
  visual_quality, brand_consistency, text_legibility, pacing_flow)
- Add video_general profile assigned to all 8 clients
- Extend session lifetime with MSAL silent token refresh (proactive
  every 45min + reactive on expiry), switch cache to localStorage
- Re-enable OCR layout measurements for Amazon checks
- Add scope boundary notes to all 6 Amazon checks to prevent cross-
  check penalization (locale errors isolated to logo_country only)
- Relax margins left-alignment tolerance from 1% to 4% to account
  for logo lockup internal padding
- Update brand guidelines DB with Amazon localization matrix and
  processed Dove PDF summary

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 14:53:52 +02:00
..
amazon_static.json Add periodic auth session check and rename Amazon Box Placement to Element Placement 2026-04-02 10:01:27 +02:00
boots_static.json Add Boots client QC profile with 5 compliance checks and split CLAUDE.md client docs 2026-04-13 09:25:58 +02:00
diageo_key_visual.json Create frontend and backend folder structure for deployment 2025-11-06 11:55:53 +02:00
diageo_packaging.json Create frontend and backend folder structure for deployment 2025-11-06 11:55:53 +02:00
dow_jones_static.json Add Dow Jones client with 3 sub-brand QC profiles (17 new checks) 2026-04-07 18:33:14 +02:00
general_check.json Create frontend and backend folder structure for deployment 2025-11-06 11:55:53 +02:00
inclusive_accessibility.json Create frontend and backend folder structure for deployment 2025-11-06 11:55:53 +02:00
loreal_static.json Add dedicated text_product_overlap check for L'Oreal profile 2026-04-09 10:46:13 +02:00
marketwatch_static.json Add Dow Jones client with 3 sub-brand QC profiles (17 new checks) 2026-04-07 18:33:14 +02:00
README.md Create frontend and backend folder structure for deployment 2025-11-06 11:55:53 +02:00
static_general.json Create digital-focused general check modules and update Static General profile 2026-02-02 11:55:23 +02:00
unilever_key_visual.json Create frontend and backend folder structure for deployment 2025-11-06 11:55:53 +02:00
unilever_packaging.json Create frontend and backend folder structure for deployment 2025-11-06 11:55:53 +02:00
video_general.json Add Honda client, video QC, session refresh, Amazon check tuning 2026-04-16 14:53:52 +02:00
wsj_static.json Add Dow Jones client with 3 sub-brand QC profiles (17 new checks) 2026-04-07 18:33:14 +02:00

Visual AI QC Profiles

This directory contains JSON profile configurations for the Visual AI QC application. Profiles determine which QC checks are run, their weights, and which LLM (OpenAI or Gemini) is used for each check.

Profile Structure

Each profile is defined in its own JSON file with the following structure:

{
    "name": "Profile Name",
    "description": "Description of the profile and its purpose",
    "checks": {
        "check_name_1": {
            "weight": 0.10,
            "llm": "OpenAI",
            "enabled": true
        },
        "check_name_2": {
            "weight": 0.15,
            "llm": "Gemini",
            "enabled": true
        }
        // Add more checks as needed
    }
}

Fields Explanation

  • name: The display name of the profile (shown in the UI)
  • description: A short description explaining the profile's purpose
  • checks: A dictionary of QC checks to include in this profile
    • Each check entry contains:
      • weight: The weight of this check in the overall score (between 0 and 1, sum of all weights should equal 1)
      • llm: The LLM to use for this check ("OpenAI" or "Gemini")
      • enabled: Whether this check is enabled (true/false)

Adding New Profiles

To add a new profile:

  1. Create a new JSON file in this directory (e.g., my_brand.json)
  2. Define the profile structure following the format above
  3. Include only the checks relevant to your profile
  4. Ensure the sum of weights equals 1.0 (100%)
  5. Restart the application to load the new profile

The profile ID will be the filename without the .json extension. For example, my_brand.json will create a profile with ID my_brand.

Available QC Checks

Here are the available QC checks you can include in your profiles:

Visual Design Checks

  • logo_visibility: Checks if the logo is clearly visible
  • brand_assets_visibility: Checks if brand assets are prominent
  • visual_elements_count: Counts and evaluates visual elements
  • background_contrast: Evaluates contrast between foreground and background
  • face_visibility: Checks if faces are clearly visible
  • visual_hierarchy: Analyzes the visual hierarchy
  • supporting_images: Evaluates supporting imagery
  • curved_edges: Checks for curved edges in design
  • product_visibility: Checks if product is clearly visible

Text & Copy Checks

  • lowercase_text: Checks text casing
  • call_to_action: Evaluates call to action text
  • word_count: Checks word count
  • imperative_verb: Checks for imperative verbs
  • text_readability: Evaluates text readability

Layout & Composition Checks

  • new_visibility: Checks if "NEW" tag is prominently displayed
  • visuals_left_text_right: Checks layout for visuals on left, text on right
  • face_gaze_direction: Checks direction of faces gazing
  • element_alignment: Checks alignment of elements
  • aspect_ratio: Verifies correct aspect ratio
  • responsiveness: Tests responsiveness for different screens

Technical Checks

  • file_naming: Checks file naming conventions
  • layer_organization: Validates layer organization
  • color_format: Checks color format compliance
  • image_resolution: Verifies image resolution
  • safety_area: Checks safety areas/margins
  • print_bleed: Verifies print bleed areas
  • crop_marks: Checks crop marks
  • animation_transitions: Evaluates animation transitions
  • dark_mode_legibility: Tests legibility in dark mode

Example Profile

Here's an example profile for a brand that focuses on product visibility and call to action:

{
    "name": "Product Marketing",
    "description": "Profile optimized for product marketing materials",
    "checks": {
        "product_visibility": {
            "weight": 0.30,
            "llm": "OpenAI",
            "enabled": true
        },
        "call_to_action": {
            "weight": 0.20,
            "llm": "OpenAI",
            "enabled": true
        },
        "brand_assets_visibility": {
            "weight": 0.15,
            "llm": "OpenAI",
            "enabled": true
        },
        "background_contrast": {
            "weight": 0.10,
            "llm": "Gemini",
            "enabled": true
        },
        "visual_hierarchy": {
            "weight": 0.15,
            "llm": "OpenAI",
            "enabled": true
        },
        "image_resolution": {
            "weight": 0.10,
            "llm": "Gemini",
            "enabled": true
        }
    }
}

Default Profiles

The system includes these default profiles:

  1. default.json - All checks enabled with equal weighting
  2. diageo.json - Diageo brand guidelines
  3. unilever.json - Unilever brand guidelines
  4. general.json - General technical checks