---
name: itog
description: "Итог сессии — сравнение acceptance criteria из recap с фактом. Триггеры: 'итог', 'итоги', 'готово?', 'gotovo?', 'что осталось', 'статус сессии', 'status?', 'всё?', 'done?'. Читает sync/recaps/<sessionId>.md, выводит таблицу 'Критерий | Ожидание | Факт | Статус' + вердикт COMPLETED/PARTIAL/ABANDONED + список незакрытых пунктов. НЕ предлагает развёрнутый рассказ. Если PARTIAL — предлагает следующий шаг."
---

# /итог — Статус сессии в виде таблицы

## ПРИНЦИП

Антон 20+ раз за выборку спрашивает «итог?», «готово?», «что осталось?». Это короткий статус-запрос. Не нужен рассказ, нужна таблица.

```
ЦЕЛЬ (из recap) → ACCEPTANCE → ФАКТ → СТАТУС
```

## ЛОГИКА

### Шаг 1: Найти recap

Источники session_id (в порядке приоритета):
1. `$CLAUDE_SESSION_ID` env
2. Последний файл в `~/artvision-data/sync/recaps/*.md` по mtime

Recap path: `~/artvision-data/sync/recaps/<sessionId>.md`

Если recap не существует:
```
ℹ️ Recap не найден для sessionId <id>.
Возможные причины:
- Старт сессии без start-recap-init.sh
- Recap в другом проекте

Создать recap сейчас? (/goal или Write новый файл)
```

### Шаг 2: Извлечь секции

Парсить recap markdown:

| Секция | Что взять |
|--------|-----------|
| `## Цель сессии` | 1 строка цели |
| `## Acceptance criteria` | Список `- [ ]` / `- [x]` |
| `## Лог выполнения` | Последние 5-10 записей `- [HH:MM]` |
| `## Финальный статус` | Если есть — приоритет |

### Шаг 3: Вывести таблицу

```markdown
🎯 **Цель:** <из recap>

| # | Acceptance criteria | Ожидание | Факт | Статус |
|---|---------------------|----------|------|--------|
| 1 | <текст из чекбокса>  | <что было обещано> | <последняя строка лога связанная> | ✅ / ⚠️ / ❌ |
| 2 | ... | ... | ... | ... |

**Вердикт:** ✅ COMPLETED (N/N) | ⚠️ PARTIAL (N/M) | ❌ ABANDONED (0/M)
```

### Шаг 4: Если PARTIAL — действия

```markdown
**Не закрыто:**
- [ ] пункт X — блокер: <причина>
- [ ] пункт Y — следующий шаг: <команда>

**Следующая сессия:**
1. Конкретное действие 1
2. Конкретное действие 2

Создать TaskCreate для незакрытых? (го/да)
```

## ЗАПРЕЩЕНО

- Длинный пересказ что было сделано
- Уточняющие вопросы («хочешь подробнее?»)
- Рассуждения о причинах
- Эмодзи кроме статусов ✅⚠️❌

## ШАБЛОН ОТВЕТА (БЕЗ recap)

Если recap пустой/нет acceptance:

```markdown
ℹ️ Recap есть, acceptance criteria не заполнены.
Не могу выдать итог по таблице. Возможно цель сессии не была зафиксирована.

Текущее состояние из «Лог выполнения»:
- <последние 3-5 строк>

Хочешь зафиксировать acceptance сейчас? Назови критерии готовности.
```

## ПРИМЕР

Запуск: `/итог`

```markdown
🎯 **Цель:** Деплой КП Dentix v3 на artvision.pro/kp/dentix-final/

| # | Acceptance | Ожидание | Факт | Статус |
|---|------------|----------|------|--------|
| 1 | factcheck PASSED | 0 CRIT | 0 CRIT, 2 WARN | ✅ |
| 2 | scp на VPS | https URL отдан | https://artvision.pro/kp/dentix-final/ | ✅ |
| 3 | TG нотификация Антону | отправлено | (not sent) | ❌ |
| 4 | визуальная проверка 3 breakpoints | PNG скриншоты | только 1440 | ⚠️ |

**Вердикт:** ⚠️ PARTIAL (2/4)

**Не закрыто:**
- [ ] TG нотификация — `tg-send.sh anton "deploy URL"`
- [ ] Screenshots 375 и 768 — `playwright screenshot`

Создать TaskCreate для незакрытых? (да/нет)
```

## ИНТЕГРАЦИЯ С UserPromptSubmit-хуком

Будущий хук `prompt-status-shortcut.sh` (НЕ часть этого скилла) может распознавать `^(итог|готово\??|gotovo\??|что осталось\??)\s*[.?!]*$` и инжектить «вызови skill /итог».

Сейчас — ручной вызов через `/итог` или `/itog`.

## СВЯЗАННЫЕ ПРАВИЛА

- `~/.claude/rules/session.md` — Recap section
- `~/.claude/rules/no-smoothing.md` — формат при PARTIAL
- `~/artvision-data/sync/cowork/prompt-pattern-analysis-2026-05-13.md` Рек. #1
