План урока для школы с нуля
Составляет план урока по стандарту, материалы для учеников и шаблон наблюдения в виде редактируемых документов Word.
- Что делает
- Составляет план урока по стандарту, материалы для учеников и шаблон наблюдения в виде редактируемых документов Word.
- Когда брать
- Когда школьному учителю нужен новый урок по математике, литературе и языку, естественным или общественным наукам, даже если класс и тема ещё не названы.
- Когда не брать
- Для оценивания, рубрики, обратной связи по работам, теста, поиска по стандартам, разбора готового урока по уровням и переписывания текстов.
- Пример запроса
- Мне завтра надо объяснить фотосинтез шестиклассникам. Составь план урока и материалы для учеников.
- Нужно подключить
- Python, терминал
- Работает лучше с
- Learning Commons KG (база стандартов и типичных ошибок)
Входит в плагин plugin. В Cowork и Claude Code можно поставить плагин целиком.
Как включить
- Скачайте архив и распакуйте его.
- Положите папку
k12-lesson-plan-creationв~/.claude/skills/. - Откройте Claude Code и опишите задачу своими словами: Claude подхватит скилл по описанию.
Текст
---
name: k12-lesson-plan-creation
description: >
Создаёт план урока, материалы для учеников и шаблон наблюдения. Загружай этот скилл ДО любых уточняющих вопросов учителю о классе, предмете, теме, стандарте или времени. Используй, когда школьному учителю (K-12) нужно составить с нуля урок по математике, литературе и языку (ELA), естественным или общественным наукам — даже если класс, предмет или тема ещё не названы. НЕ загружай для оценивания, рубрики, обратной связи по работам, теста или поиска по стандартам — отвечай на это напрямую. Срабатывает на прямые просьбы (план урока, мини-урок, план раздела, план на день) и на неявное намерение учителя: «я преподаю деление в столбик пятиклассникам», «мне завтра надо объяснить фотосинтез». Главный сигнал: учителю нужно создать новое учебное содержание. Новый урок, в котором просят дифференцированные, разноуровневые материалы, — всё равно ОДИН запрос на планирование: этот скилл выдаёт такие материалы внутри пакета урока; не вызывай при этом ещё и k12-lesson-differentiation. Не подходит для дифференциации готового урока (для этого k12-lesson-differentiation) и для переписывания текстов.
license: "Copyright 2026 Anthropic, PBC · Copyright 2026 Learning Commons · SPDX-License-Identifier: Apache-2.0. Complete terms in LICENSE and NOTICE."
---
Планирование школьного урока (K-12)
Выдаёт готовый для учителя урок по стандартам: план урока, материалы для учеников и шаблон наблюдения для учителя в виде редактируемых документов Word за один ход, собранных приложенными скриптами из одного JSON-источника материалов. У каждого предмета своя педагогика и своё сопоставление с результатом — они лежат в предметных справочных файлах. Этот скилл направляет к нужному. Работает как с Learning Commons Knowledge Graph, так и без него.
«Учитель» во всём этом скилле — пользователь, с которым ты разговариваешь, тот же самый человек, а не кто-то третий. «Для учителя» (teacher-facing) называет адресата документа: этот пользователь, в отличие от его учеников.
Держи учителя в курсе
Как только путь учителя определён (ответ на предложение черновика получен), в одном-двух предложениях скажи, что собираешься делать (например, *«Я найду стандарт и подберу идеи из учебных уроков программы, а затем соберу ваш план урока, материалы для учеников и шаблон наблюдения»*).
Если доступен инструмент списка задач, изложи там и шаги этого скилла, чтобы учитель видел, как они отмечаются выполненными; единственная причина этого не делать — в разговоре нет такого инструмента.
Только язык учителя — называй, что получает учитель, и никогда не называй инструменты, имена файлов, «JSON» или «сборку».
Шаг 0 — Маршрутизация (молча, прежде всего остального)
- Предмет. Определи предмет запрошенного урока по запросу и предыдущему разговору:
- math — арифметика, дроби, геометрия, алгебра, математический анализ, статистика, коды CCSS-M, IM (Illustrative Mathematics)
- ela — чтение, письмо, обучение чтению по звукам (phonics), литература, понимание прочитанного, словарь, коды CCSS-ELA (RL/RI/RF/W/L)
- science — явления, ожидаемые результаты NGSS, биология, химия, физика, науки о Земле, OpenSciEd
- social_studies — история, обществознание, география, экономика, цикл исследования C3, стандарты общественных наук штата
Затем ПРЯМО СЕЙЧАС прочитай соответствующий справочный файл:
- математика →
references/math.md - ELA →
references/ela.md - естественные науки →
references/science.md - общественные науки →
references/social_studies.md
Загрузка соответствующего справочного файла обязательна. Составлять урок, не прочитав сначала предметный справочник, — критическая ошибка. Справочный файл содержит полные предметные инструкции: приоритеты уточнений, ветвление по учебной программе, структуры по возрастным группам, структуру разделов, непреложные требования и сопоставление с lesson.json. Считай загруженный справочник своей полной инструкцией на этот ход. Если предмет действительно неочевиден или запрос охватывает несколько предметов, спроси об этом на шаге 1.
- Учебная программа. Если учитель называет или подразумевает учебную программу (Illustrative Mathematics, OpenSciEd, …), её ветка в предметном файле это покрывает — в каждом предметном файле структуры и язык его программы лежат внутри (программа и предмет сопоставляются 1:1: IM→математика, OpenSciEd→естественные науки). Если используется программа, которую предметный файл не покрывает, следуй его пути «программа не названа» и не изображай терминологию конкретной программы.
- Коннектор. Проверь, доступны ли в этом разговоре инструменты Learning Commons Knowledge Graph (например,
find_standard_statement). От этого зависит, по какому пути пойдёт шаг 2. Скилл полностью работоспособен и без коннектора.
Шаг 1 — Уточнение
Сначала прочитай предметный файл — его раздел об уточнении определяет приоритеты и значения по умолчанию. Задай не больше 2 уточняющих вопросов, выбранных по ранжированию приоритетов из предметного файла; остальное молча принимай по умолчанию.
Уточняющие вопросы и предложение черновика (*шаг 4*) уходят вместе в ОДНОМ раунде структурированных вопросов — предложение идёт отдельным вопросом и в эти 2 не входит. Если уточнять нечего, предложение задаётся само по себе. Второй раунд бывает только тогда, когда по ответам всё ещё не ясно, чему учит урок.
Шаг 2 — Опора на стандарты
Если LC Knowledge Graph подключён: следуй разделу по предмету в references/learning-commons-kg.md — обращайся ДО составления черновика; если подключён, а ты не обратился, это критическая ошибка. Извлекай только то, что указывает каждый вызов, затем сразу переходи к шагу 3 — не пересказывай находки в чате.
Если не подключён: составляй по лучшим знаниям и добавь в план урока сноску: *«Создано без Learning Commons Knowledge Graph. Стандарты и типичные заблуждения отражают общепринятую хорошую практику».* Не выдумывай ссылки на KG и не приписывай содержание учебным материалам, которых не видел.
Шаг 3 — Составление урока
Следуй разделу предметного файла о составлении: ветвление по учебной программе, структура по возрастной группе, структура разделов и непреложные требования. Соблюдай Ограничение по авторскому праву ниже — никогда не воспроизводи дословно тексты программ, предназначенные ученикам.
Ограничение по авторскому праву
Всегда пиши оригинальное содержание. Материалы учебных программ в KG определяют только структуру, объём, выбор текстов, выбор явлений, контекст задач и замысел последовательности урока — никогда не воспроизводи дословно тексты для учеников, пометки для учителя, вопросы на понимание, исследовательские задания, вопросы для обсуждения, описания видов деятельности или контексты задач из материалов программ в KG.
Если загруженный справочник указывает исходную программу (например, IM для математики, OpenSciEd для естественных наук), а учитель для неё не подтверждён, нигде в результате и ни в одном сообщении в чате не называй эту программу — ни в заголовках, ни в сносках, ни в обосновании, ни в пометках по проведению, ни в сообщении, которым показываешь результаты. Данные KG определяют замысел, не будучи процитированными.
Шаг 4 — Предложение черновика
Учитель получает выбор: быстрый черновик до сборки. Предложение идёт в раунде шага 1 (через инструмент структурированных вопросов, если он доступен, иначе в чате), и его две стороны — всегда пакет и черновик. Формулировка ниже входит в сам вопрос — учитель может ответить на него, не читая текст вокруг в чате:
- Вопрос: *Собрать полный готовый к занятию пакет (план урока + материалы для учеников, в виде редактируемых документов Word) или сначала показать быстрый черновик?*
- Варианты: Собирай сразу · Сначала быстрый черновик — урок в общих чертах, прямо здесь, в чате
По умолчанию — полный пакет. Ответ, выбирающий черновик или просящий показать черновик, получает черновик; на любой другой ответ выполняются шаги 2–3 и сразу шаг 5.
Черновик (при согласии) строится на шагах 2–3, а не вместо них. Выполни шаг 2 полностью — каждое обращение к KG точно как написано — и шаг 3, прежде чем что-либо набрасывать. Черновик, набросанный без опоры шага 2, — критическая ошибка, такая же, как пропуск KG при полной сборке. Затем покажи урок в чате — черновик существует только как текст в чате; сборка выполняется на шаге 5, когда учитель одобрит. Покажи:
- одну строку с классом, темой и стандартом, к которому привязан урок (код плюс суть не длиннее десяти слов);
- краткое содержание не длиннее 3 предложений (что делают ученики и почему это подходит этому классу);
- последовательность: один пункт на этап (название, минуты, одна строка о том, что происходит);
- работу учеников в общих чертах — реальные задания, которые они будут выполнять, достаточно, чтобы учитель мог пробежать глазами и оценить охват;
- что урок предполагает уже известным ученикам — предпосылочные навыки или ключевой словарь, — чтобы учитель заметил несоответствие тому, на каком уровне его класс;
- выходной билет (exit ticket)
Черновик заимствует названия из документов, которые он предваряет: этапы, задания, уровни и разделы называются так, как их назовёт план.
После этого спроси в обычном чате, что дальше — ответ, набранный текстом, может сам нести правки, чего не может выбранный вариант: *«Хотите что-то изменить? Напишите здесь — или скажите приступать, и я создам материалы (план урока, материалы для учеников и шаблон наблюдения в виде редактируемых документов Word)»*.
Вноси запросы на изменения в черновик в чате и показывай его снова — на этом этапе правки быстрые. Шаг 5 выполняется в том ходе, когда учитель даёт добро.
Шаг 5 — Результат (один ход)
Выполняется сразу, если учитель выбрал полный пакет, или в том ходе, когда черновик одобрен.
Результаты собираются приложенными скриптами из **одного источника материалов lesson.json**. В JSON есть блок shared (содержание, зарегистрированное один раз) и массив documents[] (каждый документ написан как свободные sections). heading раздела выводится крупным заголовком прямо над его блоками; label блока выводится жирной подводкой на самом блоке. Подпись, повторяющая заголовок своего раздела, печатает одни и те же слова два раза подряд — подписи несут то, чего нет в заголовке (название задания должно стоять в одном из них, а не в обоих). Ты сам составляешь каждую страницу — план урока, материалы для учеников, шаблон наблюдения и любые другие, нужные уроку (например, пакет источников), — прямо в documents[]. Всё, что встречается на нескольких страницах, регистрируется один раз в shared под выбранным тобой ключом и подтягивается в каждый документ блоком {"type": "from_shared", "key": …}, поэтому страницы не могут разойтись.
Никогда не пиши код вёрстки, не перепечатывай содержание урока в другой формат и не правь собранный документ напрямую — каждое изменение вносится в lesson.json и пересобирается (пересборка мгновенная). Не открывай, не выводи через cat, head или grep скрипты сборки — их поведение полностью описано командами и путями к результатам в §5a–5e, а references/example_lesson.json — заполненный разобранный пример. Чтение исходного кода скрипта не даст тебе ничего, чего нет в этих инструкциях.
Простой язык с учителем. Кухня, описанная выше, для учителя невидима: ни в одном сообщении для учителя не упоминай JSON, HTML, схемы, скрипты, сборку, имена файлов (lesson.json) и код — и никогда не давай ссылку на файлы .html, которые команда сборки тоже записывает, и не называй их. Говори *«Вот ваш план урока, материалы для учеников и шаблон наблюдения уже в пути»*, а не *«Я собрал lesson.json»*. Единственное слово о формате в твоей речи — «документ Word». Это относится к каждому ходу: показ результатов, вопрос об удовлетворённости, описания правок и сообщения об ошибках (если создание не удалось, скажи, что документы не удалось создать, а не что упал скрипт или JSON).
Перед записью lesson.json прочитай references/output.md целиком — там жёсткие требования к каждому документу (плотность, согласованность, уровень чтения, целостность) и полная схема lesson.json с руководством по блокам (§5a и §5e находятся там).
5b. Собери каждый документ Word — одной командой, в том же ходе
bash scripts/render_all.sh lesson.json "$OUTPUT_DIR"
Она записывает по одному редактируемому .docx на каждую запись documents[], с именем по id (например, $OUTPUT_DIR/lesson_plan.docx, student_materials.docx, observation_template.docx, source_packet.docx), плюс рабочие файлы .html и lesson.json. Собирай прямо в $OUTPUT_DIR и оставь на месте всё, что записал скрипт — последующие ходы правок пересобирают из рабочих файлов, хотя учитель видит только документы Word. Затем выведи список $OUTPUT_DIR и убедись, что у каждого документа есть и .docx, и .html; если какого-то нет или он крошечный, запусти скрипт снова. Покажи учителю документы Word вместе — план урока прикрепи последним, чтобы он оказался сверху (в чате новое показывается первым). Если документа student_materials нет, скажи об этом прямо («Этот урок устный, поэтому раздаточного материала для учеников нет — ученики будут работать с …»). Если скрипт выдаёт ошибку, исправь lesson.json (почти всегда это повреждённый JSON) и запусти снова. Если создание файлов не удалось совсем, скажи об этом прямо — не подменяй молча выдачу ответом в чате.
5c. Вопрос об удовлетворённости и варианты доработки (на каждом ходе с результатом)
Закончи ход РОВНО ОДНИМ заключительным сообщением, которое делает три вещи, по порядку:
- Если в «Материалах» названо оборудование, которое есть в классе и которое может заменить бумажная версия — монеты, кубики, игральные кости, таблица до ста, — начни с выделенного жирным предложения распечатать его: *«В этом уроке используются кубики для десятичной системы — сделать печатный набор на случай, если у вас их не хватает?»* Всё, содержание чего написано в этом уроке, — карточки со словами, выдержка из источника, коврик для сортировки с категориями этого урока — уже поставляется с пакетом.
- Спрашивает, доволен ли учитель каждым созданным результатом или хочет правок — например, *«Взгляните на план урока, материалы для учеников и шаблон наблюдения — что-нибудь поправить?»* Не пропускай этот вопрос.
- Предлагает 3–4 важных и конкретных варианта доработки, подогнанных под предмет и тему. Не пиши «дай знать, если хочешь правок» — это не предложение. Например, для урока литературы и языка (ELA) на понимание прочитанного в 3–5 классах: *«Хотите (1) добавить опор для изучающих английский, (2) дифференцировать по уровню подготовки или (3) привязать урок к стандартам вашего штата?»*
5d. Правки — одна правка, все результаты остаются согласованными
Вноси **точечные правки в lesson.json**, затем пересобирай каждый документ (мгновенно). Правила, сохраняющие согласованность результатов:
- Если изменение затрагивает содержание, зарегистрированное в
shared(задача, источник, выходной билет, словарь, на что смотреть при наблюдении, явление, контекст или числа), правь его **вshared** — каждый документ, подтягивающий этот ключ, обновится автоматически. - Сверка согласованности после любой смены контекста, чисел или задания: после правки
sharedперечитай каждый текстовый блок в каждой записиdocuments[]и обнови каждое предложение, где всё ещё упомянуты прежний контекст, имена или числа. Когда закончишь, ни в одном документе нигде не должно остаться ссылок на заменённое содержание — устаревший текст — самая частая ошибка согласованности. - Изменение, направленное на один документ (например, «больше места для решения на листе», «добавить столбец в таблицу наблюдения»), вносится в
sectionsэтого документа — а не разветвлением ключаsharedна два варианта. - Оформление: поля
theme(primary,title_size,body_size) действуют на каждый результат. Результаты используют минимум цвета, чтобы чисто печататься в чёрно-белом виде; не задавай цвета для отдельных разделов или этапов.
Перевод: iiuniversitet. Оригинал: https://github.com/anthropics/k12-teacher-skills/tree/main/plugin/skills/k12-lesson-plan-creation, лицензия Apache-2.0. Изменения: перевод на русский язык.
Оригинал на английском
---
name: k12-lesson-plan-creation
description: >
Creates a lesson plan, student-facing materials, and observation template. Load this skill BEFORE asking the teacher any clarifying question about grade, subject, topic, standard, or timing. Use when a K-12 teacher needs a math, ELA, science, or social studies lesson built from scratch — even if grade, subject, or topic isn't yet stated. Do NOT load for grading, a rubric, assessment feedback, a quiz, or a standards lookup — answer those directly. Triggers on explicit requests (lesson plan, mini-lesson, unit plan, daily plan) and implicit teacher intent: "I'm teaching long division to 5th graders," "need to teach photosynthesis tomorrow." Core signal: teacher needs new instructional content created. A new lesson that asks for differentiated, tiered, or leveled materials is still ONE planning request — this skill produces those materials inside the lesson package; do not also invoke k12-lesson-differentiation. Not for differentiating an existing lesson (use k12-lesson-differentiation) or passage rewrites.
license: "Copyright 2026 Anthropic, PBC · Copyright 2026 Learning Commons · SPDX-License-Identifier: Apache-2.0. Complete terms in LICENSE and NOTICE."
---
# K-12 Lesson Planning
Produces a teacher-ready, standards-aligned lesson plan + student-facing materials + teacher
observation template as editable Word documents in a single output turn, rendered from one material-source JSON via
bundled scripts. Each subject has its own pedagogy and
output mapping — these live in subject-specific reference files. This skill routes to the
right one. Works with or without the Learning Commons Knowledge Graph.
"The teacher" throughout this skill is the user you are talking with — the same person, never
a third party. "Teacher-facing" names a document's audience: that user, as opposed to their
students.
---
## Keeping the teacher posted
Once the teacher's path is set (the draft offer answered), say in one or two sentences
what you're about to do (e.g. *"I'll look up the standard and pull supporting ideas from
curriculum lessons, then build your lesson plan, student materials, and observation
template."*).
When a task-list or to-do tool is available, also outline this skill's steps there so the
teacher can watch them check off; the only reason to skip this is that no such tool exists
in this conversation.
Teacher language only — name what the teacher is getting, never tool names, file names,
"JSON", or "rendering".
---
## Step 0 — Route (silent, before anything else)
1. **Subject.** Determine the subject of the requested lesson from the prompt and any prior
conversation:
- **math** — arithmetic, fractions, geometry, algebra, calculus, statistics, CCSS-M codes, IM (Illustrative Mathematics)
- **ela** — reading, writing, phonics, literature, comprehension, vocabulary, CCSS-ELA codes (RL/RI/RF/W/L)
- **science** — phenomena, NGSS Performance Expectations, biology/chemistry/physics/earth science, OpenSciEd
- **social_studies** — history, civics, geography, economics, C3 inquiry arc, state social-studies standards
Then read the matching reference file NOW:
- math → `references/math.md`
- ELA → `references/ela.md`
- science → `references/science.md`
- social studies → `references/social_studies.md`
**Loading the matching reference file is mandatory.** Drafting a lesson without first
reading the subject reference is a critical failure. The reference file carries the
complete subject-specific instructions: clarify priorities, curriculum branching,
grade-band structures, section structure, non-negotiables, and the lesson.json mapping.
Treat the loaded reference as your full skill instructions for this turn. If the subject
is genuinely ambiguous or the prompt spans multiple subjects, ask about it
in Step 1.
2. **Curriculum.** If the teacher names or implies a curriculum (Illustrative Mathematics,
OpenSciEd, …), the subject file's curriculum branch covers it — each subject
file carries its curriculum's structures and language inline (curriculum and subject are
1:1: IM→math, OpenSciEd→science). If they use a curriculum the subject
file doesn't cover, follow its "no curriculum named" path and do not fake
curriculum-specific terminology.
3. **Connector.** Check whether the Learning Commons Knowledge Graph tools (e.g.
`find_standard_statement`) are available in this conversation. This decides which path
Step 2 takes. The skill is fully functional without the connector.
---
## Step 1 — Clarify
Read the subject file first — its clarify section defines the priorities and defaults. Ask
at most 2 clarifying questions, chosen by the subject file's priority ranking; apply the
defaults silently for everything else.
The clarify questions and the **draft offer** (*Step 4*) go out together as ONE
structured-question round — the offer is its own question and doesn't count toward the 2.
When nothing needs clarifying, the offer is asked on its own. A second round happens only
when the answers still don't say what the lesson teaches.
---
## Step 2 — Ground in standards
**If the LC Knowledge Graph is connected:** follow the subject's section in
`references/learning-commons-kg.md` — call BEFORE drafting; not calling when connected is a
critical failure. Extract only what each call specifies, then proceed directly to Step 3 — do
not summarize findings in chat.
**If not connected:** draft from best knowledge and add this footer to the lesson plan:
*"Generated without the Learning Commons Knowledge Graph. Standards and misconceptions reflect
general best practice."* Do not invent KG citations or attribute content to curriculum
materials you have not seen.
---
## Step 3 — Build the lesson
Follow the subject file's build section: curriculum branching, grade-band structure, section
structure, and non-negotiables. Respect the **Copyright guardrail** below — never reproduce
curriculum student-facing text verbatim.
---
## Copyright guardrail
Always write original content. KG curriculum materials inform structure, scope, text
selection, phenomenon selection, problem context, and lesson-arc design only — never
reproduce student-facing text, teacher notes, comprehension questions, investigation
prompts, discussion questions, activity narratives, or problem contexts verbatim from KG
curriculum materials.
If the loaded reference identifies a source curriculum (e.g., IM for math, OpenSciEd for science) and the teacher is not curriculum-confirmed for it, never name
that curriculum anywhere in the output or in any chat message — not in headers, footnotes,
rationale sections, facilitation notes, or your message presenting the artifacts. The KG
data informs the design without being cited.
---
## Step 4 — The draft offer
The teacher gets the choice of a fast draft before the build. The offer rides in Step 1's
round (structured question tool when available, chat otherwise), and its two sides are
always the packet and the draft. The wording below lives in the question itself — the
teacher may act on it without reading the chat text around it:
- Question: *Should I build a full classroom-ready packet (lesson plan + student
materials, as editable Word docs), or do you want to see a quick draft first?*
- Options: **Go ahead and build it** · **Quick draft first** — the lesson at a glance,
right here in chat
**The full packet is the default.** A reply that selects the draft option or asks to see
the draft gets the draft; every other reply runs Steps 2–3 and goes straight to Step 5.
**The draft (on a yes) is built on Steps 2–3, never instead of them.** Run Step 2 in
full — every KG call, exactly as written — and Step 3 before sketching anything. A draft
sketched without the Step 2 grounding is a critical failure, the same failure as skipping
the KG on the full build. Then present the lesson in chat — the draft is chat text only;
rendering happens at Step 5 once the teacher approves. Show:
- one line naming the grade, topic, and the standard the lesson is anchored to (code plus
a gist of ten words or fewer);
- a summary of at most 3 sentences (what students do and why it works for this class);
- the sequence as one bullet per phase (name, minutes, one line of what happens);
- the student work at a glance — the actual tasks students will do, enough for the
teacher to skim and judge coverage;
- what the lesson assumes students already know — the prerequisite skills or key
vocabulary in play — so the teacher can catch a mismatch with where their class is;
- the exit ticket
The draft borrows its names from the documents it previews — phases, tasks, tiers,
and sections are called what the plan will call them.
Afterwards, ask what's next in plain chat — a typed reply can carry the changes themselves,
which a picked option cannot: *"Want anything different? Tell me here — or tell me to go
ahead and I'll create the materials (lesson plan, student materials, and observation
template, as editable Word docs)."*
Apply change requests to the draft in chat and re-present it — changes are quick at this
stage. Step 5 runs in the turn the teacher gives the go-ahead.
---
## Step 5 — Output (one turn)
Runs immediately when the teacher chose the full packet, or in the turn the draft is
approved.
The artifacts are rendered by bundled scripts from **one material-source `lesson.json`**. The JSON
holds a `shared` block (content registered once) and a `documents[]` array (each document
authored as free-form `sections`). A section's `heading` renders as a large title directly
above its blocks; a block's `label` renders as a bold lead-in on the block itself. A label
that repeats its section's heading prints the same words twice in a row — labels carry what
the heading doesn't (the task's name belongs in one of them, not both). You
compose every page — the lesson plan, the student
materials, the observation template, and any others the lesson needs (e.g. a source packet)
— directly in `documents[]`. Anything that appears on more than one page is registered once
in `shared` under a key you choose and pulled into each document with
`{"type": "from_shared", "key": …}`, so the pages cannot drift apart.
Never write layout code, never re-type lesson content into another format, and never edit a
generated document directly — every change goes into `lesson.json` and is re-rendered
(re-rendering is instant). **Do not open, cat, head, or grep the renderer scripts** — their
behavior is fully specified by the commands and output paths in §5a–5e, and
`references/example_lesson.json` is a filled-in worked example. Reading script source tells
you nothing these instructions don't already state.
**Plain language with the teacher.** The machinery above is invisible to the teacher: never
mention JSON, HTML, schemas, scripts, rendering, file names (`lesson.json`), or code in any
teacher-facing message — and never link or name the `.html` files the render command also
writes. Say *"Here's your lesson plan — the student materials and observation template are on
their way"*, not *"I've rendered lesson.json"*. The only format word in your prose is
"Word document". This
applies to every turn: presenting artifacts, the satisfaction ask, revision summaries, and
error messages (if generation fails, say the documents couldn't be created — not that a
script or JSON failed).
Before writing `lesson.json`, read `references/output.md` in full — it carries the hard
requirements for every document (density, consistency, reading level, integrity) and the
complete `lesson.json` schema and block guide (§5a and §5e live there).
### 5b. Render every Word document — one command, same turn
```bash
bash scripts/render_all.sh lesson.json "$OUTPUT_DIR"
```
This writes one editable `.docx` per `documents[]` entry, named by `id` (e.g.
`$OUTPUT_DIR/lesson_plan.docx`, `student_materials.docx`, `observation_template.docx`,
`source_packet.docx`), plus `.html` and `lesson.json` working files. Render straight into
`$OUTPUT_DIR` and leave everything the script writes in place — later revision turns
re-render from the working files even though the teacher only sees the Word documents. Then list `$OUTPUT_DIR`
and confirm every document has both its `.docx` and `.html`; if either is missing or tiny,
rerun the script. Present the Word documents to the teacher together — attach the lesson plan
last so it lands on top (chat surfaces stack newest-first). If there is no `student_materials`
document, say so plainly ("This lesson is oral, so there's no student handout — students will
work with …"). If the script errors, fix `lesson.json` (it is almost always malformed JSON)
and rerun. If file generation fails entirely, say so clearly — do not silently fall back to a
chat-only delivery.
### 5c. The satisfaction ask + iteration options (every output turn)
End the turn with EXACTLY ONE closing message that does three things, in this order:
1. **If Materials names equipment the classroom has that a paper version can stand in
for** — coins, blocks, dice, a hundred chart — lead with a bolded offer to print it:
*"**This lesson uses base-ten blocks — want me to make a printable set in case
yours are short?**"* Anything whose content this lesson wrote — word cards, a
source excerpt, a sorting mat with this lesson's categories — already ships with
the package.
2. Asks whether the teacher is satisfied with **every artifact produced** or wants changes —
e.g. *"Take a look at the lesson plan, student materials, and observation template — anything
you'd like me to adjust?"* Do not skip the ask.
3. Offers 3–4 high-leverage, **specific** iteration options customized to the subject and
topic. Do not write "let me know if you want changes" — that's a non-offer. For example,
for a 3–5 ELA reading comprehension lesson: *"Would you like to (1) add more scaffolds for
English learners, (2) differentiate by proficiency level, or (3) adapt to be specific to
your state standards?"*
### 5d. Revisions — one edit, every artifact stays in sync
Make **targeted edits to `lesson.json`**, then re-render every document (instant). Rules that
keep the artifacts consistent:
- If the change touches content registered in `shared` (a problem, a source, the exit ticket,
vocabulary, look-fors, the phenomenon/context/numbers), edit it **in `shared`** — every
document that pulls that key updates automatically.
- **Consistency sweep after any context/number/task change:** after editing `shared`, re-read
every prose block in every `documents[]` entry and update every sentence that still mentions
the old context, names, or numbers. When you are done, no document may reference the
replaced content anywhere — stale prose is the most common consistency failure.
- A change aimed at one document (e.g. "more workspace on the worksheet", "add a column to the
observation grid") goes in that document's `sections` — never by forking a `shared` key into
two variants.
- Styling: `theme` fields (`primary`, `title_size`, `body_size`) apply to every artifact.
Artifacts use minimal color so they print cleanly in black-and-white; do not set
per-section or per-phase colors.
Источник: anthropics/k12-teacher-skills / plugin / k12-lesson-plan-creation ↗. Ссылка проверена 2026-10-10.