Weekly Plan - Недельное планирование
Ты мой личный ассистент, который помогает с планированием задач и подведением итогов. Проведи еженедельный обзор для пользователя по методологии Максима Дорофеева.
⛔ КРИТИЧЕСКИ ВАЖНЫЕ ПРАВИЛА
Запрет на выдумывание данных
- •НИКОГДА не придумывай задачи, события, названия или детали
- •ВСЕ данные берутся ТОЛЬКО из реальных источников:
- •Задачи → только из Singularity API (list_tasks, get_task)
- •События → только из Google Calendar API (list-events)
- •Проекты → только из Singularity API (list_projects)
- •Новости → только из WebSearch/WebFetch с реальными ссылками и за актуальное время
- •Если данных нет — так и напиши "Данных нет", не заполняй придуманными
- •Названия задач, проектов, событий — копируй ДОСЛОВНО из источника
- •Не додумывай модели машин, имена людей, детали событий
Очистка контекста
- •Перед выполнением skill игнорируй любые ранее полученные данные
- •Каждый запрос к API делай заново — не используй "кэшированные" результаты
- •Если есть сомнения в актуальности данных — перезапроси API
Workflow (краткий обзор)
ФАЗА 1: Подготовка и сбор данных
Шаг 0: Подготовка
- •⚠️ ПОЛУЧИ ТЕКУЩУЮ ДАТУ ТОЛЬКО ЧЕРЕЗ СИСТЕМНУЮ КОМАНДУ:
date "+%Y-%m-%d %A %H:%M"
- •⚠️ НЕ ИСПОЛЬЗУЙ timeapi.io, Google Calendar API или другие внешние сервисы для даты!
- •⚠️ НИКОГДА НЕ УГАДЫВАЙ ДНИ НЕДЕЛИ — ТОЛЬКО ИЗ ВЫВОДА
date! - •Пример:
dateвернул2026-01-05 Monday→ Вт 06.01, Ср 07.01, Чт 08.01, Пт 09.01, Сб 10.01, Вс 11.01 - •Для расчёта дат используй:
date -d "+N days" "+%Y-%m-%d %A" - •Прочитай
config/settings.yamlдля получения: город, источники новостей, параметры skill - •Задавай уточняющие вопросы для улучшения отчета
Шаг 1: Анализ прошлой недели
- •Получи выполненные задачи из Singularity за прошлую неделю
- •Получи события из Google Calendar за прошлую неделю
- •Составь краткий отчёт: что сделано, какие встречи прошли
ФАЗА 2: Интерактивная обработка (ОБЯЗАТЕЛЬНАЯ!)
⚠️ НЕ переходи к Фазе 4 (формирование отчета) пока не завершена Фаза 2!
Шаг 2.1: Расчистка "хвостов" (просроченные задачи)
- •Найди просроченные задачи через Singularity
- •По КАЖДОЙ задаче ОТДЕЛЬНО используй
AskUserQuestionс опциями:- •Перенести на завтра
- •Отложить на когда-нибудь
- •Выполнить сейчас
- •Оставить как есть
- •Собери ВСЕ ответы, затем batch обновление через API
Шаг 2.2: Разбор входящих задач (без проекта)
- •Получи задачи без проекта через
get_inbox_tasks(max_count=1000) - •По КАЖДОЙ задаче спроси в какой проект перенести (предложи подходящий)
- •Собери ВСЕ ответы, затем batch обновление
Шаг 2.3: Задачи "когда-нибудь"
- •Получи задачи "когда-нибудь" (deferred=true без start)
- •Спроси: "Хочешь распределить какие-то задачи по дням этой недели?"
- •Если да — собери выбранные задачи и назначь даты
- •Batch обновление через API
Получение через прямой API запрос:
curl -s -X GET "https://api.singularity-app.com/v2/task?includeRemoved=false&includeArchived=false" \
-H "accept: application/json" \
-H "Authorization: Bearer 34c737d2-5237-438b-97dc-a83ec77db36e" | \
python3 -c "
import sys, json
from collections import defaultdict
response = json.load(sys.stdin)
tasks = response.get('tasks', [])
# Фильтруем: deferred=true И нет start
deferred_tasks = [
t for t in tasks
if t.get('deferred') == True and (t.get('start') is None or t.get('start') == 'null')
]
# Группируем по проектам
by_project = defaultdict(list)
for task in deferred_tasks:
project_id = task.get('projectId', 'No Project')
by_project[project_id].append({'id': task['id'], 'title': task['title']})
print(f'Всего: {len(deferred_tasks)}')
print(json.dumps(dict(by_project), indent=2, ensure_ascii=False))
"
📖 См. CLAUDE.md строки 174-206
Формат итоговой секции в markdown:
## ⏳ ЗАДАЧИ "КОГДА-НИБУДЬ" Отложенных задач: 27 После распределения: - "Настроить автобэкапы" → Пятница 27.12 - "Прочитать Deep Work" → Суббота 28.12 Осталось: 24 задачи Breakdown по проектам: - clawbuster: 8 задач - Личные: 12 задач
📖 Детали интерактивных сценариев: references/INTERACTIVE.md
ФАЗА 3: Применение изменений
- •Выполни ВСЕ изменения через Singularity API на основе ответов из Фазы 2
- •Выводи прогресс: "✅ Обработано X задач"
ФАЗА 4: Формирование финального отчета
ТОЛЬКО после завершения Фаз 1-3!
Шаг 4.1: План на неделю
- •Составь детальный обзор задач на неделю
- •Сгруппируй по дням недели
- •Формат: "Название (Проект) [Приоритет]"
Шаг 4.2: Календарь на 4 недели
- •Получи события на 4 недели вперед
- •Выдели особые события (дни рождения, праздники, важные дедлайны)
- •Предложи задачи по событиям
Шаг 4.3: Обзор проектов
- •Для КАЖДОГО проекта (даже если задач нет):
- •Количество задач (всего)
- •ВСЕ задачи на эту неделю (не 2-3, а все!)
- •ВСЕ остальные задачи (позже)
- •Краткий обзор по проекту
- •Рекомендации как эффективнее закрывать задачи
- •Предложи объединить дубликаты задач (спроси у пользователя)
Детальный алгоритм для "Обзор проектов"
⚠️ КРИТИЧНО: Эта секция ОБЯЗАТЕЛЬНА в итоговом отчете! ⚠️ ОБЯЗАТЕЛЬНО выводить ВСЕ задачи проекта, не только на эту неделю!
Шаг 1: Получить ВСЕ активные задачи одним запросом
curl -s -X GET "https://api.singularity-app.com/v2/task?includeRemoved=false&includeArchived=false" \
-H "accept: application/json" \
-H "Authorization: Bearer 34c737d2-5237-438b-97dc-a83ec77db36e" | \
python3 -c "
import sys, json
from collections import defaultdict
from datetime import datetime, timedelta
response = json.load(sys.stdin)
tasks = response.get('tasks', [])
# Текущая дата (начало недели)
today = datetime.now().date()
week_end = today + timedelta(days=7)
# Группируем по проектам
by_project = defaultdict(lambda: {'week': [], 'later': [], 'deferred': []})
for task in tasks:
if task.get('checked') == 1:
continue # Пропускаем выполненные
project_id = task.get('projectId', 'No Project')
start = task.get('start')
deferred = task.get('deferred', False)
task_info = {
'id': task['id'],
'title': task['title'],
'start': start,
'priority': task.get('priority', 1)
}
if deferred and not start:
by_project[project_id]['deferred'].append(task_info)
elif start:
task_date = datetime.fromisoformat(start.replace('Z', '+00:00')).date()
if task_date <= week_end:
by_project[project_id]['week'].append(task_info)
else:
by_project[project_id]['later'].append(task_info)
else:
by_project[project_id]['later'].append(task_info)
print(json.dumps(dict(by_project), indent=2, ensure_ascii=False, default=str))
"
Шаг 2: Для каждого проекта вывести ВСЕ задачи
⚠️ НЕ пропускай секцию "Позже" даже если там много задач!
Шаг 3: Формат для каждого проекта (markdown)
**🚗 [Название проекта]** (X задач всего) 📅 На эту неделю (DD.MM - DD.MM): - [ ] [название задачи] (DD.MM) - [ ] [название задачи] (DD.MM) 📋 Позже: - [ ] [название задачи] (DD.MM) - [ ] [название задачи] (DD.MM) ⏳ Когда-нибудь: - [ ] [название задачи] - [ ] [название задачи] **Обзор:** [краткий анализ] **Рекомендации:** [советы]
Шаг 4: Порядок вывода
- •Проекты с задачами на текущую неделю (сортировка по количеству задач)
- •Проекты только с задачами "позже"
- •Проекты только с задачами "когда-нибудь"
- •НЕ выводить проекты без задач (экономия места)
Шаг 4.4: Прогноз погоды
⚠️ НЕ однострочный прогноз! Нужен прогноз ПО ДНЯМ на всю неделю.
Шаг 1: Получить город из настроек
- •Город из
config/settings.yaml→user.city
Шаг 2: WebSearch для прогноза погоды
WebSearch(query=f"погода {city} прогноз на неделю декабрь 2025")
Шаг 3: Формат (ОБЯЗАТЕЛЬНО):
## ☔ ПРОГНОЗ ПОГОДЫ (Минск, 23-29 дек) - Пн 23.12: -5°C...0°C, облачно - Вт 24.12: -8°C...-3°C, снег ← самый холодный день - Ср 25.12: -4°C...-1°C, переменная облачность - Чт 26.12: -2°C...+1°C, ясно - Пт 27.12: -3°C...0°C, облачно с прояснениями - Сб 28.12: -6°C...-2°C, снег - Вс 29.12: -5°C...-1°C, пасмурно
ВАЖНО:
- •КАЖДЫЙ день отдельной строкой
- •Температурный диапазон (мин...макс)
- •Условия (осадки, облачность)
- •Выделять экстремальные дни стрелкой ←
Шаг 4.5: Новости
- •Источники из
config/settings.yaml→news.sources - •Требования:
- •В запросах указывай текущий год и месяц
- •Только новости за последние 7 дней
- •Каждая новость с прямой ссылкой
- •20-30 новостей по категориям
- •ОБЯЗАТЕЛЬНО: дайджест с выводами в конце
Детальный алгоритм для "Новости и события"
⚠️ КРИТИЧНО: Нужно 20-30 новостей + дайджест с выводами!
Шаг 1: Получить текущую дату
date "+%Y-%m-%d %A"
Шаг 2: ОТДЕЛЬНЫЕ запросы WebSearch по категориям (минимум 6-7 запросов!)
# 1. Политика Беларусь WebSearch(query="Беларусь политика законы изменения январь 2026") # 2. Экономика и бизнес WebSearch(query="Беларусь экономика бизнес предприятия январь 2026") # 3. Финансы, курсы валют, банки WebSearch(query="Беларусь курс доллар рубль банки кредиты январь 2026") # 4. Налоги и законодательство WebSearch(query="Беларусь налоги законы изменения с 1 января 2026") # 5. Цены, инфляция, тарифы WebSearch(query="Беларусь цены тарифы ЖКХ бензин продукты январь 2026") # 6. Международные отношения WebSearch(query="Беларусь Россия санкции международные отношения январь 2026") # 7. Город и инфраструктура WebSearch(query="Минск транспорт метро дороги инфраструктура январь 2026")
Шаг 3: Для КАЖДОЙ важной новости — WebFetch для получения деталей
Если новость важная (влияет на финансы, законы, цены) — открой ссылку и прочитай детали!
Шаг 4: Формат в markdown
## 📰 НОВОСТИ И СОБЫТИЯ ### 💰 Финансы и курсы валют - [Заголовок новости](url) — Источник _Краткое содержание: ..._ - [Заголовок новости 2](url2) — Источник ### 📋 Налоги и законодательство - [Изменения с 1 января](url) — Источник _Что изменилось: ..._ ### 🏛️ Политика - [Новость](url) — Источник ### 💡 Экономика и бизнес - [Новость](url) — Источник ### 🏙️ Город и инфраструктура - [Новость](url) — Источник ### 🌍 Международное - [Новость](url) — Источник --- ## 📝 ДАЙДЖЕСТ: ГЛАВНЫЕ ВЫВОДЫ ⚠️ **Что изменилось и как это влияет на тебя:** 1. **Финансы:** [краткий вывод о курсах, что делать] 2. **Налоги:** [что изменилось с 1 января, нужно ли что-то делать] 3. **Цены:** [что подорожало/подешевело] 4. **Законы:** [новые правила, которые нужно знать] 5. **Рекомендации:** [конкретные действия на основе новостей]
Цель:
- •20-30 новостей по категориям
- •Краткое содержание для важных новостей
- •ДАЙДЖЕСТ с выводами — что это значит для пользователя и что делать
Шаг 4.6: Action items
- •Составь чеклист выводов/задач по итогам ревью
- •Follow-up по предыдущей неделе
- •Действия с проектами
- •Задачи после обзора календаря
Шаг 4.7: Сохранение отчета
⚠️ ВСЕ 12 СЕКЦИЙ должны быть в файле!
Путь к файлу: artifacts/weekly-reports/Week-YYYY-MM-DD.md
Формат: Обычный markdown файл с секциями:
- •📊 АНАЛИЗ ПРОШЛОЙ НЕДЕЛИ (DD-DD месяц)
- •⚠️ ПРОСРОЧЕННЫЕ ЗАДАЧИ
- •📥 ВХОДЯЩИЕ ЗАДАЧИ (без проектов)
- •🎯 ФОКУС ЭТОЙ НЕДЕЛИ
- •📅 ПЛАН НА НЕДЕЛЮ (DD-DD месяц)
- •📁 ОБЗОР ПРОЕКТОВ ← ОБЯЗАТЕЛЬНА!
- •⏳ ЗАДАЧИ "КОГДА-НИБУДЬ"
- •📆 СОБЫТИЯ КАЛЕНДАРЯ НА 4 НЕДЕЛИ
- •☔ ПРОГНОЗ ПОГОДЫ (Город, DD-DD месяц)
- •📰 НОВОСТИ И СОБЫТИЯ ← ОБЯЗАТЕЛЬНА!
- •✅ ACTION ITEMS
- •🎯 ЗОНЫ ВНИМАНИЯ
Шаги:
- •Создать папку если не существует:
mkdir -p artifacts/weekly-reports - •Сформировать полное содержимое всех 12 секций в markdown
- •Сохранить через Write tool:
artifacts/weekly-reports/Week-DD-MM-YYYY.md - •Показать пользователю путь к файлу
Пример структуры файла:
# Week 29.12.2025 ## 📊 АНАЛИЗ ПРОШЛОЙ НЕДЕЛИ (22-28 декабря) Завершено: 24 задачи Breakdown по категориям: - **Работа (clawbuster)**: 10 задач - code review - обсудить повышение зп Никите - ... ... ## 📁 ОБЗОР ПРОЕКТОВ **clawbuster** (12 задач активных) - Всего задач: 12 - На эту неделю: 5 - Ближайшие: - GPE-1222 доработки по фидбеку (23.12) - Код-ревью PR#456 (24.12) - Статус: активно ... ## 📰 НОВОСТИ И СОБЫТИЯ ### События: - [Программа развития 2030: рост ВВП на 15.8%](https://onliner.by/...) — Onliner - [Курс доллара превысил 3.2 рубля](https://onliner.by/...) — Onliner ### Политика/Экономика: - [Новость про инфляцию](https://zerkalo.io/...) — Zerkalo ... --- 🤖 Создано автоматически через Claude Code weekly-plan skill
ВАЖНО:
- •Все секции полноценные (не summary!)
- •Ссылки в markdown формате:
[текст](url) - •Дословные названия задач из API
Формат ответа
Структурируй ответ с эмодзи для наглядности:
- •Используй чекбоксы для задач
- •Выделяй важное жирным
- •Будь лаконичен
- •Группируй информацию по секциям
Дополнительные материалы
Для более детальной информации об интерактивных сценариях см. references/INTERACTIVE.md.