--- name: ege-checker description: > Проверка заданий ЕГЭ с выставлением баллов по официальным критериям ФИПИ. Используй этот скилл когда пользователь: - Загружает фото/скан рукописного сочинения ЕГЭ по русскому языку - Просит проверить сочинение ЕГЭ, выставить баллы, оценить работу - Загружает аудиозапись ответов по разделу "Аудирование" ЕГЭ по английскому - Упоминает "ЕГЭ", "сочинение", "критерии К1-К12", "аудирование английский" - Просит разобрать ошибки в сочинении по критериям ФИПИ Скилл умеет: OCR рукописного текста через vision, STT аудиозаписей через recognition.py, оценку по критериям ФИПИ 2026. Работает с любой multimodal LLM (Qwen, GPT-4o и др.). --- # ЕГЭ-Checker ## Обзор возможностей | Модуль | Вход — только распознавание | Вход — распознавание + оценка | |--------|----------------------------|-------------------------------| | Сочинение (русский) | Сканы бланков | Сканы + исходный текст + тема | | Аудирование (английский) | Аудиозапись | Аудиозапись + ключи проверяющего | --- ## Модуль 1: Сочинение ЕГЭ по русскому языку ### Логика запуска **Если прислали только сканы бланков (без исходного текста и темы):** → Только распознать рукопись и вывести текст. Оценку не выставлять. → Сообщить: "Текст распознан. Чтобы выставить баллы по критериям, пришлите также исходный текст задания и тему сочинения." **Если прислали сканы + исходный текст задания + тему:** → Распознать рукопись, затем выставить баллы по К1–К10 с объяснением снятий. --- ### Режим 1: Только распознавание 1. Внимательно рассмотри все изображения — бланки могут быть на нескольких листах 2. Распознай рукописный текст максимально точно, сохраняя абзацное деление 3. Зачёркнутые слова отмечай как ~~зачёркнуто~~ 4. Выведи распознанный текст и сообщи количество слов 5. Уточни: "Если есть неточности — поправьте. Чтобы выставить баллы, пришлите исходный текст задания." --- ### Режим 2: Распознавание + оценка по критериям **Шаг 1 — Распознать текст** (как в режиме 1, шаги 1–4) Попроси подтвердить распознанный текст перед оценкой. **Шаг 2 — Загрузить критерии** Прочитай `references/russian-essay-criteria.md` — критерии К1–К10 с баллами (ЕГЭ 2026). **Шаг 3 — Проверить предварительные условия** - Подсчитай слова. Если менее 150 → все критерии = 0, сообщи об этом явно. - Если К1 = 0 → К2 и К3 автоматически = 0. **Шаг 4 — Оценить по каждому критерию К1–К10 последовательно** Для каждого критерия: - Процитируй конкретный фрагмент из сочинения (если уместно) - Объясни снятие баллов — что именно не выполнено и почему - Выставь балл **Шаг 5 — Итоговый вывод** ``` ## Результаты проверки сочинения ЕГЭ (2026) ### Количество слов: XX ### Оценка по критериям | Критерий | Название | Балл | Макс | |----------|----------|------|------| | К1 | Позиция автора | X | 1 | | К2 | Комментарий к позиции автора | X | 3 | | К3 | Собственное отношение + аргумент | X | 2 | | К4 | Фактическая точность | X | 1 | | К5 | Логичность | X | 2 | | К6 | Этические нормы | X | 1 | | К7 | Орфография | X | 3 | | К8 | Пунктуация | X | 3 | | К9 | Грамматика | X | 3 | | К10 | Речевые нормы | X | 3 | | **ИТОГО** | | **XX** | **22** | ### Подробные комментарии **К1 — [балл/1]** [что именно засчитано или почему снято] **К2 — [балл/3]** [разбор с цитатами: есть ли 2 примера, пояснения, смысловая связь] ...и так далее по каждому критерию... ### Снятия баллов (итого) - К2: -1 — смысловая связь между примерами есть, но не пояснена - К7: -1 — ошибка в слове "..." ... ### Главные рекомендации 1. [самое важное] 2. ... ``` --- ## Модуль 2: Аудирование ЕГЭ по английскому ### Логика запуска **Если прислали только аудиозапись (без ключей):** → Только распознать ответы ученика через recognition.py и вывести их таблицей. → Сообщить: "Ответы распознаны. Чтобы выставить баллы, пришлите правильные ответы (ключи)." **Если прислали аудиозапись + ключи проверяющего:** → Распознать ответы, затем сверить с ключами и выставить баллы с объяснением ошибок. --- ### Режим 1: Только распознавание **Шаг 1 — Сохранить аудиофайл** ```python import os, time ext = os.path.splitext(original_filename)[1] or ".mp3" tmp_path = f"/tmp/ege_audio_{int(time.time())}{ext}" with open(tmp_path, "wb") as f: f.write(audio_bytes) ``` **Шаг 2 — Запустить recognition.py** Через subprocess (рекомендуется): ```bash python3 ~/.zeroclaw/recognition.py --output json ``` Через прямой импорт: ```python import sys sys.path.insert(0, os.path.expanduser("~/.zeroclaw")) from recognition import process_audio transcript, answers = process_audio(tmp_path, model_size="medium", verbose=False) ``` **Шаг 3 — Удалить временный файл** ```python if os.path.exists(tmp_path): os.remove(tmp_path) ``` **Шаг 4 — Вывести распознанные ответы** Таблица: задание | распознанный ответ Если есть нераспознанные — явно отметить. Сообщить: "Ответы распознаны. Пришлите правильные ответы (ключи) для выставления баллов." --- ### Режим 2: Распознавание + оценка **Шаги 1–3** — те же, что в режиме 1 (сохранить, запустить, удалить). **Шаг 4 — Получить и распознать ключи** Если ключи текстом — использовать напрямую. Если ключи фото — распознать через vision. **Шаг 5 — Загрузить критерии** Прочитай `references/english-listening-criteria.md`. **Шаг 6 — Передать в LLM для сверки** Промпт для модели (подставить реальные значения): ``` Ты эксперт-проверяющий ЕГЭ по английскому (аудирование, 2026). Транскрипт ответов ученика (Whisper): [TRANSCRIPT] Извлечённые ответы ученика: - Задание 1 (A–F): [TASK1] - Задания 2–3 (True/False/Not stated): [TASK2_3] - Задания 4–9 (выбор 1/2/3): [TASK4_9] - Не распознаны (засчитать как 0): [UNRECOGNIZED] Правильные ответы (ключи): [KEYS] Сверь ответы с ключами. 1 балл за совпадение, 0 за несовпадение или отсутствие. Верни строго JSON без markdown: {"results":{"task1":{"A":true},"task2_3":{"2":true},"task4_9":{"4":false}}, "scores":{"task1":0,"task2_3":0,"task4_9":0,"total":0}, "errors":["Задание 1B: ученик — 5, верный ответ — 1"]} ``` **Шаг 7 — Вывести результат** ``` ## Результаты: Аудирование ЕГЭ (Английский язык, 2026) ### Задание 1 — Установление соответствия (макс. 6 баллов) | Высказывание | Ответ ученика | Ключ | Результат | | A | 3 | 3 | + | | B | 5 | 1 | - | ... Баллов: X / 6 ### Задания 2–3 — True / False / Not stated (макс. 2 балла) ... Баллов: X / 2 ### Задания 4–9 — Выбор ответа (макс. 6 баллов) ... Баллов: X / 6 (или X / подблок) ### Итого: XX / 12 ### Ошибки с пояснением: - Задание 1B: ученик ответил 5, верный ответ 1 ... [Если были нераспознанные:] Задания X, Y не были распознаны в аудио и засчитаны как неверные (0 баллов). ``` --- ## Общие принципы - **Актуальность**: Критерии соответствуют ФИПИ ЕГЭ 2026 - **Строгость**: Придерживайся формулировок критериев точно - **Снятия**: Всегда объясняй конкретно что именно не выполнено и почему снят балл - **Пограничные случаи**: При сомнении — объясни оба варианта, выбери более обоснованный - **Тон**: Конструктивный, учебный инструмент — не карательный - **Совместимость**: Скилл работает с любым multimodal агентом (Qwen3, GPT-4o и др.)