# System Overview: Stemwijzer This mindmodel documents constraints, conventions and patterns for the Stemwijzer project (Python Streamlit app with DuckDB-backed pipeline for parliamentary motions embedding analysis). Key points: - Language: Python >=3.13 - UI: Streamlit multi-page app (Home.py, pages/) - Storage: DuckDB with JSON fallback for tests/dev (database.py) - Pipeline: ETL and SVD/text fusion pipeline (pipeline/run_pipeline.py) - AI: ai_provider adapter uses HTTP-based OpenRouter/OpenAI-compatible API with retry/backoff and local fallback. QWEN via OpenRouter is the recommended path; prefer OPENROUTER_API_KEY with OPENAI_API_KEY as a fallback where applicable. Use the .mindmodel/ constraints files to guide code changes, CI, and onboarding.