How the Curriculum Is Made
The lessons on this site are AI-authored through a multi-pass pipeline behind a quality gate — so the curriculum can stay current without a human writing every word, while still reading like an edited course. This page shows exactly how that works, and how fresh each lesson is.
The multi-pass pipeline
Each lesson is built by the same repeatable pipeline (in roadmap-kg/kg/ground_content.py). Every stage names the real mechanism it uses, so the description is verifiable rather than marketing.
Research
A retrieval index is built over the real sources for the topic — existing lessons plus code and specs. Code is split function/class-aware (CodeSplitter); prose stays on a sentence splitter. Embeddings are content-keyed and cached (IngestionPipeline + IngestionCache), so re-runs that only touch prompts don't re-embed.
Retrieve
For each section, a fusion retriever (Reciprocal Rank Fusion over a dense FastEmbed retriever plus a BM25 keyword retriever, with LLM-generated query variants) pulls the most relevant chunks, then a cross-encoder reranker keeps the best. Keyword recall catches exact mechanism terms the embedder misses.
Outline & Draft
The draft is produced as typed structured output (llm.structured_predict), so an explanation ladder (Gist → More → Deep) comes out as one coherent progression rather than three disconnected queries. System-design sections decompose into mechanism / trade-off / failure-mode sub-questions (SubQuestionQueryEngine), each retrieved and answered, then synthesized.
Review
Every generated body is scored against its retrieved context by a FaithfulnessEvaluator — the check is whether the claims are actually supported by the sources, not just whether the prose reads well.
Revise
An ungrounded body is regenerated once with a stricter ask. Deterministic re-runs (fixed splitters, cached embeddings, seeded retrieval) mean the same inputs reproduce the same output.
Quality gate
Before an audio-derived artifact publishes, the mechanical gate (kg.audio_gate) must pass — a hard set of structural and readability checks summarized below. A human reviews and approves before a lesson goes live.
What the quality gate enforces
The mechanical gate (kg.audio_gate, a faithful port of the original Rust gate) runs before a lesson’s audio-derived artifacts publish. Hard checks block publish; advisory checks flag but never block. The prose lessons themselves are gated by the faithfulness check in step 4 — claims must be supported by the retrieved sources. Thresholds are grounded in readability research (Flesch 1948; Fang 1966; DuBay 2004), cited in the gate source.
structural integrity
Chapter durations, start offsets, total duration and the stitched full-script must all reconcile (duration-mismatch, start-secs, total-duration, full-script-integrity).
minimum length
No chapter under 40 words (chapter-too-short); at least ~400 words total, so a gate-passing unit is substantive, not a stub.
readability floor
Flesch Reading Ease ≥ 50 (FLESCH_MIN) — the plain-English boundary; spoken material can't drop into the 'difficult' band a reader could re-read.
sentence ceiling
No sentence over 30 words (PACING_MAX_SENTENCE_WORDS) — a hard breath/comprehension ceiling for listening.
spoken numbers
Numbers under ten are spelled out, not left as glyphs (spoken-small-digits), because a listener parses the word, not the numeral.
acronym first use
A non-allowlisted acronym must be expanded on first use (acronym-first-use) — unexpanded acronyms are a comprehension failure by ear.
title length
Chapter titles capped at five words, so section headings stay scannable and speakable.
easy-listening
Fang's Easy Listening Formula (syllables − words > 20) flags a lone short-but-dense sentence.
spoken-symbol
Percent / currency / operator glyphs and fractions are flagged with a spelled-out suggestion.
sentence variety
Uniform sentence length (low coefficient of variation) reads as monotone and flattens synthesized prosody.
AI tells & polarity
Advisory checks for generic 'AI voice', over-negative framing, and comma-spliced spoken lists.
What is and isn’t AI-generated
Being explicit about the boundary is part of the trust model. Fully autonomous publishing is deliberately out of scope — a human stays in the loop.
AI-generated
Human / not generated
Lesson freshness
Every lesson, grouped by phase, with its word count, reading time and last-updated date. Dates are the git commit date of each lesson’s source file — an honest content-history signal, not a maintained field. Median lesson is 5,388 words.
Derived deterministically by node data/curriculum/build-stats.mjs.
#4 · transformer-architecture
#6 · model-architectures
#8 · inference-optimization
#10 · prompt-engineering-fundamentals
#13 · structured-output
#14 · function-calling
#16 · prompt-optimization
#17 · prompt-caching
#18 · adversarial-prompting
#22 · vector-databases
#24 · chunking-strategies
#29 · agent-architectures
#30 · multi-agent-systems
#32 · agent-orchestration
#33 · agent-harnesses
#36 · agent-debugging
#101 · reflexion-self-improving-agents
#103 · lats-tree-search-agents
#104 · supervisor-multi-agent-lab
#105 · tree-of-thoughts-agents
#110 · agent-persistence-and-hitl
#111 · agent-benchmarking
#39 · context-window-management
#40 · memory-architectures
#41 · dynamic-context-assembly
#42 · context-compression
#49 · langmem-vectorize-memory
#43 · langchain-fundamentals
#44 · langchain-tools-retrievers
#46 · langgraph-human-in-the-loop
#47 · langgraph-multi-agent
#48 · langgraph-d1-checkpointing
#50 · langgraph-streaming-observability
#51 · langgraph-deployment
#52 · langgraph-red-teaming
#53 · eval-fundamentals
#54 · benchmark-design
#56 · human-evaluation
#57 · eval-frameworks-comparison
#58 · deepeval-synthesizer
#59 · agent-evaluation
#61 · guardrails-filtering
#62 · hallucination-mitigation
#66 · interpretability
#68 · online-evaluation
#71 · cost-optimization
#77 · conversational-ai
#78 · vision-language-models
#72 · scaling-load-balancing
#74 · production-patterns
#95 · postgresql-joins
#96 · foreign-keys
#81 · fine-tuning-fundamentals
#84 · dataset-curation
#85 · continual-learning
#86 · distillation-compression
#98 · public-speaking
#112 · landing-an-ai-engineering-role
Freshness colors: green updated Jun 2026 or later · amber mid-May 2026 · gray earlier or unknown.