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

78 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.