Files
brain/docs/Tooling_v8_3.md
T

2100 lines
275 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.
# Приложение Н — Tooling, скиллы и плагины Claude (v8.3)
**Дата:** 27.05.2026
**Версия:** 2.25 (Прил. Н v2.25 — research-tooling (Perplexity Pack): §4.60 #87 perplexity MCP + §4.61 #88 exa MCP + §4.62 #89 firecrawl MCP — новая **20-я off-phase подкатегория research-tooling** (внешние MCP веб-разведки, READ-ONLY, платные API — ключи только в env); §0 счётчик 84→87 (104→107 total), off-phase row +54→+57; cross-ref Pravila v1.44+ / PSR_v1 v3.24+ / CLAUDE.md v2.46+; ADR-019 (RT1RT9). Узлы: #87 perplexity (`@perplexity-ai/mcp-server` — ранжированный ответ-с-источниками sonar) + #88 exa (`exa-mcp-server` — семантическое/нейро обнаружение) + #89 firecrawl (`firecrawl-mcp` — глубокое чтение/обход). Gate-постура read_only зафиксирована в коде (commit `bfc1f575`, `tools/mcp-tool-classifier.mjs` +тест); IS9-вет `docs/research/research-vet.md` — все три ПРИНЯТ; связка L17 (research chain). Plan `docs/superpowers/plans/2026-06-14-perplexity-pack-plan3-router-registry.md`. **Прил. Н v2.24 наследие** — knowledge-graph-tooling: §4.59 (#86) graphifyy — 19-я off-phase подкатегория **knowledge-graph-tooling** (skill-based CLI, user-level `~/.claude/skills/graphify/`); §0 счётчик 83→84 (103→104 total), off-phase row +53→+54; cross-ref Pravila v1.43+ / PSR_v1 v3.23+ / CLAUDE.md v2.32+; ADR-017 (KG1KG5). Граничные правила: KG1 ↔ context7 #60 (внутренний codebase vs внешние SDK-доки), KG2 ↔ Boost #10 (static graph vs runtime queries), KG3 ↔ openapi-mcp #47 (весь проект vs один спек), KG4 ↔ Sentry MCP #34 (структурные связи vs runtime errors), KG5 ↔ adr-kit #36 / mermaid #37 (auto-discovery vs manual authoring). Spike `spike/graphify-2026-05-27`: 3 фазы (docs/ + .claude/ + app/) → ultimate combined граф 6305 узлов / 6753 рёбер / 1009 communities (93% EXTRACTED / 7% INFERRED). Артефакты `graphify-out*/` обязательно gitignored. **Прил. Н v2.23 наследие** — C1 marketing-tooling: §4.49–§4.58 (#74#83) — 18-я off-phase подкатегория **marketing-tooling** (раздел C1 «Маркетинг и лидогенерация»); §0 счётчик 73→83 (93→103 total), off-phase row +43→+53; cross-ref Pravila v1.42+ / PSR_v1 v3.22+ / CLAUDE.md v2.28+; ADR-015 (MKT1MKT10). Узлы: #74 marketing plugin (Anthropic, 8 скилов — первичный решатель C1) + #75 marketingskills (вендоренный скил-набор, MIT, 40 скилов — материал, модель UPM) + #76 brand-voice (Anthropic partner Tribe AI, 3 скила — вербальный бренд) + #77 marketing-ru (self-authored project-скил, РФ-специфика C1) + #78 Яндекс.Метрика MCP (`atomkraft/yandex-metrika-mcp`, MIT, READ-ONLY, выбран по IS9-вету из 3 кандидатов) + #79 Яндекс.Директ+Wordstat MCP (`SvechaPVL/yandex-mcp`, MIT — **только Wordstat-инструменты; Direct-мутации НЕ активированы** per IS9) + #80 Telegram MCP (`chigwell/telegram-mcp`, Apache-2.0, выделенный аккаунт) + #81 Postiz (`gitroomhq/postiz-app`, AGPL-3.0, внутренний self-host без модификаций и дистрибуции) + #82 DataForSEO MCP (**DEFERRED** — платный, после Б-1) + #83 Unisender Go MCP (**DEFERRED** — нет готового upstream-сервера, своя обёртка по потребности). IS9-вет выполнен: `docs/security/marketing-vet.md` — все 5 внешних PASS/PASS-with-conditions; VK standalone MCP отброшен (0★, право тратить бюджет). Plan `docs/superpowers/plans/2026-05-22-c1-marketing-tooling.md`. **Прил. Н v2.22 наследие** — pg_audit #28 + pg_anonymizer #29 **установлены на боевом liderra.ru 22.05.2026** (расширения PostgreSQL фазы 3, ранее недоступные на dev native-Windows): §5.1 attribute-блоки #28/#29 + §6 compliance-таблица + §10.4 шаг 2 → ✅ прод; setup-док `docs/security/pgaudit-anonymizer-setup.md`; cross-ref Pravila v1.38 / PSR_v1 v3.21 / CLAUDE.md v2.26; счётчики без изменений (#28/#29 уже в phase-3). **Прил. Н v2.21 наследие** — A8 infosec-tooling install-sync: ZAP #68 + Ward #70 **установлены портативно 21.05.2026** (без choco — Go 1.26.3/Temurin JRE 17 zip с проверкой SHA256, всё в `bin/*` gitignored) → статус PENDING INSTALL снят в §4.43/§4.45 (dormant true→false) + §4.48 уточнён; setup-доки `docs/security/zap-setup.md` + `docs/security/ward-setup.md`; счётчики/состав реестра без изменений (73 формализованных / 93 total); cross-ref Pravila v1.38 / PSR_v1 v3.21 / CLAUDE.md v2.25; план `docs/superpowers/plans/2026-05-21-a8-infosec-tooling.md`. **v2.20 наследие:** Прил. Н v2.20 — A8 infosec-tooling: §4.43 #68 OWASP ZAP (MCP add-on, глубокая боевая DAST — **PENDING INSTALL**: нет Java) + §4.44 #69 Nuclei (CLI-бинарь `bin/nuclei.exe` v3.8.0, известные уязвимости — УСТАНОВЛЕН+verified; CLI не MCP) + §4.45 #70 Ward (CLI Go-бинарь, безопасность настроек Laravel — ЗАМЕНИЛ Enlightn abandoned/L13, **PENDING INSTALL**: нет Go) + §4.46 #71 pdn-152fz-audit + §4.47 #72 threat-model + §4.48 #73 security-go-live (self-authored project-скилы) — 17-я off-phase подкатегория **infosec-tooling**, раздел A8; §0 счётчик 67→73 (87→93 total), off-phase row +37→+43; cross-ref Pravila v1.37 / PSR_v1 v3.20 / CLAUDE.md v2.24; ADR-014 (IS1IS9). **v2.19 наследие:** A1 backend-tooling: §4.39 #64 Rector + rector-laravel (Composer dev-dep, авто-рефакторинг/version-upgrade, manual/CI постура — dry-run baseline 16 файлов, не блокирующий) + §4.40 #65 PHP Insights (Composer dev-dep, метрики complexity/architecture, on-demand/CI, SyntaxCheck removed — Windows subprocess-краш) + §4.41 #66 laravel-backend-patterns (self-authored project-скил, backend-конвенции Лидерры) + §4.42 #67 NightOwl (self-hosted runtime-телеметрия — **DEFERRED**: native-Windows нет pcntl/posix, OSS без MCP, hosted 152-ФЗ) — 16-я off-phase подкатегория **backend-tooling**, раздел A1; §0 счётчик 63→67 (83→87 total), off-phase row +33→+37; cross-ref Pravila v1.35 / PSR_v1 v3.19 / CLAUDE.md v2.22; ADR-013. **v2.18 наследие:** finance-tooling (C6+C7): §4.36 #61 finance plugin (homed C7, cross-ref C6; US-GAAP частично, SOX not-applicable РФ, warehouse-MCP DEFERRED) + §4.37 #62 billing-audit (C6, self-authored) + §4.38 #63 ru-tax-accounting (C7, self-authored) — 15-я off-phase подкатегория finance-tooling; §0 счётчик 60→63 (80→83 total), off-phase row +30→+33; cross-ref Pravila v1.34 / PSR_v1 v3.18 / CLAUDE.md v2.21; ADR-012. **v2.17 наследие:** applied 9-attribute row template per ADR-011 brain-governance spec §4.1. §0.1 row template +Атрибуты blocks для 58 узлов: §2.4 dump phase-0 (9 nodes #1-9 incl. dormant #1 PG MCP), §3.5 dump phase-1 (9 nodes #10-18 incl. dormant #17 pg_partman), §4.1-§4.4 inline phase-2 (7 nodes #19-23+#24+#30), §5.1 dump phase-3 (5 nodes #25-29), §4.5-§4.17 inline off-phase #31-42 incl. ruflo §4.10 dormant, §4.18-§4.35 inline off-phase #43-60. Структурный реестр для router procedure step 3 (`docs/router-procedure.md` v1.0). Связано: ADR-011, spec/plan brain-governance, Pravila v1.33 / PSR_v1 v3.17 / CLAUDE.md v2.20. **v2.16 наследие:** компакция «мозга» — SYSTEM-аудит 18.05.2026 findings 2/3/6/7: §0 +«КАНОН СЧЁТЧИКОВ» anchor — Прил. Н §0 объявлен единственным источником числовых счётчиков тулчейна, CLAUDE.md / Pravila §13.2 / PSR_v1 R10.1 переведены на пин-ссылку (finding 3 — устранение дрейфа счётчиков); §12 заголовок «вне 35 формализованных позиций» → «вне реестра» — убран stale-счётчик. Счётчики тулчейна без изменений — 60 формализованных + 20 ruflo = 80 total. План `docs/superpowers/plans/2026-05-18-brain-compaction-findings-2-3-6-7.md`. **v2.15 наследие:** ruflo isolation — §4.10 +status block: ruflo отключён от активного потока Claude 18.05.2026 без удаления артефактов; live-связи hooks/MCP/daemon выключены; план реактивации в Pravila §14.9 + memory `feedback_ruflo_isolated.md`; счётчики тулчейна без изменений — 60 формализованных позиций + 20 ruflo plugins = 80 total. Rec2 SYSTEM-аудита 18.05.2026. **v2.14 наследие:** authoring-tooling + dev-support — формализованы 5 Anthropic dev-плагинов уже включённых в `~/.claude/settings.json` user-level: #56 skill-creator / #57 plugin-dev / #58 hookify (новая 13-я off-phase подкатегория authoring-tooling — §4.31/§4.32/§4.33) + #59 claude-code-setup / #60 context7 (новая 14-я off-phase подкатегория dev-support — §4.34/§4.35); §0 счётчик 55→60 (75→80 total), off-phase row +25→+30. hookify HK1 — hard-rule pre-check на коллизию с economy/skill-discipline хуками, закрывает 🔴-конфликт карты `hookify_plugin ↔ hk_pre_claude`. Конфликт-аудит — ADR-010 (SC1SC3 / PD1PD3 / HK1HK3 / CCS1 / CTX1CTX2). Связано: PSR_v1 v3.13, Pravila v1.28, CLAUDE.md v2.15; план `docs/superpowers/plans/2026-05-18-anthropic-dev-tooling-formalization.md`. **v2.13 наследие:** discovery-tooling — формализован #55 discovery-interview (self-authored project-скил `.claude/skills/discovery-interview/`, два режима — FEATURE интервью заказчика перед фичей + SYSTEM ориентация по мета-слою) как новая 12-я off-phase подкатегория discovery-tooling — §4.30; §0 счётчик 54→55 (74→75 total), off-phase row +24→+25. Триггер-eval 20/20. Конфликт-аудит — ADR-009 DI1–DI6: разрез по слою-источнику с process-analysis #53. Связано: PSR_v1 v3.12, Pravila v1.26, CLAUDE.md v2.13; план `docs/superpowers/plans/2026-05-18-discovery-interview-integration.md`. **v2.12 наследие:** C10 business-process — формализованы #51 operations (Claude Code marketplace-плагин `operations@knowledge-work-plugins` v1.2.0, Anthropic Verified — 9 скилов process-doc/process-optimization/change-request/capacity-plan/compliance-tracking/risk-assessment/runbook/status-report/vendor-review, 0 lifecycle-хуков) + #52 process-modeling + #53 process-analysis (self-authored project-скилы `.claude/skills/`, BPMN-моделирование to-be + as-is discovery) + #54 n8n-mcp (`czlonkowski/n8n-mcp`, MIT, workflow-движок — **DEFERRED**, у портала нет n8n) как новая 11-я off-phase подкатегория business-process — §4.26/§4.27/§4.28/§4.29; §0 счётчик 50→54 (70→74 total), off-phase row +20→+24. Конфликт-аудит — OPS1 (process-doc↔mermaid рендер-SoT), OPS5 (operations generic ↔ self-authored stack-grounded), N8N1 (n8n-mcp DEFERRED — n8n не в стеке портала), LINT1 (self-authored скилы линтуются, не в ignorePaths). Связано: PSR_v1 v3.11, Pravila v1.25, CLAUDE.md v2.12; план `docs/superpowers/plans/2026-05-17-c10-business-process-tooling-integration.md`. **v2.11 наследие:** ADR-006 Decision-4 icon-path boundary mirror — §4.20 +UI3: Lucide-иконки канонически через `lucide-vue-next` + Vuetify `IconSet` (CTO-19), raw-SVG `get_icon` Universal Icons MCP — только для не-Lucide коллекций; источник — ADR-006 поправка 17.05.2026. Счётчики без изменений — 50 формализованных позиций / 70 total. Связано: CLAUDE.md v2.11, ADR-006. **v2.10 наследие:** A11 ml-ai-tooling — формализованы #48 promptfoo (npm devDependency `promptfoo` v0.121.11, MIT — CLI-eval LLM-промптов) + #49 Data Scientist skill (вендоренный сторонний скил `.claude/skills/data-scientist/`, классический ML-воркфлоу, код MIT / контент CC BY 4.0) + #50 Jupyter MCP (`datalayer/jupyter-mcp-server`, исполняемые ноутбуки — **DEFERRED**, требует Python ML-окружения) как новая 10-я off-phase подкатегория ml-ai-tooling — §4.23/§4.24/§4.25; §0 счётчик 47→50 (67→70 total), off-phase row +17→+20. Конфликт-аудит — ML1 (promptfoo платные вызовы → только вручную/CI, никогда в хук), ML3 (Data Scientist skill вендорен → lefthook exclude), ML7 (bus-factor → вендоринг). Связано: PSR_v1 v3.10, Pravila v1.24, CLAUDE.md v2.10; план `docs/superpowers/plans/2026-05-17-a11-ml-ai-tooling-integration.md`. **v2.9 наследие:** A3 integration-tooling — формализован #47 openapi-mcp-server (`@ivotoby/openapi-mcp-server`, npm, v1.14.0, MIT) как 9-я off-phase подкатегория integration-tooling — §4.22; §0 счётчик 46→47 (66→67 total), off-phase row +16→+17. Связано: PSR_v1 v3.9, Pravila v1.23, CLAUDE.md v2.9; план `docs/superpowers/plans/2026-05-17-a3-integration-tooling-integration.md`. **v2.8 наследие:** A4 design-tooling — формализованы #44 Figma MCP (remote MCP, extract-only, DEFERRED — нет Figma-аккаунта) + #45 Universal Icons MCP (`mcp-universal-icons`, MIT) + #46 Design plugin (Anthropic Verified) как новая 8-я off-phase подкатегория design-tooling — §4.19/§4.20/§4.21; §0 счётчик 43→46 (63→66 total), off-phase row +13→+16. Связано: PSR_v1 v3.8, Pravila v1.22, CLAUDE.md v2.8; план `docs/superpowers/plans/2026-05-17-a4-design-tooling-integration.md`. **v2.7 наследие:** A6-расширение — deptrac: формализован #43 deptrac (Composer dev-dependency `deptrac/deptrac` v4.6.1, BSD-3-Clause) как 4-й инструмент off-phase подкатегории architecture-tooling — архитектурный fitness-гейт направления зависимостей / границ слоёв; врезан как lefthook pre-commit job 10; конфиг `app/deptrac.yaml` (13 слоёв), первый прогон 0 нарушений → baseline-файл не нужен (red-green доказан); §4.18 новый; §0 счётчик 42→43 (62→63 total), off-phase row +12→+13. Связано: PSR_v1 v3.7, Pravila v1.21, CLAUDE.md v2.7; план `docs/superpowers/plans/2026-05-17-deptrac-architecture-fitness-integration.md`. **v2.6 наследие:** C9 project-management — формализованы #41 CCPM (vendored standalone skill) + #42 product-management (Anthropic-verified marketplace plugin) как новая 7-я off-phase подкатегория «project-management» — §4.16/§4.17; §0 счётчик 40→42 (60→62 total); off-phase row +10→+12. Связано: PSR_v1 v3.6, Pravila v1.20, CLAUDE.md v2.6; план `docs/superpowers/plans/2026-05-17-c9-project-management-tooling-integration.md`. **v2.5 наследие:** фактическая правка #40 Security Guidance — это **блокирующий** PreToolUse-хук (`sys.exit(2)`), не warn-only: при первом за сессию срабатывании уязвимого паттерна блокирует правку (одноразовый speed-bump, retry проходит). §4.15 переписан, SG1 уточнён, +SG2 — Windows-починка python3-резолва (`python3.exe`-шим). Счётчики не меняются — 40 позиций. Связано: PSR_v1 v3.5, Pravila v1.19, CLAUDE.md v2.5; план `docs/superpowers/plans/2026-05-17-d3-audit-risk-tooling-integration.md`. **v2.4 наследие:** D3 audit-security — формализованы #39 Trail of Bits Skills (субсет 8 audit-плагинов, marketplace `trailofbits`, CC-BY-SA-4.0) + #40 Security Guidance (Anthropic PreToolUse-хук) как новая 6-я off-phase подкатегория «audit-security» — §4.14/§4.15; §0 счётчик 38→40 (58→60 total); off-phase row +8→+10. Связано: PSR_v1 v3.4, Pravila v1.18, CLAUDE.md v2.4; план `docs/superpowers/plans/2026-05-17-d3-audit-risk-tooling-integration.md`. **v2.3 наследие:** A6 architecture-tooling — формализованы 3 инструмента раздела A6 карты «Архитектура систем»: **#36 adr-kit** (ADR-решения + `adr-judge` gate), **#37 mermaid-skill** (C4-диаграммы), **#38 architecture-patterns** (паттерны) — новые §4.11–4.13, новая пятая off-phase подкатегория «architecture-tooling»; §0 счётчик 35→38 формализованных позиций (55→58 total), §0 table row off-phase +5→+8. Связано: PSR_v1 v3.3, Pravila v1.17, CLAUDE.md v2.3; план `docs/superpowers/plans/2026-05-17-a6-architecture-tooling-integration.md`. **v2.2 наследие:** §4.10 реколлаж — ruflo переописан из «entry-point иерархии» в «advisory/automation-подсистему» (декларация приведена к рантайму: рой idle, 0 задач); заголовок §4.10 + «Архитектурная роль» переписаны; §0 table row + «Категории off-phase tools» + «Назначение» обновлены; §13 +v2.2 entry. Связано: Pravila v1.16, PSR_v1 v3.2, CLAUDE.md v2.2; spec `docs/superpowers/specs/2026-05-16-ruflo-hierarchy-factual-recollage-design.md`. **v2.1 наследие:** §4.10 +абзац «Queen trigger»: триггер queen/королева → безусловный route через ruflo Queen (`hive-mind spawn --claude`), explicit hard-rule Pravila §14, enforcement-хук `tools/ruflo-queen-hook.mjs`. Связано: spec/plan `docs/superpowers/{specs,plans}/2026-05-15-ruflo-queen-trigger-and-delegation*`, Pravila v1.15, CLAUDE.md v2.1, PSR_v1 v3.1. **v2.0 наследие:** Ruflo big-bang — major bump: добавлен **orchestration layer (ruflo)** как четвёртая off-phase подкатегория. §0 +ruflo orchestration row: 35 формализованных позиций + 20 ruflo plugins = 55 total; новая §4.10 «Orchestration layer (ruflo)». Связано: spec/plan 2026-05-15, Pravila v1.14, PSR_v1 v3.0, CLAUDE.md v2.0.)
**Предыдущая версия:** 1.17 (13.05.2026 day +1 — формализация retrospective двух off-phase MCP debug-инструментов установленных на feat/claude-automation `6f7e7d7` + `bd4ec48` после merge PR #3 в main `cc5f63b`: §0 счётчик off-phase 3 → 5, итого 33 → 35; §4.8 новый — #34 Sentry MCP; §4.9 новый — #35 Redis MCP. Категория debug-runtime, отдельная от UI-пула.)
**Адресат:** Claude + разработчики проекта Лидерра
**Назначение:** единый источник истины по 84 формализованным позициям тулчейна + 20 ruflo orchestration plugins = 104 total (29 «активных» номеров фаз + 54 off-phase инструментов-резерв в категориях UI-пул, инфраструктура, debug-runtime, architecture-tooling, audit-security, project-management, design-tooling, integration-tooling, ml-ai-tooling, business-process, discovery-tooling, authoring-tooling, dev-support, finance-tooling, backend-tooling, infosec-tooling, marketing-tooling, knowledge-graph-tooling — UPM, 21st, claude-md-management, Sentry MCP, Redis MCP, adr-kit, mermaid-skill, architecture-patterns, Trail of Bits Skills, Security Guidance, CCPM, product-management, deptrac, Figma MCP, Universal Icons MCP, Design plugin, openapi-mcp-server, promptfoo, Data Scientist skill, Jupyter MCP, operations, process-modeling, process-analysis, n8n-mcp, discovery-interview, skill-creator, plugin-dev, hookify, claude-code-setup, context7, finance plugin, billing-audit, ru-tax-accounting, Rector, PHP Insights, laravel-backend-patterns, NightOwl, OWASP ZAP, Nuclei, Ward, pdn-152fz-audit, threat-model, security-go-live, marketing plugin, marketingskills, brand-voice, marketing-ru, Яндекс.Метрика MCP, Яндекс.Директ+Wordstat MCP, Telegram MCP, Postiz, DataForSEO MCP, Unisender Go MCP, graphifyy; +1 заменённый PG MCP исторически; +ruflo advisory/automation-подсистема — 20 plugins, см. §4.10), скиллам Claude Code, MCP-серверам и плагинам, используемым в проекте. Зафиксирован выбор, объяснено, что заменяет что, и в какой фазе вводится каждый инструмент.
> **Связано:**
>
> - `Pravila_raboty_Claude_v1_1.md` v1.11+ — §11 «Superpowers override», §12 «Superpowers hard rule», §12.3 SoT для exclusions, §13 «paired stack + расширенный пул UI-инструментов» + claude-md-management как off-pool, §13.6 hard-rule tier-таблица, §13.9 hard-link на R10 PSR_v1, §13.10 hard-link на R14 PSR_v1, §4.8 «Шифры приложений» (Н занят)
> - `Plugin_stack_rules_v1.md` v2.0+ — координация paired-stack ядра (Superpowers + Frontend Design) + расширенного пула (UPM + 21st Magic MCP) + инфраструктурного плагина (claude-md-management) (R10.1 разбит на 3 блока, R0.4.A SoT cross-ref, R10.4/R14.7 tier-метки, R8 +тай-брейкер FD↔21st, R0.1 scope-метка; R15 motion удалён в v2.0)
> - `CLAUDE.md` (корень репозитория) v1.88+ — оперативная карта инструментов с приоритетом правил (уровень 0 = Pravila §12, уровень 3 = Plugin_stack_rules_v1); §3.3 +#31 UPM +#32 21st +#33 claude-md-management; §5 п.5 свёрнут со ссылкой на PSR_v1 R14; §5 п.11 cross-ref на Pravila §12.3 SoT; §5 п.12 — резерв (motion-runtime denylist снят в v1.88); §6 счётчик 33 (3 off-phase tools)
> - `README_АРХИВ_v8_4.md` v8.4+ — состав архива
**Что нового в v1.16 (12.05.2026):**
- **§9.2 «Motion runtime библиотеки» переформулирован из regulatory denylist в technical guidance.** R15 PSR_v1 снят целиком (v1.7 → v2.0); motion-v / gsap / anime.js / lottie-web / popmotion / @motionone/dom — безусловно разрешены к установке. framer-motion / react-spring остаются как **technical block** — это peerDep на React, не правило проекта. Default motion stack (Vue native + Vuetify + CSS + View Transitions) — guidance, не hard-rule.
- **Cross-refs шапки sync:** PSR_v1 v1.7+ → v2.0+; CLAUDE.md v1.86+ → v1.88+; Pravila v1.10+ → v1.11+.
- **§6 строка «framer-motion ↔ motion-v»** оставлена как historical record v1.4 audited construction (snapshot эпохи, не удаляется при rollback'е).
- **Связано:** PSR_v1 v1.7 → v2.0 (R15 удалено), CLAUDE.md v1.87 → v1.88 (§5 п.12 → резерв, §2 motion stack → guidance), Pravila v1.10 → v1.11.
Через `/claude-md-management:claude-md-improver` + manual Edit.
**Что нового в v1.13 (10.05.2026):**
- **§7 «Source of truth» обновлён с 5-уровневой на 7-уровневую цепочку.** Добавлен `Plugin_stack_rules_v1.md` (PSR_v1) уровнем 3 — координирующий слой между paired-stack ядром (Superpowers + Frontend Design) и расширенным UI-пулом (UPM + 21st). Также явно вынесен Pravila §12 (Superpowers hard rule) уровнем 0 — выше всех остальных параграфов Pravila. Sync с CLAUDE.md §1. Закрывает audit находку «Tooling §7 не упоминает PSR_v1 в иерархии» (1 из 14 находок).
- **§4.7 (новый) — #33 claude-md-management plugin** формализован как off-phase инфраструктурный инструмент. Был фактически включён в `~/.claude/settings.json` (`enabledPlugins.claude-md-management@claude-plugins-official=true`) с момента появления требования CLAUDE.md §5 п.10 «правки CLAUDE.md только через плагин» — но до v1.13 без формализации в реестре. Теперь имеет номер #33 (по аналогии с UPM #31 и 21st #32 в v1.12), при этом в **отдельной категории** (инфраструктурная, не UI) — поэтому не попадает под Pravila §13 расширенного UI-пула и не проходит R6.0/R6.1 фильтр / R14 pipeline. Закрывает audit находку «5-й включённый плагин без номера в реестре».
- **§6 «Конфликты и решения» расширен с 5 до 10 строк.** Добавлены 5 новых конфликтов из PSR_v1 v1.4: (6) UPM ↔ FD на одной фазе, (7) 21st ↔ существующий Vuetify-компонент, (8) 21st ↔ брендовый App*-компонент, (9) framer-motion ↔ motion-v, (10) UPM ↔ 21st на одной фазе. Закрывает audit находку «Tooling §6 застрял на v1.0».
- **§4.6 — settings.json → ~/.claude.json:** уточнено, что API-ключ 21st хранится именно в `~/.claude.json`, **не** в `~/.claude/settings.json` (отдельный файл без секретов). При случайном попадании в репо ротация — через 21st.dev dashboard. Закрывает audit находку «текстовая неточность в комментарии безопасности».
- **§0 сводка обновлена:** добавлена строка «off-phase tools» с 3 инструментами (UPM #31, 21st #32, claude-md-management #33). Итого формализованных позиций: **33** (19/29 активных по фазам + 3 off-phase + 1 заменённый PG MCP исторически).
- **Связано:** Pravila v1.8 → v1.9 (§12.3 SoT, §13.2 +claude-md-management как off-pool, §13.6 hard-rule tier, §0 scope-метка); PSR_v1 v1.4 → v1.5 (R10.1 на 3 блока, R0.4.A SoT cross-ref, R10.4/R14.7 tier-метки, R8 +тай-брейкер, R0.1 scope); CLAUDE.md v1.83 → v1.84 (§1 scope, §3.3 +#33, §5 п.5 свёрнут, §5 п.11 cross-ref, §6 счётчик 33).
**Что было в v1.12 (10.05.2026):**
- **#31 UI UX Pro Max (skill, `nextlevelbuilder/ui-ux-pro-max-skill`) формализован как «инструмент-резерв вне фаз».** Был фактически включён в `~/.claude/settings.json` (`enabledPlugins.ui-ux-pro-max@ui-ux-pro-max-skill=true`) до v1.12 без формализации. Теперь зафиксирован: роль = резерв-библиотека (50+ стилей, 161 палитра, 99 UX-гайдлайнов, 25 типов графиков, 10 стеков); активация — только через PSR_v1 v1.4 R14.3 pipeline (фаза 2 R2 как fallback к FD ИЛИ фаза 1 R2 как «третий вариант» в R12 архитектурном). Никогда не решатель (R10.2 PSR_v1). Не закрывает задачу (R7). Обязательный стек-фильтр R6.0 PSR_v1 (срезать React/Next/Tailwind/shadcn материалы) + hard-override Forest R6.1. См. §4.5 ниже.
- **#32 21st.dev Magic MCP (`magic` MCP-сервер) формализован как «инструмент-резерв вне фаз».** Был фактически подключён в `~/.claude.json` (с API-ключом, npm-пакет `@21st-dev/magic@latest`) до v1.12 без формализации. Tools: `mcp__magic__21st_magic_component_builder`, `_inspiration`, `_refiner`, `logo_search`. Роль = генератор стартовых шаблонов для UI-компонентов, отсутствующих в Vuetify и `resources/js/components/`. По умолчанию выдаёт **React + Tailwind + shadcn** — обязательный полный pipeline R14.4 PSR_v1: pre-check R0.6 (брендовый App*? Vuetify-эквивалент? существующий компонент? — все три «нет» обязательно) → R6.0 фильтр (JSX→Vue SFC, Tailwind→utility-CSS, shadcn→Vuetify) → R6.1 hard-override (палитра/шрифты/иконки → Forest, Lucide) → FD адаптация → возврат в фазу 5 R2 stack-flow. Никогда не решатель. Не закрывает задачу. Pa11y обязателен на deployable (R7). См. §4.6 ниже.
- **Структура §4 обновлена:** добавлены §4.5 «Резерв-библиотека UI — UI UX Pro Max» и §4.6 «Генератор шаблонов — 21st.dev Magic MCP». Оба не привязаны к фазе по тулчейну (post-MVP инструменты-резерв).
- **§9 «Что НЕ ставим» дополнен разделом «Motion runtime библиотеки» (R15 PSR_v1 v1.4):** framer-motion (R15.1 hard-запрет, React-only), motion-v (R15.2 условно по 4 триггерам), gsap, anime.js, react-spring (R15.1-аналог, React-only), lottie-web, popmotion, @motionone/dom — все под R0.6 пункт 11 hard-стоп. Default motion stack: Vue native `<Transition>` + Vuetify transitions + CSS @keyframes + View Transitions API.
- **Сводка §0:** 28 «активных» номеров фаз → 29 номеров фаз (как было в v1.10/v1.11) + 2 формализованных «вне фаз» в v1.12 (UPM + 21st Magic MCP) = **31 формализованных позиций тулчейна** (но активных «по фазе» считаются только 19 из 29 на текущий момент; UPM + 21st — *off-phase tools*).
- **Связано:** Pravila v1.7 → v1.8 (§13 расширен, §13.10 hard-link на R14); CLAUDE.md v1.82 → v1.83 (§3.3 + новые строки, §5 п.5 расширен, §5 п.12 motion-runtime новый); PSR_v1 v1.3 → v1.4 (R6/R6.1/R10/R11/R0.6/R13/R14/R15).
**Что нового в v1.10 (09.05.2026):**
- **#30 Frontend Design plugin (Anthropic) добавлен в фазе 2 (paired stack со Superpowers).** Запрет CLAUDE.md §5 п.5 снят 09.05.2026 по явному решению заказчика. Координация двух плагинов вынесена в `docs/Plugin_stack_rules_v1.md` (10 правил: gate, классификация, фазы UI-фичи, разделение TDD/визуал, ревью по аспекту, стек-фильтр Vue+Vuetify, gate готовности, тай-брейкеры). 8 ранее найденных конфликтов между плагинами закрыты патчами. Установка через `~/.claude/settings.json`: `extraKnownMarketplaces` + `enabledPlugins.frontend-design@anthropics-claude-plugins=true`. Обязательный стек-фильтр (Правило 6 Plugin_stack_rules_v1): Vue 3 + Vuetify 3, отфильтровывать React/Tailwind/shadcn/JSX. A11y технический остаётся за Pa11y (CLAUDE.md §5 п.3); Frontend Design покрывает только a11y-принципы. Активных инструментов фазы 2: 6 → 7. Всего активных: 18 → 19 из 28 → 29 номеров.
- **Структура §4 обновлена:** добавлен §4.4 «Доменный слой UI — Frontend Design plugin». Ранее §4 (фаза 2) состоял из §4.1 Superpowers + §4.2 Frontend-инструменты + §4.3 Histoire. Теперь — §4.1 Superpowers + §4.2 Frontend-инструменты + §4.3 Histoire + §4.4 Frontend Design plugin.
**Что было в v1.6 (08.05.2026 поздний вечер):**
- **#15 squawk v2.51.0 установлен** (npm-wrapper `squawk-cli` + бинарь скопирован в `bin/squawk.exe`, паттерн как у gitleaks/lychee). Конфиг `.squawk.toml` в корне отключает 9 правил: 5 bootstrap-неприменимых (require-timeout-settings, prefer-robust-stmts, require-concurrent-index-creation, constraint-missing-not-valid, adding-foreign-key-constraint) и 4 дизайнных (prefer-identity, prefer-text-field, prefer-bigint-over-int, prefer-bigint-over-smallint). Smoke-test на `db/schema.sql` — 0 issues с конфигом. Pre-commit хук в `lefthook.yml` (job 7) на staged `*.sql`. npm-скрипт `npm run lint:sql`.
- **#16 pgFormatter v5.9 установлен** (Perl-скрипт + lib/ из GitHub Releases распакованы в `bin/pgFormatter/`, запуск через Cygwin Perl 5.42.2 из Git for Windows). **Без pre-commit хука auto-fix** — diff против db/schema.sql 3255 строк (pgFormatter переписывает UPPERCASE→lowercase для типов, плотный одностроковый стиль для колонок, перетасовывает inline-комментарии). Стиль schema.sql ручной (выровненные колонки, ASCII-разделители) — авто-fix недопустим. Доступ через npm-скрипты `npm run format:sql:check` (dry-run + diff) и `npm run format:sql` (пишет в `db/schema.sql.formatted` для review, не перезаписывает source).
- **Активных инструментов фазы 1: 13 из 17.** Установлено в фазе 1: #10 Boost, #11 Pint, #12 Larastan, #13 Roave/SA, #14 IDE Helper, #15 squawk, #16 pgFormatter, #18 Pest 4. **Не применимо**: #17 pg_partman (Windows native стек не имеет PG-расширения, заменён ручным cron'ом). Фаза 1 по тулчейну **закрыта** — следующий триггер (фаза 2) — первый коммит в `resources/js/`.
**Что было в v1.5 (08.05.2026 поздний вечер):**
- **#10 Laravel Boost v2.4.6 установлен ВРУЧНУЮ** (коммит `e04f53b`). Wizard `php artisan boost:install` сломан в обоих режимах на этой машине: интерактив падает на UTF-8 кириллице в пути при рендере `laravel/prompts` multiselect, `--no-interaction` падает в баге L13 `ConfiguresPrompts::multiselectFallback` (null → array_map crash). Manual setup: `app/boost.json` (3 ключа: agents/guidelines/mcp), запись `laravel-boost` в корневом `.mcp.json` (command=php, args=[app/artisan, boost:mcp]), кастомный guideline `app/.ai/guidelines/vuetify.md`. Smoke-test JSON-RPC 2024-11-05 — 9 tools (database-query/schema/connections, application-info, last-error, read-log-entries, search-docs, browser-logs, get-absolute-url). Подробности — memory `feedback_environment.md` п.26.
- **Уточнение к §3.1 п.3 «отключить guidelines»** — избыточно. Boost через `laravel/roster` auto-detect видит установленные пакеты в composer.lock; то, что не установлено (Inertia, Livewire, Tailwind, Filament, Flux UI, Nova, Folio, Volt, Wayfinder, Sail, PHPUnit), не серверится. Список оставлен в §3.1 как **исторический контекст** того, что мы НЕ ставим (CLAUDE.md §5 п.2), но как «отключение» в boost.json не реализуется.
- **Уточнение к §10.2 пути** — кастомные guidelines идут в `app/.ai/guidelines/*.md` (или `*.blade.php`), а не в `resources/boost/guidelines/`. Подтверждено source-кодом `GuidelineComposer::userGuidelineDir = '.ai/guidelines'`.
- **#13 Roave/SecurityAdvisories установлен** (коммит `0eb2f72`). Метапакет `roave/security-advisories:dev-latest` в `require-dev`. Conflict-only — блокирует install версий с известными CVE. На текущем снапшоте — 0 advisories.
- **Активных инструментов фазы 1: 11 из 17** (на момент v1.5; в v1.6 → 13/17 после squawk+pgFormatter). Установлено в фазе 1: #10 Boost, #11 Pint, #12 Larastan, #13 Roave/SA, #14 IDE Helper, #18 Pest 4. Остаются: #15 squawk (Windows binary), #16 pgFormatter (Perl), #17 pg_partman (заменён ручным cron'ом — Windows native стек не имеет PG-расширения, см. project_phase1_strategy).
**Что нового в v1.4 (08.05.2026 поздний вечер):** **Laravel 11 → Laravel 13** в §0 (стек) и §3.2 (фаза 1 backend). Произошло так: при `composer create-project laravel/laravel app` без `^11` Composer подтянул свежайшую — `laravel/framework: ^13.7` (Laravel 13.7, релиз ~Feb 2026). Live-проверка совместимости 5 ключевых плагинов прошла без блокеров: Boost v2.4.6 (composer dry-run резолвит lock без conflict), Larastan v3.9.6 (analyse прошёл с baseline), Pest v4.7.0 (smoke-test 2/2 за 281 ms), barryvdh/laravel-ide-helper v3.7.0 (`ide-helper:generate` создал `_ide_helper.php`), laravel/pint v1.29 (`pint --test` passed). Заказчик 08.05 (поздний вечер) принял Laravel 13 как latest stable. Откат дороговат — `rm -rf app/ && composer create-project laravel/laravel:^11 app && повторить predis/Pest/Pint/Larastan/IDE Helper`. Техдолг: синхронизация narrative ТЗ + `Vybor_oblaka_v8_3.md` + `Админка_SaaS_v8_2.md` под Laravel 13 — отдельная задача для следующих сессий (пока эти документы упоминают Laravel 11 как было). Подробности в [Открытые_вопросы_v8_3.md §3 и блоке v1.17](Открытые_вопросы_v8_3.md).
Установлены 3 dev-инструмента из фазы 1 (Прил. Н #11/#12/#14): laravel/pint v1.29, larastan/larastan v3.9.6 (+ phpstan v2.1.54), barryvdh/laravel-ide-helper v3.7.0. phpstan.neon level 5 + phpstan-baseline.neon (3 ошибки в default scaffold зафиксированы как baseline). composer.json scripts: `composer pint`, `composer pint:test`, `composer stan`, `composer ide-helper`.
**Что было в v1.3 (08.05.2026 поздний вечер):** **Pest 3 → Pest 4** в §3.3 п.18 (тестирование), §6 п.2 (конфликт), §10.1 п.9 (boost:install). Решение: при `composer require pestphp/pest --dev --with-all-dependencies` без `^3` composer подтянул Pest v4.7.0; smoke-test 2/2 на default-тестах Laravel прошёл за 281 ms — backward-compat подтверждён. Бонус Pest 4: browser testing (без Dusk), stress testing, mutation testing v2. Откат дёшев — `composer require pestphp/pest:^3`. Подробности в [Открытые_вопросы_v8_3.md §3](Открытые_вопросы_v8_3.md#3-cto--архитектору) и блоке «Что изменилось в v1.16» там же.
**Что было в v1.2 (08.05.2026 вечер):** **Sail отключён** из allow-list Boost (§3.1 п.2/п.3). Причина: машина — OpenStack-VPS, nested virtualization выключена провайдером, Docker Desktop/WSL2/Hyper-V запустить невозможно (`HypervisorPresent = True`, но guest не получает VT-x). Переход на native-стек: **PostgreSQL 16** (`choco install postgresql16`, Windows-сервис) + **Memurai Developer** (`choco install memurai-developer.install`, Redis 7-совместимый Windows-сервис, free до 1GB). pg_partman/pg_audit/pg_anonymizer на native Windows — ручная сборка/замена; на MVP — заменить ручным cron'ом для партиций и triggers (которые уже в schema v8.5). Подробности в `memory/project_phase1_strategy.md`.
**Что было в v1.1 (08.05.2026):** закрыт CTO-12 — выбран **Pest 3** (не PHPUnit). Обновлены §3.1 п.4 (boost:install), §3.4 (тестирование), §6 п.2 (конфликт Pest↔PHPUnit), §10.1 п.9 (процедура перехода). Обоснование выбора — в [Открытые_вопросы_v8_3.md §3](Открытые_вопросы_v8_3.md#3-cto--архитектору) (Pest dataset'ы для 14 статусов / 34 RLS, architecture testing для закрепления правил Claude, родной для Boost).
**Что было в v1.0:** первая версия 06.05.2026. Зафиксированы 28 активных инструментов в 4 фазах, перечень того, что НЕ ставим (10 пунктов), источники истины для конфигураций, процедура перехода между фазами, особенности Windows + PowerShell.
---
## 0. Сводка
| Фаза | Триггер | Активных к концу фазы | Δ к предыдущей |
|---|---|---|---|
| **0 — сейчас** (документация + 8 HTML-прототипов) | сразу | **9** | +9 |
| **1 — старт Laravel** | `composer create-project laravel/laravel` | **17** | +9 новых, −1 заменённый (PostgreSQL MCP → Laravel Boost) |
| **2 — старт frontend** | первый коммит в `resources/js/` (Vue 3 + Vuetify 3) | **24** | +7 (включая #30 Frontend Design plugin, добавлен post-MVP в v1.10) |
| **3 — pre-production** | ~спринт 12, перед публичным релизом | **29** | +5 |
| **off-phase tools** | по факту включения в `~/.claude/settings.json` / `~/.claude.json` / `.mcp.json` / `.claude/skills/` / `composer.json` / `package.json` | **+57** | #31 UPM (UI-резерв), #32 21st Magic MCP (UI-генератор), #33 claude-md-management (инфраструктура CLAUDE.md edits), #34 Sentry MCP (debug self-hosted Sentry в Yandex Cloud), #35 Redis MCP (debug Memurai/Redis runtime), #36 adr-kit (ADR-решения, architecture-tooling), #37 mermaid-skill (C4-диаграммы), #38 architecture-patterns (паттерны), #39 Trail of Bits Skills (8 audit-плагинов, audit-security), #40 Security Guidance (inline security warn-hook), #41 CCPM (PRD→эпик→issue→код трассируемость, project-management), #42 product-management (product-strategy церемонии, project-management), #43 deptrac (архитектурный fitness-гейт, architecture-tooling), #44 Figma MCP (извлечение дизайн-токенов, design-tooling, DEFERRED), #45 Universal Icons MCP (SVG-иконки, design-tooling), #46 Design plugin (дизайн-критика/UX, design-tooling), #47 openapi-mcp-server (introspection OpenAPI/REST, integration-tooling), #48 promptfoo (CLI-eval LLM-промптов, ml-ai-tooling), #49 Data Scientist skill (классический ML-воркфлоу, ml-ai-tooling), #50 Jupyter MCP (исполняемые ноутбуки, ml-ai-tooling, DEFERRED), #51 operations (документирование/оптимизация/change-mgmt бизнес-процессов, business-process), #52 process-modeling (BPMN-моделирование to-be, business-process), #53 process-analysis (as-is discovery/узкие места, business-process), #54 n8n-mcp (workflow-движок, business-process, DEFERRED), #55 discovery-interview (интервью-discovery FEATURE/SYSTEM, discovery-tooling), #56 skill-creator (конструктор скилов, authoring-tooling), #57 plugin-dev (конструктор плагинов, authoring-tooling), #58 hookify (генератор хуков, authoring-tooling), #59 claude-code-setup (рекомендатель автоматизаций, dev-support), #60 context7 (документация библиотек, dev-support), #61 finance plugin (финансы/бухгалтерия US-GAAP, finance-tooling), #62 billing-audit (денежные инварианты биллинга, finance-tooling), #63 ru-tax-accounting (РСБУ/НК РФ контекст, finance-tooling), #64 Rector (авто-рефакторинг/version-upgrade PHP, backend-tooling), #65 PHP Insights (метрики качества/сложности кода, backend-tooling), #66 laravel-backend-patterns (backend-конвенции Лидерры, backend-tooling), #67 NightOwl (runtime-телеметрия self-hosted, backend-tooling, DEFERRED), #68 OWASP ZAP (глубокая боевая DAST, infosec-tooling, MCP, установлен 21.05), #69 Nuclei (известные уязвимости, infosec-tooling, CLI), #70 Ward (безопасность настроек Laravel, infosec-tooling, CLI, установлен 21.05), #71 pdn-152fz-audit (аудит ПДн/152-ФЗ, infosec-tooling), #72 threat-model (STRIDE угрозы going-public, infosec-tooling), #73 security-go-live (go-live security-gate, infosec-tooling), #74 marketing plugin (первичный решатель C1, marketing-tooling), #75 marketingskills (резерв-библиотека фреймворков, marketing-tooling), #76 brand-voice (вербальный бренд, marketing-tooling), #77 marketing-ru (РФ-специфика маркетинга, marketing-tooling), #78 Яндекс.Метрика MCP (веб-аналитика READ-ONLY, marketing-tooling), #79 Яндекс.Директ+Wordstat MCP (Wordstat only, marketing-tooling), #80 Telegram MCP (постинг/управление каналами, marketing-tooling), #81 Postiz (планировщик соцсетей self-hosted, marketing-tooling), #82 DataForSEO MCP (SEO-данные РФ, marketing-tooling, DEFERRED), #83 Unisender Go MCP (email-рассылки обёртка, marketing-tooling, DEFERRED), #86 graphifyy (knowledge graph портала docs+code, knowledge-graph-tooling), #87 perplexity MCP (веб-разведка/ранжированный ответ sonar, research-tooling), #88 exa MCP (семантическое обнаружение, research-tooling), #89 firecrawl MCP (глубокое чтение/обход, research-tooling) |
| **ruflo advisory/automation-подсистема** (off-phase, post-MVP 2026-05-15) | `npx ruflo@latest init` + `.mcp.json` ruflo entry | **+20 plugins** | `ruflo` v3.7.0-alpha.38+ + 20 plugins (`@claude-flow/*`, IPFS-registry) — advisory/automation-подсистема; orchestration подкатегория off-phase (см. §4.10) |
**Итого формализованных позиций:** 87 (29 активных по фазам + 57 off-phase + 1 заменённый PG MCP исторически) + 20 ruflo orchestration plugins = **107 total**. Полный перечень — §2–§5 (по фазам) + §4.5/§4.6/§4.7/§4.8/§4.9/§4.11/§4.12/§4.13/§4.14/§4.15/§4.16/§4.17/§4.18/§4.19/§4.20/§4.21/§4.22/§4.23/§4.24/§4.25/§4.26/§4.27/§4.28/§4.29/§4.30/§4.31/§4.32/§4.33/§4.34/§4.35/§4.36/§4.37/§4.38/§4.39/§4.40/§4.41/§4.42/§4.43/§4.44/§4.45/§4.46/§4.47/§4.48/§4.49/§4.50/§4.51/§4.52/§4.53/§4.54/§4.55/§4.56/§4.57/§4.58/§4.59/§4.60/§4.61/§4.62 (off-phase) + §4.10 (ruflo orchestration). Карта «когда что использовать» — §7. Что НЕ ставим и почему — §9.
**КАНОН СЧЁТЧИКОВ.** Числовые счётчики формализованных позиций и off-phase подкатегорий тулчейна каноничны здесь — в Прил. Н §0. CLAUDE.md, Pravila §13.2 и PSR_v1 R10.1 ссылаются сюда формулировкой «реестр и счётчики — Tooling Прил. Н §0» и не дублируют числа. Введено SYSTEM-аудитом 18.05.2026 (finding 3) для устранения класса «арифметический дрейф счётчиков» (ловился аудитами v1.85/v1.86).
### §0.1 Row template (v2.17+ — per ADR-011)
Every row §4.X (а также вынесенные блоки §2.4 для phase-0, §3.5 для phase-1 и т.д. — где узлы зафиксированы таблицами, а не отдельными подсекциями) MUST include 9 obligatory attributes in a structured block at the top of the section:
| Attribute | Type | Required | Description |
|---|---|---|---|
| `id` | `#NN` | yes | Unique number (matches Прил. Н TOC) |
| `name` | string | yes | Canonical tool name |
| `kind` | enum | yes | `plugin` / `skill` / `mcp` / `hook` / `vendored-skill` / `composer-dep` / `npm-dep` / `agent` / `binary-dep` |
| `phase` | enum | yes | `0` / `1` / `2` / `3` / `off-phase` |
| `subcategory` | string | optional | Off-phase subcategory (absent for phase-active) |
| `triggers` | string | yes | Keywords/task-types that route to this node |
| `boundaries` | string | yes | ADR-cross-ref OR explicit «no neighbor» |
| `dormant` | boolean | yes | `false` (active) / `true` (artefacts kept, runtime disabled) |
| `last-touched` | ISO date | yes | Date of last registry update |
Block format (markdown table inside the §4.X section, immediately after the section heading):
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #NN | &lt;name&gt; | &lt;kind&gt; | &lt;phase&gt; | &lt;subcat or —&gt; | «&lt;triggers&gt;» | &lt;ADR-NNN or none&gt; | false | 2026-05-19 |
Existing prose follows the table.
**Ключевой принцип фазирования:** не активируем фазу N+1, пока не закрыт триггер фазы N. Без `composer create-project` Boost не работает; без Vuetify-приложения Histoire бесполезен.
---
## 1. Принципы выбора
1. **Один инструмент на задачу.** Если две тулзы делают одно — оставляем одну, явно указываем какую (см. §6 «Конфликты и решения»).
2. **Dev-only для local tooling.** Boost, IDE Helper, Pint, Histoire и т. п. ставятся как `--dev` и не идут в production.
3. **Pre-commit для быстрых проверок, CI для медленных.** gitleaks / markdownlint / Pint — pre-commit. Larastan / Semgrep / Trivy / Pa11y — CI.
4. **Контекст Claude — это ресурс.** Не ставим тулзы, дублирующие моё базовое поведение (Memory MCP, Sequential Thinking MCP).
5. **Phase-gating.** Триггер каждой фазы — конкретное действие в репозитории. До триггера — не ставим.
6. **Дополнение, не замена правил Claude.** Любой плагин уступает в приоритете `Pravila_raboty_Claude_v1_1.md` — см. §7.
7. **Бесплатное предпочтительнее платного при сопоставимом качестве.** Dependabot вместо Snyk; Semgrep CE вместо CodeQL Enterprise.
---
## 2. Фаза 0 — текущая (9 инструментов)
Применяется немедленно. Покрывает работу с документацией (17 файлов в `docs/` + `db/`) и HTML-прототипами (`web/*.html`, 2 из 8 готовы).
### 2.1. MCP-серверы (3)
| # | Инструмент | Установка | Когда использовать | Не использовать когда |
|---|---|---|---|---|
| 1 | **PostgreSQL MCP** (`@modelcontextprotocol/server-postgres`) | `claude mcp add postgres ...` | Валидация `db/schema.sql` запросами к локальной БД (`information_schema`, `\d <table>`, FK-проверки) | На production-БД; после установки Boost (заменяется) |
| 2 | **Playwright MCP** (`@playwright/mcp`) | `claude mcp add playwright ...` | Открыть `web/*.html`, скриншот, проверка интерактива (zxcvbn в 01-login, ApexCharts в 02-dashboard) | Для unit-тестов Vue (это Vitest в фазе 2) |
| 3 | **GitHub MCP** | `claude mcp add github ...` | Issues по Биз-10..16, PR с авто-changelog, привязка коммитов к ID открытых вопросов | С токеном, имеющим `delete_repo` или `admin:org` |
### 2.2. Линтеры документации (4)
| # | Инструмент | Установка | Когда использовать | Конфликт |
|---|---|---|---|---|
| 4 | **markdownlint-cli2** | `npm i -D markdownlint-cli2` | Стиль 17 `.md` файлов (заголовки, таблицы, списки, длина строк) | Не использовать Prettier для `.md` — портит таблицы |
| 5 | **cspell** + словари ru/en + проектный | `npm i -D cspell @cspell/dict-ru_ru @cspell/dict-en_us` | Орфография ru/en + кастомный словарь («Лидерра», «УПД», «РКН», «ГЦК», «КЦ», «Yandex», «Vuetify») | — |
| 6 | **lychee** | `cargo install lychee` или GitHub Releases | Проверка кросс-ссылок между 17 файлами архива (правило §4.7 правил Claude) | Не использовать `markdown-link-check` (lychee быстрее, на Rust) |
| 7 | **Stylelint** + `stylelint-config-standard` `^40.0.0` | `npm i -D stylelint stylelint-config-standard` | Стиль CSS в `<style>` прототипов; в фазе 2 распространяется на Vue SFC | — |
### 2.3. Безопасность (2)
| # | Инструмент | Установка | Когда использовать |
|---|---|---|---|
| 8 | **gitleaks** | GitHub Releases (`gitleaks_<v>_windows_x64.zip`) | Pre-commit hook: поиск телефонов, email, токенов, ИНН, КЭП в diff. Правило §5.2 правил Claude |
| 9 | **Pa11y** | `npm i -D pa11y pa11y-ci` | WCAG 2.1 AA проверка прототипов. Требование брендбука §3.4. Единственный источник истины по a11y во всём проекте |
### 2.4. Атрибуты узлов фазы 0 (per ADR-011)
Структурированные блоки 9-атрибутного шаблона §0.1 для phase-0 узлов #1#9. Шаблон введён ADR-011 (Task A3 sub-batch 1, 19.05.2026). Существующие таблицы §2.1/§2.2/§2.3 сохраняются как human-readable дескрипция; блоки ниже — machine-friendly реестр атрибутов.
#### #1 PostgreSQL MCP
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #1 | PostgreSQL MCP | mcp | 0 | — | «SQL validation, schema check, dev DB introspection» | none (заменён #10 Laravel Boost в фазе 1 — см. §3.1) | true | 2026-05-19 |
Прим.: dormant=true — узел исторически замещён #10 Boost при переходе в фазу 1; артефакт реестра сохраняется как historic slot (CLAUDE.md §3.1 row #1).
#### #2 Playwright MCP
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #2 | Playwright MCP | mcp | 0 | — | «HTML prototype, screenshot, interaction smoke» | none | false | 2026-05-19 |
#### #3 GitHub MCP
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #3 | GitHub MCP | mcp | 0 | — | «issues, PR, commits, открытые вопросы» | none | false | 2026-05-19 |
#### #4 markdownlint-cli2
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #4 | markdownlint-cli2 | npm-dep | 0 | — | «lint .md, markdown style, заголовки/таблицы» | none | false | 2026-05-19 |
#### #5 cspell
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #5 | cspell | npm-dep | 0 | — | «орфография ru/en, кастомный словарь» | none | false | 2026-05-19 |
#### #6 lychee
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #6 | lychee | binary-dep | 0 | — | «проверка ссылок .md, кросс-ссылки архива» | none | false | 2026-05-19 |
#### #7 Stylelint
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #7 | Stylelint | npm-dep | 0 | — | «CSS lint, Vue SFC style» | none | false | 2026-05-19 |
#### #8 gitleaks
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #8 | gitleaks | binary-dep | 0 | — | «секреты в diff, pre-commit hook» | none | false | 2026-05-19 |
#### #9 Pa11y
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #9 | Pa11y | npm-dep | 0 | — | «a11y WCAG 2.1 AA, прототипы, технический SoT» | none | false | 2026-05-19 |
---
## 3. Фаза 1 — старт Laravel (+9 новых, −1 заменён, итого 17 активных)
**Триггер:** `composer create-project laravel/laravel app` в подпапке проекта.
### 3.1. Главное — замена PostgreSQL MCP на Laravel Boost
| # | Инструмент | Установка | Что заменяет |
|---|---|---|---|
| ~~1~~ → 10 | **Laravel Boost** | `composer require laravel/boost --dev` + `php artisan boost:install` | Заменяет PostgreSQL MCP (#1). Даёт 9 MCP-tools (Application Info, Database Query, Database Schema, Browser Logs, Last Error, Read Log Entries, Get Absolute URL, Search Docs, Database Connections) + guidelines + Documentation API на 17 000+ фрагментов |
**Обязательные настройки при `boost:install`:**
1. `CLAUDE.md` — НЕ перезаписывать. Сохранить уже существующий (см. §7). Слить вручную, если Boost создаст черновик: добавить boost-секции в конец, оставив §1–§7 нашего CLAUDE.md выше.
2. Из 25+ встроенных guidelines оставить только: **Laravel Framework**, **Pint**, **Pennant**, **MCP**. (**Sail убран 08.05.2026 — на текущей машине Docker невозможен из-за отсутствия nested virtualization, см. project_phase1_strategy memory.** Native стек: native PostgreSQL 16 + Memurai Redis-compatible.)
3. Отключить: **Inertia**, **Livewire**, **Tailwind**, **Filament**, **Flux UI**, **Nova**, **Folio**, **Volt**, **Wayfinder**, **Sail** — у нас их нет (Sail отключён 08.05.2026 после обнаружения OpenStack-VPS без nested-virt; native стек = единственный путь).
4. **Pest 4** — выбран (CTO-12 переоткрыт+закрыт 08.05.2026 поздний вечер, см. [Открытые_вопросы_v8_3.md §3](Открытые_вопросы_v8_3.md#3-cto--архитектору)). Отключить guideline PHPUnit, оставить только Pest. composer.json в `app/` уже на `pestphp/pest: ^4.7`.
5. Создать кастомный guideline для **Vuetify 3**: `resources/boost/guidelines/vuetify.blade.php` (см. §10.2).
6. **Запретить production DB connection**`.env.production` не должен попадать в локальный Boost-конфиг.
7. `.mcp.json`**в репозиторий** (не в gitignore), чтобы у команды одинаковая конфигурация (расхождение со стандартной рекомендацией Boost'а).
### 3.2. Анализаторы PHP (4)
| # | Инструмент | Установка | Роль |
|---|---|---|---|
| 11 | **Laravel Pint** | `composer require laravel/pint --dev` | Code style PSR-12. Pre-commit hook |
| 12 | **Larastan** (PHPStan для Laravel) | `composer require larastan/larastan --dev` | Статанализ типов, level 8/9. CI-only (медленно для pre-commit) |
| 13 | **Roave/SecurityAdvisories** | `composer require --dev roave/security-advisories:dev-latest` | Превентивная блокировка установки composer-пакетов с известными CVE |
| 14 | **Laravel IDE Helper** | `composer require barryvdh/laravel-ide-helper --dev` | Stubs для IDE (фасады, модели, мета-инфо) |
### 3.3. БД-инструменты (3)
| # | Инструмент | Установка | Роль |
|---|---|---|---|
| 15 | **squawk** | `npm i -g squawk-cli` + копия `~/AppData/Roaming/npm/.../binaries/squawk``bin/squawk.exe` (npm-wrapper не находит spawn-target без `.exe` на Windows) | Линтер миграций PostgreSQL — предупреждает о блокирующих ALTER на партиционированных таблицах (`deals`, `supplier_lead_costs`). Конфиг `.squawk.toml` отключает 9 правил (5 bootstrap + 4 дизайнных). Pre-commit hook на staged `*.sql` |
| 16 | **pgFormatter** | `curl -L https://github.com/darold/pgFormatter/archive/refs/tags/v5.9.tar.gz \| tar xz`; копия `pg_format` + `lib/` в `bin/pgFormatter/`; запуск через Cygwin Perl 5.42.2 из Git for Windows | Форматирование SQL. **Только ручной режим** через `npm run format:sql:check` / `npm run format:sql` — без авто-fix хука (diff vs db/schema.sql 3255 строк, ручной стиль не перезаписывается) |
| 17 | **pg_partman** | Расширение PostgreSQL: `CREATE EXTENSION pg_partman` | Автоматическое создание помесячных партиций `deals_YYYY_MM` и `supplier_lead_costs_YYYY_MM` (вместо ручного списка из `db/schema.sql`) |
### 3.4. Тестирование (1)
| # | Инструмент | Установка | Роль |
|---|---|---|---|
| 18 | **Pest 4** | `composer require pestphp/pest --dev --with-all-dependencies` + `vendor/bin/pest --init` | Тесты PHP. Pest 3 → Pest 4 после live-проверки на стеке 08.05.2026 поздний вечер (CTO-12 переоткрыт+закрыт, см. [Открытые_вопросы_v8_3.md §3](Открытые_вопросы_v8_3.md#3-cto--архитектору)). Использовать datasets для параметризации 14 статусов воронки и 34 RLS-политик; architecture testing — для закрепления правил Claude (например, запрет mocks на integration-тестах). Бонус Pest 4: browser testing (без Dusk), stress, mutation v2 |
### 3.5. Атрибуты узлов фазы 1 (per ADR-011)
Структурированный реестр 9-атрибутов для phase-1 нодов #10#18 (по ADR-011, см. §0.1). #17 pg_partman помечен `dormant: true` — на native Windows-PG расширение недоступно, заменён ручным cron'ом (Artisan-команда `partitions:create-months`, см. CLAUDE.md §6).
#### #10 Laravel Boost
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #10 | Laravel Boost | composer-dep | 1 | — | «SQL, Eloquent, docs Laravel, Roster auto-detect» | replaces #1 PG MCP | false | 2026-05-19 |
#### #11 Laravel Pint
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #11 | Laravel Pint | composer-dep | 1 | — | «PHP code style, форматтер» | none | false | 2026-05-19 |
#### #12 Larastan
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #12 | Larastan | composer-dep | 1 | — | «статанализ PHP, типы» | none | false | 2026-05-19 |
#### #13 Roave/SecurityAdvisories
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #13 | Roave/SecurityAdvisories | composer-dep | 1 | — | «CVE на install» | none | false | 2026-05-19 |
#### #14 Laravel IDE Helper
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #14 | Laravel IDE Helper | composer-dep | 1 | — | «IDE-stubs PHP, @mixin» | none | false | 2026-05-19 |
#### #15 squawk
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #15 | squawk | binary-dep | 1 | — | «лит миграций PostgreSQL» | none | false | 2026-05-19 |
#### #16 pgFormatter
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #16 | pgFormatter | binary-dep | 1 | — | «форматирование SQL» | none | false | 2026-05-19 |
#### #17 pg_partman
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #17 | pg_partman | pg-extension | 1 | — | «партиционирование PG» | replaced by Artisan partitions:create-months (CLAUDE.md §6) | true | 2026-05-19 |
#### #18 Pest
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #18 | Pest | composer-dep | 1 | — | «тесты PHP, browser, stress, mutation v2» | replaces PHPUnit | false | 2026-05-19 |
---
## 4. Фаза 2 — старт frontend (+7 новых, итого 24 активных)
**Триггер:** первый коммит в `resources/js/` или отдельную папку Vue-приложения.
### §4.0 Краткая сводка узлов (auto-generated)
<!-- auto:tooling-registry-summary:begin -->
<!-- This block is auto-generated from docs/registry/nodes.yaml. Do not edit by hand. -->
| ID | Узел | Категория | Статус |
|---|---|---|---|
| #2 | Playwright MCP | phase-0 | active |
| #3 | GitHub MCP | phase-0 | active |
| #4 | markdownlint-cli2 | phase-0 | active |
| #5 | cspell | phase-0 | active |
| #6 | lychee | phase-0 | active |
| #7 | Stylelint | phase-0 | active |
| #8 | gitleaks | phase-0 | active |
| #9 | Pa11y | phase-0 | active |
| #10 | Laravel Boost | phase-1 | active |
| #11 | Laravel Pint | phase-1 | active |
| #12 | Larastan | phase-1 | active |
| #13 | Roave/SecurityAdvisories | phase-1 | active |
| #14 | Laravel IDE Helper | phase-1 | active |
| #15 | squawk | phase-1 | active |
| #16 | pgFormatter | phase-1 | active |
| #17 | pg_partman | phase-1 | dormant |
| #19 | Superpowers v5.1.0 | phase-2 | active |
| #18 | Pest 4 | phase-1 | active |
| #1 | PostgreSQL MCP | phase-0 | historic |
| #20 | Volar | phase-2 | active |
| #21 | vue-tsc | phase-2 | active |
| #22 | ESLint + Prettier + plugin-vue + config-prettier | phase-2 | active |
| #23 | Vitest | phase-2 | active |
| #24 | Histoire | phase-2 | active |
| #25 | Semgrep + Semgrep MCP | phase-3 | active |
| #26 | Trivy | phase-3 | active |
| #27 | GitHub Dependabot | phase-3 | active |
| #28 | pg_audit | phase-3 | active |
| #29 | pg_anonymizer | phase-3 | active |
| #30 | Frontend Design plugin | phase-2 | active |
| #31 | UI UX Pro Max | off-phase | active |
| #32 | 21st.dev Magic MCP | off-phase | active |
| #33 | claude-md-management | off-phase | active |
| #34 | Sentry MCP | off-phase | active |
| #35 | Redis MCP | off-phase | active |
| #36 | adr-kit | off-phase | active |
| #37 | mermaid-skill | off-phase | active |
| #38 | architecture-patterns | off-phase | active |
| #39 | Trail of Bits Skills | off-phase | active |
| #40 | Security Guidance | off-phase | active |
| #41 | CCPM | off-phase | active |
| #42 | product-management | off-phase | active |
| #43 | deptrac | off-phase | active |
| #44 | Figma MCP | off-phase | deferred |
| #45 | Universal Icons MCP | off-phase | active |
| #46 | Design plugin | off-phase | active |
| #47 | openapi-mcp-server | off-phase | active |
| #48 | promptfoo | off-phase | active |
| #49 | Data Scientist skill | off-phase | active |
| #50 | Jupyter MCP | off-phase | deferred |
| #51 | operations | off-phase | active |
| #52 | process-modeling | off-phase | active |
| #53 | process-analysis | off-phase | active |
| #54 | n8n-mcp | off-phase | deferred |
| #55 | discovery-interview | off-phase | active |
| #56 | skill-creator | off-phase | active |
| #57 | plugin-dev | off-phase | active |
| #58 | hookify | off-phase | active |
| #59 | claude-code-setup | off-phase | active |
| #60 | context7 | off-phase | active |
| #61 | finance plugin | off-phase | active |
| #62 | billing-audit | off-phase | active |
| #63 | ru-tax-accounting | off-phase | active |
| #64 | Rector | off-phase | active |
| #65 | PHP Insights | off-phase | active |
| #66 | laravel-backend-patterns | off-phase | active |
| #67 | NightOwl | off-phase | deferred |
| #68 | OWASP ZAP | off-phase | active |
| #69 | Nuclei | off-phase | active |
| #70 | Ward | off-phase | active |
| #71 | pdn-152fz-audit | off-phase | active |
| #72 | threat-model | off-phase | active |
| #73 | security-go-live | off-phase | active |
| #74 | marketing | off-phase | active |
| #75 | marketingskills | off-phase | active |
| #76 | brand-voice | off-phase | active |
| #77 | marketing-ru | off-phase | active |
| #78 | Яндекс.Метрика MCP | off-phase | active |
| #79 | Яндекс.Директ+Wordstat MCP | off-phase | active |
| #80 | Telegram MCP | off-phase | active |
| #81 | Postiz | off-phase | active |
| #82 | DataForSEO MCP | off-phase | deferred |
| #83 | Unisender Go MCP | off-phase | deferred |
| #84 | normative-sync | off-phase | active |
| #85 | prod-deploy-validator | off-phase | active |
| #86 | graphifyy | off-phase | active |
| #87 | perplexity MCP | off-phase | active |
| #88 | exa MCP | off-phase | active |
| #89 | firecrawl MCP | off-phase | active |
<!-- auto:tooling-registry-summary:end -->
### 4.1. Поведенческий слой — Superpowers (полный, hard rule)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #19 | Superpowers | plugin | 2 | — | «TDD, debug, plan, parallel, review, verify, brainstorm, worktree, finishing PR, subagent, writing-skills» | Pravila §12 hard-rule | false | 2026-05-19 |
> **Обновлено 09.05.2026 (v1.9 Прил. Н):** заказчик ввёл **hard rule §12** правил Claude: «всегда в первую очередь пользуешься superpowers. При этом ты не можешь игнорировать и обходить это правило». §9 «Отступления» к §12 не применяется. Карта 14 skills → 14 типов задач — в Pravila §12.2.
>
> **Прежнее (0809.05.2026):** v1.7 — 3/13 skills с запретами; v1.8 — снятие запретов через §11 override (вариант "A. Полное снятие"). Сейчас (v1.9) — обязательное первоочерёдное использование.
| # | Инструмент | Установка | Состав | Когда использовать |
|---|---|---|---|---|
| 19 | **Superpowers v5.1.0 (все 14 skills)** | Декларативно через `~/.claude/settings.json`: `extraKnownMarketplaces.superpowers-dev` (`{"source":"github","repo":"obra/superpowers"}`) + `enabledPlugins.superpowers@superpowers-dev=true`. Перезапуск Claude Code → плагин подгружается из marketplace в кэш автоматически. `/plugin install` в VSCode-extension недоступен | `brainstorming`, `dispatching-parallel-agents`, `executing-plans`, `finishing-a-development-branch`, `receiving-code-review`, `requesting-code-review`, `subagent-driven-development`, `systematic-debugging`, `test-driven-development`, `using-git-worktrees`, `using-superpowers`, `verification-before-completion`, `writing-plans`, `writing-skills` | TDD биллинга/RLS, разбор инцидентов, двухстадийный review schema.sql, planning-flow для крупных эпиков, parallel agents для независимых задач |
**Снятые ранее запреты (для исторической записи):**
- `brainstorming` — раньше дублировал §4.5 правил Claude. Теперь Pravila §11.1 разрешает override §4.5 при явном вызове skill.
- `writing-plans` + `executing-plans` — раньше дублировали §8.4. Теперь §11.1 разрешает хранить план в формате skill.
- `dispatching-parallel-agents` — раньше конфликтовал с §2.2. Теперь §11.1 разрешает закрытие подзадач без отдельного «закрываем»; **финальные** закрытия открытых вопросов реестра — по-прежнему только заказчиком.
- `using-git-worktrees` — Windows-нестабильность сохраняется как факт среды (см. §11.2 правил), но запрет в правилах снят.
**Что остаётся:** §1 (роль), §3.6 (язык), §5 (ПДн), §7 (финал-закрытие открытых вопросов) — не override-ятся (см. Pravila §11.2).
### 4.2. Frontend-инструменты (4)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #20 | Volar | vscode-ext | 2 | — | «Vue language server (VSCode)» | none | false | 2026-05-19 |
| #21 | vue-tsc | npm-dep | 2 | — | «type-check Vue (CI only)» | none | false | 2026-05-19 |
| #22 | ESLint + Prettier + plugin-vue + config-prettier | npm-dep | 2 | — | «лит JS/Vue, форматтер» | связка (R0.4) | false | 2026-05-19 |
| #23 | Vitest | npm-dep | 2 | — | «тесты Vue, unit/component» | none | false | 2026-05-19 |
| # | Инструмент | Установка | Роль | Конфликт |
|---|---|---|---|---|
| 20 | **Volar** (`Vue.volar`) | VSCode Marketplace | Language server для `.vue` (типы, intellisense, навигация) | — |
| 21 | **vue-tsc** | `npm i -D vue-tsc typescript` | Type-check `.vue` файлов | **Только в CI**, не в редакторе — иначе тормозит Volar |
| 22 | **ESLint + Prettier + eslint-config-prettier + eslint-plugin-vue** (связка, 1 инструмент в учёте) | `npm i -D eslint prettier eslint-config-prettier eslint-plugin-vue` | Линт + форматтер JS/Vue. `eslint-config-prettier` обязательно — отключает в ESLint всё, что делает Prettier. Для `.md` Prettier отключён через `.prettierignore` (markdownlint главный) | Связка ставится только целиком. Без `eslint-config-prettier` — конфликт правил |
| 23 | **Vitest** + `@vue/test-utils` | `npm i -D vitest @vue/test-utils @vitest/ui` | Тесты компонентов. Синтаксис близок к Pest для унификации backend↔frontend | Не использовать Jest — один тест-раннер на проект |
### 4.3. Каталог компонентов (1)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #24 | Histoire | npm-dep | 2 | — | «каталог компонентов, stories» | не Storybook | false | 2026-05-19 |
| # | Инструмент | Установка | Роль | Альтернатива |
|---|---|---|---|---|
| 24 | **Histoire 1.0-beta.1** | `npm i -D --legacy-peer-deps histoire @histoire/plugin-vue` | Каталог Vue-компонентов на базе Vuetify. Передача дизайнеру (Диз-1) и frontend-команде. **Vite 8 несовместимость:** заявлен peerDep `vite ^7`, ставим через `--legacy-peer-deps`; runtime smoke OK (08.05.2026 поздний вечер). При выходе beta.2+ с поддержкой Vite 8 — обновить. Конфиг: `app/histoire.config.ts` + `app/resources/js/histoire.setup.ts` (Vuetify через `defineSetupVue3`) | Не Storybook — он тяжелее, медленнее, ориентирован на React |
### 4.4. Доменный слой UI — Frontend Design plugin (paired со Superpowers)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #30 | Frontend Design plugin | plugin | 2 | — | «UI: компоненты, паттерны, состояния, a11y-принципы» | PSR_v1 R6/R6.1 (paired со Superpowers) | false | 2026-05-19 |
> **Введено 09.05.2026 (v1.10 Прил. Н):** запрет CLAUDE.md §5 п.5 на Frontend Design plugin снят по явному решению заказчика. Координация с #19 Superpowers — через `docs/Plugin_stack_rules_v1.md` (**v1.6, 16 правил R0R15**; cross-ref bumped в Tooling v1.14, раньше «10 правил» с эпохи v1.0). Парный stack одного приоритетного уровня; между плагинами нет иерархии. См. Pravila §13.
| # | Инструмент | Установка | Состав | Когда использовать |
|---|---|---|---|---|
| 30 | **Frontend Design plugin (Anthropic)** | Декларативно через `~/.claude/settings.json`: `extraKnownMarketplaces.anthropics-claude-plugins` (`{"source":"github","repo":"anthropics/claude-plugins"}` или другой источник, утверждённый Anthropic) + `enabledPlugins.frontend-design@anthropics-claude-plugins=true`. Перезапуск Claude Code → плагин подгружается из marketplace. `/plugin install` в VSCode-extension недоступен — ставится только через settings.json | Доменное знание UI: компоненты, layout, цвет, типография, паттерны, состояния (loading/empty/error), a11y-принципы | Чисто визуальные задачи (палитра, типография, layout-эскиз, выбор паттерна, иконка, состояния) и фазы 2/5/7 UI-фичи (см. Plugin_stack_rules_v1 Правило 2) |
**Обязательный стек-фильтр (Правило 6 Plugin_stack_rules_v1):**
| Что брать (универсально) | Что отфильтровать (стек-зависимо) |
|---|---|
| Принципы (a11y, контраст, фокус, иерархия, spacing-шкала) | Конкретные имена компонентов чужого стека |
| Паттерны (modal-flow, form-validation UX, empty/loading/error states) | Tailwind-классы, shadcn-импорты, JSX (CLAUDE.md §5 п.2) |
| Структуры состояний и переходов | Конкретные библиотеки иконок (у нас Lucide) |
| Цветовые/типографические системы как принципы | Конкретные палитры/шрифты (у нас Forest v8 + Inter/JetBrains Mono) |
Ответ Frontend Design без выполненной адаптации = **неполный ответ**, возвращается в плагин на доработку.
**A11y:** Frontend Design покрывает только **a11y-принципы** (контраст, фокус-порядок, иерархия). **Технический a11y** (DOM-семантика, aria-роли, keyboard) остаётся за Pa11y (CLAUDE.md §5 п.3). Без подмены источника истины.
**Live-отмены (Правило 0.4.B Plugin_stack_rules_v1):**
- «не используй Frontend сейчас» — отключает Frontend Design на текущее действие, Superpowers остаётся.
- «не используй плагины сейчас» — отключает весь stack на текущее действие.
### 4.5. Резерв-библиотека UI — UI UX Pro Max plugin (off-phase tool)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #31 | UI UX Pro Max | plugin | off-phase | UI-pool | «резерв UI, стили, палитры, графики, UX-гайдлайны» | PSR_v1 R14.3 pipeline | false | 2026-05-19 |
> **Введено 10.05.2026 (v1.12 Прил. Н):** формализован как «инструмент-резерв вне фаз». Был фактически включён через `~/.claude/settings.json` ещё с момента активации (до v1.12 — без правил). Координация — **PSR_v1 v1.6+ R10/R11/R14.3** (cross-ref bumped в Tooling v1.14).
| # | Инструмент | Установка | Состав | Когда использовать |
|---|---|---|---|---|
| 31 | **ui-ux-pro-max** (skill, marketplace `nextlevelbuilder/ui-ux-pro-max-skill`) | `~/.claude/settings.json`: `extraKnownMarketplaces.ui-ux-pro-max-skill` (`{"source":"github","repo":"nextlevelbuilder/ui-ux-pro-max-skill"}`) + `enabledPlugins.ui-ux-pro-max@ui-ux-pro-max-skill=true`. Перезапуск Claude Code → плагин подгружается из marketplace в кэш | Резерв-библиотека: 50+ aesthetic-стилей, 161 палитра, 99 UX-гайдлайнов, 25 типов графиков, 161 product type, 57 шрифтовых пар, 10 стеков (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind, shadcn/ui, HTML/CSS) | (1) Frontend Design выдал «не покрывает» / нужна узкоспецифика (chart-стек, экзотические шрифтовые пары, региональные UX-паттерны); (2) **R12 архитектурное решение** — UPM как источник «третьего варианта» в A/B/C по Pravila §4.5 (R11.5 PSR_v1) |
**Обязательные правила использования (PSR_v1 v1.6+):**
| Правило | Где | Что значит |
|---|---|---|
| **R10.2** «UPM read-only для решений» | R10.1 PSR_v1 | UPM выдаёт **материал** (палитра/паттерн/гайдлайн), решение принимает FD/Superpowers |
| **R10.1** «не параллельно» | R10.1 PSR_v1 | UPM активируется **последовательно**, не одновременно с FD |
| **R6.0** стек-фильтр | R6 PSR_v1 | срезать React/Next/Tailwind/shadcn материалы; оставить Vue + HTML/CSS-уровневые принципы |
| **R6.1** hard-override Forest | R6.1 PSR_v1 | UPM-палитра/шрифты/aesthetic игнорируются; Brandbook v2 Forest приоритетнее |
| **R11.3** запрет инверсии иерархии | R11 PSR_v1 | UPM-палитра НЕ заменяет Brandbook, даже если «выглядит лучше» |
| **R7** не закрывает задачу | R7 PSR_v1 | UPM никогда не закрыватель (нет в списке gate'ов) |
| **R11.5** активация в R12 | R11.5 PSR_v1 | На фазе 1 R2 для архитектурных решений как источник «третьего варианта» |
| **R14.3** место в pipeline | R14.3 PSR_v1 | Подзадача внутри R14 pipeline'а, не самостоятельный flow |
**Live-отмена (R0.4.B PSR_v1):** `/ui-ux-pro-max` — прямой вызов на одно действие (R6.0 фильтр и R6.1 override остаются обязательными).
### 4.6. Генератор шаблонов — 21st.dev Magic MCP (off-phase tool)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #32 | 21st.dev Magic MCP | mcp | off-phase | UI-pool | «генератор UI-шаблонов (LLM-based)» | PSR_v1 R14.4 pipeline + Pa11y mandatory | false | 2026-05-19 |
> **Введено 10.05.2026 (v1.12 Прил. Н):** формализован как «инструмент-резерв вне фаз». Был фактически подключён через `~/.claude.json` (с API-ключом, npm-пакет `@21st-dev/magic@latest`) ещё с момента активации (до v1.12 — без правил). Координация — **PSR_v1 v1.6+ R10/R14.4** (cross-ref bumped в Tooling v1.14).
| # | Инструмент | Установка | Состав | Когда использовать |
|---|---|---|---|---|
| 32 | **21st.dev Magic MCP** (`magic` сервер) | `~/.claude.json``mcpServers.magic.command="cmd"` + `args=["/c", "npx", "@21st-dev/magic@latest", "API_KEY=<ключ>"]` (npm wrapper). Tools: `mcp__magic__21st_magic_component_builder`, `_inspiration`, `_refiner`, `logo_search` | Генератор стартовых шаблонов для UI-компонентов (LLM-based, по умолчанию **React + Tailwind + shadcn**) | (1) задача = UI-фича по R1 PSR_v1; (2) нужный паттерн **отсутствует** в Vuetify-наборе и `resources/js/components/`; (3) задача **не попадает** в R0.6 hard-стоп (не брендовый App*, не изменение токенов, не cross-cutting); (4) FD на фазе 2 R2 принял решение «нужен кастомный компонент» |
**Обязательный pipeline R14.4 PSR_v1:**
```
1. Pre-check R0.6 пункты 9–10 (ОБЯЗАТЕЛЬНО):
- Брендовый App*-компонент? → hard-стоп, R12 архитектурное (3 варианта §4.5)
- Vuetify-эквивалент существует? → hard-стоп, использовать Vuetify
- Существующий компонент в resources/js/components/? → hard-стоп, использовать его
- Если на все три «нет» → продолжить
2. Вызов mcp__magic__21st_magic_component_builder с описанием паттерна
3. Сгенерированный черновик (по умолчанию React + Tailwind + shadcn) → R6.0 фильтр:
- JSX → Vue SFC template
- Tailwind classes → Vuetify utility / inline CSS
- shadcn components → Vuetify-эквивалент
- React imports/hooks → Vue Composition API
4. → R6.1 hard-override:
- Палитра → Forest (Teal/Ivory/теало-нуар)
- Шрифты → Inter / JetBrains Mono
- Иконки → Lucide
5. → FD адаптирует под фазу 5 R2
6. → возврат в фазу 5 stack-flow
7. Pa11y проход (R7) на deployable артефакт ОБЯЗАТЕЛЕН перед commit
```
**Сгенерированный JSX-черновик НЕ коммитится в `resources/js/` напрямую** — только после полного pipeline'а.
**Запрет дублирования (R14.5):** одна задача = один генератор. UPM и 21st **не запускаются на одной фазе**.
**Live-отмена (R0.4.B PSR_v1):** «вызови magic» / «через 21st» / «дай шаблон через magic» — прямой вызов на одно действие (pre-check R0.6 + R6.0 + R6.1 + FD-адаптация остаются обязательными).
**Безопасность:** API-ключ в `~/.claude.json` в открытом виде. Файл **глобальный, не в репо** (gitleaks ловит при попытке коммита). При случайном попадании именно `~/.claude.json` (где хранится API-ключ; не путать с `~/.claude/settings.json` — отдельный файл без секретов) в репо — немедленно ротировать ключ через 21st.dev dashboard.
### 4.7. Инфраструктурный слой — claude-md-management plugin (off-phase tool)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #33 | claude-md-management | plugin | off-phase | infrastructure | «правки CLAUDE.md, обязательный канал» | CLAUDE.md §5 п.10 + PSR_v1 R10.1 | false | 2026-05-19 |
> **Введено 10.05.2026 (v1.13 Прил. Н):** формализован как «инструмент-резерв вне фаз, инфраструктурная категория». Был фактически включён через `~/.claude/settings.json` (`enabledPlugins.claude-md-management@claude-plugins-official=true`) с момента появления CLAUDE.md §5 п.10 (требование «правки CLAUDE.md только через плагин») — до v1.13 без формализации в реестре. Категория **инфраструктурная**, отличная от UI-пула (UPM/21st) — поэтому отдельная нумерация и не попадает под Pravila §13 (расширенный UI-пул).
| # | Инструмент | Установка | Состав | Когда использовать |
|---|---|---|---|---|
| 33 | **claude-md-management** (skills, marketplace `anthropics/claude-plugins-official`) | `~/.claude/settings.json`: `extraKnownMarketplaces.claude-plugins-official` (`{"source":"github","repo":"anthropics/claude-plugins-official"}`) + `enabledPlugins.claude-md-management@claude-plugins-official=true` | Два skill: `claude-md-improver` (audit + targeted updates CLAUDE.md по `references/quality-criteria.md`), `revise-claude-md` (capture session learnings в CLAUDE.md) | **Обязательно** при любом изменении CLAUDE.md (CLAUDE.md §5 п.10). Прямые `Edit`/`Write` по корневому CLAUDE.md без вызова skill — нарушение §5 п.10 |
**Обязательные правила использования (PSR_v1 v1.6+):**
| Правило | Где | Что значит |
|---|---|---|
| **R10.1** инфраструктурный, не UI | R10.1 PSR_v1 | claude-md-management в **отдельной категории** от UPM/21st; не попадает в R14 pipeline UI-генераторов |
| **R10.2** «инструмент, не решатель» | R10.1 PSR_v1 | Skill выполняет правки **по делегированию** из stack-flow или по явной `/команде` пользователя; не подменяет stack-gate |
| **R0.4.A** не требует gate | R0.4.A PSR_v1 | Тривиальные синки (опечатки, версии, кросс-ссылки) — без stack-gate, но через claude-md-improver (CLAUDE.md §5 п.10) |
| **CLAUDE.md §5 п.10** SoT для интерфейса | CLAUDE.md | Единственный канал правок CLAUDE.md; внутри flow продолжают действовать §4 правил Claude (синхронизация Pravila + Tooling) |
**Live-отмена (R0.4.B PSR_v1):** `/claude-md-management:claude-md-improver` или `/claude-md-management:revise-claude-md` — прямой вызов на одно действие.
**Аналогичные категории (built-in skills Claude Code, не плагины через marketplace):** `review`, `security-review`, `init`, `simplify`, `update-config`, `keybindings-help`, `fewer-permission-prompts`, `loop`, `schedule`, `claude-api`. Активируются по явному `/имя` от пользователя; не входят в `enabledPlugins`. См. PSR_v1 R10.1 блок 2 для полного реестра.
### 4.8. Debug-инструмент Sentry — Sentry MCP (off-phase tool)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #34 | Sentry MCP | mcp | off-phase | debug-runtime | «отладка production runtime errors» | DEFERRED — Sentry instance не задеплоен (pending Б-1); READ-ONLY когда активен | false | 2026-05-23 |
> **Введено 13.05.2026 day +1 (v1.17 Прил. Н):** формализован как «инструмент-резерв вне фаз, debug-категория». Установлен на feat/claude-automation `6f7e7d7` в `.mcp.json`, merged в main через PR #3 (`cc5f63b`); формализован retrospectively в v1.17. Категория **debug-runtime**, отличная от UI-пула (UPM/21st) и инфраструктурного (claude-md-management) — поэтому отдельная нумерация. Pending Sentry instance deployment в Yandex Cloud (зависит от Б-1 ООО registration P0).
| # | Инструмент | Установка | Состав | Когда использовать |
|---|---|---|---|---|
| 34 | **Sentry MCP** (`@sentry/mcp-server@0.33.0+`, official, repo `getsentry/sentry-mcp`, bin `sentry-mcp`) | `.mcp.json`: `mcpServers.sentry.command="npx" args=["-y", "@sentry/mcp-server"] env={SENTRY_URL, SENTRY_AUTH_TOKEN}`. Env vars — через PowerShell User scope (`[Environment]::SetEnvironmentVariable("SENTRY_URL", ..., "User")`). Credentials НЕ commit'ятся (gitleaks gate). | MCP tools: `mcp__sentry__get_issue`, `_list_events`, `_search_errors` (+ другие per @sentry/mcp-server@0.33.0 spec) | (1) production runtime error в self-hosted Sentry → прямой запрос issue details из Claude session; (2) post-incident debug (CLAUDE.md §2: Sentry self-hosted в Yandex Cloud); (3) READ-ONLY usage — scope auth token `org:read`, `project:read`, `event:read` only |
**Обязательные правила использования:**
| Правило | Где | Что значит |
|---|---|---|
| **R10.1** debug-runtime, не UI и не инфраструктура | R10.1 PSR_v1 (v2.1+) | Sentry MCP в **отдельной категории** от UPM/21st и от claude-md-management; не попадает в R14 pipeline UI-генераторов и не модифицирует CLAUDE.md |
| **CLAUDE.md §5 п.4** не commit'ить ПДн/токены | CLAUDE.md | `SENTRY_AUTH_TOKEN` — секрет, НИКОГДА не в репозиторий. Только через PowerShell User scope env или `.env.local` (gitignored) |
| **R7** не закрывает задачу | R7 PSR_v1 | Sentry MCP — источник информации, не gate (не deployable artifact) |
| **Pre-MVP блокер** | — | Sentry instance в Yandex Cloud зависит от Б-1 ООО registration. До deployment — MCP startup fail gracefully (env пустые), tools не enumerable; это OK |
**Live-отмена (R0.4.B PSR_v1):** «не используй sentry-mcp сейчас» — отключает на текущее действие. По умолчанию активен после reload session с непустыми env vars.
**Безопасность:** Token `SENTRY_AUTH_TOKEN` — bearer secret. PowerShell User scope = encrypted per-user (Windows DPAPI). Не shared между пользователями. При утечке — немедленно revoke через Sentry web UI (`Settings → Account → API → Auth Tokens`).
### 4.9. Debug-инструмент Redis — Redis MCP (off-phase tool)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #35 | Redis MCP | mcp | off-phase | debug-runtime | «отладка Redis/Memurai очередей, кэша, Pest-race» | READ-ONLY | false | 2026-05-19 |
> **Введено 13.05.2026 day +1 (v1.17 Прил. Н):** формализован как «инструмент-резерв вне фаз, debug-категория». Установлен на feat/claude-automation `bd4ec48` в `.mcp.json`, merged в main через PR #3 (`cc5f63b`); формализован retrospectively в v1.17. Package `@modelcontextprotocol/server-redis@2025.4.25` **deprecated** по статусу npm («Package no longer supported»), но Anthropic source, рабочий. Post-MVP migration на community alternative (e.g., `@easy-mcps/redis-mcp-server@1.0.8` или `@wenit/redis-mcp-server@1.0.3`) когда подтвердим trust.
**Категории off-phase tools (v2.0):** к трём существующим подкатегориям — **UI-пул** (#31 UPM + #32 21st Magic MCP), **infrastructure** (#33 claude-md-management), **debug-runtime** (#34 Sentry MCP + #35 Redis MCP) — в v2.0 добавлена четвёртая: **orchestration** — ruflo (advisory/automation-подсистема, см. §4.10). Эта подкатегория не нумеруется в #-реестре (ruflo — внешний оркестратор с 20 собственными plugins, не один инструмент в фазовой раскладке).
| # | Инструмент | Установка | Состав | Когда использовать |
|---|---|---|---|---|
| 35 | **Redis MCP** (`@modelcontextprotocol/server-redis@2025.4.25`, deprecated Anthropic source) | `.mcp.json`: `mcpServers.redis.command="npx" args=["-y", "@modelcontextprotocol/server-redis", "redis://localhost:6379"]`. Memurai (Windows Redis 7-совместимый service) running на `localhost:6379` — verified Task 4 (`memurai-cli ping → PONG`). | MCP tools: Redis operations (KEYS, GET, LRANGE, etc.) | (1) debug очередей (`route:supplier:*`); (2) debug кэша (`supplier:session` per quirk 72); (3) debug Pest --parallel race conditions; (4) READ-ONLY usage — НЕ для prod (нет prod пока). Если в будущем prod Redis с auth — отдельный entry `redis-prod` с url через env var |
**Обязательные правила использования:**
| Правило | Где | Что значит |
|---|---|---|
| **R10.1** debug-runtime, не UI и не инфраструктура | R10.1 PSR_v1 (v2.1+) | Redis MCP в той же категории что #34 sentry-mcp |
| **READ-ONLY usage** | соглашение проекта | Никаких `DEL`, `FLUSHDB`, `SET`, `LPUSH` от Claude в runtime debug. Только read-операции. Manual Redis mutations — через `memurai-cli` напрямую заказчиком |
| **Package deprecation** | npm | На startup `npx` emits deprecation warning в stderr. Это **cosmetic**, не functional. При выходе supported alternative (community OR official replacement) — migrate в Tooling v1.18+ |
| **R7** не закрывает задачу | R7 PSR_v1 | Redis MCP — источник информации, не gate |
**Live-отмена (R0.4.B PSR_v1):** «не используй redis-mcp сейчас» — отключает на текущее действие.
**Безопасность:** Локальный Memurai на 6379 **без auth** — это dev-only setup. Если в будущем будут prod Redis с auth — entry `redis-prod` с url через env var `${REDIS_PROD_URL}`, credentials через PowerShell User scope (как Sentry). Сейчас prod нет (зависит от Б-1).
### 4.10. ruflo — advisory/automation-подсистема (off-phase)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| (ruflo) | ruflo (~20 plugins) | plugin-bundle | off-phase | orchestration | «queen / королева» (per Pravila §14) | Pravila §14.9 (dormant 18.05.2026) | true | 2026-05-19 |
> **СТАТУС 18.05.2026: ИЗОЛИРОВАН (dormant).** Заказчик распорядился отрезать ruflo от активного потока, не удаляя артефакты (Rec2 SYSTEM-аудита 18.05.2026). Live-связи отключены: оба `tools/ruflo-*-hook.mjs` сняты из `.claude/settings.json` UserPromptSubmit; `ruflo` MCP-server удалён из `.mcp.json`; PM2 `ruflo-daemon` остановлен (`pm2 delete` + `save --force`, `~/.pm2/dump.pm2` = `[]`); Task Scheduler `PM2-ruflo-daemon` оставлен (идемпотентен). Артефакты сохранены: npm-пакет, файлы хуков, memory `mem_ruflo`, документация. Подробности и план реактивации — Pravila §14.9, memory `feedback_ruflo_isolated.md`. Раздел ниже описывает архитектуру/историю как было до изоляции — для возможной реактивации.
**ruflo** (npm `ruflo` v3.7.0-alpha.38+, MIT, репозиторий `ruvnet/claude-flow` — legacy-имя после rename Jan-2026; plugin-namespace `@claude-flow/*`). 20 plugins (IPFS-registry, CID `QmeXmAdbWVvT84GfDXPD2Vg1HWhiTW2VdZfRLhkS96KkX2`, Phase 1 pre-flight verified), ~210 MCP tools, 60+ specialized agents (Queen-led hierarchy: Raft/Byzantine/Gossip consensus protocols), HNSW vector memory, SONA neural routing.
**Архитектурная роль:** параллельная advisory/automation-подсистема, **не** entry-point. Фактический рантайм (инспекция 15.05.2026): hive-mind idle, 0 задач / 0 раундов консенсуса; Claude-сессии работают напрямую. Реально работают: UserPromptSubmit-хуки `ruflo-queen-hook.mjs` (§14 queen-триггер) и `ruflo-recall-hook.mjs` (memory recall) — слой settings.json; daemon (PM2) и memory — фоновая подсистема вне priority chain; MCP-server (~210 tools) — off-phase инструмент.
**Категория:** off-phase, **orchestration** — четвёртая off-phase подкатегория, отдельная от UI-пула (#31 UPM + #32 21st Magic MCP), infrastructure (#33 claude-md-management), debug-runtime (#34 Sentry MCP + #35 Redis MCP).
**Установка (Phase 2, commit `55c49c9`):** `npx ruflo@latest init --force` scaffold; `.mcp.json` +ruflo entry (7-й MCP server, stdio mode — нет порт-конфликта с playwright/github/laravel-boost/semgrep/sentry/redis); `.gitignore` +21 ruflo runtime paths; `.env.local` cost-budget cap.
**Cost-budget:** $10/день cap через `.env.local` `RUFLO_DAEMON_MAX_USD_PER_DAY=10` (spec §7).
**Runtime state (2026-05-15 afternoon — full activation):** ruflo установлен глобально (`npm i -g ruflo`); MCP server в `.mcp.json` (7-й server, stdio mode). **Daemon ACTIVE** под PM2 (`ruflo-daemon`, 5 workers: map/audit/optimize/consolidate/testgaps); reboot-survival — Windows Task Scheduler `PM2-ruflo-daemon` (`pm2 resurrect` onlogon — ruflo native `install-supervisor` поддерживает только launchd/systemd, pm2-windows-service deprecated/broken non-interactive → fallback). **Hive-mind ACTIVE** — Queen-led (`hive-mind init -t hierarchical-mesh -c byzantine`) + 9 worker-агентов idle. **Memory** — sql.js `.swarm/memory.db` + реальные embeddings `Xenova/all-MiniLM-L6-v2` 384-dim (потребовало sharp/libvips fix: `@xenova/transformers` hard-зависит от `sharp`, prebuilt libvips download timeout'ит — curl tarball в `<npm-cache>/_libvips/` cache). **Известные alpha-bugs:** `ruflo memory store` CLI не персистит между process-invocations (in-memory sql.js не флашится на диск); daemon worker-jitter усиливает частоту Pest quirk 72 (Redis supplier:session race) — рекомендуется `pm2 stop ruflo-daemon` на baseline regression. **$-расход near-zero** — `ruflo doctor` показывает «No API keys found», daemon/agents не делают платных LLM-вызовов; cost-cap `RUFLO_DAEMON_MAX_USD_PER_DAY=10` в `.env.local` + injected в PM2 daemon env как belt. **Verification:** `ruflo doctor` 10 passed / 7 warnings (alpha/optional); Pest --parallel 0 регрессий от ruflo (quirk 72 flake классифицирован `pest-parallel-debugger` агентом — ruflo grep'ом подтверждённо не трогает Redis :6379).
**Queen trigger (2026-05-15):** триггер-слова `queen`/`королева` в промпте → безусловный route задачи через ruflo Queen (`hive-mind spawn --claude`) — explicit hard-rule **Pravila §14**. Enforcement — UserPromptSubmit-хук `tools/ruflo-queen-hook.mjs`. Перед платным спавном — превью + подтверждение (cost-gate). Без триггера нетривиальные задачи — проактивное предложение ruflo-spawn (§14.3). Связано: spec/plan `docs/superpowers/{specs,plans}/2026-05-15-ruflo-queen-trigger-and-delegation*`.
**Plugin discovery риск:** IPFS gateways Pinata + Cloudflare FAILED 2026-05-15; работает только `ipfs.io`. Operational risk #11 (spec §10.3).
**Связано:** spec [superpowers/specs/2026-05-15-ruflo-integration-design.md](superpowers/specs/2026-05-15-ruflo-integration-design.md) (commit `e55572e`+`a68a0a0`), plan [superpowers/plans/2026-05-15-ruflo-big-bang-integration.md](superpowers/plans/2026-05-15-ruflo-big-bang-integration.md) (commit `18c4463`+`9bd1bae`), map fork `automation-graph-ruflo.html` (commit `796d814`, влит в `docs/automation-graph.html` iter4 и удалён `d18b60f`). Реколлаж декларации: spec `docs/superpowers/specs/2026-05-16-ruflo-hierarchy-factual-recollage-design.md`, Pravila v1.16, PSR_v1 v3.2, CLAUDE.md v2.2.
---
### 4.11. adr-kit — Architecture Decision Records (off-phase, architecture-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #36 | adr-kit | plugin | off-phase | architecture-tooling | «архитектурные решения, ADR, enforcement» | adr-judge lefthook job 9 | false | 2026-05-19 |
**adr-kit** (Claude Code plugin, marketplace `rvdbreemen/adr-kit`, plugin `adr-kit@rvdbreemen-adr-kit`, **v0.13.1**, MIT). 8 skills (`/adr-kit:{adr,init,judge,lint,migrate,setup,upgrade,install-hooks}`) + агент `adr-generator`. **0 Claude Code lifecycle-хуков** (verified `claude plugin details`).
**Роль:** инструмент **#36**, раздел A6 карты «Архитектура систем». ADR хранятся в `docs/adr/` (формат Nygard, 7 секций); решения с блоком `## Enforcement` проверяются `adr-judge` на staged-дифе.
**Категория:** off-phase, **architecture-tooling** — пятая off-phase подкатегория (отдельная от UI-пула UPM/21st, infrastructure claude-md-management, debug-runtime Sentry/Redis, orchestration ruflo). Не UI → **не** проходит R6.0/R6.1/R14 PSR_v1. Регулируется PSR_v1 R10.1 Блок 1.
**Интеграция (17.05.2026, ветка `feat/a6-architecture-tooling`):** `init`/`install-hooks` **не запускаются** — git-хук adr-kit конфликтовал бы с lefthook (конфликт-аудит AK1); `adr-judge` вендорен в `tools/adr-judge.py` и врезан как **lefthook pre-commit job 9** (`python -X utf8`, **без `--llm`** → declarative regex, 0 вызовов Claude API, 0 стоимости — AK6). `init` пишет в `CLAUDE.md` → не запускается (AK2 — §5 п.10); awareness-stub = строка реестра CLAUDE.md §3.3 #36.
### 4.12. mermaid-skill — C4 / architecture-диаграммы (off-phase, architecture-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #37 | mermaid-skill | vendored-skill | off-phase | architecture-tooling | «C4, architecture-диаграммы» | none | false | 2026-05-19 |
**mermaid-skill** (`WH-2099/mermaid-skill`, MIT) — standalone-скил, **вендорен** в `.claude/skills/mermaid/` (`SKILL.md` + 30 references вкл. `c4.md`/`architecture.md` + LICENSE). Генерирует Mermaid-исходник 23 типов диаграмм; рендеринга не требует (`mmdc`/Chromium не нужны — Mermaid-блоки рендерит GitHub). 0 плагинов, 0 хуков, 0 marketplace.
**Роль:** инструмент **#37**, раздел A6 — визуализация архитектуры. C4-диаграммы → `docs/architecture/`.
**Категория:** off-phase, architecture-tooling. lefthook-jobs markdownlint+cspell исключают `.claude/skills/mermaid/**` (вендоренные сторонние `.md` — конфликт-аудит MK1; `.markdownlintignore` + `cspell.json` `ignorePaths` для glob-режима `npm run lint:md`/`spell`).
### 4.13. architecture-patterns — справочник паттернов (off-phase, architecture-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #38 | architecture-patterns | plugin | off-phase | architecture-tooling | «справочник архитектурных паттернов» | none | false | 2026-05-19 |
**architecture-patterns** (Claude Code plugin, marketplace `secondsky/claude-skills`, plugin `architecture-patterns@claude-skills`, **v3.3.1**, MIT). 1 skill, 0 агентов, **0 хуков** (verified `claude plugin details`).
**Роль:** инструмент **#38**, раздел A6 — playbook архитектурных паттернов (Clean / Hexagonal / layered architecture, Domain-Driven Design).
**Категория:** off-phase, architecture-tooling. Knowledge-only скил, без машинерии. Регулируется PSR_v1 R10.1 Блок 1.
### 4.14. Trail of Bits Skills — аудит безопасности (off-phase, audit-security)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #39 | Trail of Bits Skills | plugin | off-phase | audit-security | «deep аудит безопасности, diff, supply-chain» | none | false | 2026-05-19 |
**Trail of Bits Skills** (Claude Code marketplace `trailofbits/skills`, имя marketplace `trailofbits`, **CC-BY-SA-4.0**, репутабельный AppSec-вендор). Marketplace из 38 плагинов; в `enabledPlugins` включён курированный субсет **8 плагинов** под раздел D3 «Аудит и управление рисками»: `differential-review`, `audit-context-building`, `supply-chain-risk-auditor`, `insecure-defaults`, `sharp-edges`, `static-analysis`, `variant-analysis`, `agentic-actions-auditor`. Все 8 — skill/agent-плагины, **0 Claude Code lifecycle-хуков** (статически верифицировано по репо — ни у одного нет `hooks/`-папки).
**Роль:** инструмент **#39**, раздел D3 карты «Аудит и управление рисками» — глубокие on-demand аудит-кампании (security-аудит diff, supply-chain риск зависимостей, поиск вариантов уязвимостей по кодбазе).
**Категория:** off-phase, **audit-security** — шестая off-phase подкатегория (отдельная от UI-пула UPM/21st, infrastructure claude-md-management, debug-runtime Sentry/Redis, orchestration ruflo, architecture-tooling adr-kit/mermaid/architecture-patterns). Не UI → **не** проходит R6.0/R6.1/R14 PSR_v1. Регулируется PSR_v1 R10.1 Блок 1.
**Конфликт-аудит интеграции:** TB1 — `static-analysis` пересекается с Semgrep MCP (#25): граница — Semgrep MCP = inline SAST в рутине/CI, ToB = глубокие аудит-кампании on-demand. TB4 — CC-BY-SA-4.0 ShareAlike: остаётся marketplace-плагином (кэш вне репо, не вендорен) → ShareAlike-обязательство не триггерится. `fp-check` исключён из субсета — единственный из 9 рассмотренных с `hooks/`-папкой (lifecycle-хук); цепочка хуков проекта держится минимальной. План `docs/superpowers/plans/2026-05-17-d3-audit-risk-tooling-integration.md`.
### 4.15. Security Guidance — inline-предупреждения уязвимостей (off-phase, audit-security)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #40 | Security Guidance | hook | off-phase | audit-security | «inline-блокировка уязвимых паттернов» | блокирующий PreToolUse (sys.exit 2) | false | 2026-05-19 |
**Security Guidance** (Claude Code plugin, marketplace `anthropics/claude-plugins-official`, plugin `security-guidance@claude-plugins-official`, Anthropic Verified). Один PreToolUse `Write|Edit|MultiEdit`-хук — **блокирующий** (не warn-only): при **первом** за сессию срабатывании уязвимого паттерна в данном файле печатает предупреждение в stderr и завершается `sys.exit(2)`**блокирует правку**. Пара «файл+правило» пишется в session state-файл `~/.claude/security_warnings_state_<id>.json` — повторная попытка той же правки проходит; это **одноразовый speed-bump**, не безусловный блок. 9 правил: 8 контентных (command/shell injection `child_process.exec`/`os.system`, `eval(`, `new Function`, XSS через `innerHTML`/`document.write`/`dangerouslySetInnerHTML`, `pickle`-десериализация) + 1 path-правило на `.github/workflows/*.yml`. Отключается env `ENABLE_SECURITY_REMINDER=0`.
**Роль:** инструмент **#40**, раздел D3 — real-time inline-напоминание об уязвимостях во время редактирования (дополняет on-demand аудит ToB/Semgrep).
**Категория:** off-phase, audit-security. Регулируется PSR_v1 R10.1 Блок 1.
**Конфликт-аудит интеграции:** SG1 — добавляет 5-й PreToolUse-хук поверх 4 существующих (skill-marker / skill-check / economy-state-guard в `~/.claude/settings.json` + CLAUDE.md-warn в проектном `.claude/settings.json`); хук **блокирующий** (`sys.exit(2)`), но одноразовый per «файл+правило» за сессию — economy/ruflo-цепочка не нарушается (PreToolUse-хуки независимы, SG блокирует только на свой уязвимый паттерн), +~34 мс/правку latency. **SG2 (Windows-починка, 17.05.2026):** bundled `hooks.json` жёстко зовёт интерпретатор `python3`, которого в PATH этой машины нет (есть `python` 3.14.4) → без починки хук не спаунился, SG был инертен. Решено: `python3.exe` (копия `python.exe`) добавлен в каталог установки Python в PATH — кэш плагина не трогается, починка переживает обновления плагина. Verified end-to-end 17.05.2026 (manual smoke → `sys.exit 2` + in-session Write-блокировка). `/security-review` (Anthropic built-in, customized в `.claude/commands/security-review.md` с проектным FP-фильтром — RLS/ПДн/economy-хуки) — D3 #2, не отдельный нумерованный слот (built-in, не installed tool).
**Категории off-phase tools (v2.7):** семь подкатегорий — UI-пул (#31 UPM + #32 21st), infrastructure (#33 claude-md-management), debug-runtime (#34 Sentry + #35 Redis), orchestration (ruflo §4.10), **architecture-tooling (#36 adr-kit + #37 mermaid-skill + #38 architecture-patterns + #43 deptrac)**, **audit-security (#39 Trail of Bits Skills + #40 Security Guidance)**, **project-management (#41 CCPM + #42 product-management)**.
### 4.16. CCPM — Claude Code PM (off-phase, project-management)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #41 | CCPM | vendored-skill | off-phase | project-management | «PRD → эпик → issue → код, dev-проекты» | none | false | 2026-05-19 |
**CCPM** (`automazeio/ccpm`, MIT) — standalone-скил, **вендорен** в `.claude/skills/ccpm/` (`SKILL.md` + `references/` с гайдами + 14 bash-скриптов). **0 Claude Code lifecycle-хуков** (статически верифицировано — нет `hooks/`-папки). Источник: GitHub `automazeio/ccpm`; вендоринг изолирует от upstream-потерь (bus-factor — community-проект — CC1).
**Роль:** инструмент **#41**, раздел C9 карты «Управление проектами». PRD→эпик→GitHub-issue→код с полной трассируемостью через `/pm` flow. PRD/epic хранятся в `.claude/prds/` + `.claude/epics/`. GitHub-issue-backed модель (конфликт-аудит CP3, зафиксировано в ADR-004). Раздел C9 опирается также на reuse: GitHub MCP (Tooling #3) с `projects` toolset для GitHub Projects v2, Superpowers `writing-plans` (execution plan-files), `q-item-add` (управление реестром вопросов).
**Категория:** off-phase, **project-management** — седьмая off-phase подкатегория (отдельная от UI-пула UPM/21st, infrastructure claude-md-management, debug-runtime Sentry/Redis, orchestration ruflo, architecture-tooling adr-kit/mermaid/architecture-patterns, audit-security Trail of Bits Skills/Security Guidance). Не UI → **не** проходит R6.0/R6.1/R14 PSR_v1. Регулируется PSR_v1 R10.1 Блок 1.
**Конфликт-аудит интеграции:** CP2 — граница с Superpowers `writing-plans`: CCPM = PRD/epic/issue трассируемость; `writing-plans` = execution plan-files (разные артефакты, не дублируют). CP3 — GitHub-issue-backed модель зафиксирована в ADR-004 (docs/adr/ADR-004). CP5 — PRD/epic store `.claude/prds/`/`.claude/epics/` исключён из markdownlint/cspell нормального flow (вендорные артефакты, как `.claude/skills/`). Plan `docs/superpowers/plans/2026-05-17-c9-project-management-tooling-integration.md`.
### 4.17. product-management — Anthropic product-strategy plugin (off-phase, project-management)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #42 | product-management | plugin | off-phase | project-management | «PRD, роадмап, метрики, продуктовые церемонии» | none | false | 2026-05-19 |
**product-management** (Claude Code plugin, marketplace `anthropics/knowledge-work-plugins`, plugin `product-management@knowledge-work-plugins`, **Anthropic Verified**). Команды: `/write-spec` (PRD), `/roadmap-update`, `/stakeholder-update`, `/synthesize-research`, `/competitive-brief`, `/metrics-review`. **0 Claude Code lifecycle-хуков** (только команды, не хуки).
**Роль:** инструмент **#42**, раздел C9 — product-strategy церемонии (problem→spec, roadmap, stakeholder updates, research synthesis, competitive analysis, metrics review). Установлен в user-scope (`claude plugin install product-management@knowledge-work-plugins`).
**Категория:** off-phase, project-management. Регулируется PSR_v1 R10.1 Блок 1.
**Конфликт-аудит интеграции:** PG3 — граница с CCPM `/write-spec` vs CCPM PRD: product-management PRD = product-strategy-уровень (problem→spec, roadmap-aligned); CCPM PRD = engineering epic→issue→code трассируемость. Разный altitude — не дублируют. Plan `docs/superpowers/plans/2026-05-17-c9-project-management-tooling-integration.md`.
### 4.18. deptrac — архитектурный fitness-гейт (off-phase, architecture-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #43 | deptrac | composer-dep | off-phase | architecture-tooling | «направление зависимостей, границы слоёв» | lefthook job 10 | false | 2026-05-19 |
**deptrac** (`deptrac/deptrac`, Composer dev-dependency, **v4.6.1**, BSD-3-Clause; ex-`qossmic/deptrac` — репозиторий переехал на `deptrac/deptrac` после архивации старого, фев-2025). PHP-инструмент статического анализа: парсит `App\`-исходники в именованные слои и валидирует направление зависимостей между ними. **0 Claude Code lifecycle-хуков** (CLI-инструмент); чистый PHP, **0 вызовов LLM** — детерминированный AST-анализ (принцип AK6, как `adr-judge`).
**Роль:** инструмент **#43**, раздел A6 карты «Архитектура систем» — четвёртый инструмент architecture-tooling. Закрывает A6-пробелы «контроль соответствия архитектуре (conformance/fitness)» + «контроль направления зависимостей / границ слоёв». Конфиг `app/deptrac.yaml` — 13 слоёв (Controller / Service / Model / Job / Console / Repository / Mail / Request / Resource / Middleware / Rule / Exception / Provider) + консервативный ruleset (запрещает только inward/upward-нарушающие направления). Первый прогон: **0 нарушений** — кодовая база уже конформна (481 allowed cross-layer deps, 977 uncovered framework-ссылок) → baseline-файл не нужен. Врезан как **lefthook pre-commit job 10** (`php vendor/bin/deptrac analyse`, `root: app/`, glob `app/**/*.php`). Mermaidjs-форматтер генерирует code-derived C4-component-диаграмму (`docs/architecture/c4-component-layers.md` — дрейфовать не может, выводится из кода).
**Категория:** off-phase, architecture-tooling — четвёртый инструмент пятой off-phase подкатегории (#36 adr-kit + #37 mermaid-skill + #38 architecture-patterns + #43 deptrac). Не UI → **не** проходит R6.0/R6.1/R14 PSR_v1. Регулируется PSR_v1 R10.1 Блок 1.
**Конфликт-аудит интеграции:** DT1 — composer dev-dep, резолвер чист (6 symfony-7.4 пакетов, 0 security advisories) → PHAR-fallback не понадобился. DT3 — headline-риск «pre-existing violations требуют baseline» **не материализовался**: 0 нарушений на текущей кодовой базе (red-green доказан — намеренное Model→Service помечается `DependsOnDisallowedLayer`, exit 1). DT4 — граница с Larastan (#12): Larastan = типовые баги (PHPStan), deptrac = граф слоёв — разные задачи (§5 п.6 соблюдён). DT5 — граница с `adr-judge` (#36): adr-judge = декларативный regex на ADR `## Enforcement`, deptrac = AST-граф слоёв — комплементарны. Решение зафиксировано в ADR-005. План `docs/superpowers/plans/2026-05-17-deptrac-architecture-fitness-integration.md`.
### 4.19. Figma MCP — извлечение дизайн-токенов из источника (off-phase, design-tooling) — DEFERRED
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #44 | Figma MCP | mcp | off-phase | design-tooling | «извлечение дизайн-токенов из Figma» | DEFERRED — нет Figma-аккаунта | false | 2026-05-19 |
**Figma MCP** (официальный remote MCP-сервер Figma, `https://mcp.figma.com/mcp`, HTTP-транспорт, OAuth; интеграция Figma↔Claude Code анонсирована фев-2026). Извлекает дизайн-данные и токены/variables (`get_variable_defs` — цвет/spacing/типографика) напрямую из Figma-файла.
**Статус: DEFERRED** — у проекта нет Figma-аккаунта (FM2-спайк 17.05.2026: дизайн-источник Лидерры — статический handoff Платона, не Figma-файл; Диз-1 закрыт handoff'ом). Не установлен. Регистрируется как deferred-pending (прецедент — Sentry MCP #34 «pending Б-1»); активируется при появлении Figma-аккаунта + файла.
**Роль:** инструмент **#44**, раздел A4 карты «Дизайн (UI/UX, графика, бренд)». Закрывает пробел «бренд-токены / живой дизайн-источник». **Extract-only** (ADR-006 решение 1): code-generation Figma MCP НЕ используется — Frontend Design #30 остаётся единственным UI-решателем (PSR_v1 R10.2).
**Категория:** off-phase, design-tooling — первый из трёх инструментов восьмой off-phase подкатегории. Не UI-решатель → **не** проходит R6.0/R6.1/R14 PSR_v1. Регулируется PSR_v1 R10.1 Блок 3 (MCP-сервер). При активации — entry в `.mcp.json` (HTTP-транспорт; OAuth, без репо-секрета — FM3).
**Конфликт-аудит интеграции:** FM1 — code-gen Figma MCP дублировал бы FD #30 → extract-only role (ADR-006). FM2 — нет Figma-файла → DEFERRED. FM4 — Figma MCP по умолчанию генерит React/Tailwind → R6.0-фильтр при потреблении любого материала. План `docs/superpowers/plans/2026-05-17-a4-design-tooling-integration.md`.
### 4.20. Universal Icons MCP — поиск/вставка SVG-иконок (off-phase, design-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #45 | Universal Icons MCP | mcp | off-phase | design-tooling | «SVG-иконки non-Lucide коллекции» | ADR-006 Decision-4 (Lucide → lucide-vue-next) | false | 2026-05-19 |
**Universal Icons MCP** (`mcp-universal-icons`, npm, `awssat`, **MIT**; stdio MCP-сервер, `npx -y mcp-universal-icons`). 60k+ SVG-иконок из 10 коллекций, включая **Lucide** (брендовый icon-set проекта, CTO-19). Tools: `search_icons` (fuzzy), `get_icon` (raw SVG), `health_check`.
**Роль:** инструмент **#45**, раздел A4. Закрывает пробел «графика/иконки». SVG-вывод **framework-neutral** по умолчанию — НЕ запрашивать `jsx`/Tailwind-формат (R6.0). Установлен в `.mcp.json` 17.05.2026.
**Категория:** off-phase, design-tooling. Не UI-решатель → **не** проходит R6.0/R6.1/R14. Регулируется PSR_v1 R10.1 Блок 3 (MCP-сервер).
**Конфликт-аудит интеграции:** UI1 — иконки = asset-примитив (материал); FD #30 решает какую/куда, MCP только отдаёт SVG (R10.2) — пересечения нет. UI2 (ADR-006) — Universal Icons = UI-иконки; 21st `logo_search` #32 = бренд-логотипы — разные задачи, оба сохранены. UI3 (ADR-006 Decision 4, поправка 17.05.2026) — Lucide-иконки: канонический путь — `lucide-vue-next` + Vuetify `IconSet` (CTO-19); raw-SVG `get_icon` — только для не-Lucide коллекций (Heroicons/Tabler/Phosphor), SVG оборачивается в Vue-компонент, не инлайнится в обход icon-system. CC1 — single-maintainer репозиторий; MIT, легко заменяем (`iconify-mcp-server` — drop-in). План `docs/superpowers/plans/2026-05-17-a4-design-tooling-integration.md`.
### 4.21. Design plugin — дизайн-критика и UX (off-phase, design-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #46 | Design plugin | plugin | off-phase | design-tooling | «дизайн-критика, UX-копирайт, research synthesis» | pre-code; Pa11y остаётся a11y SoT | false | 2026-05-19 |
**Design plugin** (`design@knowledge-work-plugins`, marketplace `anthropics/knowledge-work-plugins`, **Anthropic Verified**). Возможности: Design Critique (ревью макетов на usability + consistency design-system), Design System Management, Accessibility Audit (WCAG 2.1 AA — дизайн-уровень), UX Writing (микрокопирайт), Research Synthesis, Dev Handoff (спеки «exploration → pixel-perfect», pre-code).
**Роль:** инструмент **#46**, раздел A4. Закрывает пробел «design-review / визуальный аудит». **Не дублирует FD #30** — официальное разграничение Anthropic: Design = ревью/планирование, Frontend Design = генерация кода.
**Категория:** off-phase, design-tooling. Review-инструмент (код не генерирует) → R6.0 не нужен, вне R14. Регулируется PSR_v1 R10.1 Блок 1 (marketplace-плагин).
**Конфликт-аудит интеграции:** DP1 (ADR-006 решение 2) — a11y-аудит Design plugin = дизайн-уровень, pre-code; Pa11y остаётся техническим a11y SoT (CLAUDE.md §5 п.3). DP2 (ADR-006 решение 3) — Design Critique = фаза 1 R2 (pre-code), не фаза-8 ревью; не подменяет `superpowers:requesting-code-review`. DP4 — наличие lifecycle-хуков проверяется при установке плагина. План `docs/superpowers/plans/2026-05-17-a4-design-tooling-integration.md`.
### 4.22. openapi-mcp-server — introspection OpenAPI/REST API (off-phase, integration-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #47 | openapi-mcp-server | mcp | off-phase | integration-tooling | «introspection OpenAPI/REST-спек» | READ-ONLY | false | 2026-05-19 |
**Пакет:** `@ivotoby/openapi-mcp-server` (npm, v1.14.0, MIT, репозиторий `ivo-toby/mcp-openapi-server`), stdio MCP, server `openapi` в `.mcp.json`, tools `mcp__openapi__*`.
**Категория:** off-phase, **integration-tooling** — 9-я off-phase подкатегория (после UI-пула / infrastructure / debug-runtime / orchestration / architecture-tooling / audit-security / project-management / design-tooling). Раздел A3 карты «Программирование — интеграции (API, вебхуки)».
**Назначение:** отдаёт OpenAPI-спеку как MCP-ресурс/тулы; introspection своей и чужих API при интеграционной разработке. READ-ONLY.
**Роль:** инструмент **#47**, раздел A3. Закрывает пробел «introspection API-спеки при интеграционной разработке». **Парный узел карты:** `api-docs` agent (claude-flow) — генератор OpenAPI-спеки; узел карты A3 без отдельного Tooling-номера (sub-агент, реестр — plugin-grain). Установлен в `.mcp.json` 17.05.2026.
**Координация:** PSR_v1 R10.1 Блок 3 (MCP-серверы). Не UI → **не** trigger'ит R6.0/R6.1, вне R14 pipeline.
**Статус установки:** verified — smoke `npx -y @ivotoby/openapi-mcp-server --help` отработал на native-Windows без ошибок.
### 4.23. promptfoo — eval LLM-промптов (off-phase, ml-ai-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #48 | promptfoo | npm-dep | off-phase | ml-ai-tooling | «тестирование LLM-промптов, eval» | только вручную/CI, никогда в хук | false | 2026-05-19 |
**Пакет:** `promptfoo` (npm devDependency в корневом `package.json`, v0.121.11, MIT — OpenAI-owned, остаётся OSS). CLI: `npx promptfoo`; конфиг `promptfooconfig.yaml`.
**Категория:** off-phase, **ml-ai-tooling** — 10-я off-phase подкатегория (после UI-пула / infrastructure / debug-runtime / orchestration / architecture-tooling / audit-security / project-management / design-tooling / integration-tooling). Раздел A11 карты «ML / AI-разработка».
**Назначение:** тест-сюита для LLM-промптов/агентов — ассерты (`equals`/`contains`/`llm-rubric`/cost/latency), регрессия, model comparison, red-teaming. Seed-пример — `docs/ml/promptfoo-example/`.
**Роль:** инструмент **#48**, раздел A11 (подкатегория LLM-интеграция). Закрывает пробел «тестирование LLM-промптов при разработке AI-фич».
**Конфликт-аудит (ML1):** promptfoo делает **платные** Anthropic API-вызовы → запуск только вручную / в CI (`npm run eval:llm`), **никогда** в lefthook-job / git-хук. API-ключ `ANTHROPIC_API_KEY` через env (PowerShell User scope), не коммитится. **ML2:** red-team promptfoo тестирует промпты — не дублирует D3 ToB/Semgrep (SAST кода). **Footprint-note:** promptfoo тяжёлый (~1090 транзитивных пакетов, нативный `better-sqlite3` — prebuilt-бинарник; 7 high-severity npm-audit в dev-дереве — dev-only, в app не поставляется).
**Координация:** PSR_v1 R10.1 Блок 1 note (v3.10). Не UI → вне R6.0/R6.1/R14.
**Статус установки:** verified — `promptfoo validate` на seed-конфиге → «Configuration is valid» (без платного вызова).
### 4.24. Data Scientist skill — классический ML-воркфлоу (off-phase, ml-ai-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #49 | Data Scientist skill | vendored-skill | off-phase | ml-ai-tooling | «классический ML-воркфлоу» | none | false | 2026-05-19 |
**Источник:** вендоренный сторонний скил в `.claude/skills/data-scientist/SKILL.md` (`sickn33/antigravity-awesome-skills`; код MIT, контент **CC BY 4.0** — атрибуция в footer SKILL.md). Не через marketplace, не в `enabledPlugins` — паттерн mermaid-skill/CCPM.
**Категория:** off-phase, ml-ai-tooling. Раздел A11 карты.
**Назначение:** knowledge-only скил классического ML-воркфлоу — бизнес-задача → ML-задача, выбор алгоритма (Linear Regression … XGBoost), feature engineering, оценка модели, эксперимент-трекинг, A/B-анализ.
**Роль:** инструмент **#49**, раздел A11 (подкатегория классический ML). lefthook markdownlint+cspell исключают `.claude/skills/data-scientist/**` (вендоренный сторонний `.md` — конфликт-аудит ML3; `lefthook.yml` job-`exclude` + `.markdownlintignore` + `cspell.json` `ignorePaths`).
**Координация:** PSR_v1 R10.1 Блок 1 note (v3.10). Не UI → вне R6.0/R6.1/R14. Bus-factor (community-проект) митигирован вендорингом — ML7.
### 4.25. Jupyter MCP — исполняемые ноутбуки (off-phase, ml-ai-tooling) — DEFERRED
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #50 | Jupyter MCP | mcp | off-phase | ml-ai-tooling | «исполняемые Jupyter-ноутбуки» | DEFERRED — нет Python ML-окружения | false | 2026-05-19 |
**Пакет:** `datalayer/jupyter-mcp-server` — stdio MCP. **DEFERRED — НЕ установлен.**
**Категория:** off-phase, ml-ai-tooling. Раздел A11 карты.
**Назначение:** исполняемые Jupyter-ноутбуки (классический ML: реальное обучение моделей — вставка/прогон ячеек, чтение вывода, графики).
**Роль:** инструмент **#50**, раздел A11. **DEFERRED** (как Figma MCP #44): требует Python ML-окружения (pandas/scikit-learn/Jupyter), которого на native-Windows машине нет (политика минимального рантайма — без Docker), и нет конкретной модели для обучения. Зарегистрирован как pending-слот; устанавливается отдельной severable-задачей при появлении модели (см. «Deferred Task» в плане A11). При установке — entry в `.mcp.json`, узел `jupyter_mcp` на карте.
**Координация:** PSR_v1 R10.1 Блок 3 (MCP-серверы). Не UI → вне R6/R14.
### 4.26. operations — бизнес-процессы (off-phase, business-process)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #51 | operations | plugin | off-phase | business-process | «документирование/оптимизация бизнес-процессов» | none | false | 2026-05-19 |
**Плагин:** `operations@knowledge-work-plugins` v1.2.0 (marketplace `anthropics/knowledge-work-plugins` — тот же, что #42 product-management / #46 design), **Anthropic Verified**. Skills-only — 9 скилов (`process-doc`, `process-optimization`, `change-request`, `capacity-plan`, `compliance-tracking`, `risk-assessment`, `runbook`, `status-report`, `vendor-review`), **0 lifecycle-хуков** (нет `hooks/` / `commands/` директорий).
**Категория:** off-phase, **business-process** — 11-я off-phase подкатегория (после UI-пула / infrastructure / debug-runtime / orchestration / architecture-tooling / audit-security / project-management / design-tooling / integration-tooling / ml-ai-tooling). Раздел C10 карты «Бизнес-процессы (общее)».
**Назначение:** документирование бизнес-процессов (`process-doc`), оптимизация (`process-optimization`), change-management (`change-request`), capacity-планирование (`capacity-plan`), плюс compliance/risk/runbook/status/vendor-review.
**Роль:** инструмент **#51**, раздел C10. Закрывает срез «документирование + оптимизация процессов».
**Конфликт-аудит:** OPS1 — `process-doc` выдаёт Mermaid-исходник, рендер делегируется скилу `mermaid` #37 (рендер-SoT). OPS2 — `capacity-plan` (кросс-функц. БП-ёмкость) ≠ product-management `/sprint-planning` (dev-спринты). OPS3 — `change-request` (изменение БП) ≠ adr-kit ADR ≠ claude-md-management (правка нормативки). OPS5 — operations = generic stack-agnostic методология; self-authored process-modeling/process-analysis покрывают то, что generic-скилы структурно не могут (формальный BPMN 2.0 + Лидерра-code-grounded discovery). Установлен 17.05.2026.
**Координация:** PSR_v1 R10.1 Блок 1 (marketplace-плагин). Не UI → вне R6.0/R6.1/R14.
### 4.27. process-modeling — моделирование бизнес-процессов (off-phase, business-process)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #52 | process-modeling | skill | off-phase | business-process | «моделирование to-be процесса (BPMN 2.0)» | self-authored project skill | false | 2026-05-19 |
**Источник:** self-authored standalone project-скил в `.claude/skills/process-modeling/` (`SKILL.md` + `references/bpmn.md`). Не вендоренный сторонний — свой; **линтуется** как остальные project-скилы (НЕ в `cspell.json` `ignorePaths` / `.markdownlintignore` — конфликт-аудит LINT1).
**Категория:** off-phase, business-process. Раздел C10 карты.
**Назначение:** проектирование to-be модели процесса — BPMN 2.0 (пулы/дорожки/гейтвеи/события), карты процессов, customer-journey / value-stream, RACI-матрицы, state-машины.
**Роль:** инструмент **#52**, раздел C10 (срез «моделирование»). Рендер диаграмм делегирует скилу `mermaid` #37 (конфликт-аудит BPMN1 — mermaid рендер-SoT; process-modeling даёт нотацию/методологию, сам не рисует).
**Координация:** PSR_v1 R10.1 Блок 1 note (self-authored project-скил). Не UI → вне R6.0/R6.1/R14.
### 4.28. process-analysis — анализ бизнес-процессов (off-phase, business-process)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #53 | process-analysis | skill | off-phase | business-process | «анализ as-is процесса (discovery из кода)» | self-authored project skill; ADR-009 граница с #55 | false | 2026-05-19 |
**Источник:** self-authored standalone project-скил в `.claude/skills/process-analysis/` (`SKILL.md` + `references/discovery.md`). Свой, не вендоренный; **линтуется** (LINT1).
**Категория:** off-phase, business-process. Раздел C10 карты.
**Назначение:** вскрытие as-is процесса — process discovery (реконструкция фактического процесса из кода Laravel: routes/jobs/`audit_*` таблицы), поиск узких мест, трассировка требование→процесс, метрики/KPI процесса.
**Роль:** инструмент **#53**, раздел C10 (срез «анализ и оптимизация»). Парный скил к process-modeling (тот проектирует to-be — этот вскрывает as-is).
**Конфликт-аудит (PA1):** process-analysis ищет **процессные** узкие места; runtime/код-производительность — `perf-analyzer` / скил `analysis:bottleneck-detect`. Generic-методология оптимизации — operations `process-optimization` (OPS5).
**Координация:** PSR_v1 R10.1 Блок 1 note (self-authored project-скил). Не UI → вне R6.0/R6.1/R14.
### 4.29. n8n-mcp — workflow-движок (off-phase, business-process) — DEFERRED
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #54 | n8n-mcp | mcp | off-phase | business-process | «workflow-движок автоматизации» | DEFERRED — n8n не в стеке | false | 2026-05-19 |
**Пакет:** `czlonkowski/n8n-mcp` (MIT) — stdio MCP, workflow-automation сервер платформы n8n. **DEFERRED — НЕ установлен.**
**Категория:** off-phase, business-process. Раздел C10 карты.
**Назначение:** построение/запуск автоматизированных workflow платформы n8n.
**Роль:** инструмент **#54**, раздел C10 (срез «автоматизация»). **DEFERRED** (как Figma MCP #44, Jupyter MCP #50): стек Лидерры не содержит n8n — движок процессов = очередь Laravel (Redis) + события/джобы; принятие n8n как инфраструктуры — отдельное архитектурное решение (свой ADR), не выбор инструмента (конфликт-аудит N8N1). Зарегистрирован как pending-слот; `.mcp.json` не трогается в core-scope; устанавливается отдельной severable-задачей при принятии n8n (см. «Deferred Task» в плане C10).
**Координация:** PSR_v1 R10.1 Блок 3 (MCP-серверы). Не UI → вне R6/R14.
### 4.30. discovery-interview — discovery-интервью (off-phase, discovery-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #55 | discovery-interview | skill | off-phase | discovery-tooling | «интервью-discovery FEATURE+SYSTEM, JTBD» | ADR-009 (vs #53 process-analysis) | false | 2026-05-19 |
**Источник:** self-authored standalone project-скил в `.claude/skills/discovery-interview/` (`SKILL.md` + `references/jtbd-questions.md` + `evals/evals.json`). Свой, не вендоренный; **линтуется** (cspell+markdownlint, не в ignorePaths — как process-modeling/process-analysis, LINT1).
**Категория:** off-phase, **discovery-tooling** — 12-я off-phase подкатегория (после UI-пула / infrastructure / debug-runtime / orchestration / architecture-tooling / audit-security / project-management / design-tooling / integration-tooling / ml-ai-tooling / business-process).
**Назначение:** структурированное интервью-discovery до проектирования. Режим FEATURE — JTBD-интервью заказчика, вскрывает проблему до решения, отдаёт discovery-brief в `brainstorming`. Режим SYSTEM — интервью-ориентация по мета-слою проекта (карта / CLAUDE.md / MEMORY / Открытые_вопросы / Tooling / git log).
**Роль:** инструмент **#55**. Собственная off-phase подкатегория discovery-tooling — не привязан к фазам тулчейна. Триггер-eval 20/20 (`.claude/skills/discovery-interview/evals/evals.json`).
**Конфликт-аудит (ADR-009, DI1DI6):** разрез по слою-источнику с `process-analysis` #53 — тот вскрывает бизнес-процесс из app-кода, discovery-interview интервьюирует человека (FEATURE) и синтезирует мета-слой (SYSTEM). Хэндофф FEATURE → `brainstorming`. Проектный скил → Pravila §13.2, **не** §12.2 (карта Superpowers-скилов).
**Координация:** PSR_v1 R10.1 Блок 1 note (self-authored project-скил, как process-modeling/process-analysis). Не UI → вне R6.0/R6.1/R14.
### 4.31. skill-creator — конструктор скилов (off-phase, authoring-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #56 | skill-creator | plugin | off-phase | authoring-tooling | «создание standalone-скилов + eval» | none | false | 2026-05-19 |
**Источник:** Claude Code plugin, marketplace `anthropics/claude-plugins-official`, plugin `skill-creator@claude-plugins-official` (Anthropic Verified). Включён в `~/.claude/settings.json` `enabledPlugins`.
**Категория:** off-phase, **authoring-tooling** — 13-я off-phase подкатегория (создание Claude-артефактов: скилы / плагины / хуки).
**Назначение:** создание новых скилов с нуля, модификация и оптимизация существующих, измерение performance скила (eval / benchmark / variance-анализ), оптимизация `description` под точность триггеринга.
**Роль:** инструмент **#56**. Создание **standalone** проектных скилов (`.claude/skills/<name>/`).
**Конфликт-аудит:** SC1 — граница с plugin-dev:skill-development (#57): skill-creator для standalone проектных скилов, plugin-dev:skill-development — для скилов внутри разрабатываемого marketplace-плагина. SC2 — вендоренные (`mermaid`/`ccpm`/`data-scientist`) и self-authored (`audit-portal`/`regression`/`process-modeling`/`process-analysis`/`discovery-interview`) скилы модифицируются прямым Edit, не через skill-creator (он может предложить переписать как новый — потеря провенанса). SC3 — Anthropic Verified, провенанс чист.
**Координация:** PSR_v1 R10.1 Блок 1. Не UI → вне R6.0/R6.1/R14. ADR-010.
### 4.32. plugin-dev — конструктор плагинов (off-phase, authoring-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #57 | plugin-dev | plugin | off-phase | authoring-tooling | «разработка Claude-плагинов» | none | false | 2026-05-19 |
**Источник:** Claude Code plugin, marketplace `anthropics/claude-plugins-official`, plugin `plugin-dev@claude-plugins-official` (Anthropic Verified). Включён в `enabledPlugins`.
**Категория:** off-phase, **authoring-tooling**.
**Назначение:** разработка Claude-плагинов — 8 sub-skills (`plugin-structure`, `agent-development`, `skill-development`, `command-development`, `hook-development`, `mcp-integration`, `plugin-settings`, `create-plugin`) + агенты `agent-creator` / `plugin-validator` / `skill-reviewer`.
**Роль:** инструмент **#57**. Конструктор marketplace-плагинов целиком (структура / агенты / скилы / команды / хуки).
**Конфликт-аудит:** PD1 — для создания собственного marketplace-плагина; не для модификации вендоренного/self-authored (SC2). PD2 — `plugin-dev:skill-development` ↔ skill-creator #56: standalone скил → skill-creator, скил внутри плагина → plugin-dev. PD3 — `plugin-dev:hook-development` может сгенерировать хук — применяется правило HK1 (pre-check на коллизию), как для hookify #58.
**Координация:** PSR_v1 R10.1 Блок 1. Не UI → вне R6.0/R6.1/R14. ADR-010.
### 4.33. hookify — генератор хуков (off-phase, authoring-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #58 | hookify | plugin | off-phase | authoring-tooling | «генерация хуков (только по явному /hookify)» | HK1 pre-check (ADR-010) | false | 2026-05-19 |
**Источник:** Claude Code plugin, marketplace `anthropics/claude-plugins-official`, plugin `hookify@claude-plugins-official` (Anthropic Verified). Включён в `enabledPlugins`. Skills `/hookify` / `/configure` / `/list` / `/help` + skill `writing-rules` + агент `conversation-analyzer`.
**Категория:** off-phase, **authoring-tooling**.
**Назначение:** генерация хуков из анализа транскриптов диалога или явных инструкций — «создай хук, чтобы предотвратить X».
**Роль:** инструмент **#58**.
**Конфликт-аудит:** **HK1 (hard-rule pre-check)** — перед генерацией хука обязательная проверка коллизии с уже-зарегистрированными хуками в `~/.claude/settings.json`; перезапись 6-компонентной economy/skill-discipline архитектуры (economy-mode / skill-marker / skill-check / economy-state-guard / economy-postcompact / economy-verifier) **запрещена**; при коллизии — остановка с пометкой «требуется ручное согласование». **HK2** — вызов только по явному `/hookify`, не проактивно. **HK3** — закрывает 🔴-конфликт карты `hookify_plugin ↔ hk_pre_claude` (плагин мог перезаписать существующие хуки) → 🟢 после HK1.
**Координация:** PSR_v1 R10.1 Блок 1 (hookify-строка hard-rule). Не UI → вне R6.0/R6.1/R14. ADR-010.
### 4.34. claude-code-setup — рекомендатель автоматизаций (off-phase, dev-support)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #59 | claude-code-setup | plugin | off-phase | dev-support | «рекомендатель Claude Code automations (read-only)» | none | false | 2026-05-19 |
**Источник:** Claude Code plugin, marketplace `anthropics/claude-plugins-official`, plugin `claude-code-setup@claude-plugins-official` (Anthropic Verified). Включён в `enabledPlugins`. Skill `claude-automation-recommender`.
**Категория:** off-phase, **dev-support** — 14-я off-phase подкатегория (поддержка/документация Claude-разработки).
**Назначение:** анализ кодовой базы + рекомендации Claude Code automations (хуки / суб-агенты / скилы / плагины / MCP-серверы).
**Роль:** инструмент **#59**. Read-only анализатор.
**Конфликт-аудит:** CCS1 — рекомендации фильтруются через R0 stack-gate + R10.1 (R0.6 hard-стопы — брендовое UI, ru-стек, уже формализованное); ничего не устанавливается без явного согласования с заказчиком.
**Координация:** PSR_v1 R10.1 Блок 1. Не UI → вне R6.0/R6.1/R14. ADR-010.
### 4.35. context7 — документация библиотек (off-phase, dev-support)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #60 | context7 | mcp | off-phase | dev-support | «актуальная документация библиотек/SDK» | первый выбор для доков библиотеки | false | 2026-05-19 |
**Источник:** Claude Code plugin, marketplace `anthropics/claude-plugins-official`, plugin `context7@claude-plugins-official` (Anthropic Verified). Включён в `enabledPlugins`. MCP-tools `mcp__plugin_context7_context7__query-docs` / `resolve-library-id`.
**Категория:** off-phase, **dev-support**.
**Назначение:** актуальная документация библиотек / фреймворков / SDK / CLI — отдаёт upstream-доки, обходит cutoff training data (Laravel / Vue / Vuetify / Pest / React / Tailwind / Prisma и др.).
**Роль:** инструмент **#60**.
**Конфликт-аудит:** CTX1 — первый выбор для документации **известной библиотеки**; WebFetch — fallback на конкретный URL (README / внешний документ); WebSearch — поиск без знания URL/библиотеки. CTX2 — не trigger при поиске без библиотеки (события, статьи) — это WebSearch.
**Координация:** PSR_v1 R10.1 Блок 1. Не UI → вне R6.0/R6.1/R14. ADR-010.
### 4.36. finance plugin — финансы и бухгалтерия (off-phase, finance-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #61 | finance plugin | plugin | off-phase | finance-tooling | «сверка, variance-анализ, US-GAAP-отчётность, проводки, close» | ADR-012 (граница C6/C7, vs operations) | false | 2026-05-20 |
**Источник:** Claude Code plugin, marketplace `anthropics/knowledge-work-plugins`, plugin `finance@knowledge-work-plugins` (Anthropic Verified, v1.2.0). Включается в `~/.claude/settings.json` `enabledPlugins`. 8 скилов (reconciliation/variance-analysis/financial-statements/close-management/journal-entry/journal-entry-prep/sox-testing/audit-support) + MCP-серверы (snowflake/databricks/bigquery/slack/ms365 — http).
**Категория:** off-phase, **finance-tooling** — 15-я off-phase подкатегория. Домашний раздел карты — **C7** «Финансы — бухгалтерия и налоги» (primary), cross-ref **C6** «биллинг/тарификация».
**Назначение:** учёт и финансовая отчётность — сверка счетов, анализ отклонений, US-GAAP-отчёты (P&L/BS/CF), управление закрытием периода, проводки.
**Роль:** инструмент **#61**. Применимость к РФ-контексту: ✅ `reconciliation`/`variance-analysis` (C6); ⚠️ `financial-statements`/`close-management`/`journal-entry`/`journal-entry-prep` (US-GAAP — частично, у нас РСБУ); ❌ `sox-testing`/`audit-support` (not-applicable — нет SOX у частной РФ-компании). MCP-серверы (snowflake/databricks/bigquery) — **DEFERRED**, не стек проекта.
**Конфликт-аудит (ADR-012):** FIN1 warehouse-MCP DEFERRED; FIN2 SOX not-applicable; FIN3 граница с operations #51 (finance = учёт/сверка/отчётность, operations = операционные процессы/риск); FIN4 finance `reconciliation` (инструмент) vs `CsvReconcileJob` (код проекта). РФ-специфику покрывает `ru-tax-accounting` #63.
**Координация:** PSR_v1 R10.1 Блок 1. Не UI → вне R6.0/R6.1/R14. ADR-012.
### 4.37. billing-audit — аудит денежной корректности (off-phase, finance-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #62 | billing-audit | skill | off-phase | finance-tooling | «аудит списания, money-инварианты, идемпотентность, тариф-резолюция, дрейф reconcile» | ADR-012 (vs process-*/D3/ru-tax) | false | 2026-05-20 |
**Источник:** self-authored standalone project-скил в `.claude/skills/billing-audit/` (`SKILL.md` + `references/invariants.md` + `evals/evals.json`). Свой, не вендоренный; **линтуется** (cspell+markdownlint, не в ignorePaths — как process-*/discovery-interview, LINT1).
**Категория:** off-phase, **finance-tooling**. Раздел карты **C6** «Финансы — биллинг и тарификация».
**Назначение:** аудит денежных инвариантов биллинг-кода Лидерры — сохранение суммы (bcmath/без float), идемпотентность списания, корректность 7-ступенчатой tier-резолюции, интерпретация дрейфа CsvReconcile >5%, провенанс charge_source.
**Роль:** инструмент **#62**. Триггер-eval в `.claude/skills/billing-audit/evals/evals.json`.
**Конфликт-аудит (ADR-012, FIN5):** объект иной — ≠ process-modeling/process-analysis (#52/#53, поток/процесс), ≠ D3 audit-security (#39/#40, безопасность), ≠ ru-tax-accounting (#63, учёт/налог результата), ≠ product-management metrics-review (#42, метрики выручки).
**Координация:** PSR_v1 R10.1 Блок 1 note (self-authored project-скил). Не UI → вне R6.0/R6.1/R14.
### 4.38. ru-tax-accounting — РСБУ/НК РФ контекст (off-phase, finance-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #63 | ru-tax-accounting | skill | off-phase | finance-tooling | «РСБУ, НДС/УСН, налоговая база, налогооблагаемое событие, выгрузка бухгалтеру» | ADR-012 (vs finance plugin/billing-audit/D1/D2) | false | 2026-05-20 |
**Источник:** self-authored standalone project-скил в `.claude/skills/ru-tax-accounting/` (`SKILL.md` + `references/ru-tax-context.md` + `evals/evals.json`). Свой, не вендоренный; **линтуется** (LINT1).
**Категория:** off-phase, **finance-tooling**. Раздел карты **C7** «Финансы — бухгалтерия и налоги».
**Назначение:** перевод billing-выручки (выход C6) в российский учётно-налоговый контекст — налоговые режимы (НДС/УСН), налогооблагаемое событие, маппинг выручка→база, выгрузки для бухгалтера. Закрывает РФ-gap US-GAAP-плагина finance #61.
**Роль:** инструмент **#63**. Не налоговая консультация; бухгалтерия компании ведётся вне dev-репо (1С/аутсорс). Реальный платёжный провайдер — DEFERRED (Б-1).
**Конфликт-аудит (ADR-012, FIN6):** ≠ billing-audit #62 (корректность начисления в коде), ≠ finance plugin #61 (US-GAAP-механика), ≠ D1 (договоры/право), ≠ D2 (ПДн 152-ФЗ).
**Координация:** PSR_v1 R10.1 Блок 1 note (self-authored project-скил). Не UI → вне R6.0/R6.1/R14.
### 4.39. Rector — авто-рефакторинг и version-upgrade (off-phase, backend-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #64 | Rector + rector-laravel | composer-dev-dep | off-phase | backend-tooling | «авто-рефакторинг, version-upgrade Laravel, удаление мёртвого кода» | ADR-013 (BT1-BT3 vs Pint/Larastan/deptrac) | false | 2026-05-20 |
**Источник:** Composer dev-dependency `rector/rector` ^2.4 + `driftingly/rector-laravel` ^2.3 (MIT). Конфиг `app/rector.php` (deadCode + codeQuality, conservative — без type-declaration наборов и LaravelSetProvider). Команды `composer rector` (dry-run) / `composer rector:fix` (apply).
**Категория:** off-phase, **backend-tooling** — 16-я off-phase подкатегория. Раздел карты **A1** «Программирование — backend».
**Назначение:** автоматическая трансформация PHP-кода — апгрейды под версию Laravel/PHP, удаление мёртвого кода, code-quality рефакторинги.
**Роль:** инструмент **#64**. Постура — **manual/CI, НЕ блокирующий lefthook**: dry-run baseline = 16 файлов (>5 порога → код-мутирующий инструмент не гейтит коммит, прецедент promptfoo ML1). LaravelSetProvider — для разовых version-апгрейдов вручную.
**Конфликт-аудит (ADR-013):** BT1 vs Pint #11 (трансформация vs форматирование); BT2 vs Larastan #12 (чинит vs находит — комплементарны); BT3 vs deptrac #43 (трансформация vs граф слоёв). Чистый PHP, 0 LLM.
**Координация:** PSR_v1 R10.1 Блок 1. Не UI → вне R6.0/R6.1/R14. ADR-013.
### 4.40. PHP Insights — метрики качества кода (off-phase, backend-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #65 | PHP Insights | composer-dev-dep | off-phase | backend-tooling | «метрики качества/сложности/архитектуры PHP-кода» | ADR-013 (BT4 vs Pint/Larastan) | false | 2026-05-20 |
**Источник:** Composer dev-dependency `nunomaduro/phpinsights` v2.14 (MIT). Конфиг `app/config/insights.php` — SyntaxCheck удалён (Windows subprocess-краш + избыточен), style-ось не гейтится (владелец Pint), security-check off. Команда `composer insights`. allow-plugins += `dealerdirect/phpcodesniffer-composer-installer`.
**Категория:** off-phase, **backend-tooling**. Раздел карты **A1**.
**Назначение:** метрики code / complexity / architecture / maintainability — cyclomatic complexity, code smells, распределение архитектуры. Уникум против Pint (стиль) + Larastan (типы) — оси complexity + architecture.
**Роль:** инструмент **#65**. Постура — **on-demand/CI с порогами, НЕ блокирующий lefthook** (BT9 — избегаем четверного гейта). Baseline 20.05.2026: Code 80 / Complexity 81 / Architecture 75 / Style 88.9; floors min-quality 78 / min-complexity 79 / min-architecture 73. `composer insights` → exit 0.
**Конфликт-аудит (ADR-013, BT4):** перекрытие с Pint (style) / Larastan (code) по двум осям → эти оси выключены; уникум = complexity + architecture.
**Координация:** PSR_v1 R10.1 Блок 1. Не UI → вне R6.0/R6.1/R14. ADR-013.
### 4.41. laravel-backend-patterns — backend-конвенции Лидерры (off-phase, backend-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #66 | laravel-backend-patterns | skill | off-phase | backend-tooling | «как писать backend в Лидерре, паттерн controller/service/job, RLS, деньги» | ADR-013 (BT5 vs #38, BT6 vs #62) | false | 2026-05-20 |
**Источник:** self-authored standalone project-скил в `.claude/skills/laravel-backend-patterns/` (`SKILL.md` + `references/conventions.md` + `evals/evals.json`). Свой, не вендоренный; **линтуется** (LINT1).
**Категория:** off-phase, **backend-tooling**. Раздел карты **A1**.
**Назначение:** кодификация backend-конвенций Лидерры — слоистость controller→FormRequest→service→job (deptrac-aligned), RLS-aware Eloquent (SetTenantContext / явный `where(tenant_id)` под `crm_supplier_worker` BYPASSRLS), деньги через bcmath/LedgerService, идемпотентные джобы (advisory-lock), partition-aware запросы (deals/supplier_lead_costs).
**Роль:** инструмент **#66**. Триггер-eval в `.claude/skills/laravel-backend-patterns/evals/evals.json`.
**Конфликт-аудит (ADR-013):** BT5 ≠ architecture-patterns #38 (generic Clean/Hex/DDD vs project-specific Лидерра); BT6 ≠ billing-audit #62 (генерация «как писать» vs аудит «проверка денег» — ссылка, не дубль).
**Координация:** PSR_v1 R10.1 Блок 1 note (self-authored project-скил). Не UI → вне R6.0/R6.1/R14.
### 4.42. NightOwl — self-hosted runtime-телеметрия (off-phase, backend-tooling, DEFERRED)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #67 | NightOwl (self-hosted) | composer-dev-dep + agent | off-phase | backend-tooling | «коррелированный runtime-трейс request↔job↔query (self-hosted)» | ADR-013 (BT7 vs Sentry, BT8 vs Pail/Boost) | true | 2026-05-20 |
**Источник:** `laravel/nightwatch` (сбор) + `lemed99/nightowl-agent` (MIT, self-hosted → PostgreSQL). **DEFERRED** — pending-слот (как Sentry #34 / Figma #44 / Jupyter #50). Spike: `docs/backend/nightowl-spike.md`.
**Категория:** off-phase, **backend-tooling**. Раздел карты **A1**.
**Назначение:** коррелированный сквозной трейс работающего портала — request ↔ outgoing ↔ job ↔ query ↔ mail ↔ cache ↔ scheduled, в своём PostgreSQL.
**Роль:** инструмент **#67**. **DEFERRED-блокер:** native-Windows нет `pcntl`/`posix` (агент не запускается); OSS-версия без MCP (MCP только managed); hosted = риск 152-ФЗ. Активация — при Linux/боевом сервере (Б-1); доступ Claude через managed MCP (если приемлемо по 152-ФЗ) или Boost `database-query` по таблицам телеметрии (READ-ONLY).
**Конфликт-аудит (ADR-013):** BT7 ≠ Sentry #34 (коррелированный трейс vs ошибки/трейсбэки); BT8 ≠ Pail/Boost (сквозной трейс vs tail/снапшот).
**Координация:** PSR_v1 R10.1 Блок 3 (при активации — MCP). Не UI → вне R6.0/R6.1/R14. ADR-013.
### 4.43. OWASP ZAP — глубокая боевая DAST (off-phase, infosec-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #68 | OWASP ZAP (MCP add-on) | mcp | off-phase | infosec-tooling | «глубокая боевая DAST: обход входа, инъекции, XSS» | ADR-014 (IS1 vs Semgrep, IS2 vs Nuclei) | false | 2026-05-21 |
**Источник:** официальный ZAP «MCP Integration» add-on (`zaproxy/zap-extensions`, `addOns/mcp/`, Apache-2.0; провенанс OWASP/Checkmarx — IS9-вет `docs/security/infosec-vet.md`). **УСТАНОВЛЕН 21.05.2026 портативно** (без choco): ZAP cross-platform 2.17.0 (`bin/ZAP_2.17.0/`) + MCP-аддон `mcp-alpha-0.0.1` на **portable Temurin JRE 17** (`bin/_runtimes/jdk-17.0.19+10-jre/`, не системная Java). Daemon-smoke verified (API → 2.17.0). MCP-сервер в `.mcp.json` (SSE) — при запущенном демоне; доку — `docs/security/zap-setup.md`.
**Категория:** off-phase, **infosec-tooling** — 17-я off-phase подкатегория. Раздел карты **A8** «Информационная безопасность».
**Назначение:** глубокая динамическая («боевая») проверка работающего портала — spider + active scan: обход аутентификации, инъекции (SQLi), XSS, проблемы сессий/CSRF на живых endpoint'ах.
**Роль:** инструмент **#68**. Постура — on-demand, READ-only сканер, цель по умолчанию **локальная копия** (127.0.0.1), бой — только по явной команде (IS8). **Установлен** (portable JRE 17 + ZAP 2.17.0 + MCP-аддон); MCP-аддон alpha (`mcp-alpha-0.0.1`) — API может меняться. Для MCP-режима нужен запущенный ZAP-daemon (см. `docs/security/zap-setup.md`).
**Конфликт-аудит (ADR-014):** IS1 ≠ Semgrep #25 (динамика — бьёт работающий портал vs статика — читает код); IS2 ≠ Nuclei #69 (глубина — логика приложения vs широта — известные дыры; комплементарны).
**Координация:** PSR_v1 R10.1 Блок 3 (MCP, при установке). Не UI → вне R6.0/R6.1/R14. ADR-014.
### 4.44. Nuclei — широкое сканирование известных уязвимостей (off-phase, infosec-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #69 | Nuclei | cli-binary | off-phase | infosec-tooling | «известные уязвимости/экспозиция/слабый TLS снаружи» | ADR-014 (IS2 vs ZAP) | false | 2026-05-21 |
**Источник:** `projectdiscovery/nuclei` v3.8.0 (MIT, провенанс ProjectDiscovery — IS9-вет), Go-бинарь `bin/nuclei.exe` (gitignored, машинно-локальный) + 13 060 шаблонов. **CLI-инструмент, НЕ MCP-сервер** (nuclei не говорит на MCP; обёртка = доп. attack surface). Доку — `docs/security/nuclei-setup.md`.
**Категория:** off-phase, **infosec-tooling**. Раздел карты **A8**.
**Назначение:** широкая быстрая проверка по YAML-шаблонам — известные CVE, дефолтные креды, открытые двери, утечки конфигов, слабый TLS, fingerprint стека.
**Роль:** инструмент **#69**. **УСТАНОВЛЕН + verified** (smoke 1057 запросов к живому порталу, скан завершён, 0 matched на теге tech). Квирки native-Windows: цель **127.0.0.1** (не `localhost` — резолвер), `-rate-limit 20 -c 5` для однопоточного dev-сервера. Вызывается по требованию скилом #73; цель по умолчанию локальная (IS8).
**Конфликт-аудит (ADR-014):** IS2 ≠ ZAP #68 (широта vs глубина — комплементарны). CLI не MCP → `.mcp.json`-блок и l1-watcher alias не нужны (как gitleaks #8 / squawk #15 / Trivy #26).
**Координация:** PSR_v1 R10.1 Блок 1 (CLI-инструмент). Не UI → вне R6.0/R6.1/R14. ADR-014.
### 4.45. Ward — безопасность настроек Laravel (off-phase, infosec-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #70 | Ward | cli-binary | off-phase | infosec-tooling | «безопасность настроек Laravel: .env/config/заголовки/cookie/secrets/deps» | ADR-014 (IS3 vs Larastan/Semgrep) | false | 2026-05-21 |
**Источник:** `Eljakani/ward` (MIT, Go CLI; провенанс — named author, 316★, IS9-вет), pin `@v0.4.1`. **ЗАМЕНИЛ Enlightn** (тот abandoned + без поддержки Laravel 13 — `docs/security/infosec-vet.md` §ПЕРЕСМОТР #70). **УСТАНОВЛЕН 21.05.2026 портативно** (без choco): собран из исходника через portable Go 1.26.3 (`go install github.com/eljakani/ward@v0.4.1`) → `bin/ward.exe`; готовых бинарей в релизе нет. Доку — `docs/security/ward-setup.md`.
**Категория:** off-phase, **infosec-tooling**. Раздел карты **A8**.
**Назначение:** сканер misconfig/secrets Laravel — .env (8 проверок) + config/*.php (13) + deps (OSV.dev live) + код (7 категорий: secrets/injection/XSS/debug-артефакты/crypto/config CORS-CSRF-mass-assignment/auth). Go-бинарь → **не зависит от версии Laravel** (проблема Enlightn снята).
**Роль:** инструмент **#70**. CLI-инструмент (как Nuclei), не MCP, не Composer dev-dep. **Установлен + verified** (`ward version` v0.4.1; smoke-скан `app/` → 2 находки: High `APP_DEBUG`, Medium `APP_ENV=local`). Caveat: молодой (фев 2026), single-maintainer → bus-factor; митигация версия-pin + MIT-форкабельность.
**Конфликт-аудит (ADR-014):** IS3 ≠ Larastan #12 / Semgrep #25 (misconfig/secrets/deps Laravel vs типы/generic-паттерны). Dep-скан Ward ↔ Trivy #26 / Dependabot #27 — информационно, не гейт.
**Координация:** PSR_v1 R10.1 Блок 1 (CLI). Не UI → вне R6.0/R6.1/R14. ADR-014.
### 4.46. pdn-152fz-audit — аудит ПДн и 152-ФЗ (off-phase, infosec-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #71 | pdn-152fz-audit | skill | off-phase | infosec-tooling | «аудит ПДн / соответствие 152-ФЗ» | ADR-014 (IS4 vs pg_anonymizer, IS5 vs D2) | false | 2026-05-21 |
**Источник:** self-authored standalone project-скил `.claude/skills/pdn-152fz-audit/` (`SKILL.md` + `references/checklist.md` + `evals/evals.json`). Свой, не вендоренный; **линтуется** (LINT1).
**Категория:** off-phase, **infosec-tooling**. Раздел карты **A8**.
**Назначение:** 2 режима — технический аудит ПДн (где лежат ПДн в схеме/коде, RLS, маскирование pg_anonymizer, утечки в логах/Sentry/CSV-экспортах, шифрование) + соответствие 152-ФЗ (хранение в РФ, согласия, сроки/удаление, реестр обработки, уведомление РКН, права субъекта `pd_subject_requests`). Заземлён в `db/schema.sql`.
**Роль:** инструмент **#71**. Активен. Триггер-eval в `evals/evals.json`.
**Конфликт-аудит (ADR-014):** IS4 ≠ pg_anonymizer #29 (аудит + направление vs инструмент маскирования); IS5 ≠ D2 (техника + 152-ФЗ-чек-лист vs юридическое оформление документов).
**Координация:** PSR_v1 R10.1 Блок 1 (self-authored project-скил). Не UI → вне R6.0/R6.1/R14. ADR-014.
### 4.47. threat-model — STRIDE моделирование угроз портала (off-phase, infosec-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #72 | threat-model | skill | off-phase | infosec-tooling | «STRIDE угрозы портала, going-public, что защищать первым» | ADR-014 (IS6 vs ToB #39) | false | 2026-05-21 |
**Источник:** self-authored standalone project-скил `.claude/skills/threat-model/` (`SKILL.md` + `references/stride-portal.md` + `evals/evals.json`). Линтуется.
**Категория:** off-phase, **infosec-tooling**. Раздел карты **A8**.
**Назначение:** STRIDE под наш портал (не generic) — карта точек входа (login/2FA/recovery, supplier webhooks, deals API, админка, impersonation, CSV-импорт; заземлён в `app/routes/`), что меняется при выходе в интернет (контур своих → произвольный внешний актор), приоритизация защиты. Результат — `docs/security/threat-model-<date>.md`.
**Роль:** инструмент **#72**. Активен.
**Конфликт-аудит (ADR-014):** IS6 ≠ Trail of Bits `audit-context-building` #39 (наш портал + STRIDE + going-public vs generic deep code-audit).
**Координация:** PSR_v1 R10.1 Блок 1. Не UI → вне R6.0/R6.1/R14. ADR-014.
### 4.48. security-go-live — go-live security-gate (off-phase, infosec-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #73 | security-go-live | skill | off-phase | infosec-tooling | «прогон безопасности перед релизом, go/no-go» | ADR-014 (IS7 vs audit-portal) | false | 2026-05-21 |
**Источник:** self-authored standalone project-скил `.claude/skills/security-go-live/` (`SKILL.md` + `references/gate.md` + `evals/evals.json`). Линтуется.
**Категория:** off-phase, **infosec-tooling**. Раздел карты **A8**.
**Назначение:** единый go-live security-gate перед публикацией — оркеструет #68 ZAP / #69 Nuclei / #70 Ward / #71 pdn-152fz-audit / #72 threat-model + Semgrep #25 / gitleaks #8 / Trivy #26 / Trail of Bits #39 → собирает вердикт **GO / NO-GO**. Каноническая связка **L15** (routing-off-phase).
**Роль:** инструмент **#73**. Активен (оркестратор). ZAP #68 / Ward #70 / Nuclei #69 — установлены (21.05.2026); шаг ZAP возвращает PENDING, если daemon не запущен (MCP-режим требует живого ZAP-демона на portable JRE). Гард IS8 — цель по умолчанию локальная.
**Конфликт-аудит (ADR-014):** IS7 ≠ `audit-portal` (только безопасность + go-live-вердикт vs полный 14-фазный аудит; #73 *вызывает* D3-инструменты, не заменяет).
**Координация:** PSR_v1 R10.1 Блок 1. Не UI → вне R6.0/R6.1/R14. ADR-014.
### 4.49. marketing — первичный решатель C1 (off-phase, marketing-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #74 | marketing (plugin) | plugin | off-phase | marketing-tooling | «маркетинговый контент, кампания, SEO-аудит, email-цепочка, конкурент-бриф, performance-report» | ADR-015 (MKT1 vs C2/C3, MKT2 vs product-management #42, MKT3 vs marketingskills #75) | false | 2026-05-22 |
**Источник:** официальный плагин Anthropic `marketing@knowledge-work-plugins` (та же витрина, что operations #51 / product-management #42 / design #46 / finance #61). 8 скилов: `content-creation`, `draft-content`, `campaign-plan`, `email-sequence`, `seo-audit`, `competitive-brief`, `brand-review`, `performance-report`. Скилы работают автономно, без платных аккаунтов. Встроенные коннекторы (HubSpot/Ahrefs/Klaviyo/Amplitude/SimilarWeb/Canva/Figma/Notion/Slack) — западные SaaS → **не используем** (визуал → A4, аналитика → Метрика #78/Директ #79).
**Категория:** off-phase, **marketing-tooling** — 18-я off-phase подкатегория (после UI-пул, инфраструктура, debug-runtime, architecture-tooling, audit-security, project-management, design-tooling, integration-tooling, ml-ai-tooling, business-process, discovery-tooling, authoring-tooling, dev-support, finance-tooling, backend-tooling, infosec-tooling, discovery-tooling). Раздел карты **C1** «Маркетинг и лидогенерация».
**Роль:** инструмент **#74**. **Первичный решатель** маркетинговых задач C1 — инвокируется первым при любой задаче контента, кампании, SEO, email, конкурент-брифа. Остальные узлы C1 — специализация или материал поверх него.
**Конфликт-аудит (ADR-015):** MKT1 — C1 vs C2 «Продажи»: `sales`/`small-business` плагины Anthropic не берём (C2-пересечения); MKT2 — `performance-report` (#74) vs `metrics-review` (#42): маркетинг = CAC/конверсия/источники каналов, PM = MRR/retention/adoption — разные объекты; MKT3 — `seo-audit` (#74) vs SEO-скилы #75: #74 — решатель (воркфлоу), #75 — материал (фреймворки); MKT4 — визуал → A4, не C1; MKT5 — email-copy vs отправка (Unisender #83 DEFERRED).
**Координация:** PSR_v1 R10.1 Блок 1 (plugin). Не UI → вне R6.0/R6.1/R14. ADR-015.
### 4.50. marketingskills — резерв-библиотека маркетинговых фреймворков (off-phase, marketing-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #75 | marketingskills | vendored-skill | off-phase | marketing-tooling | «фреймворки CRO, копирайтинг, programmatic-SEO, ad-creative, cold-email, lead-magnets, pricing, marketing-psychology» | ADR-015 (MKT3 — материал, не решатель; MKT7 вендоринг MIT; MKT10 lint-exclude) | false | 2026-05-22 |
**Источник:** `coreyhaines31/marketingskills` (MIT, Copyright 2025 Corey Haines; 30k★, 4.9k форков, v2.1.0 последний коммит 21.05.2026). 40 скилов: CRO, копирайтинг, SEO, ai-seo, programmatic-seo, ad-creative, cold-email, lead-magnets, pricing, marketing-psychology. Чистый markdown — исполняемого кода в `skills/` нет. IS9-вет PASS-with-conditions (`docs/security/marketing-vet.md` C1-1): вендорить только `skills/` + `LICENSE`; validate-bash-скрипты в проект не включать; `ATTRIBUTION.md` обязателен. **Вендоренный** в `.claude/skills/marketingskills/` (иммунитет к потере апстрима — модель data-scientist #49 / mermaid #37 / ccpm #41).
**Категория:** off-phase, **marketing-tooling**. Раздел карты **C1**.
**Роль:** инструмент **#75**. **Материал/резерв-библиотека** (модель UPM #31: «резерв-библиотека, не решатель»). Решатель — marketing plugin #74. Не выдаёт готовый ответ самостоятельно — используется как источник фреймворков при углублённой работе с #74. **MKT10** — исключить из lefthook markdownlint+cspell (как MK1 mermaid / CC1 ccpm).
**Конфликт-аудит (ADR-015):** MKT3 — роль-разделение решатель(#74)/материал(#75) соблюдает §5 п.6 (один инструмент на задачу). MKT7 — IS9-вет выполнен, лицензия MIT подтверждена прямым чтением. MKT10 — lint-exclude вендоренного скил-набора.
**Координация:** PSR_v1 R10.1 Блок 1 (vendored-skill). Не UI → вне R6.0/R6.1/R14. ADR-015.
### 4.51. brand-voice — вербальный бренд Лидерры (off-phase, marketing-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #76 | brand-voice (plugin) | plugin | off-phase | marketing-tooling | «тон бренда, голос бренда, brand guidelines для текстов, тон копирайта» | ADR-015 (MKT6 — вербальный бренд vs Brandbook v2 визуальный бренд) | false | 2026-05-22 |
**Источник:** официальная витрина Anthropic `knowledge-work-plugins/partner-built/brand-voice` (Tribe AI). 3 скила: вытащить голос бренда из существующих текстов, сгенерировать brand guidelines, держать тон в новых материалах. Язык-нейтрален → работает для русского.
**Категория:** off-phase, **marketing-tooling**. Раздел карты **C1**.
**Роль:** инструмент **#76**. Вербальный бренд-слой Лидерры. Заземляется в позиционировании `liderra_v8_handoff/docs/BRANDBOOK_v2.md`**граница MKT6**: Brandbook v2 = **визуальный** бренд (палитра/шрифты/лого); brand-voice #76 = **вербальный** бренд (тон, стиль копирайта). Взаимодополняют, не дублируют.
**Конфликт-аудит (ADR-015):** MKT6 — визуал/вербал разделение чёткое; #76 не заменяет Brandbook v2 и не переопределяет Forest палитру.
**Координация:** PSR_v1 R10.1 Блок 1 (plugin). Не UI → вне R6.0/R6.1/R14. ADR-015.
### 4.52. marketing-ru — РФ-специфика маркетинга Лидерры (off-phase, marketing-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #77 | marketing-ru | skill | off-phase | marketing-tooling | «Яндекс.Директ, Яндекс.Метрика, VK, Telegram как каналы; конверсия лендинга Лидерры; маркетинг 152-ФЗ согласия на рассылки» | ADR-015 (MKT9 — 152-ФЗ cross-ref #71; MKT1 РФ-специфика C1) | false | 2026-05-22 |
**Источник:** self-authored standalone project-скил `.claude/skills/marketing-ru/` (`SKILL.md` + `references/rf-channels.md` + `evals/evals.json`). Модель billing-audit #62 / threat-model #72 / pdn-152fz-audit #71. **Линтуется** (не в ignorePaths, в отличие от вендоренного #75). Eval триггеров аналогично discovery-interview (20/20 цель).
**Категория:** off-phase, **marketing-tooling**. Раздел карты **C1**.
**Роль:** инструмент **#77**. Закрывает РФ-специфику маркетинга, которой нет ни у одного Anthropic-плагина: playbook каналов РФ (Яндекс.Директ/Метрика/VK/Telegram), конверсия реального лендинга Лидерры (заземлён в `лендинг/TZ_landing_v1_0.md`), маркетинг в рамках 152-ФЗ — согласия на рассылки, cross-ref pdn-152fz-audit #71 (MKT9).
**Конфликт-аудит (ADR-015):** MKT9 — согласия на маркетинговые рассылки + cross-ref #71 (ПДн-152ФЗ аудит); MKT1 — only C1 demand-gen, не продажи C2.
**Координация:** PSR_v1 R10.1 Блок 1 (self-authored project-скил). Не UI → вне R6.0/R6.1/R14. ADR-015.
### 4.53. Яндекс.Метрика MCP — веб-аналитика READ-ONLY (off-phase, marketing-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #78 | Яндекс.Метрика MCP | mcp | off-phase | marketing-tooling | «веб-аналитика лендинга: визиты, источники трафика, гео, демография, поведение» | ADR-015 (MKT8 READ-ONLY; активация при живом лендинге ⏸ Б-1) | false | 2026-05-22 |
**Источник:** `atomkraft/yandex-metrika-mcp` (MIT; **выбран по IS9-вету** из 3 кандидатов — `Vadosdavos` отклонён (нет лицензии, 1 коммит), `theYahia` лицензия OK но код не верифицирован; `atomkraft` — единственный полностью верифицированный: хост `api-metrika.yandex.net` only, Zod-валидация, 0 shell-вызовов; IS9-вет `docs/security/marketing-vet.md` C1-2). Токен OAuth бесплатный. Caveat: одиночный автор, 7 коммитов — пинить SHA в `.mcp.json`, пересматривать upstream ежеквартально.
**Категория:** off-phase, **marketing-tooling**. Раздел карты **C1**.
**Роль:** инструмент **#78**. **READ-ONLY** (прецедент Sentry #34 / Redis #35 / openapi-mcp-server #47). Чтение счётчика Метрики — источники трафика, поведение посетителей, гео, воронка конверсии лендинга. **Полезен при живом лендинге со счётчиком** (⏸ Б-1); технически подключается сейчас (вариант Б), активируется при трафике. MCP-конфиг в `.mcp.json` (OAuth-токен через env).
**Конфликт-аудит (ADR-015):** MKT8 — строго READ-ONLY, мутаций нет; MKT2 — аналитика трафика C1 vs продуктовые метрики #42 (разные объекты).
**Координация:** PSR_v1 R10.1 Блок 3 (MCP). Не UI → вне R6.0/R6.1/R14. ADR-015.
### 4.54. Яндекс.Директ+Wordstat MCP — подбор ключевых слов (off-phase, marketing-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #79 | Яндекс.Директ+Wordstat MCP | mcp | off-phase | marketing-tooling | «подбор ключевых слов Wordstat, частотность запросов РФ» | ADR-015 (MKT8 — **Direct-мутации НЕ активированы**; Wordstat-инструменты only) | false | 2026-05-22 |
**Источник:** `SvechaPVL/yandex-mcp` (MIT; IS9-вет `docs/security/marketing-vet.md` C1-3 PASS-with-conditions). Архитектура: 3 модуля — Direct (80 mutation-tools ⚠️), Metrika (43 read-only), Wordstat (5 read-only). Все URL — официальные домены Yandex (`api.direct.yandex.com`, `api-metrika.yandex.net`, `api.wordstat.yandex.net`). Одиночный автор SvechaPVL, 8 коммитов, 16★ — maintenance-риск, SHA-пин обязателен.
**Категория:** off-phase, **marketing-tooling**. Раздел карты **C1**.
**Роль:** инструмент **#79**. **Только Wordstat-модуль** (5 tools, `tools/wordstat.py` — read-only подбор ключевых слов). **Direct-модуль (80 mutation-tools — создание/правка/ставки кампаний) НЕ активирован** (IS9-условие C1-3; OAuth-токен с минимальным Wordstat-scope). Wordstat полезен уже сейчас (до запуска кампаний) — SEO-контент и ключевые слова для лендинга. Граница MKT8: авто-расход рекламного бюджета запрещён.
**Конфликт-аудит (ADR-015):** MKT8 — Direct-мутации hard-block; отброшенный VK-сервер (0★, «can spend money») — прецедент почему важно.
**Координация:** PSR_v1 R10.1 Блок 3 (MCP). Не UI → вне R6.0/R6.1/R14. ADR-015.
### 4.55. Telegram MCP — управление Telegram-каналами (off-phase, marketing-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #80 | Telegram MCP | mcp | off-phase | marketing-tooling | «постинг в Telegram-канал, управление, получение аналитики канала» | ADR-015 (MKT8 — SESSION_STRING только .env, выделенный аккаунт) | false | 2026-05-22 |
**Источник:** `chigwell/telegram-mcp` (Apache-2.0; IS9-вет `docs/security/marketing-vet.md` C1-4 PASS-with-conditions). MTProto user-account через Telethon. 259 коммитов, ~1.1k★, активный зрелый проект (chigwell primary + l1v0n1 contributor). Хост — только Telegram-серверы через Telethon. Защита path-traversal + sanitize_user_content. Верифицированный код (`main.py` + `runtime.py`).
**Категория:** off-phase, **marketing-tooling**. Раздел карты **C1**.
**Роль:** инструмент **#80**. Постинг в Telegram-каналы Лидерры (маркетинговые анонсы, контент). IS9-условия C1-4: `TELEGRAM_SESSION_STRING` — только в `.env` на сервере (не в git/логах); **выделенный аккаунт** (не основной бизнес-аккаунт); режим READ-тяжёлый (отправка только через явное действие оператора); ротация SESSION_STRING при компрометации.
**Конфликт-аудит (ADR-015):** MTProto user-account vs bot-token — операционный риск (не проблема кода); митигируется выделенным аккаунтом и .env-изоляцией.
**Координация:** PSR_v1 R10.1 Блок 3 (MCP). Не UI → вне R6.0/R6.1/R14. ADR-015.
### 4.56. Postiz — планировщик публикаций self-hosted (off-phase, marketing-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #81 | Postiz | mcp | off-phase | marketing-tooling | «планирование и публикация в 30+ соцсетей включая VK и Telegram, контент-календарь» | ADR-015 (MKT7 AGPL self-host без дистрибуции; покрывает VK-постинг вместо отброшенного VK standalone MCP) | false | 2026-05-22 |
**Источник:** `gitroomhq/postiz-app` (~30k★, активный; AGPL-3.0, Copyright Nevo David 2025) + MCP-клиент `antoniolg/postiz-mcp`. IS9-вет `docs/security/marketing-vet.md` C1-5 PASS-with-conditions. **AGPL-3.0** — приемлема для паттерна «внутренний self-host без дистрибуции» (FSF-трактовка §13: private internal use не триггерит обязательство публиковать исходники; мы не распространяем — запускаем у себя). Лицензия `antoniolg/postiz-mcp` не верифицирована → проверить перед активацией MCP-клиента.
**Категория:** off-phase, **marketing-tooling**. Раздел карты **C1**.
**Роль:** инструмент **#81**. Self-hosted планировщик публикаций в 30+ площадок (VK, Telegram, LinkedIn и др.). **Покрывает VK-постинг** (закрывает отказ от VK standalone MCP — `ssm82/full-vk-mcp` 0★ с правом тратить бюджет). AGPL-условия: использовать as-is без модификаций кода; сохранить copyright notice на сервере; не распространять сборки. Boot self-host — отдельный шаг (откладывается до явной потребности); узел зарегистрирован сейчас.
**Конфликт-аудит (ADR-015):** MKT7 — IS9-вет выполнен; AGPL-применимость подтверждена; VK-постинг Postiz устраняет необходимость VK standalone MCP.
**Координация:** PSR_v1 R10.1 Блок 3 (MCP/self-hosted). Не UI → вне R6.0/R6.1/R14. ADR-015.
### 4.57. DataForSEO MCP — SEO-данные РФ (off-phase, marketing-tooling) — DEFERRED
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #82 | DataForSEO MCP | mcp | off-phase | marketing-tooling | «SERP-позиции, ключевые слова, бэклинки, данные РФ-выдачи» | ADR-015 (DEFERRED — платный аккаунт после Б-1) | true | 2026-05-22 |
**Источник:** `dataforseo/mcp-server-typescript` (~204★, официальный DataForSEO). SERP/ключи/бэклинки, включая данные по Яндекс РФ-выдаче. **DEFERRED** — требует платного аккаунта DataForSEO. Активация после Б-1 (регистрация ООО + оплата). Единственный отложенный SEO-данных слот (Ahrefs OSS deprecated; Semrush — платный западный).
**Категория:** off-phase, **marketing-tooling**. Раздел карты **C1**.
**Роль:** инструмент **#82**. **DEFERRED** (pending-слот как Figma MCP #44 / NightOwl #67 / Jupyter MCP #50). Pending-условие: платный аккаунт DataForSEO (после Б-1). До активации — Wordstat #79 покрывает базовый keyword research.
**Конфликт-аудит (ADR-015):** SEO-данные #82 vs Wordstat #79 (локальная частотность) — комплементарны; #82 даёт SERP + бэклинки + более широкую аналитику.
**Координация:** PSR_v1 R10.1 Блок 3 (MCP, DEFERRED). Не UI → вне R6.0/R6.1/R14. ADR-015.
### 4.58. Unisender Go MCP — email-рассылки (off-phase, marketing-tooling) — DEFERRED
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #83 | Unisender Go MCP | mcp | off-phase | marketing-tooling | «массовые email-рассылки через Unisender Go API» | ADR-015 (DEFERRED — нет готового upstream MCP; своя обёртка по потребности) | true | 2026-05-22 |
**Источник:** нет готового качественного MCP-сервера для Unisender Go (только платный Composio-коннектор + клиентские библиотеки без MCP-интерфейса). **DEFERRED** — по потребности написать тонкий MCP-wrapper над API Unisender Go (наш текущий email-сервис для транзакционных писем). Граница MKT5: `email-sequence` (#74) = черновики контента кампаний; **отправка** = этот wrapper #83.
**Категория:** off-phase, **marketing-tooling**. Раздел карты **C1**.
**Роль:** инструмент **#83**. **DEFERRED** (pending-слот — нет upstream-сервера). Unisender Go уже используется в продуктовом коде (транзакционные письма); маркетинговые рассылки через тот же API — логичное расширение. Активация: по потребности массовых маркетинговых рассылок. IS9-вет на wrapper — при создании.
**Конфликт-аудит (ADR-015):** MKT5 — транзакционный email портала (продуктовый код) vs маркетинговые рассылки (этот wrapper) — разные потоки, разные compliance-обязательства (152-ФЗ согласия — cross-ref #77 marketing-ru + #71 pdn-152fz-audit).
**Координация:** PSR_v1 R10.1 Блок 3 (MCP, DEFERRED). Не UI → вне R6.0/R6.1/R14. ADR-015.
---
### 4.59. graphifyy — knowledge graph портала (off-phase, knowledge-graph-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #86 | graphifyy | cli | off-phase | knowledge-graph-tooling | «knowledge graph», «как устроен наш модуль X», «где наша функция Y вызывается», «cross-layer concept query», «структурные связи между спеком и кодом» | ADR-017 (граница ↔ context7 #60 / Boost #10 / openapi-mcp #47 / Sentry MCP #34 / adr-kit #36 / mermaid #37) | false | 2026-05-27 |
**Источник:** npm-пакет `graphifyy` v0.8.20+, бинарь `graphify.exe`. Установка через `uv tool install graphifyy` (Python-based CLI, runs as binary). User-level skill `~/.claude/skills/graphify/SKILL.md` (через `graphify install --platform claude`). Backend семантической экстракции: GEMINI_API_KEY / GOOGLE_API_KEY (если есть) ИЛИ fallback на Claude Code subagent dispatch (используется в Лидерре — нет Gemini-ключа). **НЕ читает** ANTHROPIC_API_KEY, OPENAI_API_KEY, Ollama API.
**Категория:** off-phase, **knowledge-graph-tooling** (19-я подкатегория, после marketing-tooling #74#83).
**Роль:** инструмент **#86**. Knowledge graph всего портала Лидерры (docs+config+code) для cross-layer навигации. Spike `spike/graphify-2026-05-27` отработал три фазы (docs/ → .claude/ → app/) с воспроизводимой методологией «subfolder + `graphify merge-graphs`». Ultimate combined граф: 6305 узлов / 6753 рёбер / 1009 communities (93% EXTRACTED / 7% INFERRED). Артефакты `graphify-out/{graph.json,GRAPH_REPORT.md,graph.html,cache/}` в CWD откуда запущен — **`graphify-out*/` обязательно в `.gitignore`**.
**Активация:** explicit `/graphify <команда>` (query / path / explain / update / build), не проактивно. Strict gate: если уже существует `graphify-out/graph.json` и вопрос natural-language — fast-path сразу к `graphify query`, не пересборка.
**Стратегия обновлений:**
- **Manual `/graphify --update`** — единственный безопасный режим. AST-only для code-изменений (бесплатно, deterministic), LLM-semantic для doc/MD-изменений (через subagent dispatch, дорого).
- **Auto-update post-commit hook отложен** (см. ADR-017 §«Стратегия обновлений»). Spike-попытка 27.05 разнесла граф 6305 → 41586 узлов (38 МБ bloat) — `graphify update .` от широкого scope подхватил `tools/` + root-level .mjs за пределами трёх фаз. Откат через re-merge phase-бэкапов восстановил canonical. Перед auto-wire-in: спроектировать узкий scope + exclude pattern (vendor/, tools/, node_modules/), узкий manifest, smoke-test.
**Конфликт-аудит (ADR-017):**
- **KG1 — ↔ context7 (#60):** разные слои доков. context7 = внешние SDK/фреймворки (vendor docs); graphify = внутренний codebase Лидерры. Не дублируют.
- **KG2 — ↔ Laravel Boost (#10):** разный grain. Boost = runtime queries в app/ (Eloquent/DB/Laravel-docs); graphify = static cross-layer relationship graph. Boost первый для «выполни SQL»; graphify для «покажи связи».
- **KG3 — ↔ openapi-mcp-server (#47):** разный объект. openapi = introspection одного спека; graphify = весь проект, OpenAPI как часть.
- **KG4 — ↔ Sentry MCP (#34):** разная плоскость. Sentry = runtime errors; graphify = структурные отношения. Post-mortem: Sentry находит X, graphify показывает blast radius.
- **KG5 — ↔ adr-kit (#36) + mermaid-skill (#37):** разная природа. ADR/mermaid = manual authoring (декларативно); graphify = auto-discovery из исходников. ADR — нормативное решение, graphify-граф — наблюдаемая структура.
**Координация:** PSR_v1 R10.1 (CLI off-phase, не UI → вне R6.0/R6.1/R14); R15.6 +knowledge-graph-tooling в список off-phase подкатегорий. ADR-017.
**Ollama compliance:** Ollama установлен в проекте для 152-ФЗ-чувствительных задач (локальный LLM без отправки в Anthropic), но graphify Ollama НЕ использует — два независимых инструмента.
### 4.60. perplexity MCP — ранжированный веб-ответ с источниками (off-phase, research-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #87 | perplexity MCP | mcp | off-phase | research-tooling | «веб-разведка», «актуальные практики», «что говорят источники», «deep research», «sonar» | ADR-019 (RT1 ↔ context7 #60; RT4 ↔ exa #88) | false | 2026-06-14 |
**Роль:** инструмент **#87**. MCP-сервер `@perplexity-ai/mcp-server` (READ-ONLY): `perplexity_search` (ранжированный web-ответ), `perplexity_ask` (sonar-pro real-time с цитатами), `perplexity_research` (sonar-deep-research, 30s+), `perplexity_reason` (sonar-reasoning-pro). Первичный «дай ответ-с-источниками» в research chain L17. Базовый URL через AITUNNEL (`PERPLEXITY_BASE_URL`); ключ `PERPLEXITY_API_KEY` только в env (платный API, owner waiver).
**Категория:** off-phase, **research-tooling** — 20-я off-phase подкатегория (внешние MCP веб-разведки). Не UI → **не** проходит R6.0/R6.1/R14 PSR_v1. Регулируется PSR_v1 R10.1 Блок 3 (MCP-сервер). Gate-постура read_only зафиксирована в `tools/mcp-tool-classifier.mjs` (commit `bfc1f575`).
### 4.61. exa MCP — семантическое обнаружение источников (off-phase, research-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #88 | exa MCP | mcp | off-phase | research-tooling | «семантический поиск», «нейро-поиск», «обнаружение источников по смыслу», «exa» | ADR-019 (RT4 ↔ perplexity #87 / firecrawl #89) | false | 2026-06-14 |
**Роль:** инструмент **#88**. MCP-сервер `exa-mcp-server` (exa-labs, READ-ONLY): `web_search_exa` (находит концептуально близкое, что keyword-поиск пропускает) + `web_fetch_exa` (страница по URL). Слой «обнаружение источников по смыслу» в research chain L17. Ключ `EXA_API_KEY` только в env (платный API).
**Категория:** off-phase, research-tooling — 20-я off-phase подкатегория (внешние MCP веб-разведки). Не UI → вне R6.0/R6.1/R14 PSR_v1. PSR_v1 R10.1 Блок 3. Gate read_only (commit `bfc1f575`).
### 4.62. firecrawl MCP — глубокое чтение и обход веба (off-phase, research-tooling)
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #89 | firecrawl MCP | mcp | off-phase | research-tooling | «глубокое чтение страницы», «обход сайта», «scrape», «crawl», «извлечь структурированное», «firecrawl» | ADR-019 (RT4 ↔ perplexity #87 / exa #88; RT3 ↔ openapi #47) | false | 2026-06-14 |
**Роль:** инструмент **#89**. MCP-сервер `firecrawl-mcp` (Firecrawl/Mendable, READ-ONLY read-тяжёлый): `firecrawl_scrape` / `batch_scrape` / `map` / `search` / `crawl` / `extract` + `firecrawl_agent` (автономный web-research) + `firecrawl_agent_status`. Слой «прочитать страницу целиком / обойти сайт» в research chain L17. Ключ `FIRECRAWL_API_KEY` только в env (платный API).
**Категория:** off-phase, research-tooling — 20-я off-phase подкатегория (внешние MCP веб-разведки). Не UI → вне R6.0/R6.1/R14 PSR_v1. PSR_v1 R10.1 Блок 3. Gate read_only (commit `bfc1f575`).
**Граница research-tooling (ADR-019, RT1RT9):** открытый веб (практики/нормы/конкуренты); ≠ context7 #60 (SDK-доки) / openapi #47 (наш REST) / Boost #10 (Laravel) / Sentry #34 + Redis #35 (runtime прод) / graphify #86 (внутренний граф) / GitHub #3 (репо). Внутри пака: perplexity #87 (ответ) → exa #88 (обнаружение) → firecrawl #89 (чтение) — связка L17. Платные API, ключи только в env, без авто-трат (RT8). IS9-вет `docs/research/research-vet.md` — все три ПРИНЯТ.
---
## 5. Фаза 3 — pre-production (+5 новых, итого 29 активных)
**Триггер:** ~спринт 12, перед публичным релизом MVP.
| # | Инструмент | Установка | Категория | Роль |
|---|---|---|---|---|
| 25 | **Semgrep + Semgrep MCP** | `pip install semgrep` + `claude mcp add semgrep` | SAST | Скан по антипаттернам Прил. М §6.6: пароль в `<input type="text">`, API-ключи в `<input type="text">`, hardcoded URL вроде `prostats.info/bitrix24/webhook.php` |
| 26 | **Trivy** | GitHub Releases | Container scan | Скан Docker-образов перед push в Yandex Container Registry |
| 27 | **GitHub Dependabot** | `.github/dependabot.yml` | Dependency scan | Авто-PR с фиксом CVE для `composer.json` и `package.json` |
| 28 | **pg_audit** (расширение PostgreSQL) ✅ прод 22.05.2026 | `CREATE EXTENSION pgaudit` | Compliance | Аудит-логи в дополнение к `auth_log`, `pd_processing_log`, `incidents_log` (требование 152-ФЗ) |
| 29 | **pg_anonymizer** (расширение PostgreSQL) ✅ прод 22.05.2026 | `CREATE EXTENSION anon` | Compliance | Маскирование ПДн в dev/staging-дампах. Правило §5.1 правил Claude (`+7XXXXXXXXXX`, `***@***`) |
> Нумерация 25–29 — это глобальные индексы в порядке введения. Активных в финале — 28 (см. §0): из 29 номеров минус #1 (PostgreSQL MCP) — заменён Boost'ом.
### 5.1. Атрибуты узлов фазы 3 (per ADR-011)
Структурированный реестр 9-атрибутов для phase-3 nodes #25#29 (per ADR-011, см. §0.1). Phase-3 tools — pre-production (триггер фазы ~спринт 12 per CLAUDE.md §6); registry-known but not yet runtime-installed. `dormant=false` (field semantics: installed-but-disabled, not «not-yet-installed»).
#### #25 Semgrep + Semgrep MCP
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #25 | Semgrep + Semgrep MCP | binary-dep | 3 | — | «SAST, security static analysis» | связка binary+mcp | false | 2026-05-19 |
#### #26 Trivy
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #26 | Trivy | binary-dep | 3 | — | «Docker image scan, container vulnerabilities» | none | false | 2026-05-19 |
#### #27 GitHub Dependabot
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #27 | GitHub Dependabot | github-config | 3 | — | «CVE PR auto, dependency updates» | none | false | 2026-05-19 |
#### #28 pg\_audit
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #28 | pg_audit | pg-extension | 3 | — | «audit logs PostgreSQL, mutation tracking» | none | false | 2026-05-22 |
**Статус:** ✅ установлен на боевом `liderra.ru` 22.05.2026 (PostgreSQL 16, `shared_preload_libraries='pgaudit'`, `pgaudit.log='ddl, role, write'`, `log_parameter=off` — ПДн не логируются). Журнал → `/var/log/postgresql/postgresql-16-main.log`. Установка/использование — [`docs/security/pgaudit-anonymizer-setup.md`](security/pgaudit-anonymizer-setup.md).
#### #29 pg\_anonymizer
**Атрибуты:**
| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched |
|---|---|---|---|---|---|---|---|---|
| #29 | pg_anonymizer | pg-extension | 3 | — | «маскирование ПДн в дампах» | none | false | 2026-05-22 |
**Статус:** ✅ установлен на боевом `liderra.ru` 22.05.2026 (anon 3.0.13, Rust/pgrx — собран из исходников; нет готового пакета). Загрузка по требованию (`LOAD 'anon'`), НЕ db-wide preload — портал не замедляется. Установка/использование — [`docs/security/pgaudit-anonymizer-setup.md`](security/pgaudit-anonymizer-setup.md).
---
## 6. Конфликты и решения
10 зон, где без явного правила я выберу не тот инструмент (5 классических из v1.0 + 5 новых из v1.4 PSR_v1, формализованных в Прил. Н v1.13):
| # | Конфликт | Решение |
|---|---|---|
| 1 | **PostgreSQL MCP ↔ Laravel Boost (Database Query)** в момент перехода фазы 0→1 | В момент `boost:install` сразу убрать PG MCP из `.mcp.json`. Не оставлять оба активными |
| 2 | **Pest ↔ PHPUnit** | **Pest 4** (CTO-12 переоткрыт+закрыт 08.05.2026 поздний вечер). На `boost:install` отключить guideline PHPUnit |
| 3 | **vue-tsc ↔ Volar inline check** | Volar — для редактора (быстрый). vue-tsc — только в CI (полный pass) |
| 4 | **ESLint stylistic ↔ Prettier** | `eslint-config-prettier` обязателен. Без него — конфликт правил |
| 5 | **Pa11y ↔ Lighthouse a11y** | Lighthouse не входит в 28 (он инфраструктурный, см. §12). Если будет добавлен — отключить категорию `accessibility` через `--only-categories=performance,best-practices` |
| 6 | **UPM (#31) ↔ Frontend Design (#30) на одной фазе UI-фичи** | PSR_v1 R10.1 + R14.5: **не параллельно**. UPM активируется **последовательно** как fallback (R14.3 «FD выдал не покрывает») или как «третий вариант» в R12 архитектурном (R11.5). Решатель — всегда FD; UPM — материал |
| 7 | **21st Magic MCP (#32) ↔ существующий Vuetify-компонент** | PSR_v1 R0.6 пункт 10: **hard-стоп даже в Auto mode**. Для `v-data-table`/`v-text-field`/`v-dialog`/`v-select`/`v-card`/`v-btn` и др. — использовать Vuetify, 21st не вызывается. Дублирование инструментов на одну задачу = нарушение CLAUDE.md §5 п.6 |
| 8 | **21st Magic MCP (#32) ↔ брендовый компонент App\*** | PSR_v1 R0.6 пункт 9: **hard-стоп**. Для `AppButton`/`AppCard`/`AppDataTable`/`AppDialog` и любых App*-семейств — R12 архитектурное (3 варианта по Pravila §4.5), 21st не вызывается. Брендовая оболочка проектируется руками с FD-принципами |
| 9 | **framer-motion ↔ motion-v** (Vue порт) | PSR_v1 R15.1 + R15.2: framer-motion — **hard-запрет навсегда** (React-only архитектурно, не работает в Vue). motion-v — условно по 4 триггерам (а)+(б)+(в)+(г). По умолчанию ни то, ни другое — стойка R15.3 (Vue native + Vuetify + CSS + View Transitions API) |
| 10 | **UPM (#31) ↔ 21st Magic MCP (#32) на одной фазе** | PSR_v1 R14.5: **не на одной фазе**. UPM работает на фазах 1/2 R2 (brainstorming + visual design); 21st — на фазе 5 R2 (визуальная сборка). Если кажется, что нужны оба — задача декомпозируется на под-задачи |
---
## 7. Source of truth — приоритет правил
При противоречии между правилами (синхронизировано с CLAUDE.md §1, 7-уровневая файловая иерархия; добавлен PSR_v1 уровнем 3 в v1.13):
```
0. docs/Pravila_raboty_Claude_v1_1.md §12 (Superpowers hard rule — выше всех)
1. docs/Pravila_raboty_Claude_v1_1.md (остальные параграфы — продуктовые правила, утверждены заказчиком)
2. CLAUDE.md (корень — оперативная карта, авто-загружается Claude Code)
3. docs/Plugin_stack_rules_v1.md (PSR_v1 — координация paired-stack ядра + расширенного UI-пула + motion-системы)
4. .claude/settings.json (хуки, permissions — исполняется средой)
5. memory/*.md (динамическая память между сессиями Claude)
6. Прочие плагины и встроенные skills Claude Code (поведенческие подсказки, ниже всех)
```
**Правило применения:** при любом конфликте — выбирается верхний источник. Нижестоящие игнорируются в части, которая противоречит верхним. Это правило явно зафиксировано в `CLAUDE.md` §1. **Scope:** общая файловая/слоевая иерархия. Внутрипараграфный приоритет внутри Pravila — см. Pravila §0; scope головенства stack'а — см. PSR_v1 R0.1.
> **Tooling Прил. Н в priority chain (v1.14+):** этот файл (детальный реестр 33 инструментов) сидит **уровнем 2b** alongside CLAUDE.md (общая оперативная карта) — оба operational maps. При прямом конфликте между ними побеждает **CLAUDE.md** как корневая карта Claude Code. Раньше (до v1.14) Tooling формально не был в priority chain ни одного из 4 файлов, хотя PSR_v1 R0.1 говорил «stack ниже Файлы CLAUDE.md / Pravila / Tooling» — формальная дыра при конфликте «Tooling vs PSR_v1». Закрыто в v1.14 (audit P2-01).
>
> Полная цепочка с Tooling: 0 (Pravila §12) → 1 (Pravila) → 2a (CLAUDE.md) + 2b (этот файл, alongside) → 3 (PSR_v1) → 4 (settings.json) → 5 (memory) → 6 (прочие плагины).
---
## 8. Source of truth — конфиги
Где какой конфиг лежит и кто его редактирует:
| Конфиг | Где | Редактирует | В git? |
|---|---|---|---|
| `.markdownlint.json` | корень | разработчик | ✅ |
| `cspell.json` + `cspell-words.txt` | корень | разработчик (словарь обновляется по PR) | ✅ |
| `.lychee.toml` | корень | разработчик | ✅ |
| `.gitleaks.toml` | корень | security lead | ✅ |
| `.stylelintrc.json` | корень | frontend lead (фаза 2) | ✅ |
| `pa11y.config.json` | корень | frontend lead | ✅ |
| `.claude/settings.json` (хуки, permissions) | `.claude/` | Claude (по запросу через `/update-config`) | ✅ |
| `.mcp.json` (MCP-серверы) | корень | разработчик (не Boost) | ✅ — расхождение с дефолтом Boost'а |
| `CLAUDE.md` | корень | Claude (по запросу заказчика) | ✅ |
| `boost.json` | корень | разработчик | ✅ |
| `pint.json` | корень (фаза 1) | backend lead | ✅ |
| `phpstan.neon` (Larastan) | корень (фаза 1) | backend lead | ✅ |
| `eslint.config.js` | корень (фаза 2) | frontend lead | ✅ |
| `.prettierrc` + `.prettierignore` | корень (фаза 2) | frontend lead | ✅ |
| `vitest.config.ts` | корень (фаза 2) | frontend lead | ✅ |
| `histoire.config.ts` | корень (фаза 2) | frontend lead | ✅ |
| `semgrep.yml` | `.github/` (фаза 3) | security lead | ✅ |
| `dependabot.yml` | `.github/` (фаза 3) | DevOps | ✅ |
---
## 9. Что НЕ ставим и почему (10 пунктов + motion-runtime раздел v1.12)
### 9.1. Изначальный список
| Инструмент | Причина отказа |
|---|---|
| ~~**Frontend Design** plugin (Anthropic)~~ | **СНЯТО 09.05.2026** (v1.10): запрет CLAUDE.md §5 п.5 снят, плагин включён как paired stack со Superpowers; координация — `docs/Plugin_stack_rules_v1.md`. Anti-pattern «Inter» нейтрализован hard-override R6.1 PSR_v1 |
| **CodeQL** | Дублирует Semgrep; платный для private-репо; Semgrep CE покрывает наши потребности |
| **Laravel Security Checker** (`enlightn/security-checker`) | Дублирует Dependabot + Roave |
| **PHP-CS-Fixer** | Перекрывается Pint'ом (Pint = надстройка над CS-Fixer) |
| **Psalm** | Перекрывается Larastan |
| **Jest** | Перекрывается Vitest (один тест-раннер) |
| **Storybook** (для Vue) | Histoire легче и нативнее для Vue 3 + Vite |
| **Snyk** (платный) | Dependabot бесплатный и достаточный |
| **markdown-link-check** | lychee быстрее (Rust vs Node) и надёжнее |
| **Sequential Thinking MCP** | Дублирует моё базовое рассуждение, жрёт токены |
| **Memory MCP** | Конфликтует с моей файловой памятью в `memory/` |
| **Tailwind MCP / shadcn-vue** | У нас Vuetify (CTO-11), не Tailwind |
| **Inertia / Livewire / Filament / Flux UI / Nova / Folio / Volt / Wayfinder guidelines** Boost'а | Не используются в стеке проекта |
### 9.2. Motion runtime библиотеки (с v1.16 — technical guidance, не regulatory)
С v1.16 / PSR_v1 v2.0 motion-runtime библиотеки **разрешены к установке без обоснования** (R15 PSR_v1 снят 12.05.2026). Default motion stack — **Vue native `<Transition>` + Vuetify transitions + CSS @keyframes + View Transitions API** — остаётся рекомендацией (CLAUDE.md §2), но не hard-rule. Эта таблица — **technical guidance** о свойствах библиотек, не regulatory denylist.
| Библиотека | Статус | Технические свойства |
|---|---|---|
| **framer-motion** (npm `framer-motion`) | **❌ Technical block (не regulatory)** | React-only архитектурно: peerDeps `react>=18` + `react-dom>=18`. Использует React fiber-tree + hooks + JSX. В Vue 3 + Vuetify стеке физически не работает — runtime crash при `import { motion } from 'framer-motion'` в `.vue` файлах. `npm install` пройдёт с peer-dep warn, но любой import упадёт. Не regulatory rule — свойство библиотеки. |
| **react-spring** (npm `@react-spring/*`) | **❌ Technical block** | React-only по той же причине (peerDep react). |
| **motion-v** (npm `motion-v`) | ✅ Разрешено | Vue 3 порт API framer-motion от того же maintainer'а Motion. ~30 KB gzipped. ~95% API-совместимость с framer-motion (motion.div, animate, variants, layout, drag, gestures). |
| **gsap** (`gsap` npm) | ✅ Разрешено | Imperative timeline-driven. Подходит для marketing/agency UI, сложных choreographed sequences. |
| **anime.js** | ✅ Разрешено | Лёгкая alternative gsap, ~17 KB. |
| **lottie-web** (`lottie-web`) | ✅ Разрешено | Для Lottie/After Effects-ассетов. |
| **popmotion**, **@motionone/dom** | ✅ Разрешено | Низкоуровневые движки. |
| **Auto-Animate** (`@formkit/auto-animate`) | ✅ Разрешено | Один компонент, FLIP под капотом, ~3 KB. |
**Default motion stack (без runtime-зависимостей):**
| Слой | Что покрывает | Размер |
|---|---|---|
| Vue 3 native `<Transition>` / `<TransitionGroup>` | enter/leave hooks, FLIP через TransitionGroup, JS-callbacks | 0 KB (нативно) |
| Vuetify 3 transitions (`v-fade`, `v-slide-y`, `v-slide-x`, `v-scale`, `v-expand`, `v-dialog-transition`) | Material-design анимации; уже в `vuetify@3.12` | 0 KB сверху |
| CSS `@keyframes` + `transition` + `prefers-reduced-motion` | Произвольные анимации, GPU-acceleration через `transform`/`opacity`, поддержка a11y | 0 KB |
| View Transitions API (Chrome 111+, Safari 18+) | Cross-document / cross-route переходы, FLIP под капотом нативно | 0 KB (браузер) |
---
## 10. Процедура перехода между фазами
### 10.1. Фаза 0 → Фаза 1
**Триггер:** `composer create-project laravel/laravel app` (или эквивалент).
**Шаги (исходный план; отметки фактического статуса в правой колонке после прохождения 08.05.2026):**
| # | Шаг | Статус 08.05.2026 |
|---|---|---|
| 1 | `composer require laravel/boost --dev` | ✅ `e04f53b` (Boost v2.4.6) |
| 2 | ~~Запустить `php artisan boost:install` — пройти интерактивный wizard~~ | ⚠️ **обойдено**: wizard сломан на этой машине (кириллица + L13 ConfiguresPrompts bug) — см. §3.1 «Что нового в v1.5» и memory `feedback_environment.md` п.26. **Manual setup** вместо wizard'а |
| 3 | Удалить PostgreSQL MCP из `.mcp.json` | ✅ убран ещё в фазе 0 (`_comment_postgres`) |
| 4 | ~~В `boost.json` — отключить нерелевантные guidelines~~ | ❌ **избыточно**: Boost через Roster auto-detect видит установленные пакеты — не установленных (Inertia/Livewire/Tailwind/Filament/Sail/PHPUnit) не серверит. `boost.json` минимален: 3 ключа (agents/guidelines/mcp) |
| 5 | Создать кастомный guideline для Vuetify 3 в **`app/.ai/guidelines/vuetify.md`** (был `resources/boost/guidelines/vuetify.blade.php` — путь скорректирован на §10.2 после source-проверки) | ✅ `e04f53b` |
| 6 | ~~Слить (не перезаписать) `CLAUDE.md` если Boost создал черновик~~ | ❌ **не применимо**: при manual setup Boost ничего не пишет в `CLAUDE.md` (ни корневой, ни `app/CLAUDE.md`). Корневой остаётся источником истины |
| 7 | Установить Pint, Larastan, Roave/SecurityAdvisories, IDE Helper | ✅ Pint+Larastan+IDE Helper в `0345683`; Roave/SA в `0eb2f72` |
| 8 | Установить squawk, pgFormatter | ✅ squawk v2.51.0 + pgFormatter v5.9 в коммите v1.6 (см. §0 «Что нового в v1.6»). Squawk — pre-commit хук на staged `*.sql` + конфиг `.squawk.toml` (9 правил исключены). pgFormatter — только ручной режим через npm-скрипты, авто-fix хук недопустим (стиль schema.sql ручной) |
| 8a | ~~Установить pg_partman~~ | ❌ **не применимо**: Windows-native PG не имеет pg_partman; заменён ручным cron'ом — см. memory `project_phase1_strategy.md` |
| 9 | Установить **Pest 4** | ✅ `30f0335` (Pest 4.7.0 + plugin-laravel 4.1.0; smoke-test 2/2 за 281 ms) |
| 10 | Обновить `.claude/settings.json` — добавить хуки для Pint и Larastan | ⏸ pending: после установки `lefthook` или эквивалента |
| 11 | Прогнать full-pass всех инструментов | ⏸ pending: после §8/§10 |
| 12 | Обновить эту версию Прил. Н | ✅ v1.0 → v1.1 (Pest 3) → v1.2 (native стек) → v1.3 (Pest 4) → v1.4 (Laravel 13) → **v1.5 (Boost+SA active)** |
### 10.2. Vuetify guideline для Boost (заготовка)
> **Путь к файлу:** `app/.ai/guidelines/vuetify.md` (или `.blade.php`, оба расширения поддерживаются `GuidelineComposer`). Старая формулировка «`resources/boost/guidelines/vuetify.blade.php`» скорректирована в v1.5 после source-проверки `Laravel\Boost\Install\GuidelineComposer::userGuidelineDir = '.ai/guidelines'`. Финальная версия живёт в репозитории — заготовка ниже сохранена как историческая.
```blade
## Vuetify 3
Проект использует Vuetify 3 как UI-библиотеку (CTO-11). Tailwind CSS, shadcn-vue, Element UI, jQuery, Bootstrap — НЕ использовать.
### Палитра — из brandbook.md §3 и §8.2
- primary: `#0F6E56` (Teal 600)
- secondary: `#5DCAA5` (Teal 200)
- background: `#F1EFE8` (Slate 100)
- surface: `#FFFFFF`
Vuetify-тема — `liderraLight` и `liderraDark` — определена в `brandbook.md` §8.2.
### Шрифты
- основной: Inter (через Google Fonts с subset cyrillic)
- код: JetBrains Mono
### Компоненты
Использовать Vuetify-компоненты (`v-card`, `v-btn`, `v-data-table`, `v-form`, `v-text-field`) с дефолтным material-стилем, переопределённым через `:root` CSS-переменные из `brandbook.md` §8.1.
### A11y
Все компоненты должны проходить Pa11y по WCAG 2.1 AA (брендбук §3.4). Контраст текста на белом — минимум 4.5:1.
```
### 10.3. Фаза 1 → Фаза 2
**Триггер:** первый Vue-компонент.
**Шаги:**
1. Установить Volar (VSCode), vue-tsc, ESLint + config-prettier + plugin-vue, Prettier, Vitest, Histoire.
2. Установить Superpowers v5.1.0 — **все 14 skills** (Pravila §12 v1.4+ hard rule «Superpowers first»; Pravila §11 «полное снятие запретов» с v1.8). Установка декларативно через `~/.claude/settings.json`: `extraKnownMarketplaces.superpowers-dev` + `enabledPlugins.superpowers@superpowers-dev=true`. **Без `enabled_skills` ограничителей.** ⚠️ **Историческая контрадикция (закрыта v1.14):** до v1.14 этот шаг гласил «enabled_skills = только 3 (test-driven-development, systematic-debugging, subagent-driven-development)» — устаревшая политика v1.7 (3/13 skills с запретами). v1.8 сняла все запреты через §11 override (вариант «A. Полное снятие»); v1.9 ввела §12 hard rule (skill инвокируется первым). См. §4.1 этого же файла для полной хронологии.
3. Прогнать первый Histoire-story для тестового компонента.
4. Запустить Pa11y на первой Vue-странице (выявить регрессии относительно HTML-прототипов).
5. Обновить Прил. Н: v1.1 → v1.2.
### 10.4. Фаза 2 → Фаза 3
**Триггер:** ~спринт 12, объявление о подготовке к релизу.
**Шаги:**
1. Установить Semgrep + Semgrep MCP, Trivy, Dependabot.
2. Включить расширения PostgreSQL: pg_audit, pg_anonymizer. ✅ выполнено на боевом `liderra.ru` 22.05.2026 (см. `docs/security/pgaudit-anonymizer-setup.md`).
3. Прогнать первый полный SAST-пасс по проекту, зафиксировать baseline.
4. Прогнать Trivy на текущем образе, зафиксировать baseline.
5. Сделать первый dump БД через pg_anonymizer для staging.
6. Обновить Прил. Н: v1.2 → v1.3.
---
## 11. Конфигурация под Windows + PowerShell
Особенности для текущего окружения (Windows 10, PowerShell 5.1):
### 11.1. Пути и кодировки
- Все скрипты в `package.json` — кросс-платформенные (использовать `cross-env`, не `export VAR=...`).
- Файлы `.md` — UTF-8 БЕЗ BOM. Если PowerShell `Set-Content` создал файл с BOM — исправить.
- Длинные пути — включить `git config --global core.longpaths true` перед клонированием в глубокие папки.
### 11.2. Git worktrees
- Skill `using-git-worktrees` Superpowers **разрешён** с 09.05.2026 (см. §4.1; Pravila §11). Запрет был снят вместе с прочими.
- Среда остаётся враждебной: **на этой машине путь содержит кириллицу** (`c:\моя\проекты\портал crm\…`) — worktree-операции будут падать с неинформативной ошибкой. Skill при использовании сам должен обработать ошибку или переключиться на альтернативу.
- Если ручное использование worktree — избегать пробелов и кириллицы (`c:\projects\liderra-feature` ОК, `c:\My Documents\...` или `c:\моя\…` — НЕ).
### 11.3. Pre-commit hooks
- Husky или lefthook (предпочтительно lefthook — на Go, без Node-зависимости).
- Скрипты в hooks — bash-совместимые, запускать через `cmd /c` или WSL.
### 11.4. Глобальные CLI-утилиты
- **gitleaks**, **lychee**, **squawk**, **Trivy**, **Semgrep** — скачать готовые бинарники для Windows из GitHub Releases (squawk: `npm i -g squawk-cli` + копия в `bin/squawk.exe` см. §3.3).
- **pgFormatter** — Perl-скрипт. На этой машине работает через **Cygwin Perl 5.42.2** из Git for Windows (без отдельной установки ActivePerl/Strawberry/WSL). Если Git for Windows не ставился — поставить ActivePerl или Strawberry Perl.
- **Pa11y**, **markdownlint-cli2**, **cspell**, **Histoire** — npm-пакеты, работают нативно.
### 11.5. Yandex Cloud CLI и Terraform
Не входят в 35 формализованных позиций тулчейна (см. §12). Ставятся отдельно для DevOps-роли. На Windows — `yc` и `terraform` через скачивание `.zip` или `winget`.
---
## 12. Что вне реестра формализованных позиций (инфраструктура)
Эти 7 пунктов критичны для проекта, но используются DevOps, не Claude. Поэтому в основной реестр не входят, но фиксирую для полноты:
| Инструмент | Зачем |
|---|---|
| Yandex Cloud CLI (`yc`) | Провижининг по Прил. К |
| Terraform + `yandex-cloud/yandex` provider + terraform-ls | IaC |
| Docker + docker-compose | Локальная разработка |
| GitHub Actions | CI/CD pipeline |
| Sentry self-hosted | Ю-7 (зафиксировано) |
| Grafana + Prometheus + Alertmanager | Прил. И §1 |
| Lighthouse CI | Performance-регрессия в pipeline |
Если позже решим вовлечь Claude в инфраструктурные задачи — добавится фаза 4 (или эти инструменты переедут в основной реестр).
---
## 13. История версий
| Версия | Дата | Что нового |
|---|---|---|
| **v1.0** | 06.05.2026 | Первая версия. Зафиксированы 28 активных инструментов в 4 фазах, перечень того, что НЕ ставим (10+ пунктов), источники истины для конфигураций, процедура перехода между фазами, особенности Windows + PowerShell. Утверждено заказчиком 06.05.2026 («да, A, делай. Подтверждаю»). Архитектурных изменений в основном архиве: 0 (только добавлен новый шифр Н). |
| **v1.10** | 09.05.2026 | Добавлен **#30 Frontend Design plugin (Anthropic)** в фазе 2 — paired stack со Superpowers. Запрет CLAUDE.md §5 п.5 снят по явной команде заказчика. Координация через новый документ `docs/Plugin_stack_rules_v1.md` (10 правил, 8 ранее найденных конфликтов закрыты патчами). Добавлен §4.4 «Доменный слой UI — Frontend Design plugin». Phase 2: 6 → 7, total: 28 → 29 номеров (активных 18 → 19). Установка через `~/.claude/settings.json`. |
| **v1.12** | 10.05.2026 | **Формализация двух фактически включённых внешних UI-инструментов как «инструменты-резерв вне фаз»:** **#31 UI UX Pro Max** (skill, marketplace `nextlevelbuilder/ui-ux-pro-max-skill`) — резерв-библиотека (50+ стилей, 161 палитра, 99 UX-гайдлайнов, 25 типов графиков); активация через PSR_v1 v1.4 R14.3 pipeline (фаза 2 R2 fallback к FD ИЛИ фаза 1 R2 «третий вариант» в R12). **#32 21st.dev Magic MCP** (`magic` MCP-сервер) — генератор стартовых шаблонов; активация через PSR_v1 v1.4 R14.4 pipeline (pre-check R0.6 + R6.0 фильтр + R6.1 hard-override + FD адаптация). Оба не привязаны к фазе по тулчейну (post-MVP инструменты-резерв). Добавлены §4.5 + §4.6. **§9 «Что НЕ ставим» дополнен разделом «Motion runtime библиотеки»:** framer-motion + react-spring (R15.1 hard-запрет, React-only); motion-v + gsap + anime.js + lottie-web + popmotion (R15.2/R15.7 условно по 4 триггерам, R0.6 пункт 11 hard-стоп). Default motion stack: Vue native + Vuetify + CSS + View Transitions API. Total формализованных: 29 → **31 позиций** (активных по фазам — 19/29; +2 off-phase). Связано: PSR_v1 v1.3 → v1.4; Pravila v1.7 → v1.8 (§13.10 hard-link на R14); CLAUDE.md v1.82 → v1.83. |
| **v1.13** | 10.05.2026 | **Закрытие 4 структурных находок аудита нормативной документации:** **§7 «Source of truth»** обновлён с 5-уровневой на 7-уровневую цепочку — добавлен `Plugin_stack_rules_v1.md` (PSR_v1) уровнем 3 (координирующий слой между paired-stack ядром и расширенным UI-пулом); явно вынесен Pravila §12 (Superpowers hard rule) уровнем 0; sync с CLAUDE.md §1. **§4.7 (новый) — #33 claude-md-management plugin** формализован как off-phase инфраструктурный инструмент (был фактически включён в `~/.claude/settings.json` с момента CLAUDE.md §5 п.10, но без формализации); отдельная категория **инфраструктурная**, не UI — поэтому не попадает под Pravila §13 (расширенный UI-пул) и не проходит R6.0/R6.1/R14 pipeline. **§6 «Конфликты и решения»** расширен с 5 до 10 строк — добавлены 5 новых конфликтов из PSR_v1 v1.4: UPM↔FD, 21st↔Vuetify-эквивалент, 21st↔брендовый App*, framer-motion↔motion-v, UPM↔21st. **§4.6 — settings.json → ~/.claude.json:** уточнено, что API-ключ 21st хранится в `~/.claude.json`, **не** в `~/.claude/settings.json`. **§0 — счётчик 31 → 33** (3 off-phase: UPM #31, 21st #32, claude-md-management #33). Total формализованных: 33 (29 активных по фазам + 3 off-phase + 1 заменённый PG MCP исторически). Связано: Pravila v1.8 → v1.9, PSR_v1 v1.4 → v1.5, CLAUDE.md v1.83 → v1.84. |
| **v1.14** | 10.05.2026 (вечер) | **Закрытие 3 находок второго аудита правил использования плагинов и скилов** (P0-01, P0-04, P2-01 в Tooling — из 15 общих находок). **P0-01: §10.3 шаг 2 sync с §4.1** — раньше шаг гласил «Установить Superpowers с конфигом enabled_skills = только 3» (политика v1.7), но §4.1 того же файла говорит «v1.8 снятие запретов через §11 override (полное снятие); v1.9 hard rule §12 первоочерёдное использование» — внутри-документная контрадикция. v1.14: §10.3 шаг 2 переписан на 14 skills с пометкой об устаревшей версии. **P0-04: §13 +v1.13 +v1.14 entries** — раньше история обрывалась на v1.12, хотя шапка описывала v1.13. v1.14: таблица синхронизирована (добавлены v1.13 + v1.14 строки). **P2-01: §7 priority chain +Tooling explicit slot** — раньше Tooling Прил. Н формально не было в priority chain ни одного из 4 файлов, хотя PSR_v1 R0.1 говорил «stack ниже Tooling»; формальная дыра при конфликте «Tooling vs PSR_v1». v1.14: добавлен note про Tooling уровнем 2b alongside CLAUDE.md (оба operational maps; при прямом конфликте — приоритет CLAUDE.md). Total формализованных: **33** (без изменений; правки касаются формулировок и priority chain). Связано: Pravila v1.9 → v1.10, PSR_v1 v1.5 → v1.6, CLAUDE.md v1.84 → v1.85. Через `/claude-md-management:claude-md-improver`. |
| **v1.15** | 10.05.2026 (поздний вечер) | **Закрытие 4 находок третьего аудита правил использования плагинов и скилов** (P1-03/04/05 + §11.5/§12 «28→33» в Tooling — из 13 общих находок). **P1-03/04/05: sync cross-refs шапки** на актуальные версии связанных документов после bump'ов CLAUDE.md v1.85 → v1.86 и PSR_v1 v1.6 → v1.7: «Pravila v1.9+» → «v1.10+», «PSR_v1 v1.5+» → «v1.7+», «CLAUDE.md v1.84+» → «v1.86+». «+»-нотация сохранена (forward-compat). **§11.5/§12 — формулировка «28 инструментов» → «33 формализованные позиции»:** в DevOps-разделе текст застрял с эпохи v1.0, когда счётчик был 28; смысловое назначение фразы — «реестр Лидерры», который теперь имеет 33 формализованных позиции. История версий ниже и changelog'и в шапках v1.0/v1.10/v1.12 — это снимки эпох и не правятся. Total формализованных: **33** (без изменений; правки касаются формулировок и cross-refs). Связано: PSR_v1 v1.6 → v1.7, CLAUDE.md v1.85 → v1.86. Pravila v1.10 — без правок. Через `/claude-md-management:claude-md-improver`. |
| **v1.16** | 12.05.2026 | **Закрытие 1 правки четвёртого аудита — снятие R15 motion-runtime denylist'а из §9.2** синхронно с PSR_v1 v1.7 → v2.0 + CLAUDE.md v1.87 → v1.88 + Pravila v1.10 → v1.11. **§9.2 «Motion runtime библиотеки» переформулирован из regulatory denylist в technical guidance.** R15 PSR_v1 снят целиком (v1.7 → v2.0); motion-v / gsap / anime.js / lottie-web / popmotion / @motionone/dom — безусловно разрешены к установке. framer-motion / react-spring остаются как **technical block** — peerDep на React, не правило проекта. Cross-refs шапки sync: PSR_v1 v1.7+ → v2.0+; CLAUDE.md v1.86+ → v1.88+; Pravila v1.10+ → v1.11+. §6 строка «framer-motion ↔ motion-v» оставлена как historical record v1.4 audited construction. Total формализованных: **33** (без изменений). Через `/claude-md-management:claude-md-improver` + manual Edit. Заказчик: «сними все запреты на использование framer motion». |
| **v1.17** | 13.05.2026 (day +1) | **Формализация retrospective двух off-phase MCP debug-инструментов** установленных на feat/claude-automation (commits `6f7e7d7` sentry, `bd4ec48` redis), merged в main через PR #3 (`cc5f63b`): **§0 счётчик off-phase 3 → 5; итого формализованных позиций 33 → 35**. **§4.8 (новый)** — #34 Sentry MCP (`@sentry/mcp-server@0.33.0+`, official, pending Sentry instance deployment Б-1). **§4.9 (новый)** — #35 Redis MCP (`@modelcontextprotocol/server-redis@2025.4.25`, deprecated Anthropic source, рабочий с Memurai localhost:6379; migration plan на community alternative post-MVP). Категория **debug-runtime**, отдельная от UI-пула (UPM/21st) и инфраструктурного (claude-md-management) — не попадает в R14 pipeline и не trigger'ит R6.0/R6.1 фильтры. Связано: PSR_v1 v2.0 → v2.1 (R10.1 +sentry+redis); CLAUDE.md v1.91 → v1.92 (§3.3 #34/#35; §0 cross-refs); Pravila v1.12 → v1.13 (§13.2 +Off-phase MCP debug-runtime подсекция). Через manual Edit для Tooling/PSR_v1/Pravila + `/claude-md-management:claude-md-improver` для CLAUDE.md. |
| **v2.0** | 15.05.2026 | **Ruflo big-bang:** §0 +ruflo orchestration layer row (35 → 55: 35 формализованных позиций + 20 ruflo plugins); новая §4.10 «Orchestration layer (ruflo)». Major bump reflects architectural inversion — ruflo встаёт entry-point'ом уровня −1 над 8-уровневой иерархией Лидерры (см. CLAUDE.md §1 priority chain). ruflo v3.7.0-alpha.38+ + 20 plugins (`@claude-flow/*`, IPFS-registry — полный CID в §4.10), ~210 MCP tools, 60+ agents (Queen-led: Raft/Byzantine/Gossip), HNSW vector memory, SONA routing. Категория **orchestration** — четвёртая off-phase подкатегория (отдельная от UI-пула, infrastructure, debug-runtime). §4.9 +note «Категории off-phase tools (v2.0)». Runtime state 2026-05-15: scaffold installed + MCP server в `.mcp.json` (7-й MCP); daemon/swarm/memory НЕ активны — opt-in MCP tool, не enforcing overlord. Связано: spec/plan 2026-05-15 (commits `e55572e`/`18c4463`), Pravila v1.14 (`9c3057b`), PSR_v1 v3.0 (`d30cbeb`), CLAUDE.md v2.0 (`5df88a1`). v1.17 наследие — §4.8 Sentry MCP + §4.9 Redis MCP. |
| **v2.1** | **15.05.2026** | §4.10 +абзац «Queen trigger»: триггер queen/королева → безусловный route через ruflo Queen (`hive-mind spawn --claude`), explicit hard-rule Pravila §14, enforcement-хук `tools/ruflo-queen-hook.mjs`; footer-колонтитул v2.1. Связано: spec/plan `docs/superpowers/{specs,plans}/2026-05-15-ruflo-queen-trigger-and-delegation*`, Pravila v1.15 / CLAUDE.md v2.1 / PSR_v1 v3.1. |
| **v2.2** | **16.05.2026** | **§4.10 реколлаж:** ruflo переописан из «entry-point иерархии» в «advisory/automation-подсистему» (декларация приведена к рантайму: рой idle, 0 задач / 0 раундов консенсуса; Claude-сессии работают напрямую). Заголовок §4.10 изменён («Orchestration layer (ruflo) — entry-point иерархии» → «ruflo — advisory/automation-подсистема»); «Архитектурная роль» переписана; §0 table row обновлён; «Категории off-phase tools» обновлены; «Назначение» обновлено; шапка v2.1 → v2.2, дата 16.05.2026. Связано: Pravila v1.16, PSR_v1 v3.2, CLAUDE.md v2.2; spec `docs/superpowers/specs/2026-05-16-ruflo-hierarchy-factual-recollage-design.md`. |
| **v2.3** | **17.05.2026** | **A6 architecture-tooling:** формализованы 3 инструмента раздела A6 карты «Архитектура систем» как новая пятая off-phase подкатегория «architecture-tooling» — **§4.11 #36 adr-kit** (ADR-решения, `adr-judge` lefthook job 9), **§4.12 #37 mermaid-skill** (C4-диаграммы, вендорен в `.claude/skills/mermaid/`), **§4.13 #38 architecture-patterns** (паттерны). §0 счётчик 35→38 формализованных позиций (55→58 total); §0 table row off-phase `+5``+8`; «Назначение» обновлено. Конфликт-аудит интеграции — AK1 (git-хук adr-kit не ставится, `adr-judge` через lefthook), AK2 (`init` не пишет CLAUDE.md), AK6 (`adr-judge` без `--llm` → 0 стоимости), MK1 (lefthook exclude вендоренного скила). Связано: PSR_v1 v3.2→v3.3 (R10.1 +3 строки), Pravila v1.16→v1.17 (§13.2 +architecture-tooling абзац), CLAUDE.md v2.2→v2.3 (§3.3 +#36-38). Через manual Edit (Tooling/PSR_v1/Pravila) + `/claude-md-management:claude-md-improver` (CLAUDE.md per §5 п.10). План `docs/superpowers/plans/2026-05-17-a6-architecture-tooling-integration.md`. |
| **v2.4** | 17.05.2026 | **D3 audit-security:** формализованы #39 Trail of Bits Skills (субсет 8 audit-плагинов, marketplace `trailofbits`, CC-BY-SA-4.0) + #40 Security Guidance (Anthropic PreToolUse-хук) как новая 6-я off-phase подкатегория «audit-security» — §4.14/§4.15. §0 счётчик 38→40 (58→60 total); off-phase row +8→+10. Конфликт-аудит — TB1 (граница с Semgrep MCP), TB4 (CC-BY-SA не триггерится — не вендорено), SG1 (5-й PreToolUse-хук). Связано: PSR_v1 v3.3→v3.4 (R10.1 Блок 1 +2 строки), Pravila v1.17→v1.18 (§13.2 +audit-security абзац), CLAUDE.md v2.3→v2.4 (§3.3 +#39-40). План `docs/superpowers/plans/2026-05-17-d3-audit-risk-tooling-integration.md`. |
| **v2.5** | 17.05.2026 | **Фактическая правка #40 Security Guidance:** §4.15 переписан — это **блокирующий** PreToolUse-хук (`sys.exit(2)` на первой за сессию правке с уязвимым паттерном, retry проходит — одноразовый speed-bump), не warn-only; SG1 уточнён; +SG2 — Windows-починка python3-резолва (`python3.exe`-шим, кэш плагина не трогается). Verified end-to-end (manual smoke + in-session Write-блок). Счётчики без изменений — 40 позиций. Связано: PSR_v1 v3.5, Pravila v1.19, CLAUDE.md v2.5. |
| **v2.6** | 17.05.2026 | **C9 project-management:** формализованы #41 CCPM (вендоренный standalone-скил `automazeio/ccpm`) + #42 product-management (Anthropic-verified marketplace plugin) как новая 7-я off-phase подкатегория «project-management» — §4.16/§4.17. §0 счётчик 40→42 (60→62 total); off-phase row +10→+12. Связано: PSR_v1 v3.6, Pravila v1.20, CLAUDE.md v2.6. План `docs/superpowers/plans/2026-05-17-c9-project-management-tooling-integration.md`. |
| **v2.7** | 17.05.2026 | **A6-расширение — deptrac:** формализован #43 deptrac (Composer dev-dep `deptrac/deptrac` v4.6.1, BSD-3) как 4-й инструмент architecture-tooling — архитектурный fitness-гейт направления зависимостей / границ слоёв, врезан lefthook pre-commit job 10; §4.18 новый. Конфиг `app/deptrac.yaml` (13 слоёв), первый прогон 0 нарушений → baseline-файл не нужен (red-green доказан). §0 счётчик 42→43 (62→63 total); off-phase row +12→+13. Конфликт-аудит — DT1 (резолвер чист, PHAR-fallback не нужен), DT3 (0 нарушений — headline-риск не материализовался), DT4/DT5 (границы с Larastan/adr-judge). Связано: PSR_v1 v3.7, Pravila v1.21, CLAUDE.md v2.7. План `docs/superpowers/plans/2026-05-17-deptrac-architecture-fitness-integration.md`. |
| **v2.8** | 17.05.2026 | **A4 design-tooling:** формализованы #44 Figma MCP (remote MCP, extract-only, DEFERRED — нет Figma-аккаунта), #45 Universal Icons MCP (`mcp-universal-icons`, MIT, stdio), #46 Design plugin (Anthropic Verified) как новая 8-я off-phase подкатегория «design-tooling» — §4.19/§4.20/§4.21. §0 счётчик 43→46 (63→66 total); off-phase row +13→+16. Конфликт-аудит — FM1/FM2 (Figma extract-only + DEFERRED), UI1/UI2/CC1 (Universal Icons граница с FD/21st), DP1/DP2/DP4 (Design plugin граница с Pa11y/superpowers:requesting-code-review). Связано: PSR_v1 v3.8, Pravila v1.22, CLAUDE.md v2.8. План `docs/superpowers/plans/2026-05-17-a4-design-tooling-integration.md`. |
---
*Прил. Н v2.24 от 27.05.2026 — knowledge-graph-tooling: §4.59 #86 graphifyy (CLI `uv tool install graphifyy`, user-level skill `~/.claude/skills/graphify/`, activation `/graphify <команда>`, артефакты `graphify-out*/` gitignored) — 19-я off-phase подкатегория **knowledge-graph-tooling**; §0 счётчик 83→84 (103→104 total), off-phase row +53→+54; «Назначение» 83→84 позиции + +knowledge-graph-tooling + graphifyy. ADR-017 (KG1KG5). Spike `spike/graphify-2026-05-27`: 3 фазы → combined граф 6305 узлов / 6753 рёбер / 1009 communities (93% EXTRACTED / 7% INFERRED). cross-ref Pravila v1.43+ / PSR_v1 v3.23+ / CLAUDE.md v2.32+.*
*Прил. Н v2.23 от 25.05.2026 (cross-ref update) — §0 cross-ref string Pravila v1.41+→**v1.42+** (Pravila §17.7 «Coverage announcement» добавлена). Счётчики #1-#83 без изменений. Связано: Pravila v1.42, CLAUDE.md v2.28, PSR_v1 v3.22.*
*Прил. Н v2.18 от 20.05.2026 — finance-tooling (C6+C7): §4.36 #61 finance plugin (marketplace `finance@knowledge-work-plugins`, homed C7, cross-ref C6) + §4.37 #62 billing-audit (C6, self-authored project-скил `.claude/skills/billing-audit/`) + §4.38 #63 ru-tax-accounting (C7, self-authored project-скил `.claude/skills/ru-tax-accounting/`) — новая 15-я off-phase подкатегория finance-tooling; §0 счётчик 60→63 (80→83 total), off-phase row +30→+33. Применимость finance plugin: ✅ reconciliation/variance (C6), ⚠️ US-GAAP-скилы частично (РСБУ), ❌ SOX-скилы not-applicable РФ, warehouse-MCP DEFERRED. ADR-012. Связано: PSR_v1 v3.18, Pravila v1.34, CLAUDE.md v2.21, routing-off-phase.md v1.2 (связка L13), router-procedure.md v1.1; план `docs/superpowers/plans/2026-05-20-finance-tooling-c6-c7.md`.*
*Прил. Н v2.17 от 19.05.2026 — applied 9-attribute row template per ADR-011 brain-governance spec §4.1. §0.1 row template (one-time) + 58 Атрибуты blocks для всех узлов реестра. Дамп-блоки для phase-active (§2.4/§3.5/§5.1) — phase-0/1/3 nodes живут в table rows, выносим в новые subsection-блоки в конце соответствующей фазы. Inline-блоки для phase-2 (§4.1-§4.4) и off-phase (§4.5-§4.35) — там 1 subsection = 1 node mapping. dormant=true для #1 PG MCP (replaced), #17 pg_partman (no native Windows PG ext), ruflo §4.10 (per Pravila §14.9). 6 atomic commits (`1f77134`, `0718e41`, `16f7f1c`, `ca4da69`, `39231ef`, `3e73396`) + этот header bump. Структурный реестр служит входом для router-procedure.md §step 3 (trigger-based node selection). Связано: ADR-011 (`2ef4ac4`), router-procedure.md v1.0 (`8a2e701`), spec/plan brain-governance, Pravila v1.31 pending (Task A4), PSR_v1 v3.16 pending (Task A5), CLAUDE.md v2.18 pending (Task D1). Через subagent-driven-development skill.*
*Прил. Н v2.16 от 18.05.2026 — компакция «мозга» (SYSTEM-аудит 18.05.2026, findings 2/3/6/7): §0 +«КАНОН СЧЁТЧИКОВ» anchor — Прил. Н §0 объявлен единственным источником числовых счётчиков тулчейна; CLAUDE.md / Pravila §13.2 / PSR_v1 R10.1 переведены на пин-ссылку (finding 3 — устранение «арифметического дрейфа счётчиков»). §12 заголовок «вне 35 формализованных позиций» → «вне реестра формализованных позиций» — убран stale-счётчик (v1.15 уже чинил его «28→33», повторно сдрейфовал до «35»). Счётчики тулчейна не меняются — 60 формализованных + 20 ruflo = 80 total. Связано: CLAUDE.md v2.17, Pravila v1.30, PSR_v1 v3.15; план `docs/superpowers/plans/2026-05-18-brain-compaction-findings-2-3-6-7.md`.*
*Прил. Н v2.15 от 18.05.2026 — ruflo isolation: §4.10 +status block (dormant 18.05.2026, заказчик «изолируй, не удаляй» в Rec2 SYSTEM-аудита `docs/discovery/2026-05-18-system-audit-brain.md`). Live-связи отключены: UserPromptSubmit хуки `tools/ruflo-*-hook.mjs` сняты из `.claude/settings.json`; `ruflo` MCP-server удалён из `.mcp.json`; PM2 daemon stopped + saved-empty + Task Scheduler оставлен (идемпотентен). Артефакты сохранены: npm-пакет, файлы хуков, memory `mem_ruflo`, документация §4.10. Счётчики тулчейна без изменений — 60 формализованных позиций + 20 ruflo plugins = 80 total. Связано: Pravila v1.29, CLAUDE.md v2.16 (pending), memory `feedback_ruflo_isolated.md`. Через прямой Edit (нормативка) + Bash (pm2/runtime) + Edit settings.json/mcp.json.*
*Прил. Н v2.14 от 18.05.2026 — authoring-tooling + dev-support: §4.31 #56 skill-creator / §4.32 #57 plugin-dev / §4.33 #58 hookify (новая 13-я off-phase подкатегория authoring-tooling) + §4.34 #59 claude-code-setup / §4.35 #60 context7 (новая 14-я off-phase подкатегория dev-support) — формализация 5 Anthropic dev-плагинов уже включённых в `~/.claude/settings.json` user-level (L1-паттерн «плагин включён без формализации»); §0 счётчик 55→60 (75→80 total), off-phase row +25→+30. hookify HK1 — pre-check на коллизию хуков, закрывает 🔴-конфликт карты. ADR-010. Связано: PSR_v1 v3.13, Pravila v1.28, CLAUDE.md v2.15; план `docs/superpowers/plans/2026-05-18-anthropic-dev-tooling-formalization.md`.*
*Прил. Н v2.13 от 18.05.2026 — discovery-tooling: §4.30 #55 discovery-interview (self-authored project-скил `.claude/skills/discovery-interview/`, режимы FEATURE+SYSTEM) — новая 12-я off-phase подкатегория discovery-tooling; §0 счётчик 54→55 (74→75 total), off-phase row +24→+25. Триггер-eval 20/20; ADR-009 (DI1DI6, разрез по слою-источнику с process-analysis #53). Связано: PSR_v1 v3.12, Pravila v1.26, CLAUDE.md v2.13; план `docs/superpowers/plans/2026-05-18-discovery-interview-integration.md`.*
*Прил. Н v2.12 от 17.05.2026 — C10 business-process: §4.26 #51 operations + §4.27 #52 process-modeling + §4.28 #53 process-analysis + §4.29 #54 n8n-mcp (DEFERRED) — новая 11-я off-phase подкатегория business-process; §0 счётчик 50→54 (70→74 total), off-phase row +20→+24. Связано: PSR_v1 v3.11, Pravila v1.25, CLAUDE.md v2.12; план `docs/superpowers/plans/2026-05-17-c10-business-process-tooling-integration.md`.*
*Прил. Н v2.11 от 17.05.2026 — ADR-006 Decision-4 icon-path boundary mirror: §4.20 +UI3 (Lucide-иконки — канонический путь `lucide-vue-next` + Vuetify `IconSet`; raw-SVG `get_icon` — только не-Lucide коллекции). Счётчики без изменений (50 формализованных / 70 total). Связано: CLAUDE.md v2.11, ADR-006 (поправка Decision item 4).*
*Прил. Н v2.10 от 17.05.2026 — A11 ml-ai-tooling: §4.23 #48 promptfoo + §4.24 #49 Data Scientist skill + §4.25 #50 Jupyter MCP (DEFERRED) — новая 10-я off-phase подкатегория ml-ai-tooling; §0 счётчик 47→50 (67→70 total), off-phase row +17→+20. Связано: PSR_v1 v3.10, Pravila v1.24, CLAUDE.md v2.10; план `docs/superpowers/plans/2026-05-17-a11-ml-ai-tooling-integration.md`.*
*Прил. Н v2.9 от 17.05.2026 — A3 integration-tooling: §4.22 #47 openapi-mcp-server, 9-я off-phase подкатегория integration-tooling; §0 счётчик 46→47. Связано: PSR_v1 v3.9, Pravila v1.23, CLAUDE.md v2.9.*
*Прил. Н v2.8 от 17.05.2026 — A4 design-tooling: формализованы #44 Figma MCP (DEFERRED) + #45 Universal Icons MCP + #46 Design plugin — новая 8-я off-phase подкатегория design-tooling, §4.19/§4.20/§4.21 новые. 46 формализованных позиций (29 по фазам + 16 off-phase + 1 PG MCP) + 20 ruflo = 66 total. Связано: PSR_v1 v3.8, Pravila v1.22, CLAUDE.md v2.8.*
*Прил. Н v2.7 от 17.05.2026 — A6-расширение deptrac: формализован #43 deptrac (Composer dev-dep `deptrac/deptrac` v4.6.1, BSD-3) — архитектурный fitness-гейт, lefthook job 10, §4.18 новый. 43 формализованных позиции (29 по фазам + 13 off-phase + 1 PG MCP) + 20 ruflo = 63 total. Связано: PSR_v1 v3.7, Pravila v1.21, CLAUDE.md v2.7.*
*Прил. Н v2.6 от 17.05.2026 — C9 project-management: формализованы #41 CCPM + #42 product-management (§4.16/§4.17), новая 7-я off-phase подкатегория. 42 формализованных позиции (29 по фазам + 12 off-phase + 1 PG MCP) + 20 ruflo = 62 total. Связано: PSR_v1 v3.6, Pravila v1.20, CLAUDE.md v2.6.*
*Прил. Н v2.5 от 17.05.2026 — фактическая правка #40 Security Guidance: блокирующий PreToolUse-хук (`sys.exit(2)`, не warn-only) + SG2 Windows-починка python3-резолва. Связано: PSR_v1 v3.5, Pravila v1.19, CLAUDE.md v2.5.*
*Прил. Н v2.4 от 17.05.2026 — D3 audit-security: формализованы #39 Trail of Bits Skills + #40 Security Guidance (§4.14/§4.15), новая 6-я off-phase подкатегория. 40 формализованных позиций (29 по фазам + 10 off-phase + 1 PG MCP) + 20 ruflo = 60 total. Связано: PSR_v1 v3.4, Pravila v1.18, CLAUDE.md v2.4.*
*Прил. Н v2.3 от 17.05.2026 — A6 architecture-tooling: формализованы #36 adr-kit + #37 mermaid-skill + #38 architecture-patterns (§4.114.13), новая пятая off-phase подкатегория. 38 формализованных позиций (29 по фазам + 8 off-phase + 1 PG MCP) + 20 ruflo = 58 total. Связано: PSR_v1 v3.3, Pravila v1.17, CLAUDE.md v2.3.*
*Прил. Н v2.2 от 16.05.2026 — §4.10 реколлаж: ruflo переописан из «entry-point иерархии» в «advisory/automation-подсистему» (декларация приведена к рантайму). Связано: Pravila v1.16, PSR_v1 v3.2, CLAUDE.md v2.2.*
*Прил. Н v2.1 от 15.05.2026 — Ruflo big-bang: добавлен orchestration layer (ruflo) как четвёртая off-phase подкатегория (§4.10). 55 позиций (35 формализованных позиций + 20 ruflo plugins). v2.1 — §4.10 +абзац «Queen trigger» (Pravila §14, хук ruflo-queen-hook.mjs).*
*Прил. Н v1.17 от 13.05.2026 (day +1) — формализация retrospective off-phase MCP #34 Sentry + #35 Redis (debug-runtime category). 35 позиций (29 активных по фазам + 5 off-phase + 1 заменённый PG MCP исторически).*
*Прил. Н v1.16 от 12.05.2026 — снятие R15 motion-runtime denylist'а из §9.2 синхронно с PSR_v1 v1.7 → v2.0. 33 позиций (без изменений).*
*Прил. Н v1.15 от 10.05.2026 (поздний вечер) — закрытие 4 находок третьего аудита (P1-03/04/05 sync cross-refs, §11.5/§12 «28→33»). 33 позиций (без изменений).*
*Прил. Н v1.14 от 10.05.2026 (вечер) — закрытие 3 находок второго аудита (P0-01 §10.3 sync, P0-04 §13 +v1.13 +v1.14 entries, P2-01 §7 +Tooling explicit slot). 33 позиций (без изменений).*
*Прил. Н v1.13 от 10.05.2026 — закрытие 4 структурных находок аудита нормативной документации (§7 +PSR_v1 уровнем 3, §4.7 новый — #33 claude-md-management, §6 +5 конфликтов v1.4, §4.6 settings → .claude.json). 33 позиций (19/29 активны по фазам + 3 off-phase + 1 заменённый PG MCP).*
*Прил. Н v1.12 от 10.05.2026 — формализованы #31 UPM + #32 21st Magic MCP как off-phase tools; §9 расширен motion-runtime denylist'ом. 31 позиций (19/29 активны по фазам + 2 off-phase).*
*Прил. Н v1.10 от 09.05.2026 — добавлен #30 Frontend Design plugin (paired со Superpowers), 19/29 активных.*
*Прил. Н v1.0 от 06.05.2026 — старт документации по tooling.*
*Связано: `CLAUDE.md` (корень), `Pravila_raboty_Claude_v1_1.md` v1.8+, `README_АРХИВ_v8_4.md` v8.4+.*