Barclays-banner-builder/docs/reference/README.md
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

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 |