| name | close-task |
| description | Закрыть задачу в `tasks.md` и добавить итог в дневной лог `Log/YYYY/MM/YYYY-MM-DD.md`. Используй, когда пользователь пишет /close-task, "закрой задачу", "отметь выполненной", "задача сделана", "закрыть в tasks.md", "закрой в тасках", или сообщает итог по завершённой задаче. Если сейчас от 00:00 до 06:00 утра — используй предыдущий день. |
close-task
Закрываешь задачу в tasks.md и фиксируешь результат в дневном логе. Цель — чтобы список задач и журнал дня всегда сходились.
Дата
- Если пользователь указал дату закрытия — используй её.
- Иначе выполни
date "+%Y-%m-%d %H:%M" (Bash), чтобы узнать реальные текущие дату и время. Не полагайся на дату из системного контекста (currentDate и т.п.) — там нет времени суток, а именно оно нужно для правила ниже.
- Если сейчас от 00:00 до 06:00 утра — используй предыдущий день (ночная работа относится к прошедшему рабочему дню). Это правило действует и для даты закрытия
✅ YYYY-MM-DD в tasks.md, и для выбора файла дневного лога. Например, в 02:30 2026-06-30 закрывай задачу датой ✅ 2026-06-29 и пиши итог в Log/2026/06/2026-06-29.md.
- Правило ночной работы приоритетно. Если из-за него дата закрытия
✅ оказывается раньше даты создания ➕ (например, задача создана в ту же ночь с ➕ сегодняшним числом), не отказывайся от правила и не подгоняй дату под сегодня — ставь ✅ по ночному правилу (предыдущий день), ➕ не трогай. Конфликт снимается датой завершения, а не игнорированием правила.
- Формат даты:
YYYY-MM-DD.
Найти задачу
- Открой
tasks.md в корне vault.
- Найди задачу по точному или очевидному частичному совпадению с запросом пользователя.
- Если пользователь вызвал закрытие и дал только итог/причину без названия задачи, используй текущий контекст диалога: закрывай последнюю созданную или явно обсуждаемую задачу, но только если кандидат ровно один и очевиден. Не требуй от пользователя повторять название задачи в таком случае.
- Учитывай только строки задач Markdown. Закрытость определяй по правилу
obsidian-vault («Закрытость чекбокса»): закрыта только - [x] ..., любой другой чекбокс (в т.ч. статус, проставленный сторонним плагином) — открыта.
- Если найден ровно один очевидный кандидат — работай с ним.
- Если найдено несколько похожих кандидатов, не редактируй файлы. Покажи список кандидатов и попроси уточнить.
- Если задача не найдена, не создавай её автоматически. Скажи, что не нашёл, и предложи сначала добавить задачу или записать факт через
worklog.
Закрыть в tasks.md
Для найденной задачи:
- Если чекбокс строки не
- [x] (пустой - [ ] или любой другой статус, в том числе выставленный сторонним плагином), замени его на - [x].
- Если в строке ещё нет закрывающей даты
✅ YYYY-MM-DD, добавь в конец ✅ YYYY-MM-DD.
- Если задача уже
- [x] и дата есть — не меняй строку.
- Если задача уже
- [x], но даты нет — добавь ✅ YYYY-MM-DD.
- Сохрани дату создания
➕ YYYY-MM-DD, если она есть. Не удаляй ссылки, комментарии после тире, wikilinks и уже записанные уточнения.
- Если у закрываемой задачи нет
➕ YYYY-MM-DD, не придумывай дату создания задним числом; добавь только ✅ YYYY-MM-DD.
tasks.md разбит на две секции-заголовка: # Week: (текущая неделя) и # Week+ (неделя+). Завершённые задачи собираются в верхний блок - [x] под заголовком # Week: (в начале файла). Перемести закрытую задачу вместе со всеми её подпунктами туда: сразу после заголовка # Week: и последней строки верхнего блока - [x] ..., перед первой открытой задачей (любой чекбокс, кроме - [x]). Задачу, закрытую из секции # Week+, тоже переноси в этот верхний блок Week. Если задача уже закрыта, но стоит среди открытых, всё равно перемести её в конец завершённого блока. Заголовки # Week: / # Week+ и строку-легенду (ключ tasks_legend в .claude/vault-config.md; ключа нет — просто не трогай строку, начинающуюся с > Активные задачи) не удаляй и не переставляй.
Пример:
- [ ] Посмотреть отчёты за месяц ➕ 2026-04-29
становится:
- [x] Посмотреть отчёты за месяц ➕ 2026-04-29 ✅ 2026-04-29
Синхронизировать с projects.md
Ближайшие задачи активных проектов из projects.md дублируются в tasks.md (текст задачи = первая открытая подзадача плана проекта; у неё есть обратная ссылка подбуллетом \t- Проект: [[projects]] (...)). После закрытия в tasks.md проверь projects.md:
- Если
projects.md в vault нет — весь этот раздел пропусти молча: это штатная ситуация для vault без проектов, а не ошибка конфигурации.
- Если у закрытой задачи нет обратной ссылки
\t- Проект: [[projects]] (...) — задача не проектная, раздел не применяется, пропусти молча.
- Если там есть подзадача с тем же (или почти тем же) текстом — отметь её
- [x] с той же датой ✅. При сомнении в совпадении — спроси, не отмечай похожую молча.
- Назови следующую открытую подзадачу этого проекта и предложи завести её в
# Week: (по правилам new-task, с обратной ссылкой \t- Проект: [[projects]] (<название проекта>)). Цикл: выполнил → вычисли следующую → запиши. Сам не добавляй без подтверждения.
- Если закрыта последняя открытая подзадача проекта — предложи закрыть весь проект целиком.
- Если текстового совпадения нет — задача не проектная, пропусти шаг молча.
Записать итог в дневной лог
После обновления tasks.md добавь итог в Log/YYYY/MM/YYYY-MM-DD.md по правилам worklog:
- Если файла нет — создай.
- Заголовок блока — формулировка закрытой задачи без чекбокса,
➕ YYYY-MM-DD и ✅ YYYY-MM-DD.
- Если блок уже есть — допиши туда итог.
- Если пользователь дал итог после тире или в отдельном предложении — запиши его как факт.
- Если пользователь не дал итог — запиши коротко:
- Закрыл задачу..
- Если в задаче есть ссылка или wikilink, сохрани её в дневной записи, если она помогает понять результат.
Минимальный формат:
## <Название закрытой задачи>
- Закрыл задачу: <краткий итог>.
Если в итоговом сообщении есть вопросы, риски или следующие шаги, оформи их так же, как в worklog:
### Вопросы / риски
- <вопрос или риск>
### Что дальше
- <следующий шаг>
Пустые подразделы не выводи.
Защита от ошибок
- Не закрывай неоднозначную задачу автоматически.
- Не закрывай родительскую задачу, если пользователь явно говорит о подзадаче.
- Не создавай дубль дневного блока, если уже есть такой же заголовок.
- Не дублируй дату закрытия, если она уже записана.
- Не удаляй и не меняй дату создания
➕ YYYY-MM-DD.
- Не переписывай старые итоги в дневном логе; только добавляй новый факт, если нужно.
Проверка перед ответом
Перед завершением проверь:
- В
tasks.md закрыта ровно одна задача.
- У закрытой задачи есть
✅ YYYY-MM-DD.
- Если у задачи была дата создания
➕ YYYY-MM-DD, она сохранилась.
- Закрытая задача стоит в верхнем блоке завершённых задач под заголовком
# Week:, перед первой открытой задачей.
- В
Log/YYYY/MM/YYYY-MM-DD.md есть запись с итогом.
- Если задача была ближайшим шагом проекта из
projects.md — подзадача отмечена и там, следующая подзадача проекта предложена (или синк осознанно пропущен, т.к. задача не проектная).
- Ссылки и wikilinks не потерялись.
- Если задача была неоднозначной, файлы не изменены.
В финальном ответе кратко скажи, какая задача закрыта и куда записан итог.