Files
brain/docs/adr/ADR-010-anthropic-dev-tooling.md
T

5.5 KiB

ADR-010: Anthropic dev-tooling formalization

  • Status: Accepted
  • Date: 2026-05-18
  • Deciders: Дмитрий

Context

Пять Anthropic-плагинов включены в ~/.claude/settings.json enabledPlugins user-level, но не имеют номера в реестре Tooling §3.3 / PSR_v1 R10.1: skill-creator, plugin-dev, hookify, claude-code-setup, context7. Все пять из marketplace anthropics/claude-plugins-official.

Это повторение L1-паттерна «плагин фактически включён без формализации в правилах»: зафиксирован 2026-05-10 (UPM #31 / 21st #32 — обнаружены только когда заказчик спросил про конфликты), повторился 2026-05-13 (Sentry #34 / Redis #35 — формализованы retrospective в v1.92). Любое использование неформализованного плагина — байпас PSR_v1 R0.2/R10. Карта docs/automation-graph.html имеет соответствующие 5 узлов (iter7 audit-actualization 16.05.2026), но без номеров и без edge к governing-правилу; узел hookify_plugin несёт незакрытый 🔴-конфликт hookify_plugin ↔ hk_pre_claude (плагин hookify может перезаписать существующие хуки в settings.json).

Аудит «мозга» (discovery-interview SYSTEM-режим, 2026-05-18) вскрыл долг; заказчик выбрал формализовать все 5, предварительно закрыв риски.

Decision

Пять плагинов формализуются как позиции #56–#60 реестра Tooling в двух новых off-phase подкатегориях (семантика разная — одна категория запутала бы правила):

  • authoring-tooling — создание Claude-артефактов: #56 skill-creator, #57 plugin-dev, #58 hookify.
  • dev-support — поддержка/документация Claude-разработки: #59 claude-code-setup, #60 context7.

Граничные правила (locked):

  1. hookify (#58) — вызов только по явному /hookify, не проактивно. Перед генерацией хука — обязательный pre-check на коллизию с уже-зарегистрированными хуками в ~/.claude/settings.json; перезапись 6-компонентной economy/ skill-discipline архитектуры запрещена. Это закрывает 🔴-конфликт hookify_plugin ↔ hk_pre_claude (🔴🟢).
  2. skill-creator (#56) ↔ plugin-dev:skill-development (#57) — skill-creator для standalone проектных скилов; plugin-dev:skill-development — для скилов внутри разрабатываемого marketplace-плагина. Вендоренные и self-authored скилы модифицируются прямым Edit, не через skill-creator.
  3. context7 (#60) ↔ WebFetch ↔ WebSearch — context7 первый выбор для документации известной библиотеки; WebFetch — конкретный URL; WebSearch — поиск без URL.
  4. claude-code-setup (#59) — read-only анализатор; рекомендации фильтруются через R0/R10.1, ничего не устанавливается без явного согласования.

Обе подкатегории — не UI → вне фильтров PSR_v1 R6.0/R6.1 и R14 pipeline; регулируются R10.1 Блок 1 как infrastructure (по образцу claude-md-management #33).

ADR обязателен (не retrospective-без-ADR как Sentry/Redis #34/#35): здесь 5 позиций и 2 новые подкатегории — decision-grain выше порога.

Consequences

  • Положительно: L1-долг для 5 Anthropic-плагинов закрыт — использование больше не байпас R0.2/R10; 🔴-конфликт hookify закрыт правилом (🔴🟢, классификация карты 🔴1/3/🟢7 → 🔴0/3/🟢8); карта получает edge к governing-правилу для 5 узлов.
  • Отрицательно: реестр Tooling растёт 55 → 60; число off-phase подкатегорий 12 → 14.
  • Риск: эти 5 плагинов включены user-level — влияют на все проекты машины; формализация в Лидерра-нормативке другие проекты не ломает (они её не читают) — это не риск, а ограничение области действия.
  • Defer: изменение enabledPlugins (выключение плагинов) — отвергнуто заказчиком в пользу формализации; не выполняется.

Enforcement

None — формализация декларативная (реестр + границы в R10.1 / Pravila §13.2). hookify pre-check на коллизию хуков — поведенческое правило, проверяется code review, не автоматическим гейтом. Границы #56–#60 зафиксированы в Tooling §4.31–§4.32 и PSR_v1 R10.1 Блок 1.