ege-skill/ege-checker/SKILL.md
2026-04-19 12:13:48 +03:00

240 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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, шаги 14)
Попроси подтвердить распознанный текст перед оценкой.
**Шаг 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 <tmp_path> --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: Распознавание + оценка
**Шаги 13** — те же, что в режиме 1 (сохранить, запустить, удалить).
**Шаг 4 — Получить и распознать ключи**
Если ключи текстом — использовать напрямую.
Если ключи фото — распознать через vision.
**Шаг 5 — Загрузить критерии**
Прочитай `references/english-listening-criteria.md`.
**Шаг 6 — Передать в LLM для сверки**
Промпт для модели (подставить реальные значения):
```
Ты эксперт-проверяющий ЕГЭ по английскому (аудирование, 2026).
Транскрипт ответов ученика (Whisper):
[TRANSCRIPT]
Извлечённые ответы ученика:
- Задание 1 (AF): [TASK1]
- Задания 23 (True/False/Not stated): [TASK2_3]
- Задания 49 (выбор 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
### Задания 23 — True / False / Not stated (макс. 2 балла)
...
Баллов: X / 2
### Задания 49 — Выбор ответа (макс. 6 баллов)
...
Баллов: X / 6 (или X / подблок)
### Итого: XX / 12
### Ошибки с пояснением:
- Задание 1B: ученик ответил 5, верный ответ 1
...
[Если были нераспознанные:]
Задания X, Y не были распознаны в аудио и засчитаны как неверные (0 баллов).
```
---
## Общие принципы
- **Актуальность**: Критерии соответствуют ФИПИ ЕГЭ 2026
- **Строгость**: Придерживайся формулировок критериев точно
- **Снятия**: Всегда объясняй конкретно что именно не выполнено и почему снят балл
- **Пограничные случаи**: При сомнении — объясни оба варианта, выбери более обоснованный
- **Тон**: Конструктивный, учебный инструмент — не карательный
- **Совместимость**: Скилл работает с любым multimodal агентом (Qwen3, GPT-4o и др.)