Splits the monolithic CLAUDE.md (962 lines) into a slim project-wide root (211 lines) plus per-client files. Auto-loaded context drops ~88% per session. Changes: - CLAUDE.md slimmed to project-wide essentials (architecture, auth, deployment, branch strategy, deploy scripts, prod troubleshooting, pre-session checklist). Adds explicit session-start convention pointing to CLAUDE_<CLIENT>.md for client-specific work. Updates client roster table to all 10 clients with profile counts. - New CLAUDE_AXA.md: document-mode pipeline + axa_policy_document profiles - New CLAUDE_DIAGEO.md: key_visual + packaging profiles, check inventories - New CLAUDE_UNILEVER.md: profiles + zero-score logic for face/new visibility - New CLAUDE_HONDA.md, CLAUDE_RANK.md, CLAUDE_GENERAL.md: stubs (clients use generic profiles only — kept for completeness and future expansion) - backend/CLAUDE.md: stale 932-line duplicate replaced with 18-line redirect to root + backend-specific quick pointers Per-client files (CLAUDE_LOREAL.md, CLAUDE_AMAZON.md, CLAUDE_BOOTS.md, CLAUDE_DOW_JONES.md) unchanged — already had the right content. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.1 KiB
Unilever Client Documentation
Referenced from main CLAUDE.md. Detailed Unilever QC profile descriptions, profile-specific scoring logic, and check inventories.
Overview
Unilever has two specialised profiles: Key Visual (campaign creative) and Packaging (label/pack design). Both share most checks with Diageo (generic CPG-style visual checks) but include a small number of bonus checks with profile-specific zero-scoring behaviour for missing critical elements.
Unilever Profiles
unilever_key_visual — 15 checks (120-point scale)
Campaign key-visual QC.
| Check | What it does | Weight |
|---|---|---|
background_contrast |
Product/text contrast against background | 0.10 |
brand_assets_visibility |
Brand assets visible | 0.12 |
call_to_action |
CTA presence and clarity | 0.03 |
curved_edges |
Curved-edge treatment | 0.04 |
face_gaze_direction |
Gaze direction guides toward product/CTA (bonus / zero-score) | 0.06 |
face_visibility |
Face presence and visibility (bonus / zero-score) | 0.07 |
imperative_verb |
Headline uses imperative verb | 0.02 |
logo_visibility |
Brand logo visible | 0.14 |
lowercase_text |
Lowercase usage rules | 0.10 |
new_visibility |
"NEW" tag visibility (bonus / zero-score) | 0.07 |
supporting_images |
Supporting imagery quality | 0.10 |
text_readability |
Text legibility (deprecated, now part of inheritance) | (n/a) |
visual_elements_count |
Element count not overwhelming | 0.14 |
visual_hierarchy |
Clear visual hierarchy | 0.10 |
visuals_left_text_right |
Visuals left, text right composition | 0.06 |
word_count |
Headline word count | 0.05 |
unilever_packaging — 17 checks
Packaging design QC. Same base as Key Visual plus print-related checks (crop_marks, color_format).
Profile-specific scoring logic — bonus / zero-score
The Unilever Key Visual profile implements zero-score behaviour for three checks tied to the presence of specific creative elements:
| Check | Trigger | Behaviour |
|---|---|---|
face_visibility |
face_present == false |
Score forced to 0 |
new_visibility |
new_present == false |
Score forced to 0 |
face_gaze_direction |
face_present == false |
Score forced to 0 |
This ensures that creatives missing critical brand-mandated elements (a face, the "NEW" tag) cannot pass on the back of high scores from other checks. The zero-score logic lives in api_server.py:extract_score_from_result() and is gated by profile_config.get('name') == 'Unilever Key Visual'.
The Unilever Key Visual profile uses a 120-point scale (total weight slightly above 1.0) — the bonus checks add headroom rather than being equally weighted with the core checks.
Status
No formal client-driven prompt-tuning rounds in this repo's history. The profile-specific scoring logic was added as a system enhancement to handle the bonus-check pattern.
If Unilever-specific tuning is required (specific brand families, regional rules, etc.), introduce dedicated unilever_* checks in visual_qc_apps/ following the Boots / Amazon pattern.