| name | monthly-review |
| description | Провести месячный обзор задач, проектов и целей — итоги месяца по недельным отчётам, обзор projects.md (закрытые и активные проекты, чистка закрытых), папки проектов в Notes/, движение по целям года, ревизия глубокого бэклога (tasks-future, ideas) с подъёмом актуального вверх и списанием протухшего, плюс срез открытых задач, заведённых за последние 2 месяца, с сохранением в заметку. Используй, когда пользователь пишет /monthly-review, «месячный обзор», «итоги месяца», «итоги по проектам за месяц», «разбери tasks-future», «что по целям года», «что не сделано за 2 месяца» — обычно в первую неделю нового месяца, после weekly-review. |
monthly-review
Третья ступень лестницы обзоров: list-tasks — день, weekly-review — неделя, этот — месяц. Недельное ревью двигает задачи вниз (Week → Week+ → tasks-future → ideas); месячный обзор смотрит на месяц целиком и двигает в обе стороны: поднимает вверх то, что стало актуальным (tasks-future/ideas → Week+/Week), и списывает протухшее из глубокого бэклога.
Скилл read-only по умолчанию: собирает факты и предлагает. Меняет файлы только после явного подтверждения пользователя.
Пути vault
Пути, которые в разных vault разные, лежат в .claude/vault-config.md (ключи weekly_report, monthly_report, year_goals). Прочитай его в начале шага 1 и дальше используй значения оттуда. Если файла нет — найди артефакты через Glob: отчёты — Log/Reports/*.md (недельные YYYY-MM-DD.md, месячные YYYY-MM.md), цели года — **/Цели <YYYY>.md (basename уникален). Шаги, для которых путь так и не нашёлся, пропусти и скажи об этом в финале (заодно предложи завести .claude/vault-config.md). Если vault-config.md нет, но есть .claude/vault-paths.md — читай его: это прежнее имя того же файла.
Шаги
1. Определить месяц
Обзорный месяц — последний завершившийся календарный месяц (запуск 2026-08-02 → обзор июля). Если пользователь назвал месяц — бери его. В разборе явно назови период YYYY-MM-01 — YYYY-MM-<последний день>.
Если файл по ключу monthly_report за этот месяц уже существует — обзор уже проводился; скажи об этом и спроси, повторить ли.
2. Собрать данные
- Недельные отчёты по ключу
weekly_report — те, чей период пересекает месяц. Файл/папка названы по дате внутри недели, поэтому первая неделя месяца может лежать в отчёте с датой прошлого месяца, а последняя — с датой следующего. Отчёты — главный источник фактов; дневные логи Log/YYYY/MM/ целиком не перечитывай, загляни точечно только если отчёта за неделю нет. Если за неделю нет ни отчёта, ни логов — пометь её «нет данных»: не считай нулём и явно скажи об этом в разборе.
tasks.md: закрытые - [x] с ✅ внутри месяца (темп), открытые Week/Week+ с возрастом ➕; задачи без ➕ помечай «возраст неизвестен». Учти: weekly-report может вычищать закрытые задачи из tasks.md после отчёта, поэтому за прошлые недели ✅-строк в tasks.md может уже не быть — тогда основным источником темпа становятся рубрики «Закрытые задачи» отчётов.
projects.md — целиком: верхнеуровневые - [ ]/- [x] (проекты), их подчекбоксы (план) и подбуллеты (справка). Нужен для шага 4. У живого проекта обычно есть своя папка в Notes/YYYY/MM/<проект>/ за месяц старта — отметь, в каком она месяце (нужно для шага 4.5).
tasks-future.md и ideas.md — целиком, по секциям.
- Цели года — файл по ключу
year_goals (например Notes/2026/Цели 2026.md). Если ключа и файла нет — шаг 5 пропусти.
tasks-snoozed.md — только посчитай созревшие задачи (📅 ≤ сегодня), не разбирай их: разбор — работа snoozed-review.
tasks-recurring.md — секция «Месячный обзор»: список дел, которые выполняются раз в месяц вместе с этим обзором (проверить подписки, кешбеки и т.п.).
- Папки-проекты в
Notes/YYYY/MM/ — какие мини-проекты в каком месяце лежат (нужно для шага 4.5).
3. Итоги месяца
-
Темп: сколько задач верхнего уровня закрыто за месяц, с разбивкой по неделям. Источники: ✅-даты в tasks.md + рубрики «Закрытые задачи» недельных отчётов (weekly-report мог уже вычистить закрытые из tasks.md — тогда отчёты становятся основным источником; при расхождении по конкретной задаче верь ✅). Правила подсчёта:
- из граничных отчётов (неделя пересекает границу месяца) бери только задачи с
✅-датой внутри обзорного месяца;
- «хвосты» без
✅-даты в темп не включай — упомяни отдельной строкой;
- недели «нет данных» показывай как
н/д, граничные — с пометкой (част.).
-
Главные результаты: 3–5 фактов месяца. Группировка — по тому, что есть в vault:
- если у свежих недельных отчётов есть рубрики направлений — группируй по ним (те же рубрики, что в отчётах);
- иначе — по проектам из frontmatter
tasks.md (projects:) плюс группа «вне проектов» для остального (хобби/дела из отчётов).
Пустые группы не выводи. Проект/направление без фактов за месяц явно помечай «нет движения».
4. Обзор проектов за месяц
Если projects.md в vault нет — весь этот раздел пропусти молча: это штатная ситуация для vault без проектов, а не ошибка конфигурации.
Аналог рубрики «Закрытые задачи» из weekly-report, но по проектам и за месяц: подвести итог, назвать закрытые и активные, после подтверждения вычистить закрытые из projects.md.
В projects.md верхнеуровневый чекбокс — проект: - [x] … ✅ YYYY-MM-DD — завершённый, - [ ] — активный. Подчекбоксы — план проекта, подбуллеты — справка.
Закрытые проекты. Верхнеуровневые - [x]:
- закрытые внутри обзорного месяца (
✅ в периоде) — это итог месяца, перечисли с датами;
- закрытые раньше и всё ещё лежащие в файле — «хвосты», одной строкой (в итог месяца не считай, но в чистку включай).
Активные проекты. Для каждого открытого - [ ] определи:
- двигался — есть
✅-даты подзадач внутри месяца и/или факты в отчётах; покажи, сколько подзадач закрыто и дату последнего движения;
- стоял — за месяц ни одного
✅; укажи дату последнего движения (или «движения не было ни разу») и возраст по ➕; для стоящих 2+ месяца предложи перенос в tasks-future.md или в snoozed с датой 📅 (через snoozed-task) — решает пользователь;
- нет следующей задачи в
tasks.md — первой открытой подзадачи плана нет в # Week:/# Week+ (ищи по совпадению текста и обратной ссылке - Проект: [[projects]]). Такой проект застрял по определению → предложи завести задачу через new-task.
Новые проекты месяца — верхнеуровневые с ➕ внутри периода: перечисли отдельно, это приток. Если за месяц заведено больше проектов, чем закрыто, скажи об этом одной строкой — как риск распухания projects.md.
Счёт: закрыто P (за месяц) / активных Q — двигалось R, стояло S / новых T.
Если закрытых проектов за месяц нет — блок «чистка» просто пустой, это нормально, не выдумывай кандидатов.
Чистка закрытых (аналог шага 2 в weekly-report) — только после подтверждения на шаге 9:
- удалять весь блок проекта целиком: заголовок, план, справку, ссылки;
- проект с верхнеуровневым
- [x], у которого остались открытые подзадачи, не удалять — показать отдельно и спросить (либо подзадачи неактуальны, либо проект закрыт ошибочно);
- перед удалением назвать числа: сколько проектов уйдёт, сколько останется;
- закрытые подзадачи внутри активного проекта не вырезать — они показывают прогресс;
- перед удалением записать список закрытых проектов в файл по ключу
monthly_report (шаг 9.6): после чистки projects.md это единственная память о них.
4.5. Папки проектов в Notes/
У живого проекта обычно есть рабочая папка Notes/YYYY/MM/<проект>/ — по правилу obsidian-vault «второй связанный файл → папка Notes/YYYY/MM/тема/». Дата в пути фиксируется по месяцу старта, но незавершённый проект, работа по которому продолжается в новом месяце, переезжает в текущий Notes/YYYY/MM/ — чтобы папка отражала, что проект живой сейчас, а не остался в месяце старта.
- Пройди папки-проекты в
Notes/ (мини-проекты, а не разовые заметки) и сопоставь с открытыми проектами projects.md / активными задачами.
- Папку незавершённого проекта, лежащую в прошлом месяце, предложи перенести в текущий
Notes/YYYY/MM/ через git mv (wikilinks по basename не ломаются). Имена файлов внутри сохраняй.
- Разовые/завершённые заметки не трогай — они остаются в месяце создания.
- Это предложение через
AskUserQuestion, не автодействие: переноси только подтверждённые папки.
5. Движение по целям года
Выполняется, только если файл целей найден (ключ year_goals, шаг 2.5). Для каждой строки из Цели <YYYY>.md определи по отчётам и задачам месяца:
- Двигалась — назови конкретные факты.
- Возможно двигалась — есть факты/задачи, похожие по смыслу, но связь не подтверждена (в vault нет явной привязки задач к целям). Покажи с пометкой «связь не подтверждена» и спроси пользователя, а не решай сам.
- Стояла — движения нет; укажи, есть ли связанная задача в tasks/tasks-future.
- Без задач — цель не отражена ни одной задачей нигде → предложи завести задачу через
new-task или осознанно отложить.
6. Ревизия глубокого бэклога
Подъём вверх (главное отличие от weekly-review). Пройди секции tasks-future.md и ideas.md и выбери кандидатов на подъём в # Week+ (или сразу # Week:):
- задачи, чьё условие созрело. У секций с условием в названии («после получения документов», «когда будет доступ», «май-июнь») три состояния: не наступило — не трогай, это ожидание; идёт — кандидат на подъём; прошло — спроси пользователя: поднимать срочно или условие устарело. Частично выполненное условие (часть документов получена) оговаривай явно;
- задачи, связанные с целями года, которые стояли;
- задачи, связанные с проектами из
projects.md, которые стояли;
- задачи, к которым пользователь возвращался в логах/отчётах месяца.
Перед предложением кандидата проверь, нет ли такой же задачи уже в tasks.md — дубль показывай отдельно как кандидата на слияние, а не на подъём. Задачи из бэклога, которые по отчётам фактически уже сделаны, выноси отдельным блоком «похоже, сделано → закрыть через close-task?». Кандидатов предлагай списком, не поднимай сам; больше 5 за раз не предлагай — иначе Week+ снова станет складом.
Списание протухшего. Кандидаты вниз/на удаление:
tasks-future.md: возраст старше 90 дней без движения → в ideas.md или удалить (решает пользователь). Возраст ≠ ➕: ➕ — дата добавления строки в файл; если в подпунктах указано происхождение («из snoozed от YYYY-MM-DD», «из созвона YYYY-MM-DD», импорт из другой системы) — считай возраст от него. Массовые импорты старых задач (например «Задачи из внешнего трекера») разбирай отдельным блоком независимо от ➕;
ideas.md: идеи, отклонённые в прошлых обзорах (см. список в прошлом месячном итоге, ключ monthly_report), — спроси прямо, не пора ли удалить. При первом обзоре критерий пропусти;
- задачи без
➕ — «возраст неизвестен». Нижнюю границу можно взять из git log -S, но: пустой вывод для незакоммиченного файла = возраст неизвестен, так и скажи; если найден только первый коммит файла — это граница истории репо, помечай «не раньше даты, реальный возраст может быть больше». Дату не выдумывай.
7. Не сделано за 2 месяца
Срез притока: все открытые задачи, заведённые за последние 2 месяца (➕ ≥ сегодня − 2 месяца). Шире обзорного месяца и по всему бэклогу — показывает, сколько набрано и не переварено. Шаг только выводит список, ничего не переносит и не чистит (кандидаты вверх/вниз — шаг 6).
Источники (только открытые - [ ], - [x] не берём):
tasks.md — # Week: и # Week+;
projects.md — верхнеуровневые проекты и их открытые подзадачи;
tasks-future.md — по секциям;
tasks-snoozed.md — с ➕ в периоде; помечай датой 📅 — это осознанная отсрочка, а не завал.
Правила:
- возраст считай по
➕; задачи без ➕ в список не включай — дай отдельной строкой «без ➕: N»;
- дубли (одна задача в
tasks.md и в projects.md) считай один раз, укажи оба места;
- группируй по источнику, внутри — от старых к новым, с датой
➕;
<n> в имени заметки — итоговое число задач в списке (без строки «без ➕»).
После списка предложи сохранить его в заметку Notes/YYYY/MM/YYYY-MM-DD Не сделано за 2 месяца - <n>.md (дата — сегодняшняя). Создавай только по подтверждению, на шаге 9.
8. Показать разбор
Месячный обзор 2026-06-01 — 2026-06-30.
Итоги: закрыто N задач (по неделям: н/д / н/д / 6 / 8 / 3 (част.)).
Хвосты без дат: <...> — в счёт не включены.
• <главный результат по проекту/направлению>
• Вне проектов: <...>
Проекты ([[projects]]): закрыто 2 / активных 7 — двигалось 4, стояло 3 / новых 1
Закрыто за месяц:
• <проект> ✅ 2026-06-22
Хвосты (закрыты раньше, ещё лежат в projects.md): <проект>, <проект>
Активные:
✓ <проект> — двигался: 3 подзадачи, последняя ✅ 24.06
⚠ <проект> — нет следующей задачи в tasks.md → предлагаю завести «<первая открытая подзадача>»
💤 <проект> — стоит с ✅ 12.04 (2 мес) → tasks-future / snoozed?
🆕 <проект> ➕ 2026-06-08 — новый в этом месяце
Закрытые с открытыми подзадачами (решить): • <проект> — осталось N открытых
Папки проектов в Notes (незавершённые → перенести в текущий месяц):
• Notes/2026/05/<проект>/ → Notes/2026/07/<проект>/
Цели 2026:
✓ <цель> — <факт>
? <цель> — возможно двигалась: <факт> (связь не подтверждена)
– <цель> — стояла, задача есть в tasks-future
✗ <цель> — без задач → предлагаю завести
Поднять вверх (tasks-future/ideas → Week+):
• <задача> — условие идёт / цель стояла / проект стоял / возвращался в логах
Похоже, сделано (закрыть через close-task?):
• <задача> — <факт из отчёта>
Дубли (уже есть в tasks.md — слить):
• <задача>
Списать (tasks-future → ideas / удалить):
• <задача> — возраст ~N мес (происхождение: импорт/snoozed/созвон)
Возраст неизвестен: • <задача> — в файле минимум с YYYY-MM-DD (git)
Не сделано за 2 месяца (с 2026-05-24): 12
tasks.md: • <задача> ➕ 2026-05-28 • <задача> ➕ 2026-06-14
projects.md: • <проект> / <подзадача> ➕ 2026-06-02
tasks-future.md: • <задача> ➕ 2026-06-19
tasks-snoozed.md: • <задача> ➕ 2026-06-05 📅 2026-09-01
Без ➕: 3
→ сохранить в «2026-07-24 Не сделано за 2 месяца - 12»?
Созрело отложенных: N (📅 наступила) → запустить snoozed-review?
Периодические дела месяца ([[tasks-recurring]]):
☐ Проверить подписки ☐ Выбрать кешбеки ☐ ...
Пустые блоки не выводи.
Если в vault есть заметка «Спусковые крючки» (Glob по basename), после разбора предложи выгрузку мыслей по ней: пользователь пробегает список триггеров и называет, что всплыло из головы; всплывшее заводи через new-task (или сразу в tasks-future.md — по его решению). Это опциональный шаг — по согласию, не настаивай. Файла нет — тихо пропусти.
9. Применить по подтверждению
- Спроси действия через
AskUserQuestion с multiSelect: true — один вопрос, где каждое предложенное из разбора действие — отдельная опция (пользователь отмечает галочками те, что применить). Опций в одном вопросе максимум 4; если действий больше — сгруппируй близкие в одну опцию (детали в description) или задай несколько вопросов в одном вызове (до 4). Применяй ровно то, что отмечено, неотмеченное не трогай.
- Переносы — целиком с подпунктами,
➕-датами и ссылками: вверх — в конец # Week+ перед строкой-легендой (ключ tasks_legend в .claude/vault-config.md; ключа нет — просто не трогай строку, начинающуюся с > Активные задачи); вниз — в подходящую существующую секцию ideas.md/tasks-future.md, новые секции не создавать без нужды.
- Новые задачи под цели и следующие задачи проектов — по формату
new-task с ➕ сегодняшней датой и обратной ссылкой - Проект: [[projects]] (…). «Похоже, сделано» — закрывай только через close-task и только по подтверждению.
- Заметка «Не сделано за 2 месяца» (шаг 7) — по подтверждению создай
Notes/YYYY/MM/YYYY-MM-DD Не сделано за 2 месяца - <n>.md (дата и <n> — как в разборе). Без H1-заголовка: первой строкой период и счёт, дальше список по источникам с ➕-датами и wikilinks; задачи копируй текстом как есть, но без чекбоксов — это снимок, а не рабочий список. Файлы задач при этом не трогай.
- Папки незавершённых проектов (шаг 4.5) — переноси подтверждённые в текущий
Notes/YYYY/MM/ через git mv, имена файлов внутри сохраняй.
- Чистка
projects.md — по отдельному подтверждению (шаг 4): сначала запиши список закрытых проектов в файл по ключу monthly_report, потом удали их блоки целиком. В финале назови числа: удалено P, осталось Q.
- После применения предложи записать краткий итог в файл по ключу
monthly_report (каталог создай при первом запуске — это выходной файл, не инфраструктура). 5–10 строк: темп, итог по проектам — закрытые за месяц поимённо, счёт активных, цели, что подняли/списали/закрыли, отметки по периодическим делам месяца ([[tasks-recurring]], секция «Месячный обзор»), плюс список предложенных-но-отклонённых кандидатов — база для следующего обзора. Этот файл же служит признаком «обзор за месяц проведён» (его проверяет в первую неделю месяца).
Защита от ошибок
- Ничего не переноси, не удаляй и не создавай без явного подтверждения — сначала разбор.
- Не закрывай задачи сам — это
close-task; удаление — только по прямому слову пользователя.
- При переносе не теряй подпункты,
➕-даты и wikilinks.
- Закрытые проекты из
projects.md удаляй только после подтверждения и только после записи их списка в месячный итог (monthly_report). Активные проекты, их закрытые подзадачи и справочные подбуллеты не трогай; закрытый проект с открытыми подзадачами не удаляй — спроси.
- Папки в
Notes/ переноси только через git mv и только подтверждённые; разовые и завершённые заметки оставляй в месяце создания.
- Не редактируй
tasks-snoozed.md и не разбирай его задачи — только счётчик созревших и чтение для среза «не сделано за 2 месяца»; разбор — snoozed-review.
- Срез «не сделано за 2 месяца» — только чтение и список; заметку создавай по подтверждению, задачи из неё сам никуда не переноси и не закрывай.
- Не переписывай
Цели <YYYY>.md — цели меняет только пользователь.
- Не выдумывай связи цель↔задача, даты и происхождение — при сомнении помечай «не подтверждено» / «возраст неизвестен».
- Не трогай заголовки
# Week: / # Week+ и строку-легенду в tasks.md.
- Не делай
git commit автоматически.
Связанные скиллы
weekly-review — недельное ревью; в первую неделю месяца запускается перед этим скиллом и предлагает его.
weekly-report — источник фактов месяца (недельные отчёты, ключ weekly_report) и рубрики направлений.
snoozed-review — ревизия отложенных с датой 📅; месячный обзор только считает созревшие и предлагает позвать его.
snoozed-task — отложить остановившийся проект до даты 📅.
new-task — формат задач при подъёме, заведении задач под цели и следующих задач проектов.
close-task — закрытие «похоже, сделано»-задач, синхронизация галочек с projects.md.
list-tasks — ежедневный обзор; этот скилл — месячный.
Проверка перед ответом
- Назван период месяца; разбор показан: темп (с «н/д» и граничными неделями), главные результаты, проекты, папки проектов, цели (если файл целей найден), кандидаты вверх/вниз, дубли, «похоже, сделано», срез «не сделано за 2 месяца», счётчик созревших отложенных, периодические дела месяца.
- До подтверждения файлы не изменены;
tasks-snoozed.md не редактировался (только счётчик).
- Проекты: перечислены закрытые за месяц (с датами) и хвосты, активные разбиты на двигавшиеся / стоявшие / без следующей задачи, назван счёт
закрыто / активных / новых.
- После применения: переносы целиком, папки незавершённых проектов перенесены в текущий месяц через
git mv, счёт «поднято / списано / закрыто / заведено под цели» озвучен; если чистили projects.md — названо, сколько проектов удалено и сколько осталось, и их список попал в месячный итог до удаления.
- Срез «не сделано за 2 месяца»: назван период от, счёт
<n>, список по источникам, отдельно «без ➕»; предложено сохранение в Notes/YYYY/MM/YYYY-MM-DD Не сделано за 2 месяца - <n>.md (создано только по подтверждению).
- Предложен итоговый файл по ключу
monthly_report с итогом по проектам, отметками по периодическим делам и отклонёнными кандидатами.
- Если какой-то путь vault не нашёлся — соответствующий шаг пропущен и об этом сказано в финале.