Производственный план
Сентябрьский набор: планка приёмки, заголовок как вексель, 13 уроков, что чинить до генерации
Производственный план: сентябрьский набор
Что производим в сентябре и на каких условиях принимаем. Сто два урока на четыре аудитории, система заголовков, которые цепляют без обмана, поднятая планка приёмки и шесть технических вещей, которые надо закрыть до того, как включать генерацию. Темы лежат в
docs/TOPIC-BANK.md, методология приёмки вcontent/docs/methodology/rigor.md.План производства, 23 августа 2026. Продолжение по полосе 7-9 классов, 24 августа 2026. Ветка main, коммит 3c51823. Сборка зелёная, 104 страницы. Гейт поднят до уровня эталонов.
Где мы после чистки
Снесены три урока, не проходившие гейт, два трека и два пути с нулевым наполнением, дубли бинарников и демки. Всё, что осталось, проходит проверку без послаблений.
| Показатель | Сейчас | Комментарий |
|---|---|---|
| Уроков | 5 | было 8, три не дотягивали |
| Гейт не пройден | 0 | было 3 |
| Страниц | 104 | было 118 |
| Вес сборки | 7,3 МБ | было 9,3 МБ |
| Битых ссылок | 0 | три чинились по ходу |
| Атомов в реестре | 46 | движок опережает контент |
| Тем в банке | 102 | на четыре аудитории |
| Пол гейта | 1200 | слов, было 700 |
Вердикт по 1.0
Пилот на одну школу в сентябре: да. Движок готов давно: 46 атомов, 5 механик, визуальный слой, повторения по интервалам. Узким местом был объём контента, и генерация это ограничение снимает. Тринадцати уроков хватает, чтобы наполнить три аудитории и показать систему целиком.
Публичная 1.0 в сентябре: нет. Мешает не контент, а его объём: пять уроков это
демонстрация, а не платформа. Инфраструктура больше не мешает. Платформа выложена на
хостинге гимназии по адресу lik-uspeh.ru/learn/ скриптом scripts/deploy.sh, htmx
переехал в static/js/, внешних запросов у страницы не осталось.
Отдельно стоит вещь, которую генерация не закрывает. Восемь учительских тем из двенадцати
держатся на материале, которого в репозитории нет: сцены из класса, настоящие плохие
задания, цитаты учителей. Закрывается это теми же пятью или восемью проблемными интервью,
которые docs/PROBLEM-HYPOTHESIS.md и так требует провести до разработки. Одно мероприятие
закрывает и валидацию гипотезы, и материал для восьми уроков, поэтому оно первое
в календаре, а не последнее.
Планка: что на самом деле значит хороший урок
Числа сняты с живых уроков и с трёх снесённых. Главный вывод: машинный гейт стоит втрое ниже реального уровня эталонов. Он ловит халтуру, но не гарантирует качество.
Пол гейта против того, что делают эталоны
| Показатель | Гейт требует | dopamine | oprichnina | Снесённые |
|---|---|---|---|---|
| Слов материала | 700 | 2259 | 3975 | от 333 до 413 |
| Слов на вопрос | 60 | 251 | 496 | от 47 до 59 |
| Разных типов атомов | 3 | 8 | 8 | flashcard на 43 % |
| Меток достоверности | не проверяется | 13 | 9 | 0 |
| Атомов уровня evaluate | не проверяется | 2 | 2 | 0 |
| Раздел «трудный случай» | не проверяется | есть | есть | нет ни в одном |
Пять признаков, которых не было у слабых уроков
Объём был симптомом, а не диагнозом. Эталоны отличало другое, и это переносится в приёмку новых уроков.
- Метка происхождения на каждом факте. Не «упомянут источник», а разметка
claim type="fact|src|debate"на конкретном предложении, от 9 до 19 штук на урок. У снесённых ноль. - Абзац, где урок говорит, чего не знает. «Указа об отмене опричнины наука не знает: он либо не издавался, либо не сохранился». Слабый урок таких абзацев не содержит вообще.
- Проверка на примере, которого в уроке не было, и это сказано прямо. У снесённых наоборот: ответ был дословной строкой из примера, разобранного двумя абзацами выше.
- Трудный случай, где правило самого урока даёт неверный ответ. Урок сам даёт формулу, потом сам её ломает.
- Дистракторы диагностические. В весах спора шестой довод имеет вес ноль с пояснением «факт верный, но к вопросу не относится». Проверяется умение отбросить релевантно выглядящий шум.
Заголовок как вексель
Требование зацепить школьника и запрет на манипуляции выглядят как противоречие. Оно снимается одной формулировкой, и она же становится процедурой приёмки названия.
Заголовок это вексель, урок платит по нему в первые две минуты. Интрига разрешена любая, если можно ткнуть пальцем в строку урока, которая её закрывает. Кликбейт это не яркость, это вексель без покрытия. Формальный фильтр: попал бы этот заголовок в наш собственный урок про манипуляции как материал для разбора? Попал бы, значит заворачиваем.
Готовая фабрика честных крючков уже есть в методологии. Планка требует в каждом уроке раздел, где простое правило даёт неверный ответ. Место, где ломается очевидное, и есть самое интересное место темы, и оно обязано быть в файле. Отсюда берутся заголовки, которые интригуют, ничего не выдумывая.
Структурная находка, меняющая работу. Каталог и главная рендерят только title
и description, причём на главной описание обрезано двумя строками. Поля hero.lead
и hero.eyebrow видны только на странице урока, то есть уже после клика. Лучшие фразы
платформы сейчас написаны именно там: «Час пролетел, а понравилось так себе», «Солнце сюда
не достаёт», «Царь уехал из столицы и прислал две грамоты». Их не видит никто, кто ещё
не зашёл.
Четыре поля, четыре разные работы, ни одного общего значимого слова
| Поле | Работа | Где видно |
|---|---|---|
hero.eyebrow |
Координата: где я нахожусь. До трёх слов | Только страница урока |
title |
Крючок и имя одновременно. До 55 знаков | Везде, плюс закладка и ссылка в чате |
description |
Оплата векселя: что конкретно узнаю. Первые 90 знаков самодостаточны | Каталог и главная |
hero.lead |
Награда за приход: одна живая фраза, втягивающая в первый абзац | Только страница урока |
Честная интрига против кликбейта
Пары на нашем собственном материале. Слева то, что запрещено, справа то, что цепляет не слабее.
| Кликбейт | Честная интрига | В чём разница |
|---|---|---|
| Мозг взломан: правда о ленте | Час в ленте, а понравилось так себе | Второе описывает то, что читатель уже переживал |
| Секрет отличников, о котором молчат | 56 против 42: два способа готовиться | Секрета нет, есть эксперимент, и его цифра в уроке |
| Шокирующая правда об опричнине | Две грамоты, которые разделили страну надвое | Первое обещает разоблачение, которого нет |
| Дофаминовое голодание за 7 дней | Дофаминовое голодание: почему это не работает | Тот же запрос, но урок платит по векселю |
| Ты не умеешь читать графики | Столбик вдвое выше, а разница 2 процента | Первое про недостаток читателя, второе про приём в картинке |
Разные возрасты цепляет разное
- 11 до 13 лет. Конкретный предмет и сцена, прямое «ты», короткая строка, стакан жизни: столовая, магазин, спор в чате. Никакой терминологии в названии. Стыд не мотивирует, а закрывает.
- 14 до 17 лет. Агентность и статус, термин допустим и даже нужен. Ценят, когда говорят как со взрослыми и не заигрывают. Отталкивает восклицание, эмодзи и любой намёк, что им продают. Работают деньги, автономия, «тебя разводят и вот механизм», споры без готового ответа.
- Родитель. Читает заголовок как ответ на вопрос «меня сейчас будут в чём-то обвинять». Начинать с наблюдения родителя, а не с диагноза. Родитель, которого обвинили, не дочитывает.
- Учитель. Поучение равно потере союзника. Говорить как коллега про инструмент, ставить экономию времени первой строкой, называть границы метода самим. Учитель безошибочно чует продажу, и признанное ограничение покупает доверие лучше обещания.
Сентябрьский набор: тринадцать уроков
Ученический формат полный, взрослые вдвое короче: 900 слов и 5 атомов проходят гейт без послаблений, но читаются за десять минут.
Ученикам, 5 уроков
Формат: 2000 слов и больше, 8 атомов, 16 минут.
| Урок | id | Почему он в наборе |
|---|---|---|
| Ошибка планирования | planning-fallacy |
Первая неделя это неделя обещаний себе. Урок попадает в момент, когда обещание ещё не провалилось, и проверяется на себе в тот же день |
| Текст плюс таблица | nesploshnoy-tekst |
Единственная тема с внешним сроком: ноябрьская диагностика функциональной грамотности. Она же лучший аргумент для завуча |
| После, значит из-за | prichina-ili-sovpadenie |
Трудный случай для этой темы прописан в rigor.md дословно, значит самый строгий пункт приёмки проходится с минимальным риском |
| График, который врёт | grafik-kotoryy-vret |
Редкий случай, когда атомы уровня evaluate естественны: у темы есть настоящая граница, обрезанная ось бывает честной |
| Цена за сто грамм | unit-price |
Самая дешёвая в производстве и мгновенно пересказывается дома, что важно для родительской витрины |
Учителям, 4 урока
Формат: от 900 до 1200 слов, 5 атомов, 11 минут.
| Урок | id | Боль | Почему он в наборе |
|---|---|---|---|
| Вопрос, после которого видно, кто не понял | hinge-vopros |
Спрашиваю «всем понятно», класс кивает, а на самостоятельной треть работ пустая | Применим на следующем же уроке, из оборудования четыре карточки. Самая короткая дистанция до реального поведения |
| Диагностика функциональной грамотности | diagnostika-fg-chto-eto |
Мне сказали готовить класс, я ни разу не видел этих заданий, а отвечать за результат мне | Единственный урок, который естественно выводит на завуча, то есть на того, кто подписывает |
| Домашку списывают | domashka-na-novom-primere |
Двадцать шесть одинаковых решений, те же дети у доски не могут повторить | Сентябрь это момент, когда правила домашки назначаются на год. В ноябре учитель их уже не поменяет |
| Задание за пятнадцать минут | zadanie-za-15-minut |
Трачу вечер на один интерактив и всё равно получаю очередной тест с четырьмя вариантами | Целиком собирается из уже написанного. Самый дешёвый в производстве, им закрывается срок, если остальные поедут |
Родителям, 4 урока
Формат: от 800 до 1000 слов, 5 атомов, 9 минут.
| Урок | id | Боль | Почему он в наборе |
|---|---|---|---|
| Экран, уговоры и вечер | roditel-i-ekran |
Говорю «положи телефон» по двадцать раз за вечер. Обещает, через минуту опять листает | Механизм уже собран и опубликован в dopamine, ресёрч ядра стоит ноль. Нужен только родительский слой |
| «Я всё выучил» | proverit-chto-vyuchil |
Говорит, что выучил. Наутро двойка, и я опять оказалась дурой | Окупается в тот же вечер и на самом родителе показывает метод: его уверенность расходится с его знанием |
| Сидеть рядом или не сидеть | domashka-bez-skandala |
Каждый вечер сажусь рядом, к девяти оба орём. Отхожу, он вообще не садится | База сильная и контринтуитивная: частая помощь тревожного взрослого связана с худшим результатом. Родитель этого нигде не слышал |
| За что я плачу | chto-my-ne-obeshaem |
За год предложили пять курсов, каждый обещает результат. Боюсь, что это разводка на моей тревоге | Снимает подозрение и учит навыку, которым родитель немедленно пользуется против конкурентов, включая нас |
Пары: один механизм с двух сторон
Работают именно пары. Ребёнок и взрослый получают одно и то же с разных сторон и впервые говорят об этом не в режиме спора. Ядро факта живёт ровно в одном уроке, второй ссылается и применяет иначе.
| Ученик | Взрослый | Что даёт пара |
|---|---|---|
| Дофамин и лента (готов) | Родитель: Экран, уговоры и вечер | спор «ты просто не хочешь» теряет предмет |
| Как учиться (готов) | Родитель: «Я всё выучил» | вечерняя проверка перестаёт быть допросом |
| График, который врёт | Родитель: За что я плачу | один навык, разные материалы |
| Текст плюс таблица | Учитель: Диагностика ФГ | формат диагностики с двух сторон |
Правило связывания. Сквозная ситуация одна и та же, вечер понедельника с домашкой и телефоном, но ученический урок показывает её изнутри головы подростка, а родительский с кухни. Ни одной совпадающей строки. Родительский урок заканчивается вопросом, который ребёнок уже видел, с пометкой «спросите за ужином»: ребёнку это отложенное извлечение, взрослому повод для разговора, который не начинается с претензии.
Что чинить до генерации
Всё проверено на текущем дереве. Первые два блокируют запуск, остальные обесценивают часть работы, если оставить их на потом.
| Статус | Что | Разбор |
|---|---|---|
| сделано | htmx уехал с внешнего CDN | Файл лежит в static/js/htmx.min.js, ссылок на unpkg.com в сборке ноль. В школьной сети с фильтрацией странице больше нечего терять: внешних запросов у неё нет |
| сделано | Деплой есть, CI нет | scripts/deploy.sh собирает сайт под подкаталог, проверяет, что в HTML не осталось ссылок от корня, и заливает rsync на хостинг гимназии в lik-uspeh.com/public_html/learn. Пилот открыт по адресу lik-uspeh.ru/learn/. Автоматической выкладки по коммиту по-прежнему нет, запуск руками |
| сделано | Гейт поднят до уровня эталонов | Пол поднят с 700 до 1200 слов и с 60 до 120 слов на вопрос, добавлено обязательное требование хотя бы одного атома уровня evaluate. Пороги сняты с живых уроков, а не назначены. Заведён второй уровень, замечания без блокировки сборки: меньше 2000 слов, меньше восьми меток достоверности, ни одной метки о спорной границе, нет раздела с трудным случаем. Это ровно то, чем эталоны отличались от снесённых уроков помимо объёма |
| сделано | Починена проверка позиции верного ответа | Требование «больше одного quiz в файле» отключало проверку на типичном уроке с единственным вопросом: ровно так три снесённых урока пронесли ключ на первой позиции. Теперь отсчёт идёт от перемешивания вариантов, а не от числа вопросов. До правки проверка реально запускалась на 3 файлах из 15. Сразу после правки нашла настоящий дефект в живом уроке |
| сделано | Шапка очищена от внутренних слов, есть страница про подход | Направления, Пути, Треки и Концепты убраны из верхнего меню: ученик этих слов не знает, и они сбивают. Осталось три пункта простыми словами, выбор направления живёт внутри каталога. Добавлена страница «Как это устроено» с пятью правилами урока и тремя короткими блоками на аудиторию |
| риск при генерации | У половины материала короткий срок годности | Найдено четыре места, где урок, написанный по памяти модели, был бы уже неверен: ставка НДС изменилась с января 2026, тарифы ОСАГО считаются по указанию от декабря 2025, четырнадцатилетнему работнику больше не нужно согласие опеки, перечень составов с 14 лет расширен в ноябре 2025 до тридцати семи. Отсюда правило: в уроке живёт механизм со ссылкой на действующую редакцию, а числа берутся из документа текущего года с датой прямо в тексте |
| риск при генерации | Аудиторию негде объявить | Поля audience нет ни во frontmatter, ни в шаблонах. Без него восемь взрослых уроков повиснут в общем каталоге концептов вперемешку с детскими. Нужно поле плюс фильтр в списке, до генерации, а не после |
| качество подачи | Серифного токена для прозы нет | В tokens.css только --lik-font-sans и --lik-font-mono. Все три standalone-прототипа набирают текст серифом кеглем 17 или 18. Это самое заметное расхождение с эталонной подачей, и правится оно на уровне токена, а не урока |
| качество подачи | Приёмы слома потока лежат неиспользованными | marginalia, compare, chronicle и breather реализованы и применены только в how-to-learn. Оба эталона идут одной колонкой. Самый дешёвый рост качества новых уроков: просто ими воспользоваться |
Порядок работ
- До генерации: инфраструктура. Осталось: htmx локально, деплой, поле
audienceс фильтром, серифный токен. Гейт, шапка и страница про подход уже сделаны. - Параллельно: проблемные интервью с учителями. Единственное, что нельзя сгенерировать. Закрывает валидацию гипотезы и даёт материал для восьми учительских тем: сцены из класса, настоящие плохие задания, живые формулировки болей.
- Волна 1: четыре урока, по одному на аудиторию плюс запасной.
planning-fallacy,hinge-vopros,roditel-i-ekran,unit-price. Два из них стоят на уже готовом материале, значит производственный конвейер проверяется на дешёвых, а не на дорогих. - Волна 2: остальные девять. К этому моменту чек-лист приёмки обкатан на четырёх уроках и известно, что именно генератор делает плохо.
- Сборка: треки, пути, витрины трёх аудиторий. Разделы «Пути» и «Треки» сейчас пустые и честно об этом говорят. Наполняются последними, когда уроки уже приняты, а не заранее заглушками.
Что это меняет в производстве
Разбор полосы 7-9 классов от 24 августа (узлы и темы в docs/TOPIC-BANK.md) не заменяет
августовский план, а вставляется в него. Три следствия, каждое требует решения до генерации,
плюс недостающий компонент шаблона.
- Полоса 7-9 становится отдельной, а не стыком двух банков. Сейчас банки разведены как 5-7 и 8-11, и середина попадает то туда, то сюда. Узлы отсюда живут ровно в 13-15: в 11 лет они рано, в 17 поздно. Это третья полоса, и её надо объявить.
- Поле
audienceне закрывает вопрос. Оно разводит ученика, родителя и учителя. Внутри ученической аудитории нужна ещё возрастная полоса, иначе урок про вербовку курьером окажется в каталоге рядом с уроком про молнию для шестого класса. - Тир III перестал быть исключением. В августовском наборе право было в паре тем. Здесь правовых и медицинских тем больше десяти, и WebSearch перед генерацией становится штатным шагом конвейера, а не оговоркой в документе.
- Нужна процедура для маршрута к помощи. Три темы обязаны содержать выход к взрослому и к линии помощи. Сейчас такого блока в шаблоне урока нет вообще. Это компонент, а не абзац, который автор напишет как получится.