AgentSkillsCN

second-brain-processor

一款个人助理,可处理来自Telegram的每日语音与文本输入。对内容进行分类,根据目标创建Todoist任务,将思绪以Wiki链接的形式保存至Obsidian,并生成HTML报告。可通过“/process”命令,或每日21:00的Cron定时任务触发。

SKILL.md
--- frontmatter
name: second-brain-processor
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. Triggers on /process command or daily 21:00 cron.

Second Brain Processor

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

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>

MCP Tools Required

mcp__todoist__add-tasks — Create tasks mcp__todoist__find-tasks — Check duplicates mcp__todoist__find-tasks-by-date — Check workload

CRITICAL: MCP Tool Usage

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

У тебя ЕСТЬ доступ к MCP tools:

  • mcp__todoist__add-tasks
  • mcp__todoist__find-tasks
  • mcp__todoist__find-tasks-by-date
  • mcp__todoist__complete-tasks
  • mcp__todoist__update-tasks

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

  1. ВЫЗОВИ: mcp__todoist__find-tasks-by-date ↓ Получил результат? → Продолжай ↓ Ошибка? → Читай файлы 30 секунд, потом ВЫЗОВИ СНОВА ↓ 3 ошибки подряд? → Покажи ТОЧНЫЙ текст ошибки

ЗАПРЕЩЕНО:

  • ❌ Писать "MCP недоступен"
  • ❌ Предлагать "добавь вручную"
  • ❌ Использовать subprocess для вызова CLI
  • ❌ Делать HTTP запросы к API напрямую
  • ❌ Выводить команды для копирования
  • ❌ Решать что не работает БЕЗ вызова tool

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

  • ✅ Вызывать MCP tool напрямую
  • ✅ Если ошибка — подождать, вызвать снова
  • ✅ 3 retry перед любыми выводами
  • ✅ Если task создан — включить task ID в отчёт

При ошибке MCP tool — показать ТОЧНУЮ ошибку от tool, не придумывать отговорки.

Processing Flow

  1. Load context — Read goals/3-weekly.md (ONE Big Thing), goals/2-monthly.md
  2. Check workload — find-tasks-by-date for 7 days
  3. Check process goals — find-tasks with labels: ["process-goal"]
  4. Read daily — daily/YYYY-MM-DD.md
  5. Process entries — Classify → task or thought
  6. Build links — Connect notes with [[wiki-links]]
  7. Log actions to daily — append action log entry
  8. Evolve MEMORY.md — update long-term memory if needed
  9. Generate HTML report — RAW HTML for Telegram

Process Goals Check (Step 3)

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

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

Используй mcp__todoist__find-tasks с labels: ["process-goal"]

2. Если отсутствуют — создай

Читай goals/ и генерируй process commitments:

Goal LevelSourceProcess Pattern
Weekly ONE Big Thinggoals/3-weekly.md2h deep work ежедневно
Monthly Top 3goals/2-monthly.md1 action/день на приоритет
Yearly Focusgoals/1-yearly-*.md30 мин/день на стратегию

Создавай recurring tasks с label "process-goal" (max 5-7 активных).

3. Включи в отчёт

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

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

Logging to daily/ (Step 7)

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

Format:

code
## HH:MM [text]
{Description of actions}

**Created/Updated:**
- [[path/to/file|Name]] — description

What to log:

  • Files created in thoughts/
  • Tasks created in Todoist (with task ID)
  • Links built between notes

Example:

code
## 14:30 [text]
Daily processing complete

**Created tasks:** 3
- "Follow-up client" (id: 8501234567, p2, tomorrow)
- "Prepare proposal" (id: 8501234568, p2, friday)

**Saved thoughts:** 1
- [[thoughts/ideas/product-launch|Product Launch]] — new idea

Evolve MEMORY.md (Step 8)

GOAL: Keep MEMORY.md current. Don't append — EVOLVE.

When to update:

  • ✅ Key decisions with impact (pivot, tool choice, architecture change)
  • ✅ New patterns/insights (learnings)
  • ✅ Changes in Active Context (new ONE Big Thing, Hot Projects)

When NOT to update:

  • ❌ Daily trivia (meetings, calls without impact)
  • ❌ Temporary notes (stay in daily/)
  • ❌ Duplicates of what's already there

How to update (evolve, not append):

SituationAction
New contradicts oldREPLACE old information
New complements oldAdd to existing section
Info is outdatedDelete or archive

Use Edit tool for precise changes.

In report (if updated):

html
<b>🧠 MEMORY.md updated:</b>
• Active Context → Hot Projects changed
• Key Decisions → +1 new decision

Entry Format

HH:MM [type]

Content

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

Classification

task → Todoist (see references/todoist.md) idea/reflection/learning → thoughts/ (see references/classification.md)

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

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>📋 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 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>(if updated)</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
  • 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