- 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> |
||
|---|---|---|
| .. | ||
| adrs | ||
| README.md | ||
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 |