Barclays-banner-builder/docs/reference
Vadym Samoilenko 24713ce5e6 Add Oliver rebrand, character counts, delete variants, 6-format spec validation
- Rebrand LoginPage logo to Oliver design system
- Move Admin nav link to bottom-left user area
- Remove "Ask AI to improve" button from step 2 (VariantsGrid)
- Add CharCount component with copy limits across prompt, edit, and export views
- Add delete variant with confirmation dialog on step 2 cards
- Add theme palette migration (0007_theme_palette.py)
- Add copyLimits.ts and themes.ts libs
- Remove unused BannerEditor.tsx page and old logo PNG
- Add AGENTS.md project entry point
- Add docs/ directory

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-10 15:35:25 +01:00
..
adrs Add Oliver rebrand, character counts, delete variants, 6-format spec validation 2026-05-10 15:35:25 +01:00
README.md Add Oliver rebrand, character counts, delete variants, 6-format spec validation 2026-05-10 15:35:25 +01:00

Reference — ADRs and Guides

Architecture Decision Records

ADR Date Title Status
2026-04-29-http-polling-no-websocket 2026-04-29 HTTP polling instead of WebSocket Accepted
2026-04-29-openai-structured-output 2026-04-29 OpenAI structured JSON output for copy generation Accepted
2026-04-29-system-prompt-immutable-versioning 2026-04-29 Immutable system prompt versioning for FCA audit Accepted

RAG Corpus Documents

Located in rag-corpus/ — these .docx files are embedded at deploy time and used to inject FCA compliance context into copy generation:

Document Content
Consumer Duty summary.docx FCA Consumer Duty principles and requirements summary
Consumer Understanding.docx Guidance on consumer-facing communications clarity
Our Regulators and developing marketing material Chatai.docx Regulatory guidelines for Barclays marketing material

Key Design Decisions (not in ADRs)

Decision Rationale
DAM mock mode when ADOBE_DAM_API_BASE_URL is empty Enables full UI development without DAM credentials
pgvector for both RAG and icon matching Single DB for all similarity search — no separate vector store
RQ + Redis instead of Celery Simpler setup for a single-server deployment
WeasyPrint for PDF Renders HTML/CSS to PDF; banner HTML reuses the same rendering logic as the preview
pair_id UUID on BannerVariant Groups all format variants from the same copy set for coherent display
Journey store with 2-hour TTL Prevents stale banner-set links from surfacing in the stepper after session gap