**Problem**: The admin panel showed 11 notes, but there should have been 14 — 3 were missing.
**Root Cause**: Three new note files used -lesson.json (singular), but both the backend and generate.js only scan for -lessons.json (plural). Singular files were silently dropped.
**Fix**: Rename all -lesson.json files to -lessons.json, rebuild — counts restored.
**Principle**: File naming conventions need to be documented, not trusted to memory. 'I'll remember this time' is not reliable. The next session (or the next person) will step on the same trap.