Files
portal/docs/superpowers/specs/2026-05-18-anthropic-dev-tooling-formalization-design.md
T
Дмитрий 26999ca597 chore: working tree cleanup pre-llm-first-router merge
Три группы накопившихся auto-правок (НЕ ручные):

1. markdownlint --fix auto-format (~25 .md в docs/superpowers/, docs/security/marketing-vet.md, docs/adr/015, docs/deploy/lkomega-runbook): MD031/MD032 (blank lines around fence/list) + MD004 (bullet markers `+`→`-`). Содержательных текстовых правок 3: ADR-015 bullet, sprint5d-cleanup bullet, router-discipline trailing space.

2. lefthook 2.1.6 → 2.1.8 (package.json + lock): patch-bump, авто-резолвил npm.

3. Observer runtime (docs/observer/): episodes-2026-05.jsonl +420 строк (текущая активность мозга), STATUS.md regen, .pii-counters / .read-counter тики, +2026-05-24-brain-retro.md note.

Цель — разблокировать merge feat/llm-first-router → main (этап 0 плана постановки в боевой). Содержание ветки не трогает.
2026-05-25 14:23:11 +03:00

17 KiB
Raw Blame History

Anthropic Dev-Tooling Formalization — Design

Date: 2026-05-18 Topic: Формализация 5 Anthropic-плагинов уже включённых в ~/.claude/settings.json user-level, но без номера в реестре Tooling §3.3 / PSR_v1 R10.1. Deciders: Дмитрий Method: аудит «мозга» через discovery-interview (SYSTEM-режим, 2026-05-18). Решение по варианту (а) — формализовать все 5, риски закрыть предварительно.


Goal

Закрыть L1-паттерн «плагин фактически включён в settings.json без формализации в правилах» (зафиксирован 2026-05-10 на UPM/21st; повторился 2026-05-13 на Sentry/Redis MCP). За неделю интеграционных эпиков (A6/D3/C9/A11/A3/A4/deptrac/C10/discovery) реестр Tooling вырос с 35 до 55 позиций, но 5 Anthropic dev-плагинов оставались формализационным долгом — они есть в карте (iter7 audit 16.05.2026), но не в Tooling/PSR/Pravila.

Превратить долг в полноценные позиции #56–#60 с двумя новыми off-phase подкатегориями, по проверенному паттерну C10/A11/A3.


Context

5 плагинов в ~/.claude/settings.json enabledPlugins без номера:

  1. skill-creator@claude-plugins-official (Anthropic) — создание скилов, performance-метрики, оптимизация описаний для триггеринга
  2. plugin-dev@claude-plugins-official (Anthropic) — конструктор плагинов: 8 sub-skills (plugin-structure / agent-development / skill-development / command-development / hook-development / mcp-integration / plugin-settings) + 2 агента (agent-creator, plugin-validator, skill-reviewer)
  3. hookify@claude-plugins-official (Anthropic) — генератор хуков из анализа транскриптов или явных инструкций (/hookify + skill writing-rules + агент conversation-analyzer)
  4. claude-code-setup@claude-plugins-official (Anthropic) — анализатор кодовой базы + рекомендации Claude Code automations (/claude-automation-recommender)
  5. context7@claude-plugins-official (Anthropic) — MCP-документация для библиотек/фреймворков (актуальные доки React/Laravel/Vue/Prisma/Tailwind/…)

Карта (docs/automation-graph.html) иметь 5 соответствующих узлов: skill_creator, plugin_dev, hookify_plugin, claude_setup, context7 — добавлены в iter7 audit-actualization 16.05.2026. Узлы есть, но nd()-блоки не несут номера/правил, и edge к psr_v1 «R10.1 блок 1» — отсутствуют. Один из узлов (hookify_plugin) уже носит 🔴-конфликт hookify_plugin ↔ hk_pre_claude (карта строка 1844).

Project-level .mcp.json — все 9 MCP формализованы (#2/#3/#10/#25/#34/#35/#45/#47 + ruflo §4.10). User-level .claude.json mcpServers — только magic (#32). Project .claude/settings.json hooks — описаны в Pravila §14 / Tooling §14. Утечек инвентаря вне 5 пунктов выше нет.

Прецеденты формализации post-факт:

  • 2026-05-10 (UPM #31 + 21st Magic MCP #32) — после явного вопроса заказчика «хочу добавить плагины»
  • 2026-05-13 (Sentry MCP #34 + Redis MCP #35) — retrospective в v1.92 после PR #3 merge
  • 2026-05-17/18 (A6/D3/C9/A11/A3/A4/deptrac/C10/discovery) — проактивная сектор-за-сектором формализация

Decisions

D1: Две off-phase подкатегории, не одна

Семантика разная — нельзя свалить в одну категорию:

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

Это даёт более чистые правила в R10.1 и более точные триггеры в Pravila §13.2.

D2: hookify — отдельное hard-правило в R10.1 (закрывает 🔴-конфликт)

Текущее состояние: 🔴-конфликт hookify_plugin ↔ hk_pre_claude на карте (плагин hookify может перезаписать существующие хуки в ~/.claude/settings.json без diff).

Правило закрытия:

hookify вызывается только по явному /hookify, не проактивно. Перед генерацией хука — обязательный pre-check на коллизию с уже-зарегистрированными хуками в ~/.claude/settings.json (особенно: economy-mode / skill-marker / skill-check / state-guard / postcompact / verifier — это 6-компонентная архитектура runtime-enforcement, никакие из них не должны перезаписываться). При обнаружении коллизии — остановка с пометкой «hookify не может выполнить генерацию автоматически — требуется ручное согласование изменений в settings.json».

После правила: 🔴🟢 (закрыто правилом).

D3: skill-creator ↔ plugin-dev:skill-development — граница

Оба умеют создавать скилы. Граница:

  • skill-creator — для standalone скилов (.claude/skills/<name>/), c performance-метриками и benchmarking. Использовать первым при создании нового проектного скила.
  • plugin-dev:skill-development — для скилов внутри marketplace-плагина, который ты разрабатываешь. Использовать только при работе над собственным Claude-плагином (не наш кейс на 2026-05-18).

Дополнительно: вендоренные сторонние скилы (.claude/skills/mermaid/, data-scientist/, ccpm/) и self-authored проектные (audit-portal/, regression/, process-modeling/, process-analysis/, discovery-interview/) — модифицируются прямым Edit, не через skill-creator (он может предложить переписать как новый, потерять провенанс).

D4: context7 ↔ WebFetch ↔ WebSearch — граница источников документации

Текущая практика: я обращался к context7 на A11/A3/discovery эпиках для актуальных доков (Laravel/Pest/Vue), но это нигде не документировано.

Правило в R10.1 dev-support:

  • context7 — первый выбор для документации известной библиотеки (Laravel, Vue, React, Pest, Vuetify, Tailwind, …). MCP отдаёт актуальную версию из upstream, обходит cutoff training data.
  • WebFetch — fallback на конкретный URL (GitHub README, ADR-документ внешнего проекта).
  • WebSearch — поиск без знания URL, либо актуальные события/статьи.

D5: claude-code-setup — read-only анализатор

/claude-automation-recommender — анализирует кодовую базу и предлагает плагины/хуки/скилы. Правило:

  • Рекомендации фильтровать через R0 stack-gate + R10.1 (R0.6 hard-стопы — брендовое UI, ru-стек, уже формализованное и т.п.).
  • Не устанавливать ничего по рекомендации без явного согласования с заказчиком.
  • Использование read-only/advisory — не trigger'ит R6.0/R6.1/R14.

D6: ADR-010 — новый ADR-документ

По образцу ADR-004 (C9 project-management) / ADR-005 (deptrac) / ADR-006 (A4 design) / ADR-007 (A11 ml-ai) / ADR-008 (C10 business-process) / ADR-009 (discovery-interview). Содержание: формализация retrospective, split на 2 подкатегории, locked границы D2-D5.

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

D7: Карта — refresh, не add

Узлы skill_creator / plugin_dev / hookify_plugin / claude_setup / context7 в карте есть (iter7 16.05). Нужно:

  • Обновить лейблы 4 узлов-правил (Pravila/CLAUDE.md/PSR_v1/Tooling) на новые версии v1.27 / v2.14 / v3.13 / v2.14 (после A6 v1.24/v2.10/v3.10/v2.10 дрейф копится — последний refresh de66b8b 17.05; за C10 и discovery + сейчас за this эпик)
  • Каждому из 5 узлов — обновить nd() с номером (#56-#60), категорией, ограничениями, edge к psr_v1 «R10.1 блок 1»
  • Конфликт hookify_plugin ↔ hk_pre_claude🔴🟢 с rule «D2 правило в R10.1»
  • NODE_META.changed → 18.05.2026 для всех 5
  • tooling-узел nd() count: «70 / 50» → «75 / 55» (после регистрации 5 позиций) — но это уже стало неактуально (последний refresh говорит 70/50, после C10 и discovery — реально 75/55 уже). Verify Task 7.
  • NODE_SECTION — узлы остаются в текущих разделах (E7), не перетегируются (REU4 паттерн)
  • Метрики карты — 124/130 (узлы и рёбра без изменений в количестве; только nd-наполнение + 5 новых edge к psr_v1 = 124/135)

D8: Memory — single-bump

После эпика — update feedback_plugin_paired_stack.md (active versions + 6-я off-phase подкатегория — wait, после A11 их уже 10, после C10 11, после discovery 12, после нас 13). MEMORY.md и project_state.md — стандартные version bumps.


Conflict audit — locked

Полный аудит R1–R14 проведён в discovery-сессии 2026-05-18. Сводка:

# Риск Severity Locked resolution
R1 hookify может перезаписать settings.json (🔴) 🟡🟢 после правила D2 — отдельное правило pre-check в R10.1
R2 plugin-dev может предложить переделать наши self-authored скилы 🟡 D3 — граница «standalone vs marketplace; вендоренное/self-authored — direct Edit»
R3 skill-creator ↔ plugin-dev:skill-development overlap 🟢 D3 — граница
R4 context7 ↔ WebFetch ↔ WebSearch overlap 🟢 D4 — приоритет
R5 claude-code-setup может предложить установить плагин 🟢 D5 — read-only фильтр
R6 Карта: 5 узлов есть, без номеров и edge 🟢 D7 — refresh + 5 новых edge
R7 Категоризация в одну подкатегорию запутает 🟢 D1 — две подкатегории
R8 User-level настройки на 16 параллельных проектах машины 🟢 Формализация в Лидерра-нормативке не ломает другие проекты
R9 Кодовая регрессия 🟢 Её нет — только текстовая нормативка; pre-commit + pre-push стандарт
R10 Темп: 5 позиций в один эпик 🟢 Норм — посильно по образцу A11 (3) / C10 (4)
R11 ADR нужен? 🟢 D6 — да, ADR-010
R12 Memory upd 🟢 D8 — стандартный bump
R13 Версии нормативки 🟢 Tooling v2.13→v2.14 / PSR v3.12→v3.13 / Pravila v1.26→v1.27 / CLAUDE.md v2.13→v2.14
R14 Конфликт-аудит пометки в Tooling §3.3 🟢 По образцу AK1/MK1/ML3/LINT1 — короткие SC1-SC5 / PD1-PD3 / HK1-HK3 / CCS1 / CTX1

File structure

File Action Responsibility
docs/adr/ADR-010-anthropic-dev-tooling.md Create Формализация retrospective decision, split 2 подкатегории, locked границы D2-D5
docs/Tooling_v8_3.md Modify Прил. Н — 2 новых subsection (§4.31 authoring-tooling, §4.32 dev-support); §4.31-§4.35 5 позиций (#56-#60); §0 счётчик 55→60
docs/Plugin_stack_rules_v1.md Modify R10.1 Блок 1 — +5 строк с ролями и triggers; hookify-special note (D2); §0 +entry v3.13
docs/Pravila_raboty_Claude_v1_1.md Modify §13.2 — +2 абзаца (authoring-tooling + dev-support); §0 +entry v1.27
CLAUDE.md Modify (через /claude-md-management:claude-md-improver ИЛИ прямой Edit в worktree — §5 п.10 worktree-эксцепшн, прецедент A11/C10/discovery v2.10/v2.12/v2.13) §3 title 55→60; §1 priority chain row 2b 55→60; §3.3 +5 строк #56-#60; §3.3 footer 55→60 + 13 off-phase подкатегорий; §0 cross-refs Pravila v1.27 / PSR v3.13 / Tooling v2.14; §6 +абзац интеграции; §9 +entry v2.14; шапка v2.13 → v2.14
docs/CHANGELOG_claude_md.md Modify Entry v2.14
docs/automation-graph.html Modify 5 узлов (skill_creator/plugin_dev/hookify_plugin/claude_setup/context7) — refresh nd() с номерами + edge к psr_v1; 4 узла-правила — refresh лейблы под новые версии; конфликт hookify ⊥ hk_pre_claude 🔴🟢; tooling-узел nd() count refresh
MEMORY.md + feedback_plugin_paired_stack.md + project_state.md + reference_archive.md Modify Standard bumps + new memory project_anthropic_dev_tooling.md для этой интеграции

Files NOT modified:

  • ~/.claude/settings.json — настройки не трогаем (плагины уже включены)
  • ~/.claude.json — то же
  • .mcp.json — не затронут (только context7 — но он enabledPlugins, не MCP-сервер в .mcp.json)
  • lefthook.yml — нет хуков от этих плагинов в pre-commit/pre-push
  • Test files — кодовой регрессии нет

Severable scope

Core scope (Task 19): ADR-010 + 4 normative files + map refresh + memory + pre-push + push. Закрывает эпик целиком.

Out of scope (defer):

  • Изменение enabledPlugins (выключение/включение) — это вариант (б)/(в), отвергнут заказчиком в пользу (а)
  • Изменение хуков hookify в .claude/settings.json — формализуем правило, не код
  • Создание docs/<category>/README.md (как сделано в A11 docs/ml/, C10 docs/process/, discovery docs/discovery/) — для authoring-tooling и dev-support не нужно: это infrastructure-категория, не имеет проектных артефактов (как и claude-md-management #33 не имеет docs/claude-md/). Pravila §13.2 абзаца + Tooling subsection достаточно.

Sequencing

Worktree уже создан: .claude/worktrees/anthropic-dev-tooling, branch feat/anthropic-dev-tooling, базовый коммит origin/main b40f2c8 (последний — discovery-interview map node).

Все 9 tasks плана исполняются в этой ветке последовательно (механика суб-агентов разрешена, но git-задачи — контроллер Sonnet, никакого Haiku-commit, урок Sprint 3F/5/6). Push: git push origin feat/anthropic-dev-tooling:main после pre-push (gitleaks-full-history + lychee).