LLM Council

Fork notes (elhamid)
This is a fork of karpathy/llm-council.
Update — 2025-12-19 (Stability + auditability pass)
New in this fork since the previously published state:
- Conversation history is complete again: storage loads older runs from
backend/data/conversations.jsonand supports the legacydata/layout (includingdata/conversations/per-conversation JSON files when present), so older runs show up in the UI. - Sidebar no longer truncates early: the frontend now requests
/api/conversations?limit=500so the conversation list reliably shows full history. - Stage 2 judge duplication fixed: Stage 2 now dedupes judge models so evaluation does not silently double-count the same judge.
- Titles persist correctly: after Stage 3 completes, a title is derived and saved to the conversation record, so it sticks across refreshes and appears in history.
- Tooling + reproducibility: added Stage 2 smoke/quality scripts and supporting evaluation artifacts to make regressions repeatable.
- Roles updated + clarified: earlier fork notes described roles as Analyst / Researcher / Critic / Provocateur; the implemented role set is now Builder / Reviewer / Synthesizer / Contrarian (with a provider-default mapping in
backend/roles.py). This keeps the “multi-perspective” intent, but with clearer, more actionable role behavior.






