Команда /dr-plugin — система плагинов Datarim
Как /dr-plugin управляет опциональными расширениями Datarim: двухуровневая архитектура манифестов, bootstrap datarim-core, симлинк-установка и поэтапный план для enable/disable и отката.
Datarim поставляется с фиксированным набором скилов, агентов, команд и шаблонов. Система плагинов делает этот набор расширяемым без изменения базовой установки. /dr-plugin — CLI для управления этими расширениями.
Текущая фаза охватывает вывод списка активных плагинов и инициализацию записи datarim-core при первом запуске. Субкоманды enable, disable, sync и doctor реализуются в последующих фазах.
Двухуровневая архитектура манифестов
Каждый плагин содержит статический манифест — plugin-storage/<id>/plugin.yaml — зафиксированный вместе с исходными файлами плагина в его собственном репозитории. Этот манифест описывает содержимое плагина и его требования. Второй, рантаймовый манифест находится в datarim/enabled-plugins.md внутри рабочего пространства и фиксирует, какие плагины активны для данного проекта. Два уровня намеренно разделены: статический манифест путешествует с плагином; рантаймовый манифест принадлежит рабочему пространству.
Сторонние плагины устанавливаются как симлинки из datarim/plugin-storage/<id>/ в ~/.claude/local/{skills,agents,commands,templates}/<plugin-id>/. Подход с симлинками означает, что исходный код плагина хранится в одном месте, а рантайм подхватывает его из стандартного пути загрузки.
datarim-core при первом запуске
Первый запуск /dr-plugin list инициализирует запись datarim-core. Текущий поставляемый набор Datarim — все скилы, агенты, команды и шаблоны, установленные вместе с фреймворком — регистрируется как единый защищённый плагин. Его нельзя отключить. Это делает границу между ядром и сторонними компонентами явной с самого начала.
Базовая реализация — POSIX-совместимый bash-скрипт в scripts/dr-plugin.sh, совместимый с bash 3.2 и выше. Валидация ID плагина требует kebab-case-идентификаторов длиной до тридцати двух символов. Валидация источника принимает абсолютные пути и HTTPS-URL; встроенные учётные данные и последовательности path-traversal отклоняются.
Коды возврата и переменные окружения
Код 0 означает успех. Код 1 — ошибка валидации или конфликт. Код 2 — ошибка ввода-вывода или файловой системы. Код 3 — блокировка захвачена параллельным вызовом. Код 64 — ошибка использования: нераспознанная субкоманда или отсутствующий аргумент.
Две переменные окружения позволяют переопределять параметры при тестировании: DR_PLUGIN_WORKSPACE указывает на альтернативный корень рабочего пространства, DR_PLUGIN_RUNTIME_ROOT перенаправляет целевую директорию симлинков. Набор тестов покрывает двадцать восемь случаев на macOS bash 3.2 и Linux bash 5.
Дорожная карта
Фаза A3 добавляет базовые пути enable и disable с первоначальным заполнением инвентаря datarim-core. Фаза B вводит механизм overrides: с предварительным сканированием конфликтов. Фаза C добавляет создание снимков и откат через sync. Фаза D вводит doctor с восемью диагностическими проверками. Фаза E выводит систему плагинов на публичную поверхность — CLAUDE.md, README и документацию datarim.club. Фаза F добавляет руководство для авторов и поднимает покрытие тестами до восьмидесяти процентов и выше.
О расширении фреймворка сегодня — в посте /dr-addskill. Общая картина фреймворка — в посте что такое Datarim.