Claude Info
Продуктивность

Pomodoro

jakedahn/pomodoro

Эталонная реализация паттерна System Skill для Claude: CLI-инструмент + SKILL.md + SQLite-база. Демонстрирует, как строить навыки, которые накапливают контекст, учатся на истории сессий и дают всё более точные инсайты со временем.

Установка

terminal
bash
git clone https://github.com/jakedahn/pomodoro.git

README

Pomodoro — эталонная реализация System Skill

The System Skill Pattern

Рабочий пример паттерна System Skill — подхода к созданию навыков Claude, которые сохраняют состояние, учатся на истории и со временем дают всё более полезные инсайты.

Паттерн: CLI + SKILL.md + Database

Дайте Claude инструмент командной строки, инструкции по работе с системой и базу данных для хранения информации. Наблюдайте, как он запускает собственный цикл OODA (Observe, Orient, Decide, Act) — накапливая контекст, который растёт от сессии к сессии.

Этот таймер Pomodoro демонстрирует паттерн примерно в 600 строках кода. Реализация намеренно простая, чтобы вы могли увидеть, как части складываются вместе, и построить собственную.

Быстрая установка

bash
# Добавить маркетплейс (однократная настройка)
/plugin marketplace add jakedahn/pomodoro

# Запустить скрипт установки
~/.claude/plugins/marketplaces/pomodoro/install.sh

Навык Pomodoro будет установлен в ~/.claude/skills/pomodoro/ и сразу доступен в Claude Code.

Требования: macOS с Apple Silicon (arm64). Для других платформ см. раздел Сборка из исходников.

Использование

После установки просто попросите Claude помочь с Pomodoro:

"Start a pomodoro for writing documentation" "What did I work on today?" "How productive was I this week?" "What times do I work best?" "Let's do flash cards, start 5 2min/1min pomodoro cycles"

Claude будет использовать навык Pomodoro для:

  • Запуска 25-минутных таймеров фокусировки
  • Отслеживания всех сессий
  • Анализа паттернов продуктивности
  • Предложения оптимального времени для работы

Паттерн System Skill

Данная реализация демонстрирует три компонента, работающих вместе и создающих систему, которой Claude может управлять:

1. CLI-бинарник

Самостоятельный исполняемый файл, предоставляющий Claude рычаги управления системой:

bash
./pomodoro start --task "Deep work on authentication"
./pomodoro stats --period week
./pomodoro history --days 30

Ключевые свойства:

  • Самодостаточен (без зависимостей среды выполнения, без конфигурации)
  • Подробная документация --help для каждой команды

CLI Pomodoro предоставляет пять основных команд:

  • start — начать 25-минутную сессию фокусировки
  • stop — досрочно завершить текущую сессию
  • status — проверить, запущен ли таймер
  • history — просмотреть прошлые сессии
  • stats — проанализировать паттерны продуктивности

2. SKILL.md

Руководство, которое учит Claude думать о системе и управлять ею:

  • Что такое система и когда её использовать
  • Какие команды запускать в разных ситуациях
  • Как интерпретировать вывод и искать паттерны
  • Ментальная модель и поток принятия решений

Здесь вы описываете операционную процедуру. Claude использует её для запуска цикла OODA — наблюдает за сессиями, ориентируется в паттернах, решает, когда вмешаться, и действует, запуская CLI-команды.

3. SQLite-база данных

Постоянное хранилище, накапливающее ценность со временем. В данном случае — простая схема:

sql
CREATE TABLE sessions (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  task TEXT NOT NULL,
  duration INTEGER NOT NULL,
  started_at TEXT NOT NULL,
  completed_at TEXT
);

Почему SQLite:

  • Самодостаточна (просто файл, рядом с CLI)
  • Нулевая конфигурация
  • Легко создавать резервные копии и восстанавливать
  • Claude может делать прямые запросы при необходимости

Всё вместе

Вы просите Claude запустить pomodoro. Claude читает SKILL.md, видит, что нужно выполнить ./pomodoro start, запускает CLI. CLI записывает строку в SQLite. Сессия завершена.

Три недели спустя вы спрашиваете Claude о своей продуктивности. Он запускает ./pomodoro stats --period week, получает JSON со всеми сессиями и делает вывод, что утренние сессии вы всегда завершаете, а дневные — бросаете на полпути.

Магия — в накоплении. Каждая сессия добавляет контекст. Система умнеет со временем.

Технические детали

Структура репозитория

pomodoro-repo/ # Корень репозитория ├── .claude-plugin/ │ ├── plugin.json # Манифест плагина │ └── marketplace.json # Конфигурация маркетплейса ├── skills/ │ └── pomodoro/ # Навык Pomodoro (регистрируется автоматически) │ ├── SKILL.md # Инструкции для Claude │ ├── README.md # Техническая документация │ ├── bin/ │ │ └── pomodoro # Скомпилированный бинарник │ └── scripts/ # Исходный код │ ├── pomodoro.ts # CLI-интерфейс (~290 строк) │ ├── timer.ts # Логика таймера (~83 строки) │ ├── db.ts # Операции с базой данных (~171 строка) │ └── build.sh # Скрипт сборки └── README.md # Этот файл (документация репозитория)

Сборка из исходников

Если вы хотите изменить или пересобрать:

./build.sh

Требования:

  • Deno 2.5 или новее
  • Скрипт сборки компилирует под вашу текущую платформу

О сборке:

  • Использует deno compile для создания самостоятельного бинарника
  • Разрешения безопасности встроены на этапе компиляции:
    • Нет доступа к сети
    • Нет доступа к переменным окружения
    • Чтение и запись файлов на диске
  • Подробнее см. модель безопасности Deno

Создание собственного System Skill

Данная реализация намеренно проста и служит эталоном:

  • ~600 строк чистого, читаемого кода
  • Одна таблица в схеме базы данных
  • Нулевые зависимости в среде выполнения
  • Полный исходный код включён

Изучите код, чтобы понять, как это работает, затем создайте своё:

Менеджер личных финансов

  • CLI: money tx list, money note abc-123 "unexpected road trip!", money cat abc-123 "vacation"
  • База данных: таблица банковских транзакций и транзакций по кредитным картам
  • Результат: Claude отслеживает тенденции расходов и спрашивает об аномалиях

Менеджер личных проектов

  • CLI: task new "rake the leaves", task update T-123 --status=done, task kanban
  • База данных: задачи со статусом, сроком и приоритетом
  • Результат: «Каковы мои три главных приоритета на неделю?»

Дневник благодарности

  • CLI: thankful "for my cat", thankful trends
  • База данных: записи с датой и текстом
  • Результат: Claude замечает темы и напоминает о том, что важно

Похожие скиллы