Wrap-up — завершение сессии

SkillFiles & storage

Ends a health-os session: session log, active-context, checkpoint, MEMORY.md, Goals/health-goals.md, breadcrumb cleanup, and a commit. Closes the session as a whole, not for saving an individual file or analysis. Triggers: «заверши сессию», «сохрани сессию», «wrap up», «закончили», «закрываем сесси

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the Wrap-up skill

What this skill tells your AI

The instructions your AI receives, as published by alxyrgin/health-os in .claude/skills/wrap-up/SKILL.md and read by ahel’s review.

Профиль. До чтения и записи определи активный профиль по .claude/shared/profile-resolution.md. Короткий путь Data/X в этом файле означает Data/profiles/<активный>/X — буквально по нему писать нельзя. Перед записью назови, в чей профиль она идёт.

Назначение

Сохранить контекст сессии в MEMORY.md, сделать коммит. Без push (нет remote).

Workflow

1. Собрать итоги сессии

Механизм — не по памяти, а по состоянию репозитория:

git status --short
git diff --stat HEAD

По этому выводу определить:

  • Какие файлы изменились (git status --short) и насколько (git diff --stat HEAD)
  • Какие направления затронуты — по путям изменённых файлов (Data/labs/ → анализы, Data/doctors/ → визиты и т.д.)
  • Какие решения приняты — из хода сессии
  • Что осталось открытым

2. Создать session log

Создать файл Cache/sessions/YYYY-MM-DD_HH-MM.md:

# Сессия YYYY-MM-DD HH:MM

- **Длительность:** ~X мин
- **Направления:** [затронутые KR/направления]

## Что сделано

- [действие 1]
- [действие 2]

## Изменённые файлы

- [список ключевых файлов]

## Решения

- [решение 1 — почему]

## Открытые вопросы

- [что осталось нерешённым]

3. Обновить active-context

Перезаписать Cache/active-context.md:

# Active Context — Health-OS

## Последняя сессия

- **Дата:** YYYY-MM-DD
- **Что сделано:** [краткий список]
- **Изменённые файлы:** [список]

### Предыдущие сессии

- [предыдущие 2–3 сессии — одной строкой каждая]

## Текущие задачи

| # | Задача | Статус | Контекст |
|---|--------|--------|----------|
| 1 | [задача] | in_progress/waiting/next | [контекст] |

## Текущий фокус

- [на чём сейчас сосредоточена работа]

## Ожидания к следующей сессии

- [что должно произойти до следующего входа]

## Следующие шаги

- [конкретные действия на следующую сессию]

## Блокеры

- [что мешает прогрессу, если есть]

4. Обновить checkpoint

Обновить Cache/checkpoint.yml:

  • Если многошаговая задача завершена → active: false, обнулить поля
  • Если задача не завершена → оставить active: true, обновить current_step, context, last_updated
  • Если не было многошаговой задачи → не трогать

5. Обновить MEMORY.md

Обновить следующие секции (БЕЗ «Последняя сессия» — она в active-context):

«Активные треды» — обновить если изменились:

  • Добавить новые направления
  • Обновить статусы
  • Убрать завершённые

«Открытые вопросы» — обновить:

  • Добавить новые
  • Убрать решённые

«Ближайшие действия» — обновить:

  • Что нужно сделать в следующей сессии
  • Ожидаемые визиты, анализы

6. Обновить Goals/health-goals.md

Пересгенерировать локальный файл целей из живых данных:

Goals/health-goals.md — обновить из:

  • Data/goals/YYYY.json (v2) → все KR из directions[] (число направлений читать из файла, не задавать константой), фазы, milestones чекбоксы, расходы

Генерировать полностью, не патчить.

7. Очистить breadcrumb

Удаляется только breadcrumb текущей сессии. Массовая чистка запрещена: в .claude/hooks/pending-sessions/ лежат следы других сессий, в том числе работающих параллельно прямо сейчас, и они — единственный вход для /recover-sessions.

Если session_id текущей сессии известен:

  • Удалить .claude/hooks/pending-sessions/{session_id}.json
  • Удалить .claude/hooks/session-start-{session_id}.tmp, если он существует. Отсутствие файла — норма, не ошибка

Если session_id неизвестен:

  • Не удалять ничего. Не по дате, не по времени изменения, не «все за сегодня»
  • Сообщить пользователю:
    ⚠️ Breadcrumb не очищен — ID текущей сессии неизвестен.
       Удалять файлы по дате нельзя: рядом могут лежать breadcrumbs других сессий.
       Разобрать накопившееся: /recover-sessions
    

Чистка чужих breadcrumbs — зона ответственности /recover-sessions, а не этого скилла.

8. Проверка целостности перед коммитом

python3 .claude/scripts/check-integrity.py

Коммитить сломанные данные хуже, чем не коммитить: дефект фиксируется в истории и переживает сессию.

  • Всё пройдено — идти дальше молча
  • Есть проблемы — показать их и спросить, чинить сейчас или коммитить как есть. Решение за пользователем: часть расхождений возникает в середине незавершённой работы и это нормально
  • Скрипт недоступен — отметить одной строкой и продолжить

9. Коммит

Сначала проверить, есть ли что коммитить:

git status --porcelain

Если вывод пуст — изменений нет. Коммит не делать (git commit завершится ошибкой «nothing to commit»), в подтверждении написать «Коммит: не требуется — изменений нет». Это не ошибка сессии.

Если вывод непуст:

git add -A
git commit -m "[тип]: краткое описание"

Типы: feat, docs, fix, refactor

НЕ делать push — проект только локальный.

10. Подтверждение

✅ Сессия завершена
- Session log: Cache/sessions/YYYY-MM-DD_HH-MM.md
- Active context обновлён
- Checkpoint: [деактивирован / обновлён (задача X, шаг Y/Z) / не было]
- MEMORY.md обновлён
- Goals/health-goals.md обновлён
- Breadcrumb: [очищен / не очищен — session_id неизвестен, см. /recover-sessions]
- Коммит: [hash] — [message] / не требуется — изменений нет
- Изменено файлов: N

Каждая строка отражает фактический результат шага. Не писать «очищен», если шаг 7 ушёл в ветку «неизвестен», и не писать про коммит, если его не было.

Правила

  • Медданные не покидают каталог проекта — запись PHI куда-либо вовне запрещена. Наружу, если это вообще нужно, идут только агрегаты: количества, статусы, метрики. Никаких названий препаратов, диагнозов, аллергенов, ФИО и дат рождения
  • Только свой breadcrumb — удаление чужих или удаление по дате запрещено при любых обстоятельствах
  • Скилл закрывает сессию целиком — если пользователь просит сохранить конкретный файл, анализ или заметку, это не /wrap-up. Запускать только на явное завершение сессии
  • Порядок шагов зафиксирован в CLAUDE.md и менять его нельзя: лог → active-context → checkpoint → MEMORY → Goals → breadcrumb → проверка целостности → коммит

Критерий завершения: session log создан; Cache/active-context.md содержит все шесть обязательных секций из .claude/rules/active-context.md; Cache/checkpoint.yml приведён в соответствие фактическому состоянию задачи; MEMORY.md и Goals/health-goals.md обновлены; breadcrumb либо удалён по известному session_id, либо явно оставлен с сообщением пользователю; коммит сделан либо честно помечен как не требующийся; отчёт шага 10 отражает реальные результаты каждого шага.

Signals

GitHub stars
39
Forks
7
Last commit
Aug 2026

Others that do the same job

Advanced
Item type
skill
Key
wrap-up-alxyrgin
Source
github.com/alxyrgin/health-os