| name | sync |
| description | Загрузить контекст проектов и задач из vault в начале сессии. Используй, когда пользователь говорит «sync», «status», «что по проектам», «обзор» или начинает работу и нужно войти в курс дела. |
| user_invocable | true |
sync
Загрузить актуальное состояние всех проектов и задач из vault и выдать сжатую сводку. Навык read-only — ничего не изменяет. Самодостаточен: можно дать любому агенту.
Где vault
Корень текущего репозитория — папка с CLAUDE.md и projects/. Если рабочая директория глубже, поднимись до корня.
Что прочитать
_rules.md — конвенции vault (как ведутся проекты и задачи).
_lessons.md — журнал инцидентов (храповик ошибок): какие ошибки были и какой механизм/правило теперь их ловит. Читать обязательно — это «обучение на ошибках» между сессиями.
_requests.md — открытые запросы пользователя (незакрытые - [ ]): что обещано и не доделано. Держать в фокусе, закрывать.
_dashboard.md — общая картина.
_inbox/ — посчитать необработанные записи (всё, кроме .gitkeep): сколько ждёт разбора. Только подсчёт для подсветки в сводке — не разбирать (разбор делает отдельный навык inbox); read-only-инвариант не нарушается.
- Для каждой папки в
projects/:
projects/<slug>/<slug>.md — статус, приоритет, аудитория, метрики, лог сессий, топ-задача.
projects/<slug>/roadmap.md — фазы и текущий этап.
projects/<slug>/tasks/*.md — статусы и RICE. Хватает frontmatter; для скорости можно grep по status:, rice_*, summary:, next_up:, не читая тела.
ogorod.config.json — поле ogorod_version (текущая версия шаблона у этого vault'а), для проверки обновлений ниже.
RICE считается: (rice_reach × rice_impact × rice_confidence/100) / rice_effort.
Проверка обновлений Огорода (best-effort, read-only)
В начале работы проверь, не вышла ли новая версия шаблона. Источник истины — GitHub Releases репозитория Огорода: tag_name = версия, body = релизноутс.
curl -fsS --max-time 4 https://api.github.com/repos/kringova/ogorodush/releases/latest
Возьми из ответа tag_name и body. Если tag_name (semver, без префикса v) новее локального ogorod_version из ogorod.config.json — выведи первым блок «🌱 Обновление Огорода» (формат ниже) с версией и кратким body. Иначе — блок не выводи.
- Любая ошибка (офлайн, лимит API, нет поля, нет
curl) → молча пропусти: проверка не должна ломать sync.
- Проверка read-only: только GET, ничего не пишем (троттл-файл не заводим — один вызов на старт сессии в пределах лимита API).
- Нет
ogorod_version (легаси-vault, поле в конфиге пропущено) или самого файла ogorod.config.json (свежий клон до setup) → та же ветка: покажи актуальную версию апстрима и предложи запустить setup (свежий клон) или отметить версию в ogorod.config.json (легаси-vault).
Применить обновление — отдельное действие, навык update: по команде «обнови Огород» подтягивает свежие _rules.md / skills/ / docs/ / _templates/ / scripts/ / .githooks/ из апстрима (с диф-превью и подтверждением) и записывает новую версию в ogorod_version. Сам sync обновление не применяет.
Как показать результат
Сжатая сводка на русском. Структура:
## 🌱 Обновление Огорода
Доступна версия <tag> (у вас <ogorod_version>). Что нового: <1–2 строки из релизноутс>. Подтянуть — скажите «обнови Огород» (навык `update`). ← только если апстрим новее; иначе блок не выводить
## 📌 Запланировано — взять сейчас (open + next_up: true), по убыванию RICE
- <тикет> · <проект> · <задача> (RICE N) ← только если такие есть; иначе блок не выводить
## Проекты
- **<название>** — статус, приоритет, аудитория
- Топ-задача: <название> (RICE N)
- Фаза роадмапа: <текущая>
## Активные задачи (todo + doing), по убыванию RICE
| Проект | Задача | Статус | RICE |
|--------|--------|--------|------|
## Недавно завершённые (последние 5)
- <проект> · <задача>
## 📥 Инбокс
N записей ждут разбора — разобрать `/inbox`? ← только если N > 0; при N = 0 блок не выводить
Не пересказывай файлы целиком — только ключевые поля. Активные задачи сортируй по убыванию RICE. done/cancelled в активный список не попадают.
Запланированные задачи (📌 next_up) — брать без напоминания
Открытые задачи с next_up: true — это очередь «взять в работу», помеченная пользователем кнопкой «Запланировать». Выводи их первым блоком сводки «📌 Запланировано — взять сейчас» (по убыванию RICE), выделенно.
После сводки возьми верхнюю в работу сам, без отдельной просьбы (это действие уже вне read-only sync): пользователь пометил их именно для этого. Учитывай blocked и пререквизиты — заблокированную или с незакрытым пререквизитом не бери, назови блокер. Перед стартом переведи задачу в doing (гейт входа в работу). Если запланированного нет — работай по обычному приоритету (блок «С чего начать» ниже).
Когда «В работе» пусто
Если ни одной задачи в статусе doing нет — не оставляй пользователя без фокуса, предложи 3 задачи, с которых начать:
- Проектов с открытыми (
todo) задачами меньше 3 → топ-3 открытых задач по убыванию RICE (из любых проектов).
- Проектов 3 и больше → по одной задаче из трёх разных проектов: у каждого проекта возьми его самую дорогую открытую задачу (макс. RICE), затем выбери три проекта, чьи топ-задачи дороже всех. Фокус распределяется по проектам, а не сваливается в один.
Показывай их блоком «С чего начать» с RICE — выбирает пользователь.
Дайджест — детекция закрытого периода
Проверь, не закрылся ли период без дайджеста. Для каждой грядки смотри <bed>/digests/ (корневая — digests/):
- Неделя (
2026-W26), месяц (2026-06), полгода (2026-H1/H2). Период «закрыт», если календарно завершился (прошёл) и файла за него нет.
- Есть закрытый период без файла → выведи блок «🗓 Дайджест» («период <…> закрылся, дайджеста нет») и сгенерируй его через навык
recap сам (в начале сессии, без отдельной просьбы) — это единственная запись, которую делает связка sync→recap. За текущий незавершённый период не генерируем.
- Все периоды покрыты → блок не выводим.
Правила
- Сам навык — read-only (только сводка). Но если есть запланированные (
next_up: true) открытые задачи, после сводки возьми верхнюю по RICE в работу без напоминания (перевод в doing) — см. «Запланированные задачи».
- Ничего не изменять — только читать. Инбокс только считаем и подсвечиваем; разбор записей — отдельное решение пользователя через навык
inbox, в sync не втягивается.
- После сводки (и блока «С чего начать», если
doing пуст) спросить пользователя, над чем работаем.
Самопроверка