From 4f42527a061c80aa7242bc9069dfcff42e95252d Mon Sep 17 00:00:00 2001 From: Asterios Raptis Date: Wed, 5 Aug 2026 09:23:14 +0200 Subject: [PATCH] fix(templates): lowercase TEMPLATE lesson ids for schema 1.10 slug rule The TEMPLATE-*-lesson placeholder ids carry uppercase letters, which schema 1.10 (learn-content-engine#105, $defs/SlugId) rejects on lesson.id. No gate validates the templates, but a freshly copied template would now fail validation. Same change as adaptive-learner-content#177; titles keep TEMPLATE (not a slug field). Verified: engine 0.18.0 lint on all three files, exit 0. Co-Authored-By: Claude Fable 5 --- templates/knowledge/lesson.json | 2 +- templates/language/lesson.json | 2 +- templates/programming/lesson.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/knowledge/lesson.json b/templates/knowledge/lesson.json index de7fa7d..fb01896 100644 --- a/templates/knowledge/lesson.json +++ b/templates/knowledge/lesson.json @@ -1,5 +1,5 @@ { - "id": "TEMPLATE-knowledge-lesson", + "id": "template-knowledge-lesson", "title": "TEMPLATE — Replace with your lesson title", "description": "A ready-to-validate knowledge (non-language) lesson template. For non-language content the material and the explanation share ONE language, so source_language == target_language is allowed and the set folder carries a topic name. This example uses domain: psychology. See ../README.md and ../../docs/LESSON-FORMAT.md.", "target_language": "de", diff --git a/templates/language/lesson.json b/templates/language/lesson.json index 0cdf95e..d9a1d3c 100644 --- a/templates/language/lesson.json +++ b/templates/language/lesson.json @@ -1,5 +1,5 @@ { - "id": "TEMPLATE-language-lesson", + "id": "template-language-lesson", "title": "TEMPLATE — Replace with your lesson title", "description": "A ready-to-validate language lesson template. Copy this file into your set's lessons/ folder, rename it (kebab-case, matching the id), and replace the placeholder content. See ../README.md and ../../docs/LESSON-FORMAT.md for field-by-field guidance.", "target_language": "es", diff --git a/templates/programming/lesson.json b/templates/programming/lesson.json index 089af95..1648d92 100644 --- a/templates/programming/lesson.json +++ b/templates/programming/lesson.json @@ -1,5 +1,5 @@ { - "id": "TEMPLATE-programming-lesson", + "id": "template-programming-lesson", "title": "TEMPLATE — Replace with your lesson title", "description": "A ready-to-validate programming lesson template. Programming is a non-language domain (source_language == target_language). Code cards use the schema v1.3 fields code_snippet, code_language, expected_output and media_type: \"code\". See ../README.md and ../../docs/LESSON-FORMAT.md.", "target_language": "de",