@dzhechkov/skills-academic 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/answer-assessor/SKILL.md +121 -0
- package/answer-assessor/evals/answer-assessor.yaml +75 -0
- package/answer-assessor/schemas/output.json +111 -0
- package/answer-assessor/scripts/validate-config.json +34 -0
- package/defense-evaluator/SKILL.md +136 -0
- package/defense-evaluator/evals/defense-evaluator.yaml +77 -0
- package/defense-evaluator/schemas/output.json +136 -0
- package/defense-evaluator/scripts/validate-config.json +35 -0
- package/dissertation-review/SKILL.md +211 -0
- package/dissertation-review/evals/dissertation-review.yaml +78 -0
- package/dissertation-review/schemas/output.json +93 -0
- package/dissertation-review/scripts/validate-config.json +37 -0
- package/document-checker/SKILL.md +181 -0
- package/document-checker/evals/document-checker.yaml +53 -0
- package/document-checker/schemas/output.json +114 -0
- package/document-checker/scripts/validate-config.json +45 -0
- package/package.json +32 -0
- package/question-generator/SKILL.md +196 -0
- package/question-generator/evals/question-generator.yaml +69 -0
- package/question-generator/schemas/output.json +87 -0
- package/question-generator/scripts/validate-config.json +49 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "answer-assessor"
|
|
3
|
+
description: "Assesses quality of student's answers to committee questions from live transcript — completeness, depth, and alignment with reviewer remarks."
|
|
4
|
+
trust_tier: 2
|
|
5
|
+
trust_tier_label: "Validated"
|
|
6
|
+
validation:
|
|
7
|
+
schema_path: schemas/output.json
|
|
8
|
+
validator_path: scripts/validate-config.json
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Оценка ответов студента на вопросы (по транскрипту)
|
|
12
|
+
|
|
13
|
+
Skill для оценки ответов студента на вопросы членов ГЭК на основе транскрипта. Содержит только критерии оценки ответов. Персональные данные обрабатываются только в runtime.
|
|
14
|
+
|
|
15
|
+
## Когда использовать
|
|
16
|
+
- Анализ качества ответов на вопросы комиссии
|
|
17
|
+
- Оценка ответов на замечания руководителя и рецензента (заключительное слово)
|
|
18
|
+
- Формирование итоговой оценки по третьей составляющей (ответы)
|
|
19
|
+
|
|
20
|
+
## Когда НЕ использовать
|
|
21
|
+
- Для генерации вопросов — используйте question-generator
|
|
22
|
+
- Для оценки доклада — используйте defense-evaluator
|
|
23
|
+
|
|
24
|
+
## Протокол
|
|
25
|
+
|
|
26
|
+
### Шаг 1: Идентифицировать вопросы и ответы
|
|
27
|
+
Из транскрипта выделить:
|
|
28
|
+
- Кто задал вопрос (если указано)
|
|
29
|
+
- Формулировку вопроса
|
|
30
|
+
- Ответ студента
|
|
31
|
+
- Было ли заключительное слово
|
|
32
|
+
|
|
33
|
+
### Шаг 2: Оценить каждый ответ
|
|
34
|
+
|
|
35
|
+
| Критерий | Полный ответ (3) | Частичный (2) | Нет ответа (1) |
|
|
36
|
+
|----------|:---:|:---:|:---:|
|
|
37
|
+
| Понимание вопроса | Отвечает точно по сути | Отвечает вокруг, но не в точку | Не понял вопрос |
|
|
38
|
+
| Глубина | Аргументы, примеры, данные | Общие фразы | "Не рассматривал" |
|
|
39
|
+
| Связь с ВКР | Ссылается на конкретные разделы | Говорит в общем | Никак не связывает |
|
|
40
|
+
| Уверенность | Отвечает без пауз, развёрнуто | Колеблется, переспрашивает | Теряется, молчит |
|
|
41
|
+
| Самокритичность | Признаёт ограничения честно | Отмахивается | Отрицает очевидное |
|
|
42
|
+
|
|
43
|
+
### Шаг 3: Оценить заключительное слово
|
|
44
|
+
По регламенту ГЭК, в заключительном слове студент ДОЛЖЕН ответить на замечания руководителя и рецензента.
|
|
45
|
+
|
|
46
|
+
| Элемент | Что проверить |
|
|
47
|
+
|---------|---------------|
|
|
48
|
+
| Ответ на замечания руководителя | Прокомментировал ли каждое замечание? |
|
|
49
|
+
| Ответ на замечания рецензента | Прокомментировал ли каждое замечание? |
|
|
50
|
+
| Конструктивность | Принял замечания или спорит без аргументов? |
|
|
51
|
+
| Перспективы | Упомянул ли планы по развитию работы? |
|
|
52
|
+
|
|
53
|
+
### Шаг 3.5: Сопоставить с подготовленными вопросами
|
|
54
|
+
|
|
55
|
+
Если до защиты были подготовлены вопросы (question-generator):
|
|
56
|
+
- Какие из подготовленных вопросов были заданы?
|
|
57
|
+
- Совпали ли ответы с ожидаемыми ключевыми словами?
|
|
58
|
+
- Какие вопросы не были заданы? (записать для протокола)
|
|
59
|
+
|
|
60
|
+
### Шаг 4: Сформировать справку по ответам
|
|
61
|
+
|
|
62
|
+
Шаблон:
|
|
63
|
+
```
|
|
64
|
+
ОЦЕНКА ОТВЕТОВ НА ВОПРОСЫ
|
|
65
|
+
═══════════════════════════════
|
|
66
|
+
Количество вопросов: [N]
|
|
67
|
+
Длительность Q&A: [мин] из 10-15
|
|
68
|
+
|
|
69
|
+
ОТВЕТЫ:
|
|
70
|
+
№ | Вопрос (кратко) | Полнота | Глубина | Связь с ВКР
|
|
71
|
+
1 | ________________________ | ⬜3 ⬜2 ⬜1 | ⬜3 ⬜2 ⬜1 | ⬜3 ⬜2 ⬜1
|
|
72
|
+
2 | ________________________ | ⬜3 ⬜2 ⬜1 | ⬜3 ⬜2 ⬜1 | ⬜3 ⬜2 ⬜1
|
|
73
|
+
...
|
|
74
|
+
|
|
75
|
+
ЗАКЛЮЧИТЕЛЬНОЕ СЛОВО:
|
|
76
|
+
[✅/❌] Ответ на замечания руководителя
|
|
77
|
+
[✅/❌] Ответ на замечания рецензента
|
|
78
|
+
[✅/❌] Конструктивный подход
|
|
79
|
+
[✅/❌] Упомянуты перспективы
|
|
80
|
+
|
|
81
|
+
СРЕДНИЙ БАЛЛ ОТВЕТОВ: [X.X / 3.0]
|
|
82
|
+
ОБЩЕЕ ВПЕЧАТЛЕНИЕ: [уверенно / неуверенно / не владеет]
|
|
83
|
+
|
|
84
|
+
ВЛИЯНИЕ НА ИТОГОВУЮ ОЦЕНКУ:
|
|
85
|
+
[повышает / не влияет / понижает]
|
|
86
|
+
═══════════════════════════════
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Рекомендуемый workflow
|
|
90
|
+
```
|
|
91
|
+
1-3. Подготовка (document-checker → dissertation-review → question-generator)
|
|
92
|
+
4. defense-evaluator → оценка доклада
|
|
93
|
+
5. answer-assessor → оценка ответов (ЭТОТ SKILL)
|
|
94
|
+
6. Итоговая оценка = текст ВКР + доклад + ответы (все три равноценны)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Антипаттерны
|
|
98
|
+
| Антипаттерн | Правильный подход |
|
|
99
|
+
|-------------|-------------------|
|
|
100
|
+
| Оценивать ответы отдельно от контекста ВКР | Учитывать, что есть в работе |
|
|
101
|
+
| Снижать за неуверенный тон | Оценивать содержание, не форму |
|
|
102
|
+
| Игнорировать заключительное слово | Это обязательный элемент по регламенту |
|
|
103
|
+
| Не сопоставлять ответы с подготовленными вопросами | Проверить, совпали ли ожидания |
|
|
104
|
+
|
|
105
|
+
## Самопроверка
|
|
106
|
+
- [ ] Все вопросы и ответы идентифицированы в транскрипте?
|
|
107
|
+
- [ ] Каждый ответ оценён по 3 критериям?
|
|
108
|
+
- [ ] Заключительное слово оценено отдельно?
|
|
109
|
+
- [ ] Ответы на замечания руководителя проверены?
|
|
110
|
+
- [ ] Ответы на замечания рецензента проверены?
|
|
111
|
+
- [ ] Общее влияние на оценку определено?
|
|
112
|
+
|
|
113
|
+
## Примеры
|
|
114
|
+
**В рамках задачи:**
|
|
115
|
+
- "Оцени ответы студента из транскрипта Q&A"
|
|
116
|
+
- "Прокомментировал ли студент замечания рецензента?"
|
|
117
|
+
- "Как ответы повлияли на общее впечатление?"
|
|
118
|
+
|
|
119
|
+
**Вне задачи:**
|
|
120
|
+
- "Подготовь вопросы" — question-generator
|
|
121
|
+
- "Оцени доклад" — defense-evaluator
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# answer-assessor evaluation
|
|
2
|
+
# Run: aqe eval answer-assessor
|
|
3
|
+
|
|
4
|
+
test_cases:
|
|
5
|
+
- name: "basic invocation"
|
|
6
|
+
input: "Оцени ответы студента на вопросы комиссии"
|
|
7
|
+
expected:
|
|
8
|
+
status: success
|
|
9
|
+
summary_contains: "answer-assessor"
|
|
10
|
+
|
|
11
|
+
- name: "confident answers - full scores"
|
|
12
|
+
input: "Транскрипт Q&A: Вопрос 1 (председатель): Почему выбрана именно эта архитектура? Ответ: Мы сравнили три подхода — микросервисы, монолит и serverless. В главе 3 представлены результаты бенчмарков, микросервисы показали на 40% лучшую масштабируемость. Вопрос 2: Как валидировали модель? Ответ: Использовали кросс-валидацию на 5 фолдах, F1-мера составила 0.87, что описано в разделе 4.2."
|
|
13
|
+
expected:
|
|
14
|
+
status: success
|
|
15
|
+
question_count: 2
|
|
16
|
+
answers:
|
|
17
|
+
- completeness: 3
|
|
18
|
+
depth: 3
|
|
19
|
+
thesis_link: 3
|
|
20
|
+
overall_impression: confident
|
|
21
|
+
grade_impact: raises
|
|
22
|
+
|
|
23
|
+
- name: "weak answers - no substance"
|
|
24
|
+
input: "Транскрипт Q&A: Вопрос: Какие ограничения у вашего подхода? Ответ: Ну... я это не рассматривал в работе. Вопрос: Как соотносятся ваши результаты с аналогами? Ответ: В целом, наши результаты лучше. Вопрос: Можете конкретизировать? Ответ: [пауза] Точные цифры не помню."
|
|
25
|
+
expected:
|
|
26
|
+
status: success
|
|
27
|
+
question_count: 3
|
|
28
|
+
overall_impression: does_not_command
|
|
29
|
+
grade_impact: lowers
|
|
30
|
+
|
|
31
|
+
- name: "closing remarks - all addressed"
|
|
32
|
+
input: "Заключительное слово: Хочу прокомментировать замечания. Руководитель отметил недостаточный объём эксперимента — согласен, в будущем планирую расширить выборку до 1000 респондентов. Рецензент указал на отсутствие сравнения с методом X — это справедливо, я изучил метод X после завершения работы и вижу перспективы интеграции. Планирую продолжить исследование в аспирантуре."
|
|
33
|
+
expected:
|
|
34
|
+
status: success
|
|
35
|
+
closing_remarks:
|
|
36
|
+
present: true
|
|
37
|
+
supervisor_remarks_addressed: true
|
|
38
|
+
reviewer_remarks_addressed: true
|
|
39
|
+
constructive_approach: true
|
|
40
|
+
future_plans_mentioned: true
|
|
41
|
+
|
|
42
|
+
- name: "closing remarks - missing reviewer response"
|
|
43
|
+
input: "Заключительное слово студента: Спасибо за вопросы. По замечанию руководителя о формулировках — я их исправил в финальной версии. На этом всё."
|
|
44
|
+
expected:
|
|
45
|
+
status: success
|
|
46
|
+
closing_remarks:
|
|
47
|
+
present: true
|
|
48
|
+
supervisor_remarks_addressed: true
|
|
49
|
+
reviewer_remarks_addressed: false
|
|
50
|
+
future_plans_mentioned: false
|
|
51
|
+
|
|
52
|
+
- name: "mixed quality answers"
|
|
53
|
+
input: "Транскрипт: Вопрос 1: Обоснуйте выбор метрики. Ответ: Мы выбрали RMSE, потому что в разделе 2.3 показано, что для задач регрессии это стандартная метрика, значение составило 0.12. Вопрос 2: Почему не использовали deep learning? Ответ: Ну, в общем, данных было мало... наверное можно было попробовать. Вопрос 3: Какова практическая применимость? Ответ: Система уже внедрена в компании X, об этом есть акт внедрения в приложении Б."
|
|
54
|
+
expected:
|
|
55
|
+
status: success
|
|
56
|
+
question_count: 3
|
|
57
|
+
has_fields:
|
|
58
|
+
- answers
|
|
59
|
+
- average_score
|
|
60
|
+
- overall_impression
|
|
61
|
+
overall_impression: uncertain
|
|
62
|
+
grade_impact: neutral
|
|
63
|
+
|
|
64
|
+
- name: "full report generation"
|
|
65
|
+
input: "Сформируй полную справку по ответам студента на вопросы комиссии и заключительному слову из транскрипта"
|
|
66
|
+
expected:
|
|
67
|
+
status: success
|
|
68
|
+
has_fields:
|
|
69
|
+
- question_count
|
|
70
|
+
- answers
|
|
71
|
+
- closing_remarks
|
|
72
|
+
- average_score
|
|
73
|
+
- overall_impression
|
|
74
|
+
- grade_impact
|
|
75
|
+
- summary
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "answer-assessor output",
|
|
4
|
+
"description": "Structured output from the answer-assessor skill",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["status", "question_count", "answers", "overall_impression", "grade_impact"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"status": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"enum": ["success", "error", "skipped"]
|
|
11
|
+
},
|
|
12
|
+
"question_count": {
|
|
13
|
+
"type": "integer",
|
|
14
|
+
"description": "Total number of questions asked by the committee"
|
|
15
|
+
},
|
|
16
|
+
"qa_duration_minutes": {
|
|
17
|
+
"type": "number",
|
|
18
|
+
"description": "Estimated duration of the Q&A session in minutes"
|
|
19
|
+
},
|
|
20
|
+
"answers": {
|
|
21
|
+
"type": "array",
|
|
22
|
+
"items": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"required": ["question_summary", "completeness", "depth", "thesis_link"],
|
|
25
|
+
"properties": {
|
|
26
|
+
"question_summary": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"description": "Brief summary of the question"
|
|
29
|
+
},
|
|
30
|
+
"asked_by": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"description": "Who asked the question (if identifiable from transcript)"
|
|
33
|
+
},
|
|
34
|
+
"completeness": {
|
|
35
|
+
"type": "integer",
|
|
36
|
+
"minimum": 1,
|
|
37
|
+
"maximum": 3,
|
|
38
|
+
"description": "Completeness score: 3=full, 2=partial, 1=no answer"
|
|
39
|
+
},
|
|
40
|
+
"depth": {
|
|
41
|
+
"type": "integer",
|
|
42
|
+
"minimum": 1,
|
|
43
|
+
"maximum": 3,
|
|
44
|
+
"description": "Depth score: 3=arguments+data, 2=general, 1=not considered"
|
|
45
|
+
},
|
|
46
|
+
"thesis_link": {
|
|
47
|
+
"type": "integer",
|
|
48
|
+
"minimum": 1,
|
|
49
|
+
"maximum": 3,
|
|
50
|
+
"description": "Link to thesis: 3=specific references, 2=general, 1=none"
|
|
51
|
+
},
|
|
52
|
+
"confidence": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"enum": ["confident", "hesitant", "lost"],
|
|
55
|
+
"description": "Student's confidence level in the answer"
|
|
56
|
+
},
|
|
57
|
+
"remarks": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"description": "Additional observations about this answer"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"closing_remarks": {
|
|
65
|
+
"type": "object",
|
|
66
|
+
"properties": {
|
|
67
|
+
"present": {
|
|
68
|
+
"type": "boolean",
|
|
69
|
+
"description": "Whether the student gave a closing statement"
|
|
70
|
+
},
|
|
71
|
+
"supervisor_remarks_addressed": {
|
|
72
|
+
"type": "boolean",
|
|
73
|
+
"description": "Whether supervisor's remarks were addressed"
|
|
74
|
+
},
|
|
75
|
+
"reviewer_remarks_addressed": {
|
|
76
|
+
"type": "boolean",
|
|
77
|
+
"description": "Whether external reviewer's remarks were addressed"
|
|
78
|
+
},
|
|
79
|
+
"constructive_approach": {
|
|
80
|
+
"type": "boolean",
|
|
81
|
+
"description": "Whether the student was constructive about remarks"
|
|
82
|
+
},
|
|
83
|
+
"future_plans_mentioned": {
|
|
84
|
+
"type": "boolean",
|
|
85
|
+
"description": "Whether the student mentioned future development plans"
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"description": "Assessment of the student's closing remarks / final word"
|
|
89
|
+
},
|
|
90
|
+
"average_score": {
|
|
91
|
+
"type": "number",
|
|
92
|
+
"minimum": 1.0,
|
|
93
|
+
"maximum": 3.0,
|
|
94
|
+
"description": "Average score across all answers (scale 1-3)"
|
|
95
|
+
},
|
|
96
|
+
"overall_impression": {
|
|
97
|
+
"type": "string",
|
|
98
|
+
"enum": ["confident", "uncertain", "does_not_command"],
|
|
99
|
+
"description": "Overall impression of the student's answers"
|
|
100
|
+
},
|
|
101
|
+
"grade_impact": {
|
|
102
|
+
"type": "string",
|
|
103
|
+
"enum": ["raises", "neutral", "lowers"],
|
|
104
|
+
"description": "Impact of Q&A performance on the final grade"
|
|
105
|
+
},
|
|
106
|
+
"summary": {
|
|
107
|
+
"type": "string",
|
|
108
|
+
"description": "Free-text summary of the Q&A assessment"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "answer-assessor config validator",
|
|
4
|
+
"description": "Validates configuration inputs for the answer-assessor skill",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"transcript_path": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Path to the Q&A transcript file"
|
|
10
|
+
},
|
|
11
|
+
"thesis_path": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "Path to the thesis document for cross-referencing answers"
|
|
14
|
+
},
|
|
15
|
+
"supervisor_review_path": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "Path to the supervisor review (to check if remarks were addressed)"
|
|
18
|
+
},
|
|
19
|
+
"external_review_path": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "Path to the external reviewer report (to check if remarks were addressed)"
|
|
22
|
+
},
|
|
23
|
+
"prepared_questions_path": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"description": "Path to previously generated questions (from question-generator) for comparison"
|
|
26
|
+
},
|
|
27
|
+
"realtime": {
|
|
28
|
+
"type": "boolean",
|
|
29
|
+
"default": false,
|
|
30
|
+
"description": "Whether the transcript is being updated in real-time"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"required": ["transcript_path"]
|
|
34
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "defense-evaluator"
|
|
3
|
+
description: "Evaluates thesis defense presentation from live transcript — structure, topic coverage, confidence, alignment with thesis."
|
|
4
|
+
trust_tier: 2
|
|
5
|
+
trust_tier_label: "Validated"
|
|
6
|
+
validation:
|
|
7
|
+
schema_path: schemas/output.json
|
|
8
|
+
validator_path: scripts/validate-config.json
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Оценка доклада студента (по транскрипту)
|
|
12
|
+
|
|
13
|
+
Skill для оценки устного доклада студента на защите ВКР на основе транскрипта речи. Анализирует транскрипт в реальном времени или после завершения доклада. Содержит только критерии оценки доклада. Персональные данные обрабатываются только в runtime.
|
|
14
|
+
|
|
15
|
+
## Когда использовать
|
|
16
|
+
- Анализ транскрипта доклада студента (файл transcript.txt)
|
|
17
|
+
- Оценка качества устной презентации по критериям ГЭК
|
|
18
|
+
- Сопоставление содержания доклада с текстом ВКР
|
|
19
|
+
- Формирование дополнительных вопросов на основе доклада
|
|
20
|
+
|
|
21
|
+
## Когда НЕ использовать
|
|
22
|
+
- Для анализа текста ВКР — используйте dissertation-review
|
|
23
|
+
- Для генерации вопросов до защиты — используйте question-generator
|
|
24
|
+
|
|
25
|
+
## Протокол
|
|
26
|
+
|
|
27
|
+
### Шаг 1: Получить транскрипт
|
|
28
|
+
Прочитать файл транскрипта (transcript.txt или указанный файл). Транскрипт может обновляться в реальном времени.
|
|
29
|
+
|
|
30
|
+
### Шаг 2: Оценить структуру доклада
|
|
31
|
+
Проверить наличие обязательных элементов:
|
|
32
|
+
|
|
33
|
+
| Элемент | Что искать в транскрипте | Сигналы проблем |
|
|
34
|
+
|---------|------------------------|-----------------|
|
|
35
|
+
| Представление | ФИО, тема работы | Не назвал тему или назвал неточно |
|
|
36
|
+
| Актуальность | Почему тема важна, контекст | Перескочил сразу к результатам |
|
|
37
|
+
| Цель и задачи | Чётко сформулированы | Размытые формулировки |
|
|
38
|
+
| Методология | Какие методы использовались | Не упомянул методы вообще |
|
|
39
|
+
| Результаты | Конкретные выводы, цифры, графики | Общие фразы без конкретики |
|
|
40
|
+
| Заключение | Итоги, практическая значимость | Оборвал доклад без выводов |
|
|
41
|
+
|
|
42
|
+
### Шаг 3: Оценить раскрытие темы
|
|
43
|
+
- Соответствует ли содержание доклада заявленной теме?
|
|
44
|
+
- Все ли ключевые результаты ВКР озвучены?
|
|
45
|
+
- Нет ли существенных пропусков?
|
|
46
|
+
- Добавлены ли результаты, которых нет в ВКР? (это и плюс, и минус)
|
|
47
|
+
|
|
48
|
+
### Шаг 4: Оценить качество подачи (по транскрипту)
|
|
49
|
+
|
|
50
|
+
| Критерий | Хорошо | Плохо |
|
|
51
|
+
|----------|--------|-------|
|
|
52
|
+
| Логика изложения | Последовательный рассказ, связки между разделами | Перескакивание, повторы |
|
|
53
|
+
| Владение материалом | Свободная речь, развёрнутые объяснения | Чтение текста, заученные фразы |
|
|
54
|
+
| Терминология | Корректное использование терминов | Путает или избегает терминов |
|
|
55
|
+
| Конкретика | Цифры, факты, примеры | "В целом", "примерно", "около" |
|
|
56
|
+
| Тайминг | Уложился в 20 минут | Значительно меньше или больше |
|
|
57
|
+
|
|
58
|
+
### Шаг 5: Сопоставить с материалами ВКР
|
|
59
|
+
- Есть ли противоречия между докладом и текстом ВКР?
|
|
60
|
+
- Упомянуты ли замечания руководителя/рецензента в докладе?
|
|
61
|
+
- Соответствуют ли озвученные цифры данным в работе?
|
|
62
|
+
|
|
63
|
+
### Шаг 5.5: Для командных проектов
|
|
64
|
+
|
|
65
|
+
Если ВКР выполнена в команде, в докладе обратить внимание:
|
|
66
|
+
- Разделяет ли студент "мы сделали" и "я сделал"?
|
|
67
|
+
- Упоминает ли свой личный вклад отдельно?
|
|
68
|
+
- Корректно ли ссылается на работы коллег?
|
|
69
|
+
|
|
70
|
+
### Шаг 6: Сформировать справку по докладу
|
|
71
|
+
|
|
72
|
+
Шаблон:
|
|
73
|
+
```
|
|
74
|
+
ОЦЕНКА ДОКЛАДА
|
|
75
|
+
═══════════════════════════════
|
|
76
|
+
Длительность: [мин] из 20
|
|
77
|
+
|
|
78
|
+
СТРУКТУРА ДОКЛАДА:
|
|
79
|
+
[✅/❌] Представление (ФИО, тема)
|
|
80
|
+
[✅/❌] Актуальность
|
|
81
|
+
[✅/❌] Цель и задачи
|
|
82
|
+
[✅/❌] Методология
|
|
83
|
+
[✅/❌] Результаты
|
|
84
|
+
[✅/❌] Заключение
|
|
85
|
+
|
|
86
|
+
КАЧЕСТВО ПОДАЧИ:
|
|
87
|
+
Логика: [высокая / средняя / низкая]
|
|
88
|
+
Владение материалом: [свободное / частичное / чтение]
|
|
89
|
+
Конкретика: [цифры и факты / общие фразы]
|
|
90
|
+
|
|
91
|
+
СОПОСТАВЛЕНИЕ С ВКР:
|
|
92
|
+
Противоречия: [есть / нет]
|
|
93
|
+
Пропущенные результаты: [список]
|
|
94
|
+
|
|
95
|
+
ДОПОЛНИТЕЛЬНЫЕ ВОПРОСЫ (из доклада):
|
|
96
|
+
1. [...]
|
|
97
|
+
2. [...]
|
|
98
|
+
|
|
99
|
+
ОБЩЕЕ ВПЕЧАТЛЕНИЕ: [сильный / средний / слабый]
|
|
100
|
+
═══════════════════════════════
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Рекомендуемый workflow
|
|
104
|
+
```
|
|
105
|
+
1. document-checker → комплектность
|
|
106
|
+
2. dissertation-review → анализ ВКР
|
|
107
|
+
3. question-generator → вопросы до защиты
|
|
108
|
+
4. defense-evaluator → оценка доклада (ЭТОТ SKILL)
|
|
109
|
+
5. answer-assessor → оценка ответов
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Антипаттерны
|
|
113
|
+
| Антипаттерн | Правильный подход |
|
|
114
|
+
|-------------|-------------------|
|
|
115
|
+
| Оценивать только по транскрипту, игнорируя ВКР | Сопоставлять доклад с текстом работы |
|
|
116
|
+
| Придираться к оговоркам в речи | Транскрипт не передаёт интонацию, оценивать содержание |
|
|
117
|
+
| Не учитывать тайминг | Очень короткий доклад (<10 мин) — сигнал поверхностности |
|
|
118
|
+
| Формировать оценку до завершения доклада | Дождаться полного транскрипта |
|
|
119
|
+
|
|
120
|
+
## Самопроверка
|
|
121
|
+
- [ ] Транскрипт прочитан полностью?
|
|
122
|
+
- [ ] Все 6 элементов структуры проверены?
|
|
123
|
+
- [ ] Доклад сопоставлен с текстом ВКР?
|
|
124
|
+
- [ ] Выявлены ли противоречия?
|
|
125
|
+
- [ ] Сформулированы ли дополнительные вопросы из доклада?
|
|
126
|
+
- [ ] Общее впечатление обосновано?
|
|
127
|
+
|
|
128
|
+
## Примеры
|
|
129
|
+
**В рамках задачи:**
|
|
130
|
+
- "Проанализируй транскрипт доклада из файла transcript.txt"
|
|
131
|
+
- "Сопоставь доклад с ВКР — есть ли противоречия?"
|
|
132
|
+
- "Какие дополнительные вопросы возникли из доклада?"
|
|
133
|
+
|
|
134
|
+
**Вне задачи:**
|
|
135
|
+
- "Оцени текст ВКР" — используй dissertation-review
|
|
136
|
+
- "Подготовь вопросы заранее" — используй question-generator
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# defense-evaluator evaluation
|
|
2
|
+
# Run: aqe eval defense-evaluator
|
|
3
|
+
|
|
4
|
+
test_cases:
|
|
5
|
+
- name: "basic invocation"
|
|
6
|
+
input: "Оцени доклад студента из транскрипта"
|
|
7
|
+
expected:
|
|
8
|
+
status: success
|
|
9
|
+
summary_contains: "defense-evaluator"
|
|
10
|
+
|
|
11
|
+
- name: "strong presentation - all elements present"
|
|
12
|
+
input: "Транскрипт: студент представился, назвал тему, обосновал актуальность, чётко сформулировал цель и 4 задачи, описал методологию (анализ, эксперимент, моделирование), представил конкретные результаты с цифрами и графиками, подвёл итоги и указал практическую значимость. Длительность 18 минут."
|
|
13
|
+
expected:
|
|
14
|
+
status: success
|
|
15
|
+
structure:
|
|
16
|
+
introduction: true
|
|
17
|
+
relevance: true
|
|
18
|
+
goals_and_tasks: true
|
|
19
|
+
methodology: true
|
|
20
|
+
results: true
|
|
21
|
+
conclusion: true
|
|
22
|
+
delivery_quality:
|
|
23
|
+
logic: high
|
|
24
|
+
specificity: data_and_facts
|
|
25
|
+
overall_impression: strong
|
|
26
|
+
|
|
27
|
+
- name: "weak presentation - missing structure elements"
|
|
28
|
+
input: "Транскрипт: студент сразу перешёл к результатам, не назвал тему, не объяснил актуальность, не упомянул методологию. Говорил общими фразами без цифр. Доклад занял 8 минут."
|
|
29
|
+
expected:
|
|
30
|
+
status: success
|
|
31
|
+
structure:
|
|
32
|
+
introduction: false
|
|
33
|
+
relevance: false
|
|
34
|
+
methodology: false
|
|
35
|
+
delivery_quality:
|
|
36
|
+
specificity: general_phrases
|
|
37
|
+
overall_impression: weak
|
|
38
|
+
|
|
39
|
+
- name: "thesis alignment - contradictions detected"
|
|
40
|
+
input: "Сопоставь доклад с ВКР. В докладе студент заявил рост показателя на 45%, а в ВКР указано 23%. Также в работе 5 задач, а в докладе упомянуты только 3."
|
|
41
|
+
expected:
|
|
42
|
+
status: success
|
|
43
|
+
thesis_alignment:
|
|
44
|
+
contradictions_found: true
|
|
45
|
+
has_fields:
|
|
46
|
+
- thesis_alignment
|
|
47
|
+
- additional_questions
|
|
48
|
+
|
|
49
|
+
- name: "question generation from presentation"
|
|
50
|
+
input: "Проанализируй транскрипт доклада и сформулируй дополнительные вопросы. Студент упомянул нейросетевую модель, но не назвал архитектуру и не привёл метрики качества."
|
|
51
|
+
expected:
|
|
52
|
+
status: success
|
|
53
|
+
has_fields:
|
|
54
|
+
- additional_questions
|
|
55
|
+
min_additional_questions: 1
|
|
56
|
+
|
|
57
|
+
- name: "partial delivery quality"
|
|
58
|
+
input: "Транскрипт: студент представил все разделы, но часто переспрашивал, путал термины, несколько раз повторялся. Перескакивал между введением и результатами. Уложился в 20 минут."
|
|
59
|
+
expected:
|
|
60
|
+
status: success
|
|
61
|
+
delivery_quality:
|
|
62
|
+
logic: low
|
|
63
|
+
terminology: inconsistent
|
|
64
|
+
material_command: partial
|
|
65
|
+
overall_impression: average
|
|
66
|
+
|
|
67
|
+
- name: "full report generation"
|
|
68
|
+
input: "Сформируй полную справку по докладу студента из файла transcript.txt с сопоставлением с ВКР"
|
|
69
|
+
expected:
|
|
70
|
+
status: success
|
|
71
|
+
has_fields:
|
|
72
|
+
- structure
|
|
73
|
+
- delivery_quality
|
|
74
|
+
- thesis_alignment
|
|
75
|
+
- additional_questions
|
|
76
|
+
- overall_impression
|
|
77
|
+
- summary
|