Back to Knowledge Base

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.

120 lessons13 phases578,607 wordsupdated 2026-05-162026-07-03

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.

1

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.

2

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.

3

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.

4

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.

5

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.

6

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.

Hard · blocks publish

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.

Advisory · flags only

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

The lesson prose, examples and explanation ladders — authored by the pipeline above.
The spoken audio narration and knowledge-graph edges — regenerated from the lesson on change.
The study aids (spaced-repetition cards, recall cues) derived from generated lessons.

Human / not generated

Curation and sequencing — which topics exist and in what order is an editorial decision, not generated.
Publishing — a human reviews and approves before a lesson goes live; there is no autonomous publish.
The freshness dates below — these are git commit dates of each lesson file, not a model-authored field.
Source selection — the corpus each lesson is grounded in is chosen and maintained by the maintainer.

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.

Phase 1 · Foundations & Model Inference7 lessons · 38,404 words · newest 2026-06-29
LessonWordsReadUpdated


4,76624m
2026-05-17

4,71224m
2026-05-17

5,81729m
2026-05-17

5,29226m
2026-06-13
Phase 2 · Prompting & Structured Output10 lessons · 54,368 words · newest 2026-07-02
LessonWordsReadUpdated

Prompt Engineering Fundamentals: Principles & Patterns

#10 · prompt-engineering-fundamentals

5,46827m
2026-07-02

Few-Shot & Chain-of-Thought Prompting

#11 · few-shot-chain-of-thought

5,43727m
2026-06-29

5,82929m
2026-05-16

1,1236m
2026-06-29

6,04230m
2026-05-17
Phase 3 · Embeddings & RAG9 lessons · 43,692 words · newest 2026-07-03
LessonWordsReadUpdated

Embeddings

#20 · embeddings

3,28216m
2026-06-29

5,29326m
2026-05-17

6,00330m
2026-06-29

3,07615m
2026-05-17

6,17131m
2026-07-03

6,22231m
2026-06-29

6,55833m
2026-05-17
Phase 4 · Agents & Orchestration19 lessons · 73,151 words · newest 2026-07-03
LessonWordsReadUpdated


5,16726m
2026-07-03

8,52743m
2026-07-02

1,6218m
2026-06-29

Reflexion: Self-Improving Agents via Verbal Reinforcement

#101 · reflexion-self-improving-agents

1,6678m
2026-06-29

1,7169m
2026-06-29

1,5818m
2026-06-29

1,3657m
2026-06-29

1,5218m
2026-06-29

1,3107m
2026-06-29

1,6088m
2026-06-29

1,6608m
2026-06-29

Generative Agents: The Memory Stream

#109 · generative-agents-memory

1,7039m
2026-06-29

1,7119m
2026-06-29
Phase 5 · Long-Term Memory8 lessons · 46,780 words · newest 2026-06-29
LessonWordsReadUpdated


1,0205m
2026-06-29

4,43022m
2026-06-29

8,56043m
2026-05-19

8,61843m
2026-05-19

1,5508m
2026-06-29
Phase 6 · LangChain & LangGraph9 lessons · 21,600 words · newest 2026-07-02
LessonWordsReadUpdated


1,5638m
2026-06-29

1,6868m
2026-05-19

1,6388m
2026-05-19

1,5118m
2026-05-19
Phase 7 · Evals, Safety & Observability17 lessons · 95,827 words · newest 2026-06-29
LessonWordsReadUpdated

7,16536m
2026-06-29

7,74239m
2026-05-19

5,63528m
2026-05-19

5,66128m
2026-05-19

Constitutional AI & RLHF for Safety

#63 · constitutional-ai

5,61228m
2026-05-19

4,91625m
2026-05-19

6,24231m
2026-05-19

6,09430m
2026-06-29
Phase 8 · Ship to Production9 lessons · 52,764 words · newest 2026-07-03
LessonWordsReadUpdated

6,18131m
2026-05-19

5,86329m
2026-05-19

5,33827m
2026-05-19

Search & Recommendations with LLMs

#76 · search-recommendations

6,19931m
2026-06-13

6,27331m
2026-05-19

5,54228m
2026-05-19

5,15626m
2026-07-03

5,99430m
2026-05-19
System Design Foundations7 lessons · 23,475 words · newest 2026-07-02
LessonWordsReadUpdated

4,69323m
2026-06-06

6,10831m
2026-06-06

Microservices

#90 · microservices

2,13111m
2026-06-06

SOLID Principles

#93 · solid-principles

2,22511m
2026-06-06

ACID Properties

#94 · acid-properties

2,01310m
2026-06-06
Appendix · Other Clouds & Platforms5 lessons · 14,149 words · newest 2026-05-17
LessonWordsReadUpdated

5,11926m
2026-05-16

Microsoft Azure

#81 · azure

2,29011m
2026-05-16

2,25411m
2026-05-17

Docker

#88 · docker

2,21411m
2026-05-17

Kubernetes

#89 · kubernetes

2,27211m
2026-05-17
Appendix · Fine-tuning & Training6 lessons · 33,080 words · newest 2026-05-17
LessonWordsReadUpdated

5,50028m
2026-05-17

4,93325m
2026-05-17

5,92430m
2026-05-17
Appendix · Engineering & Communication12 lessons · 65,715 words · newest 2026-07-02
LessonWordsReadUpdated

AWS Lambda & Serverless

#85 · aws-lambda-serverless

6,63333m
2026-05-17

AWS API Gateway & Networking

#86 · aws-api-gateway-networking

7,65038m
2026-05-17

AWS IAM & Security

#87 · aws-iam-security

7,14536m
2026-05-17

AWS Compute & Containers

#88 · aws-compute-containers

7,86239m
2026-05-17

AWS Storage & S3

#89 · aws-storage-s3

7,10236m
2026-05-17

AWS CI/CD & DevOps

#90 · aws-cicd-devops

8,53543m
2026-05-17

9,69048m
2026-05-17

CI/CD

#91 · ci-cd

2,00910m
2026-05-17

Node.js

#92 · nodejs

2,37412m
2026-05-17

LlamaIndex

#97 · llamaindex

3,32817m
2026-07-02

1,2806m
2026-06-29
Appendix · AWS Deep Dives2 lessons · 15,602 words · newest 2026-05-17
LessonWordsReadUpdated

8,58843m
2026-05-16

AWS DynamoDB & Data Services

#93 · dynamodb-data-services

7,01435m
2026-05-17

Freshness colors: green updated Jun 2026 or later · amber mid-May 2026 · gray earlier or unknown.