Три группы накопившихся 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 плана постановки в боевой). Содержание ветки не трогает.
17 KiB
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 без номера:
skill-creator@claude-plugins-official(Anthropic) — создание скилов, performance-метрики, оптимизация описаний для триггеринга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)hookify@claude-plugins-official(Anthropic) — генератор хуков из анализа транскриптов или явных инструкций (/hookify+ skillwriting-rules+ агентconversation-analyzer)claude-code-setup@claude-plugins-official(Anthropic) — анализатор кодовой базы + рекомендации Claude Code automations (/claude-automation-recommender)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
de66b8b17.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 1–9): ADR-010 + 4 normative files + map refresh + memory + pre-push + push. Закрывает эпик целиком.
Out of scope (defer):
- Изменение
enabledPlugins(выключение/включение) — это вариант (б)/(в), отвергнут заказчиком в пользу (а) - Изменение хуков hookify в
.claude/settings.json— формализуем правило, не код - Создание
docs/<category>/README.md(как сделано в A11docs/ml/, C10docs/process/, discoverydocs/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).