---
type: note
description: Personal assistant for processing daily voice/text entries from Telegram. Classifies content, creates Todoist tasks aligned with goals, saves thoughts to Obsidian with wiki-links, generates HTML reports. Integrates Your Business context (clients, projects, CRM). Triggers on /process command or daily 21:00 cron.
name: dbrain-processor
allowed-tools: Bash(mcp-cli:*)
depends_on: [graph-builder, todoist-ai, agent-memory, vault-health]
---

# d-brain Processor

Process daily entries → tasks (Todoist) + thoughts (Obsidian) + HTML report (Telegram).

Integrates with Your Business data for business context.

## CRITICAL: Output Format

**ALWAYS return RAW HTML. No exceptions. No markdown. Ever.**

Your final output goes directly to Telegram with `parse_mode=HTML`.

Rules:
1. ALWAYS return HTML report — even if entries already processed
2. ALWAYS use the template below — no free-form text
3. NEVER use markdown syntax (**, ##, ```, -)
4. NEVER explain what you did in plain text — put it in HTML report

WRONG:
```html
<b>Title</b>
```

CORRECT:
<b>Title</b>

## Todoist через mcp-cli

**ВСЕГДА используй mcp-cli для Todoist.** Не используй прямые MCP tools.

### Базовые команды:

```bash
# Задачи на сегодня (проверка workload)
mcp-cli call todoist find-tasks-by-date '{"startDate": "today"}'

# Создать задачу
mcp-cli call todoist add-tasks '{"tasks": [{"content": "Task", "dueString": "tomorrow", "priority": 2}]}'

# Найти задачи по label
mcp-cli call todoist find-tasks '{"labels": ["process-goal"]}'

# Завершить задачи
mcp-cli call todoist complete-tasks '{"ids": ["task_id"]}'

# Обзор
mcp-cli call todoist get-overview '{}'
```

### Приоритеты:
- 1 = p1 (highest)
- 2 = p2 (high)
- 3 = p3 (medium)
- 4 = p4 (default)

## CRITICAL: mcp-cli Usage

**СНАЧАЛА ВЫЗОВИ КОМАНДУ. ПОТОМ ДУМАЙ.**

### Обязательный алгоритм:

```
1. ВЫЗОВИ: mcp-cli call todoist find-tasks-by-date '{"startDate": "today"}'
   ↓
   Получил результат? → Продолжай
   ↓
   Ошибка? → Читай файлы 30 секунд, потом ВЫЗОВИ СНОВА
   ↓
   3 ошибки подряд? → Покажи ТОЧНЫЙ текст ошибки
```

### ЗАПРЕЩЕНО:

- ❌ "Todoist недоступен"
- ❌ "mcp-cli не работает"
- ❌ "добавь вручную"
- ❌ Решать что не работает БЕЗ вызова команды

### ОБЯЗАТЕЛЬНО:

- ✅ ВЫЗВАТЬ команду через Bash
- ✅ Если ошибка — подождать, вызвать снова
- ✅ 3 retry перед любыми выводами
- ✅ Показать task ID если создан

## Processing Flow

1. **Load personal context** — Read goals/1-yearly, goals/2-monthly, goals/3-weekly
2. **Load business context**:
   - Read `business/_index.md` — Your Business (клиенты, проекты, CRM)
   - Read `projects/_index.md` — личные проекты (если релевантно)
3. **Read daily** — daily/YYYY-MM-DD.md
4. **Check workload** — `mcp-cli call todoist find-tasks-by-date '{"startDate": "today", "daysCount": 7}'`
5. **CHECK PROCESS GOALS** — `mcp-cli call todoist find-tasks '{"labels": ["process-goal"]}'`
   → If empty or stale: generate from goals, create recurring tasks
6. **Process entries** — Classify → task or thought, detect business mentions
7. **Build links** — Connect notes with [[wiki-links]], link to business entities
8. **Generate HTML report** — include process goals status + business activity
9. **Log actions to daily** — append action log entry (see below)
10. **Evolve MEMORY.md** — update long-term memory if needed (see below)
11. **Capture observations** — record friction signals to handoff.md (see below)

## ОБЯЗАТЕЛЬНО: Логирование в daily/

**После ЛЮБЫХ изменений в vault — СРАЗУ пиши в `daily/YYYY-MM-DD.md`:**

Формат:
```
## HH:MM [text]
{Описание действий}

**Создано/Обновлено:**
- [[path/to/file|Name]] — описание
```

**Что логировать:**
- Создание файлов в thoughts/
- Обновление business/ или projects/
- Создание задач в Todoist (с task ID)
- Синхронизация с внешними системами

**Пример:**
```
## 14:30 [text]
Обработка ежедневных записей

**Создано задач:** 3
- "Follow-up Acme Corp" (id: 8501234567, p2, завтра)
- "Подготовить КП Unilever" (id: 8501234568, p2, пятница)

**Сохранено мыслей:** 1
- [[thoughts/ideas/product-launch|Product Launch]] — идея запуска
```

**Зачем:** Audit trail + контекст для будущих обработок.

## Evolve MEMORY.md (Step 10 Detail)

**ЦЕЛЬ:** Поддерживать MEMORY.md актуальным. Не добавлять, а ЭВОЛЮЦИОНИРОВАТЬ.

### Когда обновлять MEMORY.md

Проверь после обработки entries — есть ли информация достойная долгосрочной памяти?

### Write Rules: Что достойно MEMORY.md

**ПИСАТЬ:**
- ✅ Key decisions с impact (pivot, tool choice, architecture change)
- ✅ Изменения в pipeline (новый лид, закрытая сделка, изменение статуса)
- ✅ Финансовые изменения (оплаты получены, долги, новые контракты)
- ✅ Новые паттерны/инсайты (learnings)
- ✅ Изменения в Active Context (новый ONE Big Thing, Hot Projects)
- ✅ Новые ключевые контакты (с context)

**НЕ ПИСАТЬ:**
- ❌ Ежедневные мелочи (встречи, звонки без impact)
- ❌ Временные заметки (оставить в daily/)
- ❌ Дубликаты того что уже есть
- ❌ Детали проектов (оставить в business/crm/, projects/)
- ❌ Тривиальные задачи

### Как обновлять (evolve, не append)

**Принцип:** Новое ЗАМЕНЯЕТ устаревшее, не добавляется рядом.

| Ситуация | Действие |
|----------|----------|
| Новое противоречит старому | ЗАМЕНИТЬ старую информацию |
| Новое дополняет старое | Добавить в существующую секцию |
| Информация устарела | Удалить или архивировать |

**Пример 1 — Изменение статуса проекта:**
```
Old: "| Acme Corp NCP Meals | p1 | Активная разработка | $XXK |"
New info: "Acme Corp NCP Meals сдан клиенту"
→ ЗАМЕНИТЬ на: "| Acme Corp NCP Meals | ✅ | Завершён | $XXK |"
```

**Пример 2 — Новое решение:**
```
Добавить в Key Decisions таблицу:
| 2026-02-01 | Отказ от X в пользу Y | причина | impact |
```

**Пример 3 — Изменение в pipeline:**
```
Old: "| LogisticsLead | Hot | $XXK |"
New info: "LogisticsLead подписал контракт"
→ Удалить из Pipeline
→ Добавить в Hot Projects или Financial Context
```

### Секции MEMORY.md для обновления

| Секция | Когда обновлять |
|--------|-----------------|
| Active Context | Изменение ONE Big Thing, Hot Projects, Pipeline |
| Key Decisions | Новое решение с impact |
| Financial Context | Оплаты, долги, контракты |
| Key People | Новый важный контакт |
| Learnings | Новый паттерн/инсайт |
| Current Crisis | Изменение в текущей критической ситуации |

### Формат Edit

Используй Edit tool для точечных изменений:

```
Edit MEMORY.md:
old_string: "| LogisticsLead | Hot | $XXK |"
new_string: "| LogisticsLead | ✅ Signed | $XXK |"
```

### В отчёте

Если обновил MEMORY.md, добавь секцию:

```html
<b>🧠 MEMORY.md обновлён:</b>
• Active Context → Hot Projects updated
• Key Decisions → +1 новое решение
```

## Capture Observations (Step 11 Detail)

**ЦЕЛЬ:** Записывать friction signals, паттерны и идеи для улучшения системы.

### Когда записывать

После обработки проверь — были ли проблемы или наблюдения?

| Тип | Когда |
|-----|-------|
| `[friction]` | mcp-cli errors, timeouts, empty daily, broken links, unexpected data |
| `[pattern]` | Повторяющийся паттерн (задачи всегда overdue, daily пустой по выходным) |
| `[idea]` | Идея для улучшения pipeline, schema, отчёта |

### Формат

Append в `vault/.session/handoff.md` секцию `## Observations`:

```markdown
## Observations
- [friction] YYYY-MM-DD: mcp-cli timeout 3x на todoist — retry спас, но -60 сек
- [pattern] YYYY-MM-DD: daily без entries 2 дня подряд — выходные?
- [idea] YYYY-MM-DD: CRM карточки без deal_deadline = невидимые дедлайны
```

### Правила

- Одна строка на наблюдение (конкретика, не абстракции)
- Дата обязательна
- Не повторять уже записанные observations
- Когда observations ≥10 → сигнал для system improvement session

### В отчёте

Если записаны observations, добавь:

```html
<b>👁 Observations:</b>
• [friction] mcp-cli timeout 3x
```

---

## Process Goals Check (Step 5 Detail)

**ОБЯЗАТЕЛЬНО выполни этот шаг при каждом /process:**

### 1. Проверь существующие process goals

```bash
mcp-cli call todoist find-tasks '{"labels": ["process-goal"], "limit": 20}'
```

### 2. Если process goals ОТСУТСТВУЮТ — создай их

Читай goals файлы и генерируй process commitments:

| Goal Level | Source | Process Pattern |
|------------|--------|-----------------|
| Weekly ONE Big Thing | goals/3-weekly.md | 2h deep work ежедневно |
| Monthly Top 3 | goals/2-monthly.md | 1 action/день на приоритет |
| Yearly Focus | goals/1-yearly-*.md | 30 мин/день на стратегию |

**Создай recurring tasks:**

```bash
mcp-cli call todoist add-tasks '{"tasks": [
  {"content": "2h deep work: [ONE Big Thing]", "dueString": "every weekday at 6am", "priority": 2, "labels": ["process-goal"]},
  {"content": "1 outreach/день: [monthly priority]", "dueString": "every weekday", "priority": 3, "labels": ["process-goal"]},
  {"content": "30 мин продуктовые идеи", "dueString": "every day", "priority": 4, "labels": ["process-goal"]}
]}'
```

**Лимит:** Max 5-7 активных process goals.

### 3. Если process goals ЕСТЬ — проверь статус

- Активные (upcoming) → ✅ показать в отчёте
- Просроченные (overdue) → ⚠️ предупредить
- Устаревшие (не связаны с текущими целями) → рекомендовать удалить

### 4. Включи в отчёт

```html
<b>📋 Process Goals:</b>
• 2h deep work: [Client Project] → ✅ активен
• 1 outreach/день → ⚠️ просрочен
{N} активных | {M} требуют внимания
```

## Entry Format

## HH:MM [type]
Content

Types: [voice], [text], [forward from: Name], [photo]

## Business Context Integration

**ТОЧКА ВХОДА:** `business/_index.md` — читай для понимания бизнес-контекста.

### Структура:
```
business/
├── _index.md       ← Статистика, обзор
├── crm/            ← ВСЁ: компании + сделки + проекты в одном файле
├── network/        ← Структура холдинга
└── events/         ← Мероприятия
```

### Распознавание упоминаний

При обработке entries ищи упоминания клиентов и проектов:

| Паттерн | Действие |
|---------|----------|
| "звонил [Client]" | Найти `business/crm/{client}.md`, добавить связь |
| "по проекту [Client]" | Найти `business/crm/{client}.md` |
| "встреча с [Client]" | Создать задачу + связать с `business/crm/{client}.md` |
| "отправил КП для [Client]" | Связать с `business/crm/{client}.md` |

### Поиск клиента по имени

1. Имя → kebab-case: "Acme Corp" → `acme-corp`, "Bi Group" → `bi-group`
2. Искать: `business/crm/{kebab-case}.md`
3. Если не найден — fuzzy search по `grep -l "{name}" business/crm/`

### Создание связей

Когда упомянут клиент/проект, добавляй wiki-links:

**В задачу:**
```
"Follow-up [[business/crm/acme-corp|Acme Corp]] по снекам"
```

**В thought:**
```
Связано с: [[business/crm/techco|TechCo]], [[business/crm/phonebrand-smm|PhoneBrand SMM]]
```

### Приоритет задач с бизнесом

| Условие | Приоритет |
|---------|-----------|
| Клиент с priority: High + deadline | p1 |
| Активный проект (In progress) | p2 |
| Клиент с priority: High | p2 |
| Клиент с priority: Mid | p3 |
| Prospect без срочности | p4 |

## Classification

task → Todoist (see references/todoist.md)
idea/reflection/learning → thoughts/ (see references/classification.md)
client/project mention → link to Business/Projects + create task if actionable

## Projects Context Integration

**Точка входа:** `projects/_index.md`

### Структура:
```
projects/
├── _index.md       # Clients overview
├── clients/        # Clients
└── leads/          # Leads
```

### Распознавание упоминаний

| Паттерн | Файл |
|---------|------|
| "[Client A]" | projects/clients/{client-a}.md |
| "[Client B]" | projects/clients/{client-b}.md |
| "AI обучение", "воркшоп" | projects/ контекст |

### Отличие от Business

- **Business** = основной бизнес
- **Projects** = личные проекты (консалтинг, обучение)

Если entry упоминает AI/ML обучение — ищи в projects/ сначала.

## Contacts Context Integration

**Точка входа:** `contacts/_index.md`

### Распознавание имён в entries

Ищи паттерны:
- "созвонился с [Contact] из [Client]"
- "встреча с @username"
- "Имя Фамилия написал"

### Классификация

| Индикатор | Категория | Vault Link |
|-----------|-----------|------------|
| Known business clients | business | `business/crm/{client}` |
| AI/обучение expertise, known leads | projects | `projects/leads/{name}` |
| Остальные | personal | — |

### В отчёте

Если в entries упомянуты люди, добавь секцию:

```html
<b>👤 Упомянуто контактов:</b>
• [Contact Name] (business → [[business/crm/acme-corp]])
• [Contact Name] (personal)
```

## Priority Rules

p1 — Client deadline, urgent
p2 — Aligns with ONE Big Thing or monthly priority
p3 — Aligns with yearly goal
p4 — Operational, no goal alignment

## Process Goals Preference

When creating tasks, prefer PROCESS over OUTCOME formulations.

**Outcome (less effective):**
- "Закрыть сделку с X"
- "Запустить продукт"
- "Подготовить программу"

**Process (more effective):**
- "Отправить follow-up клиенту X" (actionable, controllable)
- "2h deep work на MVP" (time-bounded)
- "Показать драфт программы коллеге" (checkpoint)

**When to transform:**
- Entry sounds vague/outcome-focused → make it specific/process-focused
- User says "нужно сделать X" → create actionable next step, not X itself
- Goal mentioned → create task that MOVES TOWARD goal, not goal itself

See: references/process-goals.md for patterns and examples.

## Thought Categories

💡 idea → thoughts/ideas/
🪞 reflection → thoughts/reflections/
🎯 project → thoughts/projects/
📚 learning → thoughts/learnings/

## HTML Report Template

Output RAW HTML (no markdown, no code blocks):

📊 <b>Обработка за {DATE}</b>

<b>🎯 Текущий фокус:</b>
{ONE_BIG_THING}

<b>📓 Сохранено мыслей:</b> {N}
• {emoji} {title} → {category}/

<b>✅ Создано задач:</b> {M}
• {task} <i>({priority}, {due})</i>

<b>🏢 Business Activity:</b>
• {client} — {action}
• {project} — {status update}
<i>Упомянуто клиентов: {N} | Проектов: {M}</i>

<b>📋 Process Goals:</b>
• {process goal 1} → {status}
• {process goal 2} → {status}
{N} активных | {M} требуют внимания
<i>Создано новых: {K}</i>

<b>📅 Загрузка на неделю:</b>
Пн: {n} | Вт: {n} | Ср: {n} | Чт: {n} | Пт: {n} | Сб: {n} | Вс: {n}

<b>⚠️ Требует внимания:</b>
• {overdue or stale goals}

<b>🔗 Новые связи:</b>
• [[Note A]] ↔ [[Note B]]

<b>⚡ Топ-3 приоритета:</b>
1. {task}
2. {task}
3. {task}

<b>📈 Прогресс:</b>
• {goal}: {%} {emoji}

<b>🧠 MEMORY.md:</b>
• {section} → {change description}
<i>(если обновлено)</i>

---
<i>Обработано за {duration}</i>

## If Already Processed

If all entries have `<!-- ✓ processed -->` marker, return status report:

📊 <b>Статус за {DATE}</b>

<b>🎯 Текущий фокус:</b>
{ONE_BIG_THING}

<b>📋 Process Goals:</b>
• {process goal 1} → {status}
• {process goal 2} → {status}
{N} активных | {M} требуют внимания

<b>📅 Загрузка на неделю:</b>
Пн: {n} | Вт: {n} | Ср: {n} | Чт: {n} | Пт: {n} | Сб: {n} | Вс: {n}

<b>⚠️ Требует внимания:</b>
• {overdue count} просроченных
• {today count} на сегодня

<b>⚡ Топ-3 приоритета:</b>
1. {task}
2. {task}
3. {task}

---
<i>Записи уже обработаны ранее</i>

## Allowed HTML Tags

<b> — bold (headers)
<i> — italic (metadata)
<code> — commands, paths
<s> — strikethrough
<u> — underline
<a href="url">text</a> — links

## FORBIDDEN in Output

NO markdown: **, ##, -, *, backticks
NO code blocks (triple backticks)
NO tables
NO unsupported tags: div, span, br, p, table

Max length: 4096 characters.

## References

Read these files as needed:
- references/about.md — User profile, decision filters
- references/classification.md — Entry classification rules
- references/todoist.md — Task creation details + recurring patterns
- references/goals.md — Goal alignment logic
- references/process-goals.md — Process vs outcome goals, transformation patterns
- references/links.md — Wiki-links building
- references/rules.md — Mandatory processing rules
- references/report-template.md — Full HTML report spec
- references/business.md — Business client/project context, search patterns
- references/contacts.md — Contacts search and classification

## Business Quick Reference

**Точка входа:** `business/_index.md`

**Поиск клиента:**
```
grep -l "Acme Corp" business/crm/
→ business/crm/acme-corp.md
```

**Активные сделки:**
```
grep -l "deal_status:" business/crm/
```

**High priority клиенты:**
```
grep -l "priority: High" business/crm/
```

**Frontmatter полей:**
- type: crm
- industry, priority, status, region, owner, responsible
- deal_status, deal_deadline (для активных сделок)
- updated

## Relevant Skills

- [[vault/.claude/skills/graph-builder/SKILL|graph-builder]] — Vault graph analysis
- [[vault/.claude/skills/todoist-ai/SKILL|todoist-ai]] — Todoist task management
