# tasks-bot — контекст проекта

## Что это

Telegram-бот для захвата задач в TickTick. Пишешь в чат — LLM достаёт срок и проект, задача создаётся в нужном списке TickTick. Команды для управления (`/today`, `/done`, `/defer`, `/proj` и т.д.) тоже идут через TickTick API.

**Цель:** одно очевидное место для захвата любой задачи в моменте. Утром — сводка по проектам, вечером — кнопка «перенести всё на завтра», в воскресенье — обзор закрытого за неделю.

**Роль Channel-списков изменена (2026-07-17):** Канал/Threads/Instagram/Бэклог — больше не задачи, а **ящик сырых идей для контент-планёрки** (`~/Projects/content-planner/`, Mac). Планёрка по вс читает их через TickTick API, взятые в контент идеи закрывает (они попадут в воскресный celebration). В сводки бота идеи без срока и так не попадают — код бота не менялся. Channel-To Do остаётся обычными задачами.

## Статус

**На 2026-06-01:**
- v2 на проде (Raspberry Pi), задеплоен через `deploy/tasks-bot.service`
- v1-код (SQLite + git-sync + Mac-рендер + классификатор) удалён в Плане 7
- Все планы 1–7 выполнены

## Архитектура

- `src/tasks_bot/ticktick/` — async-клиент TickTick Open API + маппинг проектов (`projects_mapping.json`)
- `src/tasks_bot/v2/` — capture (текст → задача через LLM), команды, event log, scheduler, summary cache
- `src/tasks_bot/v2/app.py` — регистрация хендлеров в python-telegram-bot
- `src/tasks_bot/bot.py` — сборка Application: TickTick, extractor, scheduler, хендлеры
- `src/tasks_bot/main.py` — entrypoint и lifecycle (polling + scheduler + graceful shutdown)
- `src/tasks_bot/config.py` — `Settings` через pydantic-settings

LLM — `anthropic/claude-haiku-4.5` через OpenRouter (по умолчанию). Event log — JSONL в `data/events.jsonl` (база для воскресного обзора и monthly archive).

## Где спеки и планы

- `docs/{vibe-coding} {plan} tasks-bot 2.0 ticktick – 2026-05-30.md` — главный спек v2
- `docs/` — остальные планы (1–7), все executed
- Старые планы v1 оставлены для истории, статус `superseded`

## Тесты

```bash
.venv/bin/pytest
```

Каталоги: `tests/v2/`, `tests/ticktick/`, `tests/preflight/`.

## Деплой

```bash
ssh pi@raspberry
cd ~/tasks-bot
git pull
.venv/bin/pip install -e .
sudo systemctl restart tasks-bot
sudo journalctl -u tasks-bot -f
```

## Связанные ссылки

- Главный CLAUDE.md вальта: `/CLAUDE.md`
- Соседний проект: `projects/vibe-coding/conference-bot/`
- Бэклог идей: `_inbox/бэклог.md`
