## Summary
Fixes [#12](https://git.labs.respellion.tech/rve/learning-platform/issues/12) — the noisy `[Curriculum] Schedule generated with warnings: ...` log that read like an error in the learning station.
- With more than 26 themes in the KB the AI is *required* to merge themes — labels not appearing as week names are expected, not warnings.
- `validateSchedule` now only flags missing theme labels when `themes_kb <= 26`.
- Adds a real coverage check: warns when learning topics are absent from every week of the schedule (the actual signal worth surfacing).
- 5 new vitest cases covering merge-vs-no-merge, topic coverage, fact/exclude exemption, and existing hard errors.
## Test plan
- [x] `npm test` — 90/90 green (5 new tests added)
- [ ] Manual: open Learning Station with the current 47-theme curriculum and confirm the console no longer shows the misleading warning
- [ ] Manual (admin): generate a draft and verify coverage tiles still render
Closes #12
🤖 Generated with [Claude Code](https://claude.com/claude-code)
When the KB has more than 26 themes the curriculum AI is required to
merge — so theme labels not appearing as week names are expected, not
warnings. The previous validation surfaced this as a console.warn that
read like an error in the learning station console.
- validateSchedule now only flags missing theme labels when themes_kb <= 26
- adds a real coverage check: warns when learning topics are absent from
every week (the actual signal we care about)
- adds vitest coverage for both behaviours
Closes#12
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
rve
merged commit 2b2921f6ed into main2026-06-03 20:08:59 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Fixes #12 — the noisy
[Curriculum] Schedule generated with warnings: ...log that read like an error in the learning station.validateSchedulenow only flags missing theme labels whenthemes_kb <= 26.Test plan
npm test— 90/90 green (5 new tests added)Closes #12
🤖 Generated with Claude Code