## Outcome Use the OpenAI Responses API to create unpublished candidate explanations, recall questions, and change summaries from approved source material. ## Acceptance criteria - [ ] AsyncOpenAI is created and closed through FastAPI lifespan. - [ ] API key and model configuration remain server-side and out of Git. - [ ] The public reader exposes no generic prompt endpoint. - [ ] Output is always a draft requiring human review. - [ ] Prompts require source-grounded output and preserve exact source references. - [ ] The MVP remains usable when OpenAI is not configured.
Outcome
Use the OpenAI Responses API to create unpublished candidate explanations, recall questions, and change summaries from approved source material.
Acceptance criteria