0002 — Full course built in one session
Date: 2026-07-27
What shipped: Lessons 2-5 plus a reference cheat sheet, completing the 5-lesson roadmap set out in Lesson 1. RT asked to build all remaining lessons directly rather than walking them one at a time.
API verification done before writing (per mission constraint "ground in current docs, not memory"): checked LangGraph and LangChain docs live via Context7 on 2026-07-27 before writing any code sample. Confirmed current as of that date:
langchain_text_splitters.RecursiveCharacterTextSplitter
langchain_huggingface.HuggingFaceEmbeddings
langchain_chroma.Chroma
langgraph.graph.StateGraph / add_node / add_edge / add_conditional_edges
langgraph.types.interrupt + Command(resume=...), paired with a checkpointer (InMemorySaver for demo)
- LangChain 1.0's
create_agent + dynamic_prompt middleware exists as a higher-level alternative to raw LangGraph for RAG; not used in the demo because the enterprise pitch needs the explicit graph a compliance officer can see, not an abstraction over it.
Design calls made (not asked, judged in scope of "Claude-assisted builds"):
- Multilingual embedder chosen:
sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2, free/local, handles Korean. Makes the "documents never leave your infrastructure" pitch line literally true in the demo, not just a script.
- Citation validation implemented as a plain Python regex-and-set-difference check (Lesson 5), not an LLM self-report. This is the concrete answer to Lesson 1's "generate stage can hallucinate a citation" failure mode.
- Approval gate fires only when citation validation passes; a failed check is marked not-approved without ever reaching the human as a judgment call, so a human reviews ambiguous answers, not provably-broken ones.
Retention check for next contact: ask RT, unprompted, to explain in his own words (a) why LangGraph is the flowchart and not the validator, and (b) where the citation check actually lives in the graph. This directly tests whether the Lesson 1 misconception (logged in 0001-starting-point.md) actually resolved, or just got agreed to in the moment.
Course status: all 5 lessons + reference sheet complete. No lesson 6 planned. Next open thread only if RT brings it up: production checkpointer (Postgres, not InMemorySaver), a real prospect-facing demo script, or RAG evaluation (flagged as a resource gap in RESOURCES.md, still unfilled).