diff --git a/.gitignore b/.gitignore
index cbdeb74..5791d2b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@
/*
!/.gitignore
!/README.md
+!/CHANGELOG.md
!/run.sh
!/run.ps1
!/get-iso.sh
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..644bceb
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,35 @@
+# Changelog
+
+All notable changes, per version and per commit. Versions follow
+[Semantic Versioning](https://semver.org/) and were numbered from the start
+of the history.
+
+## 0.2.0 - 2026-09-24
+
+Watchable test runs and the lessons from testing cachyos-gamescope-boot 0.7.0
+(cachyos-vapor theme, LED driver on every kernel).
+
+- `b4114a1` **feat: Visible wizard runs, one-step VM reset and screenshots; skill updates**
+ - `scripts/vmreset.sh [--fremont]`: restore `ssh-ready`, boot, mount the repo,
+ set up the test autologin and wait for Plasma.
+ - `scripts/vmwatch.sh '' [label]`: run the wizard in a visible Konsole
+ in the VM, so someone at the QEMU window can follow along.
+ - `scripts/vmshot.sh `: screenshot via a user unit (spectacle
+ crashes when started straight from SSH).
+ - `scripts/vmstate.sh`: DKMS status per kernel, the DKMS override, the kernel
+ headers service, the dark look-and-feel, the wallpaper and the theme's
+ layout backup.
+ - `scripts/cmp.sh`: also compares `kcminputrc` and `ksplashrc`.
+ - Skill: VM directory outside the repo, the menu's first-run pre-ticks and
+ the conversion/single-user coupling, the repo mount lost on reboot,
+ re-applying the conversion resets the session to gamescope, the new
+ theme and LED checks in the test matrix, and the broken mirror workaround.
+- **docs: Changelog**
+
+## 0.1.1 - 2026-09-23
+
+- `d2cf240` **fix: Document how to add the host SSH key to the VM**
+
+## 0.1.0 - 2026-09-23
+
+- `97c5c56` **fix: Add CachyOS test VM dev environment and VM testing skill**