diff --git a/docs/automation-graph.html b/docs/automation-graph.html index 18dbe3dd..13f1273e 100644 --- a/docs/automation-graph.html +++ b/docs/automation-graph.html @@ -228,10 +228,10 @@ function pos(ring, angleDeg) { const NODES = [ // ── ПРАВИЛА (4) ── центр + первое кольцо ─────── - { id: 'pravila', label: 'Pravila v1.24', group: 'rules', size: 38, ring: 0, ...pos(0, 0) }, - { id: 'claude_md', label: 'CLAUDE.md v2.10', group: 'rules', size: 34, ring: 1, ...pos(1, 30) }, - { id: 'psr_v1', label: 'PSR_v1 v3.10', group: 'rules', size: 32, ring: 1, ...pos(1, 150) }, - { id: 'tooling', label: 'Tooling v2.10', group: 'rules', size: 30, ring: 1, ...pos(1, 270) }, + { id: 'pravila', label: 'Pravila v1.27', group: 'rules', size: 38, ring: 0, ...pos(0, 0) }, + { id: 'claude_md', label: 'CLAUDE.md v2.14', group: 'rules', size: 34, ring: 1, ...pos(1, 30) }, + { id: 'psr_v1', label: 'PSR_v1 v3.13', group: 'rules', size: 32, ring: 1, ...pos(1, 150) }, + { id: 'tooling', label: 'Tooling v2.14', group: 'rules', size: 30, ring: 1, ...pos(1, 270) }, // ── ПЛАГИНЫ (13) ── второе кольцо ────────────── { id: 'superpowers', label: 'Superpowers v5.1', group: 'plugins', size: 30, ring: 2, ...pos(2, 45) }, @@ -568,12 +568,19 @@ const EDGES = [ E('discovery_interview', 'sk_brainstorm', 'хэндофф:\nFEATURE-brief'), E('discovery_interview', 'process_analysis', 'граница: слой-источник\n(ADR-009 DI2)'), + // ── ANTHROPIC DEV-TOOLING 18.05.2026 — связи 5 узлов ── + E('psr_v1', 'skill_creator', 'R10.1 блок 1:\nauthoring-tooling'), + E('psr_v1', 'plugin_dev', 'R10.1 блок 1:\nauthoring-tooling'), + E('psr_v1', 'hookify_plugin', 'R10.1 блок 1:\nauthoring-tooling (HK1)'), + E('psr_v1', 'claude_setup', 'R10.1 блок 1:\ndev-support'), + E('psr_v1', 'context7', 'R10.1 блок 1:\ndev-support'), + // ══════════════════════════════════════════════════ // КОНФЛИКТЫ — 3-color classification (iter2 §4) // 🔴 не закрыт правилом / ⚫ возник на практике / 🟢 закрыт правилом // ══════════════════════════════════════════════════ CONFLICT('sk_rls', 'ag_rls', 'RLS: граница задана — скил по таблице, агент по diff/PR (spec 2026-05-16)', 'GREEN'), - CONFLICT('hookify_plugin', 'hk_pre_claude', 'hookify может перезаписать существующий хук', 'RED'), + CONFLICT('hookify_plugin', 'hk_pre_claude', 'Закрыто правилом HK1 (ADR-010, PSR_v1 R10.1 v3.13): hookify вызывается только по явному /hookify + обязательный pre-check на коллизию с зарегистрированными хуками; перезапись economy/skill-discipline архитектуры запрещена', 'GREEN'), CONFLICT('mcp_pw', 'sk_parallel', 'Browser is already in use (квирк #2)', 'BLACK'), CONFLICT('ag_pest', 'mcp_redis', 'Квирк 72 устранён 16.05.2026 (commit 0fa1a73 — array-стор в тестах): гонки в Redis при Pest --parallel больше нет', 'GREEN'), CONFLICT('psr_v1', 'claude_md', 'Закрыто §5п.10 CLAUDE.md + хук CLAUDE.md-warn', 'GREEN'), @@ -681,7 +688,7 @@ const NODE_DETAILS = { [{ name: 'CLAUDE.md', desc: 'CLAUDE.md §5 п.10 требует править только через скил claude-md-management, а PSR_v1 это ограничение не повторяет — риск прямых Edit', type: 'GREEN' }] ), tooling: nd( - 'Реестр 70 позиций — 50 формализованных инструментов + 20 ruflo-плагинов; §4.10 — ruflo как advisory/automation-подсистема. Когда что использовать, команды установки, конфликты.', + 'Реестр 80 позиций — 60 формализованных инструментов + 20 ruflo-плагинов; §4.10 — ruflo как advisory/automation-подсистема. Когда что использовать, команды установки, конфликты.', 'При выборе инструмента для фазы (нулевая документация / первая backend / вторая frontend / третья перед запуском в боевую среду), при добавлении нового инструмента, при обновлении версий.', 'При прямом конфликте с CLAUDE.md побеждает CLAUDE.md (оперативная карта уровня 2a). Любая правка требует синхронизации с CLAUDE.md §3.', [ @@ -737,12 +744,12 @@ const NODE_DETAILS = { hookify_plugin: nd( 'Плагин создания хуков — анализирует разговоры и предлагает новые автоматизации в виде хуков.', 'При запросе «давай повесим хук на это поведение» или после серии повторяющихся ошибок — анализ через агента conversation-analyzer.', - 'Правило PSR_v1 R10.1. Новые хуки могут конфликтовать с существующими (см. конфликты ниже) — обязательная проверка файла настроек до создания.', - [{ name: 'PSR_v1', cond: 'R10.1: формализован' }], + 'PSR_v1 R10.1 блок 1 #58 (authoring-tooling). HK1 hard-rule: только по явному /hookify, не проактивно; перед генерацией хука — обязательный pre-check на коллизию с зарегистрированными хуками settings.json; перезапись 6-компонентной economy/skill-discipline архитектуры запрещена. ADR-010.', + [{ name: 'PSR_v1', cond: 'R10.1 блок 1 #58: authoring-tooling, HK1 pre-check (ADR-010)' }], [{ name: 'агент hookify:conversation-analyzer', cond: 'запускает анализ разговоров' }], [{ name: 'агент hookify:conversation-analyzer', cond: 'плагин и агент работают в паре' }], [ - { name: 'хук pre-claude-warn', desc: 'плагин hookify создаёт новые хуки PreToolUse на лету — может перезаписать или конкурировать с этим хуком', type: 'RED' } + { name: 'хук pre-claude-warn', desc: 'Закрыто правилом HK1 (ADR-010): hookify — только по явному /hookify, перед генерацией хука обязательный pre-check на коллизию с существующими хуками settings.json; перезапись 6-компонентной economy/skill-discipline архитектуры запрещена', type: 'GREEN' } ] ), @@ -1599,7 +1606,7 @@ const NODE_DETAILS = { 'Плагин Anthropic для создания новых скилов — eval-driven подход: датасеты сценариев, train/test split, бенчмарк-цикл.', 'При формализации повторяющегося процесса в скил с проверяемым выводом (генерация кода, преобразование файлов).', 'Включён в настройках (~/.claude/settings.json). Для discipline-скилов (TDD-типа) предпочтительнее скил writing-skills плагина Superpowers — у них разные философии.', - [{ name: 'PSR_v1', cond: 'R10.1: внешний плагин-инструмент' }], + [{ name: 'PSR_v1', cond: 'R10.1 блок 1 #56: authoring-tooling (ADR-010)' }], [], [{ name: 'скил writing-skills', cond: 'обе создают скилы — skill-creator eval-driven, writing-skills через TDD' }] ), @@ -1607,7 +1614,7 @@ const NODE_DETAILS = { 'Плагин Anthropic — рекомендатель автоматизаций (claude-automation-recommender): анализирует репозиторий и советует, какие MCP-серверы, скилы, хуки, суб-агентов добавить.', 'При настройке/ревизии автоматизации проекта — «чего не хватает в тулчейне».', 'Включён в настройках (~/.claude/settings.json). Рекомендации — совещательные, решение за заказчиком.', - [{ name: 'PSR_v1', cond: 'R10.1: внешний плагин-инструмент' }], + [{ name: 'PSR_v1', cond: 'R10.1 блок 1 #59: dev-support — рекомендации фильтруются R0/R10.1 (CCS1, ADR-010)' }], [], [] ), @@ -1615,7 +1622,7 @@ const NODE_DETAILS = { 'Плагин Anthropic для разработки плагинов Claude Code — 7 скилов (структура плагина, разработка скилов / агентов / хуков / команд, интеграция MCP, настройки).', 'При создании или правке плагина и его компонентов.', 'Включён в настройках. Содержит 3 агента, уже представленные на карте (agent-creator / plugin-validator / skill-reviewer).', - [{ name: 'PSR_v1', cond: 'R10.1: внешний плагин-инструмент' }], + [{ name: 'PSR_v1', cond: 'R10.1 блок 1 #57: authoring-tooling — только для marketplace-плагинов, не для вендоренного/self-authored (PD1, ADR-010)' }], [ { name: 'агент plugin-dev:agent-creator', cond: 'входит в плагин' }, { name: 'агент plugin-dev:plugin-validator', cond: 'входит в плагин' }, @@ -1627,7 +1634,7 @@ const NODE_DETAILS = { 'Плагин Anthropic — актуальная документация библиотек / фреймворков / API через MCP-инструменты query-docs и resolve-library-id.', 'При вопросах по библиотеке / фреймворку / SDK / CLI — синтаксис API, конфигурация, миграция версий. Предпочтительнее веб-поиска для документации библиотек.', 'Включён в настройках. Не для рефакторинга / отладки бизнес-логики / ревью — только документация.', - [{ name: 'PSR_v1', cond: 'R10.1: внешний плагин-инструмент' }], + [{ name: 'PSR_v1', cond: 'R10.1 блок 1 #60: dev-support — первый выбор для документации библиотек; WebFetch/WebSearch как fallback (CTX1, ADR-010)' }], [], [] ), @@ -1882,17 +1889,17 @@ const META_WINDOW = '09–16.05.2026'; // окно подсчёта испо // usesSrc: 'скил' | 'агент' | 'MCP' | 'хук' | 'memory-чтение' | 'коммиты' | 'инспекция' | '—' const NODE_META = { // ── ПРАВИЛА (4) — узлы-правила, напрямую не вызываются ── - pravila: { since: '06.05.2026', changed: '17.05.2026', uses: null, usesSrc: '—' }, - claude_md: { since: '06.05.2026', changed: '17.05.2026', uses: null, usesSrc: '—' }, - psr_v1: { since: '09.05.2026', changed: '17.05.2026', uses: null, usesSrc: '—' }, - tooling: { since: '06.05.2026', changed: '17.05.2026', uses: null, usesSrc: '—' }, + pravila: { since: '06.05.2026', changed: '18.05.2026', uses: null, usesSrc: '—' }, + claude_md: { since: '06.05.2026', changed: '18.05.2026', uses: null, usesSrc: '—' }, + psr_v1: { since: '09.05.2026', changed: '18.05.2026', uses: null, usesSrc: '—' }, + tooling: { since: '06.05.2026', changed: '18.05.2026', uses: null, usesSrc: '—' }, // ── ПЛАГИНЫ (5) ── superpowers: { since: '09.05.2026', changed: '—', uses: null, usesSrc: '—' }, fd_plugin: { since: '10.05.2026', changed: '—', uses: 1, usesSrc: 'скил' }, upm: { since: '10.05.2026', changed: '—', uses: 0, usesSrc: 'скил' }, claude_md_mgmt: { since: '10.05.2026', changed: '—', uses: 15, usesSrc: 'скил' }, - hookify_plugin: { since: '—', changed: '—', uses: null, usesSrc: '—' }, + hookify_plugin: { since: '—', changed: '18.05.2026', uses: null, usesSrc: '—' }, // ── СКИЛЫ SUPERPOWERS (14) — связка подключена 09.05.2026 ── sk_brainstorm: { since: '09.05.2026', changed: '—', uses: 44, usesSrc: 'скил' }, @@ -1991,10 +1998,10 @@ const NODE_META = { // ── АУДИТ-АКТУАЛИЗАЦИЯ 16.05.2026 — узлы добавлены по полному аудиту карты ── // uses новых узлов по транскриптам не измерялись (null = нет данных). - skill_creator: { since: '11.05.2026', changed: '—', uses: null, usesSrc: '—' }, - claude_setup: { since: '11.05.2026', changed: '—', uses: null, usesSrc: '—' }, - plugin_dev: { since: '—', changed: '—', uses: null, usesSrc: '—' }, - context7: { since: '—', changed: '—', uses: null, usesSrc: '—' }, + skill_creator: { since: '11.05.2026', changed: '18.05.2026', uses: null, usesSrc: '—' }, + claude_setup: { since: '11.05.2026', changed: '18.05.2026', uses: null, usesSrc: '—' }, + plugin_dev: { since: '—', changed: '18.05.2026', uses: null, usesSrc: '—' }, + context7: { since: '—', changed: '18.05.2026', uses: null, usesSrc: '—' }, hk_self_check: { since: '10.05.2026', changed: '—', uses: null, usesSrc: '—' }, hk_skill_marker: { since: '10.05.2026', changed: '—', uses: null, usesSrc: '—' }, hk_skill_check: { since: '10.05.2026', changed: '—', uses: null, usesSrc: '—' },