- 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>
36 lines
1.9 KiB
Markdown
36 lines
1.9 KiB
Markdown
# Reference — ADRs and Guides
|
|
|
|
<!-- generated: 2026-04-29 -->
|
|
|
|
## Architecture Decision Records
|
|
|
|
| ADR | Date | Title | Status |
|
|
|-----|------|-------|--------|
|
|
| [2026-04-29-http-polling-no-websocket](adrs/2026-04-29-http-polling-no-websocket.md) | 2026-04-29 | HTTP polling instead of WebSocket | Accepted |
|
|
| [2026-04-29-openai-structured-output](adrs/2026-04-29-openai-structured-output.md) | 2026-04-29 | OpenAI structured JSON output for copy generation | Accepted |
|
|
| [2026-04-29-system-prompt-immutable-versioning](adrs/2026-04-29-system-prompt-immutable-versioning.md) | 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 |
|