| name | status |
| description | Показать текущий прогресс ученика — уровень, XP, streak, пройденные витки, достижения. Триггерься на "/status", "покажи прогресс", "сколько у меня XP", "какой уровень", "что я уже прошёл", "мой профиль". Читает progress/profile.json, completed_lessons.json, scaffolding_level.json. НЕ показывает BKT (competencies), attention_metrics, mistakes — это внутренние данные, не UX. |
Status: отчёт о прогрессе
UX-слой над состоянием. Ученик вызывает /status и видит человеческую сводку своего пути в предметной области.
Что показывать
Блок 1: Текущее состояние
Из profile.json:
- Имя — «Привет, <имя>»
- Уровень + название (титул берётся из
profile.json, поле level_title)
- XP (текущее / до следующего уровня)
- Streak (если > 0 — «🔥 5 дней подряд». Если 0 — не упоминать)
- Дата начала
Уровневые титулы хранятся в profile.json как {{LEVEL_1_TITLE}} … {{LEVEL_N_TITLE}} и задаются доменным слоем (прогрессия мастерства в конкретной области). Не зашивай конкретные названия в скилл — читай из профиля.
1 — Новичок-проектировщик · 2 — Джун-инженер · 3 — Уверенный инженер · 4 — Системный дизайнер · 5 — Архитектор · 6 — Принципал
Блок 2: Что пройдено
Из completed_lessons.json:
- Витки/уроки: «пройдено 7 уроков, виток 2 из N»
- Решённые задачи области (названия из
solved_challenges.json)
- Недавние (последние 3): названия + даты
Блок 3: Навыки (упрощённо)
Из scaffolding_level.json, но НЕ показывай цифры 1-5 — переведи в человеческие формулировки. Ключи навыков приходят из доменного слоя; перевод цифры в слова универсален:
- уровень
4 → «<навык>: делаешь сам»
- уровень
3 → «<навык>: выбираешь по описанию»
- уровень
2 → «<навык>: разбираем вместе на каркасе»
- уровень
1 → «<навык>: впереди»
estimation: 4 → «Оценка нагрузки: считаешь сам»
components: 3 → «Компоненты: выбираешь по описанию»
tradeoff_reasoning: 2 → «Trade-offs: разбираем вместе на каркасе»
failure_thinking: 1 → «Отказоустойчивость: впереди»
Блок 4: Достижения
Из profile.achievements. Если 0 — «Первая ачивка — "Исследователь" — откроется после Discovery».
Блок 5: Следующий шаг
Одно конкретное предложение:
- Незавершённый урок → «Следующий: виток 3 — <тема>»
- Давно не практиковались → «Можем взять задачу: <задача области>»
Формат
Лаконичный markdown. Структура (конкретика — из состояния ученика):
# <Имя> — прогресс
**<уровень и титул из profile.json>** (520 XP, до следующего уровня 980 XP)
🔥 Streak: 4 дня
## Пройдено
- 7 уроков, виток 2 из N
- Решено: <задачи из solved_challenges.json>
Последние:
- Виток 2.3 — <тема> (4 дня назад)
- Виток 2.4 — <тема> (вчера)
## Твои навыки
- <навык>: считаешь сам
- <навык>: выбираешь по описанию
- <навык>: разбираем вместе
- <навык>: впереди
## Достижения
🔍 Исследователь — Discovery пройден
## Что дальше
Следующий: **виток 3 — <тема>**. ~25 минут.
Правила
- НЕ показывай BKT (
competencies.json) — для диагностики, не для UX.
- НЕ показывай attention_metrics.
- НЕ сравнивай с нормой («хорошо/плохо для 2 недель»).
- Streak — только если есть (нулевой не упоминай, чтобы не создавать вину).
- Конкретная рекомендация — «виток 3, 25 минут», не «можно что-то».
- Геймификация профиль-зависима (см.
onboarding/references/profiles.md): для overconfidence-профиля — прогресс к мастерству/цели, self-referenced («ты сам прошёл путь, где неделю назад нужна была помощь»). Без лидербордов. Для профиля с риском синдрома самозванца — прогресс как свидетельство роста.
Когда вызывают /status
- В начале сессии — покажи и переходи к session-flow.
- В середине — коротко и вернись к задаче.
- В конце — покажи и спроси, как ощущается прогресс (мини-рефлексия).
Не превращай в длинный разговор — это отчёт.