lct-12: детерминированная оценка по ГОСТ, таксономия, радар
Каждая метрика — факт против норматива со ссылкой: «94 с при ≤ 75 с, ГОСТ Р 22.7.03-2021», а не балл. По недобытому факту — отдельная отметка E1 с эталонным вопросом: в разборе нужен конкретный вопрос, не процент. Радар — проекция тех же метрик без пересчёта весов, коммуникация без судьи не рисуется нулём. Таймер, не остановленный событием, — провал, а не зачёт: время недоказуемо, операция не завершена. Метрика, которую нечем посчитать (полнота опроса без модели эмбеддингов), видна как «не посчитано» — молча выброшенная выглядела бы пройденной. Найдено противоречие: таймеры опроса (75 с) и оповещения ДДС (60 с) стартовали на ответе и останавливались передачей в ДДС — один отрезок, два лимита. Опрос за законные 70 с давал E3, а на экране курсанта краснел таймер посреди нормального разговора. События «опрос закончен» в контракте нет, поэтому dds_notify снят с учёта, вопрос записан в CONTRACT.md. KIO проверяет присваивание: card.dds = "03" клало в карточку сырую строку вместо кода ДДС, и падала уже оценка, далеко от места ошибки.
This commit is contained in:
parent
7c97310938
commit
f01f2dab76
9 changed files with 489 additions and 7 deletions
|
|
@ -261,7 +261,7 @@ class SelfAssessmentSubmit(BaseModel):
|
|||
|
||||
|
||||
class DdsDispatch(BaseModel):
|
||||
"""Передача в ДДС. Замораживает карточку снимком и останавливает `dds_notify`."""
|
||||
"""Передача в ДДС. Замораживает карточку снимком и останавливает опрос (`interview`)."""
|
||||
|
||||
type: Literal["dds.dispatch"] = "dds.dispatch"
|
||||
service: DDSCode
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ from enum import StrEnum
|
|||
from typing import Any
|
||||
from uuid import UUID, uuid4
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
|
||||
from app.domain.classifiers import DDSCode, IncidentType
|
||||
|
||||
|
|
@ -73,7 +73,13 @@ class UtilityDetails(BaseModel):
|
|||
|
||||
class KIO(BaseModel):
|
||||
"""Полная карточка. Наблюдателям уходит целиком (`kio.state`),
|
||||
курсанту — дельтой (`kio.patch`)."""
|
||||
курсанту — дельтой (`kio.patch`).
|
||||
|
||||
Присваивание проверяется: без этого `card.dds = "03"` кладёт в карточку
|
||||
сырую строку вместо кода ДДС, и падает уже оценка, далеко от места ошибки.
|
||||
"""
|
||||
|
||||
model_config = ConfigDict(validate_assignment=True)
|
||||
|
||||
# Служебное — заполняется системой
|
||||
card_id: UUID = Field(default_factory=uuid4)
|
||||
|
|
|
|||
Loading…
Reference in a new issue