Mark phase 73 in progress; register slice 13.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# Фаза 73. Оценка с урока
|
||||
|
||||
## Зависимости
|
||||
|
||||
- [Фаза 48](../off-queue/48-lesson-teacher-present.md)
|
||||
- [Фаза 50](../off-queue/50-teacher-skill-gain.md)
|
||||
- [Фаза 51](../off-queue/51-warmth-lesson.md)
|
||||
- [Фаза 52](../off-queue/52-textbook-lesson.md)
|
||||
|
||||
## Зачем
|
||||
|
||||
Рост навыка получает школьный смысл: оценка 2–5 за урок.
|
||||
|
||||
## Задачи
|
||||
|
||||
- [ ] Из качества урока (те же входы, что `LessonLearning.Gain`) писать оценку **2, 3, 4 или 5**
|
||||
- [ ] Пороги и «когда писать» (раз за слот урока) — в `BehaviorDef` / данных `core`
|
||||
- [ ] Нет учителя / множитель 0 — явное правило (нет оценки или 2), зафиксировать в данных и тесте
|
||||
- [ ] Хранение на ученике, потолок недавних; сейв
|
||||
- [ ] Детерминизм: тот же сид и те же входы → та же оценка
|
||||
- [ ] Игрок оценку не ставит и не правит (нет API правки)
|
||||
|
||||
## Тесты, без которых фаза не закрыта
|
||||
|
||||
- [ ] Урок с сильным учителем и полными множителями даёт не ниже урока с пустым кабинетом учителя
|
||||
при тех же прочих
|
||||
- [ ] За один слот не пишется пачка оценок каждую минуту
|
||||
- [ ] Сейв сохраняет последние оценки
|
||||
- [ ] HTTP/сокет не принимает «поставить оценку»
|
||||
|
||||
## Критерий готовности
|
||||
|
||||
- После урока у ученика в данных есть 2–5; перезагрузка школы не стирает
|
||||
- Отфильтрованные тесты по Testing policy проходят
|
||||
|
||||
## Стоп
|
||||
|
||||
Не явка. Не UI журнала. Не тосты. Не болезни.
|
||||
@@ -0,0 +1,36 @@
|
||||
# Фаза 74. Посещаемость
|
||||
|
||||
## Зависимости
|
||||
|
||||
- [Фаза 18](../05-ai/18-presence-walking.md)
|
||||
- [Фаза 73](73-lesson-marks.md)
|
||||
|
||||
## Зачем
|
||||
|
||||
Журнал знает, был ли ученик на уроке, без ручной галочки.
|
||||
|
||||
## Задачи
|
||||
|
||||
- [ ] На слот урока класса: присутствовал (узел = кабинет, не идёт), опоздал (порог минут в
|
||||
данных), отсутствовал
|
||||
- [ ] Писать в сейв рядом с журналом оценок
|
||||
- [ ] Источник — присутствие и расписание, не клиент
|
||||
- [ ] Заготовка причины отсутствия (прогул по умолчанию); «болезнь» заполнит срез 14
|
||||
- [ ] Опоздание не отменяет оценку целиком, если правило этапа A иначе — согласовать с 73 в данных
|
||||
|
||||
## Тесты, без которых фаза не закрыта
|
||||
|
||||
- [ ] Ученик в кабинете к началу → присутствовал
|
||||
- [ ] Пришёл после порога → опоздал
|
||||
- [ ] Вне школы / другой узел весь слот → отсутствовал
|
||||
- [ ] Тот же день и сид → та же явка
|
||||
- [ ] Сейв переживает reload
|
||||
|
||||
## Критерий готовности
|
||||
|
||||
- Прогульщик и сидящий на уроке отличаются в данных явки после одного и того же слота
|
||||
- Отфильтрованные тесты по Testing policy проходят
|
||||
|
||||
## Стоп
|
||||
|
||||
Не UI. Не уважительная болезнь (14). Не авто-вызов за прогул (76).
|
||||
@@ -0,0 +1,35 @@
|
||||
# Фаза 75. Журнал на карточке
|
||||
|
||||
## Зависимости
|
||||
|
||||
- [Фаза 73](73-lesson-marks.md)
|
||||
- [Фаза 74](74-attendance.md)
|
||||
- [Фаза 8](../02-people/08-people-browser.md)
|
||||
|
||||
## Зачем
|
||||
|
||||
Игрок видит оценки и явку, не открывая сейв.
|
||||
|
||||
## Задачи
|
||||
|
||||
- [ ] Блок/вкладка на карточке ученика: недавние оценки по предметам и явка
|
||||
- [ ] Короткая сводка класса (средний след / частые отсутствия) в Управлении или у класса —
|
||||
без простыни на год
|
||||
- [ ] HTTP через мейлбокс; гость читает, не пишет
|
||||
- [ ] Строки `t(...)`, обе локали
|
||||
- [ ] Список людей в панели журнал не раздувает
|
||||
|
||||
## Тесты, без которых фаза не закрыта
|
||||
|
||||
- [ ] Карточка отдаёт те же оценки/явку, что в мире
|
||||
- [ ] Нет права править оценку через API
|
||||
- [ ] Клиентский тест панели/вкладки (vitest) на пустое и заполненное состояние
|
||||
|
||||
## Критерий готовности
|
||||
|
||||
- Открыть ученика после урока — видны 2–5 и явка; F5 не чинит данные с клиента
|
||||
- Отфильтрованные тесты по Testing policy проходят
|
||||
|
||||
## Стоп
|
||||
|
||||
Не тосты и авто-вызов (76). Не болезни.
|
||||
@@ -0,0 +1,37 @@
|
||||
# Фаза 76. След и реакция
|
||||
|
||||
## Зависимости
|
||||
|
||||
- [Фаза 75](75-gradebook-ui.md)
|
||||
- [Фаза 43](../09-social/43-whisper.md)
|
||||
- [Фаза 35](../07-inventory/35-appropriateness.md)
|
||||
|
||||
## Зачем
|
||||
|
||||
Журнал стыкуется с уже живыми системами и сам поднимает шум — без приказов игрока.
|
||||
|
||||
## Задачи
|
||||
|
||||
- [ ] Явно учесть в качестве/оценке уже существующие множители (учитель, тепло, учебник, голод,
|
||||
шёпот) — тесты на каждый вклад
|
||||
- [ ] Уместность формы: лёгкий модификатор оценки или только лог — число в `BehaviorDef`
|
||||
- [ ] Плохой средний след / прогулы → `EventDef` info; веса к авто-вызову (12), если срез 12 в мире
|
||||
- [ ] Классный (если назначен) пишет заметку в лог / учитывается в пороге — без кнопки игрока
|
||||
- [ ] Контракт для 14: причина явки «болезнь» не зовёт вызов как прогул
|
||||
|
||||
## Тесты, без которых фаза не закрыта
|
||||
|
||||
- [ ] Шёпот на уроке ухудшает оценку относительно контроля при тех же прочих
|
||||
- [ ] Нет учебника ухудшает относительно контроля
|
||||
- [ ] Порог плохого следа эмитит notice
|
||||
- [ ] Прогул с причиной «болезнь» (заглушка/флаг) не добавляет проступок вызова
|
||||
- [ ] Нет API «вызови за двойку» от игрока
|
||||
|
||||
## Критерий готовности
|
||||
|
||||
- Слабый урок и прогулы видны в журнале и дают тост/вес к системе 12 без клика игрока
|
||||
- Отфильтрованные тесты по Testing policy проходят
|
||||
|
||||
## Стоп
|
||||
|
||||
Не болезни и заражение. Не ручной журнал. Не отдельный срез weave.
|
||||
@@ -0,0 +1,35 @@
|
||||
Индекс срезов: [`../README.md`](../README.md).
|
||||
|
||||
## Срез 13. Учёба и журнал
|
||||
|
||||
Дизайн: [`grades.md`](../../design/13-grades/grades.md).
|
||||
|
||||
Оценка 2–5 и явка из живого урока и присутствия. Игрок журнал не правит (менеджер / симулятор
|
||||
бога). Срез можно остановить после этапа A — оценки пишутся, даже если сводки класса ещё нет.
|
||||
|
||||
**Этап A — оценка.**
|
||||
|
||||
| Фаза | Статус | Зачем |
|
||||
| --- | --- | --- |
|
||||
| [73. Оценка с урока](73-lesson-marks.md) | 🔄 | 2–5 из качества урока, сейв |
|
||||
|
||||
**Этап B — явка.**
|
||||
|
||||
| Фаза | Статус | Зачем |
|
||||
| --- | --- | --- |
|
||||
| [74. Посещаемость](74-attendance.md) | ⬜ | Присутствовал / опоздал / отсутствовал |
|
||||
|
||||
**Этап C — экран.**
|
||||
|
||||
| Фаза | Статус | Зачем |
|
||||
| --- | --- | --- |
|
||||
| [75. Журнал на карточке](75-gradebook-ui.md) | ⬜ | HTTP, сводка класса |
|
||||
|
||||
**Этап D — связность.**
|
||||
|
||||
| Фаза | Статус | Зачем |
|
||||
| --- | --- | --- |
|
||||
| [76. След и реакция](76-grades-coupling.md) | ⬜ | Множители, тост, стык с вызовом/классным |
|
||||
|
||||
73 независима от 12 по записи оценок; 76 стыкуется с 12, если тот уже в мире. 74 стоит на 18;
|
||||
75 — на 73 и 74; 76 — на 75.
|
||||
Reference in New Issue
Block a user