9.7 KiB
Учёба и журнал
Договорённость на срез после кабинета и классного, не текущий код.
Урок: lesson-consequences.md. Расписание: schedule.md.
ИИ: ai.md. Кабинет: office.md. Общение: social.md.
Одежда: inventory.md. Здоровье (следующий): health.md.
Урок перестаёт быть только ростом навыка: появляется оценка 2–5 и посещаемость. Игрок их не ставит — считает мир. Карточка и класс показывают журнал. Плохой след сам тянет внимание классного / авто-вызов из среза 12.
Роль игрока: менеджер / симулятор бога
Тот же жест, что в office.md: рамка школы (учителя, расписание,
классный, правила), не ручной журнал и не «поставь пятёрку». Оценок от игрока нет.
Что увидит игрок
- На карточке ученика — журнал: недавние оценки по предметам (2–5) и отметки явки.
- У класса — сводка (средний след / кто часто отсутствует), без таблицы на весь год в одной простыне.
- Тост или авто-следствие, когда след совсем плохой (данные
BehaviorDef), без кнопки «поставить двойку».
На какие вопросы отвечает
- Как из уже живого роста навыка на уроке получить школьную оценку 2–5.
- Как посещаемость берётся из присутствия (узел = кабинет урока), а не из отдельного чекбокса.
- Как журнал пишется в сейв и отдаётся по HTTP, не по сокету 20 Гц.
- Какие уже существующие множители (учитель, тепло, учебник, шёпот, голод) входят в оценку.
- Как плохой журнал стыкуется с классным и кабинетом директора без приказов игрока.
Чего нет
- Ручных оценок и правок журнала игроком.
- Приказов «вызови Иванова» / «исправь оценку».
- Электронного дневника родителя и облачной выгрузки.
- Четвертных/годовых аттестаций как отдельной кампании (можно средний след, не «аттестация»).
- Болезней — срез 14; здесь только шов «отсутствие → прогул», который 14 заполнит причиной.
Что меняется в уже принятом
| Было | Стало | Почему |
|---|---|---|
| Урок пишет рост навыка и лог | Плюс оценка 2–5 по правилам | Иначе учёба не видна как школа |
| «Кто в кабинете» видно | Плюс явка/прогул/опоздание в журнале | Присутствие уже есть |
Оценок нет (lesson-consequences) |
Журнал есть | Этот срез |
| Классный только для собраний (12) | Плюс реакция на плохой след (авто) | Связность систем |
| Уместность одежды → тема разговора (9) | Может слегка двигать оценку / лог, если урок «на виду» — по данным | Связность без отдельного среза weave |
Этап A — оценка с урока
После осмысленного куска урока (не каждый тик): из тех же входов, что LessonLearning.Gain,
мир пишет одну оценку 2–5 за урок (или за день-предмет — правило в BehaviorDef, ваниль:
за слот урока, если ученик хотя бы частично присутствовал и рост мог бы идти).
Шкала классическая: 2, 3, 4, 5. Пороги от нормализованного «качества урока» — данные, не UI. Нет учителя в кабинете / множитель 0 → не пятёрка «за воздух»: либо пропуск оценки, либо 2 по правилу в данных (явно в фазе).
Сейв — на ученике, разреженно (последние N по предмету / общий потолок).
После этапа школа целая: оценки пишутся, журнала на карточке может ещё не быть.
Этап B — посещаемость
На каждый слот урока класса: присутствовал (в узле кабинета, не идёт), опоздал (пришёл после начала — порог минут в данных), отсутствовал. Источник — присутствие и обязанность, не чекбокс.
Пишется рядом с журналом оценок. Прогул без уважительной причины (здоровье — срез 14) может добавлять проступок / вес к авто-вызову, если 12 уже в мире — пороги в данных.
После этапа явка есть даже без красивой сводки класса.
Этап C — экран журнала
Вкладка или блок на карточке: оценки и явка. Сводка класса в Управлении или у классного — коротко. HTTP через мейлбокс. Список людей журнал не раздувает.
Локали RU/EN.
Этап D — связность и реакция
Явно в этом срезе, не «потом»:
| Уже есть | Влияние на журнал |
|---|---|
| Учитель в кабинете, навык, тепло, учебник, голод, шёпот | Качество → оценка |
| Уместность формы (7/9) | Лёгкий модификатор или только лог — число в BehaviorDef |
| Плохие оценки / прогулы | Info-тост; вес к авто-вызову (12); классный «замечает» в логе |
Игрок по-прежнему не ставит отметок.
После этапа срез 13 закрыт; болезни подключат причину отсутствия в 14.
Поток данных
Оценки и явка — состояние человека / класса, считает симуляция + HSchool.Ai (качество урока).
Карточка — HTTP. Тосты — EventDef (срез 11). Сокет присутствия не несёт весь журнал.
Инварианты 1, 3, 4, 7: клиент не считает пятёрки; воркер пишет; симуляция без ASP.NET.
Где живёт код
Нового проекта нет.
| Что | Куда |
|---|---|
| Пороги 2–5, потолки журнала | BehaviorDef / JSONC core |
| Качество урока → оценка | HSchool.Ai (+ уже существующий LessonLearning) |
| Явка из присутствия | HSchool.Simulation адаптер |
| Сейв журнала | ростер / people рядом с человеком |
| Карточка, сводка | Server + Client |
| Тосты / стык с вызовом | EventDef + хуки среза 12 |
Советы, которые стоит принять сразу
- Не давать игроку редактировать оценку.
- Не слать журнал по WS 20 Гц.
- Одна оценка за урок (или явное правило), не спам каждую минуту.
- Связность — таблица в этапе D, не размазанные «заодно» по фазам без тестов.
- Уважительный пропуск (болезнь) — контракт для 14: вид явки или флаг причины.
Заведомо не сейчас
- Приказы игрока, ручной журнал.
- ЕГЭ, олимпиады, переводные экзамены, родительский дневник онлайн.
- Больной учитель как дыра в дне, точечный вызов родителя —
fallout.md. - Болезни как система —
health.md(уже соседний срез).
Зафиксировано этим разговором
| Тема | Решение |
|---|---|
| Шкала | Классические 2–5 |
| Приказы | Нет; менеджер / симулятор бога |
| Weave | Отдельного среза нет; этап D внутри 13 |
| Болезнь | Срез 14 |
| Стоп | После A/B/C школа целая |
| Ваниль | core |