Add a new Real-World Projects lesson: RAG-Powered Changelog Generator from Git History (backlog idea #19).
Scope
docs/projects/changelog-from-git/index.md — new lesson matching the house skeleton. The twist vs. the notes/repo RAG projects: the "documents" here are commit messages, and they're generated from git log rather than read from files — so chunking is per-commit (no splitting needed), and the value comes from grouping and summarizing a stream of noisy, developer-punctuation-heavy messages into a clean human-readable changelog. Uses the free-tier LLM for synthesis, with a rule that every changelog line must trace back to real commits.
examples/changelog-from-git/ — a real, runnable tool: runs git log --format=... against a target repo (or a bundled sample git repo for out-of-the-box testing), fetches commit messages + hashes + authors, and asks a free-tier LLM to produce a categorized changelog (e.g. Added / Changed / Fixed), grouped by scope, with each entry citing the commit(s) it came from. Includes a notebook.ipynb and a README.md.
- Registration:
src/data/projects.ts, docs/projects/index.mdx, src/pages/index.tsx (English only — no i18n changes).
- Colab/Kaggle/Binder badges in "Where to run this", pointed at this PR's branch (to be updated to
main once merged). The notebook needs a git repo to read; hosted notebooks can clone the course repo itself (small, shallow clone) and generate a changelog from its recent commits, asking for the API key with getpass.
Framing note
The lesson should be honest that commit messages are a low-signal source: they vary wildly in quality, mix "fix bug" with "add feature", and contain noise (merge commits, formatting). So the project is really about judgment under noisy input: how to bucket, de-duplicate, and phrase a summary without inventing commits that don't exist. It should encourage comparing the tool's changelog against the actual git log output to spot both inventions and omissions.
Add a new Real-World Projects lesson: RAG-Powered Changelog Generator from Git History (backlog idea #19).
Scope
docs/projects/changelog-from-git/index.md— new lesson matching the house skeleton. The twist vs. the notes/repo RAG projects: the "documents" here are commit messages, and they're generated fromgit lograther than read from files — so chunking is per-commit (no splitting needed), and the value comes from grouping and summarizing a stream of noisy, developer-punctuation-heavy messages into a clean human-readable changelog. Uses the free-tier LLM for synthesis, with a rule that every changelog line must trace back to real commits.examples/changelog-from-git/— a real, runnable tool: runsgit log --format=...against a target repo (or a bundled sample git repo for out-of-the-box testing), fetches commit messages + hashes + authors, and asks a free-tier LLM to produce a categorized changelog (e.g. Added / Changed / Fixed), grouped by scope, with each entry citing the commit(s) it came from. Includes anotebook.ipynband a README.md.src/data/projects.ts,docs/projects/index.mdx,src/pages/index.tsx(English only — no i18n changes).mainonce merged). The notebook needs a git repo to read; hosted notebooks can clone the course repo itself (small, shallow clone) and generate a changelog from its recent commits, asking for the API key withgetpass.Framing note
The lesson should be honest that commit messages are a low-signal source: they vary wildly in quality, mix "fix bug" with "add feature", and contain noise (merge commits, formatting). So the project is really about judgment under noisy input: how to bucket, de-duplicate, and phrase a summary without inventing commits that don't exist. It should encourage comparing the tool's changelog against the actual
git logoutput to spot both inventions and omissions.