# Reference — ADRs and Guides ## 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 |