524bcfd05f
Эпик роутер-реестр, спека v2 §2, этап 1. Решение владельца 19.06 (путь 2): зонтик ui-ux-pro-max развёрнут в 7 карточек-навыков + 7 под-узлов #31a..#31g. Роль сохранена в каждой карточке: материал/решение по UI → стек Vue+Vuetify (R6.0), финальный код — Frontend Design #30. - 7 карточек: banner-design, brand, design, design-system, slides, ui-styling, ui-ux-pro-max (master) - nodes.yaml: узел #31 → #31a..#31g; мастер #31g держит конфликт-треугольник (frontend-design ↔ 21st-magic); обратные ссылки у #30/#32 перенаправлены на ui-ux-pro-max:ui-ux-pro-max → симметрия конфликтов сохранена (m3e зелёный) - зонтик убран; registry-load.test: 153 узла / 145 active - hookify оставлен одной карточкой (решение владельца) Правка PSR (роль UPM: материал → решатель-с-ограничением) — отдельным шагом. Регрессия (без 5 pre-existing node:test файлов): 4365 passed, exit 0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2846 lines
115 KiB
YAML
2846 lines
115 KiB
YAML
version: "0.1.0"
|
||
|
||
nodes:
|
||
- id: "#2"
|
||
name: "Playwright MCP"
|
||
slug: "playwright-mcp"
|
||
category: "phase-0"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Управляет headless Chromium-браузером через MCP: делает скриншоты, кликает по элементам, заполняет формы, проверяет визуальное поведение HTML-прототипов и живого SPA."
|
||
triggers:
|
||
- {keyword: "html prototype", weight: 1.0}
|
||
- {keyword: "screenshot", weight: 1.0}
|
||
- {keyword: "interaction smoke", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§2.4 #2"
|
||
|
||
- id: "#3"
|
||
name: "GitHub MCP"
|
||
slug: "github-mcp"
|
||
category: "phase-0"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Предоставляет полный доступ к GitHub API через MCP: чтение и создание issues, pull requests, комментариев, просмотр коммитов, управление ветками и нотификациями."
|
||
triggers:
|
||
- {keyword: "issues", weight: 1.0}
|
||
- {keyword: "pr", weight: 1.0}
|
||
- {keyword: "commits", weight: 1.0}
|
||
- {keyword: "открытые вопросы", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: ["L9"]
|
||
attributes:
|
||
tooling_section: "§2.4 #3"
|
||
|
||
- id: "#4"
|
||
name: "markdownlint-cli2"
|
||
slug: "markdownlint"
|
||
category: "phase-0"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Линтует Markdown-файлы по набору правил стиля (заголовки, таблицы, пробелы, переносы строк); запускается через `npm run lint:md` и в pre-commit хуке."
|
||
triggers:
|
||
- {keyword: "lint .md", weight: 1.0}
|
||
- {keyword: "markdown style", weight: 1.0}
|
||
- {keyword: "заголовки/таблицы", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§2.4 #4"
|
||
install: "npm run lint:md"
|
||
|
||
- id: "#5"
|
||
name: "cspell"
|
||
slug: "cspell"
|
||
category: "phase-0"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Проверяет орфографию в `.md`-файлах на русском и английском языках, поддерживает пользовательский словарь проекта (`cspell-words.txt`); запускается через `npm run spell`."
|
||
triggers:
|
||
- {keyword: "орфография ru/en", weight: 1.0}
|
||
- {keyword: "кастомный словарь", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§2.4 #5"
|
||
install: "npm run spell"
|
||
|
||
- id: "#6"
|
||
name: "lychee"
|
||
slug: "lychee"
|
||
category: "phase-0"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Сканирует все ссылки в Markdown-документах (внутренние и внешние), находит битые URL и якоря; запускается через `npm run links`."
|
||
triggers:
|
||
- {keyword: "проверка ссылок .md", weight: 1.0}
|
||
- {keyword: "кросс-ссылки архива", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§2.4 #6"
|
||
install: "npm run links"
|
||
|
||
- id: "#7"
|
||
name: "Stylelint"
|
||
slug: "stylelint"
|
||
category: "phase-0"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Линтует CSS-код в `.vue`-компонентах и отдельных CSS-файлах: порядок свойств, именование, синтаксические ошибки; запускается через `npm run lint:css`."
|
||
triggers:
|
||
- {keyword: "css lint", weight: 1.0}
|
||
- {keyword: "vue sfc style", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§2.4 #7"
|
||
install: "npm run lint:css"
|
||
|
||
- id: "#8"
|
||
name: "gitleaks"
|
||
slug: "gitleaks"
|
||
category: "phase-0"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Сканирует diff и историю репозитория на утечку секретов (API-ключи, токены, пароли, DSN-строки); работает через pre-commit и pre-push хуки lefthook."
|
||
triggers:
|
||
- {keyword: "секреты в diff", weight: 1.0}
|
||
- {keyword: "pre-commit hook", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: ["L15"]
|
||
attributes:
|
||
tooling_section: "§2.4 #8"
|
||
|
||
- id: "#9"
|
||
name: "Pa11y"
|
||
slug: "pa11y"
|
||
category: "phase-0"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Проверяет веб-страницы на соответствие WCAG 2.1 AA: контраст, alt-тексты, роли, фокус-порядок; единственный технический SoT a11y в проекте; `npm run a11y`."
|
||
triggers:
|
||
- {keyword: "a11y wcag 2.1 aa", weight: 1.0}
|
||
- {keyword: "прототипы", weight: 1.0}
|
||
- {keyword: "технический sot", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§2.4 #9"
|
||
install: "npm run a11y"
|
||
|
||
- id: "#10"
|
||
name: "Laravel Boost"
|
||
slug: "boost"
|
||
category: "phase-1"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "MCP-сервер Laravel Boost: выполняет SQL-запросы к dev-БД через Eloquent, отдаёт документацию по Laravel и установленным пакетам через Roster auto-detect; заменил PostgreSQL MCP (#1)."
|
||
triggers:
|
||
- {keyword: "sql", weight: 1.0}
|
||
- {keyword: "eloquent", weight: 1.0}
|
||
- {keyword: "docs laravel", weight: 1.0}
|
||
- {keyword: "roster auto-detect", weight: 1.0}
|
||
boundaries:
|
||
- {pair: "#1", relation: "replaces"}
|
||
chain_membership: ["L13", "L7"]
|
||
attributes:
|
||
tooling_section: "§3.5 #10"
|
||
install: "composer require laravel/boost --dev"
|
||
conflicts_with: ["postgres-mcp"]
|
||
|
||
- id: "#11"
|
||
name: "Laravel Pint"
|
||
slug: "pint"
|
||
category: "phase-1"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Автоматически форматирует PHP-код по PSR-12 и Laravel code style (пробелы, запятые, скобки, импорты); запускается через `composer pint`."
|
||
triggers:
|
||
- {keyword: "php code style", weight: 1.0}
|
||
- {keyword: "форматтер", weight: 1.0}
|
||
- {classification: "refactor", weight: 1.0}
|
||
- {classification: "cleanup", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.5 #11"
|
||
install: "composer pint"
|
||
|
||
- id: "#12"
|
||
name: "Larastan"
|
||
slug: "larastan"
|
||
category: "phase-1"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Выполняет статический анализ PHP-кода на уровне типов с помощью PHPStan + Laravel-расширений (Larastan); находит ошибки типов, несовместимые сигнатуры, undefined-переменные; `composer stan`."
|
||
triggers:
|
||
- {keyword: "статанализ php", weight: 1.0}
|
||
- {keyword: "типы", weight: 1.0}
|
||
- {classification: "refactor", weight: 1.0}
|
||
- {classification: "cleanup", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: ["L14"]
|
||
attributes:
|
||
tooling_section: "§3.5 #12"
|
||
install: "composer stan"
|
||
|
||
- id: "#13"
|
||
name: "Roave/SecurityAdvisories"
|
||
slug: "roave-security"
|
||
category: "phase-1"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Блокирует установку Composer-пакетов с известными CVE-уязвимостями через conflict-список; срабатывает автоматически при `composer install` / `composer update`."
|
||
triggers:
|
||
- {keyword: "cve на install", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.5 #13"
|
||
install: "composer install (автоматически)"
|
||
|
||
- id: "#14"
|
||
name: "Laravel IDE Helper"
|
||
slug: "ide-helper"
|
||
category: "phase-1"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Генерирует IDE-заглушки (stubs) для Laravel facades, Eloquent-моделей и хелперов (`@mixin IdeHelper*`); обеспечивает autocomplete и type-inference в PHPStorm/VSCode."
|
||
triggers:
|
||
- {keyword: "ide-stubs php", weight: 1.0}
|
||
- {keyword: "@mixin", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.5 #14"
|
||
install: "php artisan ide-helper:generate"
|
||
|
||
- id: "#15"
|
||
name: "squawk"
|
||
slug: "squawk"
|
||
category: "phase-1"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Линтует SQL-миграции PostgreSQL на наличие опасных паттернов: блокирующие операции, отсутствие `CONCURRENTLY`, ненадёжные DEFAULT; запускается в pre-commit для `database/migrations/`."
|
||
triggers:
|
||
- {keyword: "линт миграций postgresql", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.5 #15"
|
||
|
||
- id: "#16"
|
||
name: "pgFormatter"
|
||
slug: "pg-formatter"
|
||
category: "phase-1"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Форматирует SQL-файлы (отступы, регистр ключевых слов, выравнивание) по стандарту pgFormatter; активируется хуком при изменении `db/schema.sql`."
|
||
triggers:
|
||
- {keyword: "форматирование sql", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.5 #16"
|
||
|
||
- id: "#17"
|
||
name: "pg_partman"
|
||
slug: "pg-partman"
|
||
category: "phase-1"
|
||
subcategory: null
|
||
status: "dormant"
|
||
dormancy_reason: "native Windows PG не поддерживает расширение; заменён ручным cron'ом partitions:create-months"
|
||
capabilities: "Расширение PostgreSQL для автоматического создания и удаления partition-таблиц по расписанию — dormant: недоступно на native-Windows, заменено Artisan-командой `partitions:create-months`."
|
||
triggers:
|
||
- {keyword: "партиционирование pg", weight: 1.0}
|
||
boundaries:
|
||
- {relation: "replaced by Artisan partitions:create-months (CLAUDE.md §6)"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.5 #17"
|
||
|
||
- id: "#19a"
|
||
name: "brainstorming"
|
||
slug: "superpowers:brainstorming"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Согласованный дизайн и требования (что и зачем) до кода. Обязателен ПЕРЕД любой творческой работой/новой фичей."
|
||
triggers:
|
||
- {classification: "feature", weight: 1.0}
|
||
- {keyword: "brainstorm", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-011", role: "hard-floor source"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.3 #19"
|
||
|
||
- id: "#19b"
|
||
name: "test-driven-development"
|
||
slug: "superpowers:test-driven-development"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Цикл тест-первый: RED → минимальный код → GREEN → рефактор. Перед реализацией любой фичи/багфикса."
|
||
triggers:
|
||
- {keyword: "tdd", weight: 1.0}
|
||
- {classification: "refactor", weight: 0.8}
|
||
boundaries:
|
||
- {adr: "ADR-011", role: "hard-floor source"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.3 #19"
|
||
|
||
- id: "#19c"
|
||
name: "writing-plans"
|
||
slug: "superpowers:writing-plans"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "План реализации из bite-sized TDD-задач без плейсхолдеров. Для многошаговой задачи по спеке/требованиям."
|
||
triggers:
|
||
- {classification: "planning", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-011", role: "hard-floor source"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.3 #19"
|
||
|
||
- id: "#19d"
|
||
name: "systematic-debugging"
|
||
slug: "superpowers:systematic-debugging"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Корневая причина бага/упавшего теста, найденная ДО предложения фикса."
|
||
triggers:
|
||
- {keyword: "debug", weight: 0.8}
|
||
- {classification: "bugfix", weight: 0.8}
|
||
boundaries:
|
||
- {adr: "ADR-011", role: "hard-floor source"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.3 #19"
|
||
|
||
- id: "#19e"
|
||
name: "dispatching-parallel-agents"
|
||
slug: "superpowers:dispatching-parallel-agents"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Параллельная раздача 2+ независимых задач субагентам (без общего состояния)."
|
||
triggers: []
|
||
boundaries:
|
||
- {adr: "ADR-011", role: "hard-floor source"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.3 #19"
|
||
|
||
- id: "#19f"
|
||
name: "subagent-driven-development"
|
||
slug: "superpowers:subagent-driven-development"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Исполнение задач плана свежими субагентами + двухстадийное ревью между задачами."
|
||
triggers: []
|
||
boundaries:
|
||
- {adr: "ADR-011", role: "hard-floor source"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.3 #19"
|
||
|
||
- id: "#19g"
|
||
name: "receiving-code-review"
|
||
slug: "superpowers:receiving-code-review"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Техническая проверка фидбэка код-ревью (не слепое согласие) до внедрения правок."
|
||
triggers: []
|
||
boundaries:
|
||
- {adr: "ADR-011", role: "hard-floor source"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.3 #19"
|
||
|
||
- id: "#19h"
|
||
name: "requesting-code-review"
|
||
slug: "superpowers:requesting-code-review"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Запрос код-ревью, ловящий дефекты до каскада. Перед мержем крупного."
|
||
triggers: []
|
||
boundaries:
|
||
- {adr: "ADR-011", role: "hard-floor source"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.3 #19"
|
||
|
||
- id: "#19i"
|
||
name: "verification-before-completion"
|
||
slug: "superpowers:verification-before-completion"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Доказательство (прогон команд) ДО любого утверждения о готовности/успехе."
|
||
triggers: []
|
||
boundaries:
|
||
- {adr: "ADR-011", role: "hard-floor source"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.3 #19"
|
||
|
||
- id: "#19j"
|
||
name: "using-git-worktrees"
|
||
slug: "superpowers:using-git-worktrees"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Изолированный worktree (native или git-fallback) под фичу перед исполнением плана."
|
||
triggers: []
|
||
boundaries:
|
||
- {adr: "ADR-011", role: "hard-floor source"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.3 #19"
|
||
|
||
- id: "#19k"
|
||
name: "executing-plans"
|
||
slug: "superpowers:executing-plans"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Пакетное исполнение задач написанного плана с чекпойнтами ревью."
|
||
triggers: []
|
||
boundaries:
|
||
- {adr: "ADR-011", role: "hard-floor source"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.3 #19"
|
||
|
||
- id: "#19l"
|
||
name: "finishing-a-development-branch"
|
||
slug: "superpowers:finishing-a-development-branch"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Решение интеграции завершённой работы: merge / PR / cleanup ветки."
|
||
triggers: []
|
||
boundaries:
|
||
- {adr: "ADR-011", role: "hard-floor source"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.3 #19"
|
||
|
||
- id: "#19m"
|
||
name: "using-superpowers"
|
||
slug: "superpowers:using-superpowers"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Дисциплина поиска и вызова релевантных навыков ПЕРВЫМ делом в начале задачи."
|
||
triggers: []
|
||
boundaries:
|
||
- {adr: "ADR-011", role: "hard-floor source"}
|
||
- {pair: "#30", relation: "paired stack"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.3 #19"
|
||
|
||
- id: "#19n"
|
||
name: "writing-skills"
|
||
slug: "superpowers:writing-skills"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Навык, построенный TDD-процессом для процесс-документов (создание/правка навыка)."
|
||
triggers: []
|
||
boundaries:
|
||
- {adr: "ADR-011", role: "hard-floor source"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.3 #19"
|
||
install: "marketplace plugin, enabled in ~/.claude/settings.json"
|
||
|
||
- id: "#18"
|
||
name: "Pest 4"
|
||
slug: "pest"
|
||
category: "phase-1"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Тестовый фреймворк PHP (Pest 4): unit, feature, RLS smoke, parallel-mode; поддерживает browser/stress/mutation-тесты; запускается через `composer test`."
|
||
triggers:
|
||
- {classification: "bugfix", weight: 1.0}
|
||
- {keyword: "test", weight: 1.0}
|
||
- {keyword: "тест", weight: 1.0}
|
||
- {file_pattern: "tests/**/*.php", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: ["L13"]
|
||
attributes:
|
||
tooling_section: "§3.2 #18"
|
||
install: "composer require pestphp/pest --dev"
|
||
|
||
- id: "#1"
|
||
name: "PostgreSQL MCP"
|
||
slug: "postgres-mcp"
|
||
category: "phase-0"
|
||
subcategory: null
|
||
status: "historic"
|
||
dormancy_reason: "Заменён #10 Laravel Boost в фазе 1 (08.05.2026)"
|
||
capabilities: "Исторический PostgreSQL MCP-сервер для прямых SQL-запросов к dev-БД — заменён Laravel Boost (#10); dormant, не используется."
|
||
triggers: []
|
||
boundaries:
|
||
- {pair: "#10", relation: "replaced by"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§3.1 #1 (historic)"
|
||
conflicts_with: ["boost"]
|
||
|
||
- id: "#20"
|
||
name: "Volar"
|
||
slug: "volar"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Vue Language Server (Volar) для VSCode: предоставляет IntelliSense, go-to-definition, hover-документацию и диагностику типов для `.vue`-файлов в редакторе."
|
||
triggers:
|
||
- {keyword: "vue language server (vscode)", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.2 #20"
|
||
|
||
- id: "#21"
|
||
name: "vue-tsc"
|
||
slug: "vue-tsc"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Выполняет полную проверку типов TypeScript в `.vue`-компонентах через `vue-tsc`; запускается только в CI, находит несоответствия типов в шаблонах и script-блоках."
|
||
triggers:
|
||
- {keyword: "type-check vue (ci only)", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.2 #21"
|
||
install: "npm i -D vue-tsc typescript"
|
||
|
||
- id: "#22"
|
||
name: "ESLint + Prettier + plugin-vue + config-prettier"
|
||
slug: "eslint-prettier"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Связка линтера и форматтера для JS/Vue: ESLint (flat-config, plugin-vue, @vue/eslint-config-typescript) + Prettier + config-prettier; `npm run lint:vue` + `npm run format`."
|
||
triggers:
|
||
- {keyword: "lint js/vue", weight: 1.0}
|
||
- {keyword: "форматтер", weight: 1.0}
|
||
boundaries:
|
||
- {relation: "связка (R0.4)"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.2 #22"
|
||
install: "npm i -D eslint prettier eslint-config-prettier eslint-plugin-vue"
|
||
|
||
- id: "#23"
|
||
name: "Vitest"
|
||
slug: "vitest"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Тестовый фреймворк для Vue-компонентов: unit и component-тесты с @vue/test-utils, jsdom, Pinia; `npm run test:vue`."
|
||
triggers:
|
||
- {keyword: "тесты vue", weight: 1.0}
|
||
- {keyword: "unit/component", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.2 #23"
|
||
install: "npm i -D vitest @vue/test-utils @vitest/ui"
|
||
|
||
- id: "#24"
|
||
name: "Histoire"
|
||
slug: "histoire"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Каталог Vue-компонентов в стиле Histoire (не Storybook): визуальная документация stories и variants, поддерживает Vuetify через setupFile; `npm run story`."
|
||
triggers:
|
||
- {keyword: "каталог компонентов", weight: 1.0}
|
||
- {keyword: "stories", weight: 1.0}
|
||
boundaries:
|
||
- {relation: "не storybook"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.3 #24"
|
||
install: "npm i -D --legacy-peer-deps histoire @histoire/plugin-vue"
|
||
|
||
- id: "#25"
|
||
name: "Semgrep + Semgrep MCP"
|
||
slug: "semgrep"
|
||
category: "phase-3"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Статический анализ безопасности кода (SAST): сканирует PHP/JS/Vue на паттерны уязвимостей (инъекции, небезопасная конфигурация, XSS); бинарь + MCP-сервер; `npm run sast`."
|
||
triggers:
|
||
- {keyword: "sast", weight: 1.0}
|
||
- {keyword: "security static analysis", weight: 1.0}
|
||
- {keyword: "статический анализ", weight: 1.0}
|
||
- {keyword: "sast scan", weight: 1.0}
|
||
- {keyword: "secret pattern", weight: 1.0}
|
||
- {keyword: "уязвимость в коде", weight: 1.0}
|
||
- {classification: "analysis", weight: 1.0}
|
||
boundaries:
|
||
- {relation: "связка binary+mcp"}
|
||
chain_membership: ["L15", "L6"]
|
||
attributes:
|
||
tooling_section: "§5.1 #25"
|
||
install: "npm run sast"
|
||
|
||
- id: "#26"
|
||
name: "Trivy"
|
||
slug: "trivy"
|
||
category: "phase-3"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Сканирует Docker-образы на CVE-уязвимости в OS-пакетах и зависимостях; запускается в CI перед push в Yandex Container Registry (`trivy image liderra:latest`)."
|
||
triggers:
|
||
- {keyword: "docker image scan", weight: 1.0}
|
||
- {keyword: "container vulnerabilities", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§5.1 #26"
|
||
|
||
- id: "#27"
|
||
name: "GitHub Dependabot"
|
||
slug: "dependabot"
|
||
category: "phase-3"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "GitHub Dependabot автоматически создаёт pull requests при обнаружении CVE в Composer/npm-зависимостях; настраивается через `.github/dependabot.yml`."
|
||
triggers:
|
||
- {keyword: "cve pr auto", weight: 1.0}
|
||
- {keyword: "dependency updates", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§5.1 #27"
|
||
|
||
- id: "#28"
|
||
name: "pg_audit"
|
||
slug: "pg-audit"
|
||
category: "phase-3"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Расширение PostgreSQL для аудит-журнала DDL/DML/DCL операций на уровне БД; конфигурировано `pgaudit.log='ddl, role, write'`, `log_parameter=off`; установлено на продакшне liderra.ru, закрывает 152-ФЗ требование."
|
||
triggers:
|
||
- {keyword: "audit logs postgresql", weight: 1.0}
|
||
- {keyword: "mutation tracking", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§5.1 #28"
|
||
|
||
- id: "#29"
|
||
name: "pg_anonymizer"
|
||
slug: "pg-anonymizer"
|
||
category: "phase-3"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Расширение PostgreSQL для маскирования персональных данных в дампах (анонимизация телефонов, имён, email); загрузка по требованию `LOAD 'anon'`; установлено на продакшне liderra.ru."
|
||
triggers:
|
||
- {keyword: "маскирование пдн в дампах", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§5.1 #29"
|
||
|
||
- id: "#30"
|
||
name: "Frontend Design plugin"
|
||
slug: "frontend-design"
|
||
category: "phase-2"
|
||
subcategory: null
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Доменная база знаний UI/UX для Vue+Vuetify: компоненты, паттерны состояний, принципы доступности, design critique; paired с Superpowers (#19); проходит фильтр стека R6.0."
|
||
triggers:
|
||
- {keyword: "ui компоненты", weight: 1.0}
|
||
- {keyword: "паттерны", weight: 1.0}
|
||
- {keyword: "состояния", weight: 1.0}
|
||
- {keyword: "a11y-принципы", weight: 1.0}
|
||
boundaries:
|
||
- {pair: "#19", relation: "paired stack"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.4 #30"
|
||
install: "enabledPlugins.frontend-design@anthropics-claude-plugins в ~/.claude/settings.json"
|
||
conflicts_with: ["ui-ux-pro-max:ui-ux-pro-max", "21st-magic"]
|
||
|
||
- id: "#31a"
|
||
name: "uiux-banner-design"
|
||
slug: "ui-ux-pro-max:banner-design"
|
||
category: "off-phase"
|
||
subcategory: "UI-pool"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Дизайн баннеров из пула UPM (стек → Vue+Vuetify; финальный код — Frontend Design)."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.5 #31"
|
||
|
||
- id: "#31b"
|
||
name: "uiux-brand"
|
||
slug: "ui-ux-pro-max:brand"
|
||
category: "off-phase"
|
||
subcategory: "UI-pool"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Бренд-система UI: палитра, типографика (приводится к нашему стеку)."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.5 #31"
|
||
|
||
- id: "#31c"
|
||
name: "uiux-design"
|
||
slug: "ui-ux-pro-max:design"
|
||
category: "off-phase"
|
||
subcategory: "UI-pool"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Унифицированный UI-дизайн (50+ стилей; стек → Vue+Vuetify; код — Frontend Design)."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.5 #31"
|
||
|
||
- id: "#31d"
|
||
name: "uiux-design-system"
|
||
slug: "ui-ux-pro-max:design-system"
|
||
category: "off-phase"
|
||
subcategory: "UI-pool"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Токены и компоненты дизайн-системы (под Vue+Vuetify)."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.5 #31"
|
||
|
||
- id: "#31e"
|
||
name: "uiux-slides"
|
||
slug: "ui-ux-pro-max:slides"
|
||
category: "off-phase"
|
||
subcategory: "UI-pool"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Стратегические презентации/слайды из пула UPM."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.5 #31"
|
||
|
||
- id: "#31f"
|
||
name: "uiux-ui-styling"
|
||
slug: "ui-ux-pro-max:ui-styling"
|
||
category: "off-phase"
|
||
subcategory: "UI-pool"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Стилизация UI (источник shadcn/Tailwind ОБЯЗАТЕЛЬНО приводится к Vue+Vuetify, фильтр стека R6.0)."
|
||
triggers:
|
||
- {keyword: "стили", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.5 #31"
|
||
|
||
- id: "#31g"
|
||
name: "ui-ux-pro-max-master"
|
||
slug: "ui-ux-pro-max:ui-ux-pro-max"
|
||
category: "off-phase"
|
||
subcategory: "UI-pool"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Мастер-навык пула UPM: 50+ стилей, 161 палитра, 57 пар шрифтов, 25 типов чартов; стек → Vue+Vuetify, финальный код — Frontend Design."
|
||
triggers:
|
||
- {keyword: "резерв ui", weight: 1.0}
|
||
- {keyword: "палитры", weight: 1.0}
|
||
- {keyword: "графики", weight: 1.0}
|
||
- {keyword: "ux-гайдлайны", weight: 1.0}
|
||
boundaries:
|
||
- {relation: "PSR_v1 R14.3 pipeline; стек R6.0; решатель кода — Frontend Design"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.5 #31"
|
||
conflicts_with: ["frontend-design", "21st-magic"]
|
||
|
||
- id: "#32"
|
||
name: "21st.dev Magic MCP"
|
||
slug: "21st-magic"
|
||
category: "off-phase"
|
||
subcategory: "UI-pool"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "LLM-генератор стартовых UI-шаблонов (компоненты, лейауты, формы) через 21st.dev Magic MCP; активируется через PSR_v1 R14.4 pipeline; Pa11y проверка обязательна после генерации."
|
||
triggers:
|
||
- {keyword: "генератор ui-шаблонов (llm-based)", weight: 1.0}
|
||
boundaries:
|
||
- {relation: "PSR_v1 R14.4 pipeline + Pa11y mandatory"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.6 #32"
|
||
conflicts_with: ["frontend-design", "ui-ux-pro-max:ui-ux-pro-max"]
|
||
|
||
- id: "#33a"
|
||
name: "claude-md-improver"
|
||
slug: "claude-md-management:claude-md-improver"
|
||
category: "off-phase"
|
||
subcategory: "infrastructure"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Аудит и целевые правки CLAUDE.md: quality-report по rubric + targeted-обновления секций и правил §5. Один из двух входов плагина claude-md-management (единственный канал правки CLAUDE.md)."
|
||
triggers:
|
||
- {keyword: "аудит claude.md", weight: 1.0}
|
||
- {keyword: "правки claude.md", weight: 1.0}
|
||
boundaries:
|
||
- {relation: "CLAUDE.md §5 п.10 + PSR_v1 R10.1"}
|
||
chain_membership: ["L12"]
|
||
attributes:
|
||
tooling_section: "§4.7 #33"
|
||
install: "enabledPlugins.claude-md-management@claude-plugins-official в ~/.claude/settings.json"
|
||
|
||
- id: "#33b"
|
||
name: "revise-claude-md"
|
||
slug: "claude-md-management:revise-claude-md"
|
||
category: "off-phase"
|
||
subcategory: "infrastructure"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Захват learnings текущей сессии в CLAUDE.md (новые quirks/команды/паттерны). Второй вход плагина claude-md-management."
|
||
triggers:
|
||
- {keyword: "захват learnings", weight: 1.0}
|
||
- {keyword: "обязательный канал", weight: 1.0}
|
||
boundaries:
|
||
- {relation: "CLAUDE.md §5 п.10 + PSR_v1 R10.1"}
|
||
chain_membership: ["L12"]
|
||
attributes:
|
||
tooling_section: "§4.7 #33"
|
||
install: "enabledPlugins.claude-md-management@claude-plugins-official в ~/.claude/settings.json"
|
||
|
||
- id: "#34"
|
||
name: "Sentry MCP"
|
||
slug: "sentry-mcp"
|
||
category: "off-phase"
|
||
subcategory: "debug-runtime"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "MCP-сервер для чтения событий, ошибок и трассировок из self-hosted Sentry; READ-ONLY; помогает диагностировать production runtime ошибки; pending активации (Б-1)."
|
||
triggers:
|
||
- {keyword: "отладка production runtime errors", weight: 1.0}
|
||
- {classification: "bugfix", weight: 1.0}
|
||
# Removed 2026-05-27 (retro #8 follow-up): the "monitoring" classification
|
||
# in practice meant background task-notifications (not Sentry events), so
|
||
# this trigger fired false-positives on every bg-job-completion prompt.
|
||
# Sentry MCP stays available via the "bugfix" classification and the
|
||
# explicit keyword trigger.
|
||
boundaries: []
|
||
chain_membership: ["L13", "L8"]
|
||
attributes:
|
||
tooling_section: "§4.8 #34"
|
||
|
||
- id: "#35"
|
||
name: "Redis MCP"
|
||
slug: "redis-mcp"
|
||
category: "off-phase"
|
||
subcategory: "debug-runtime"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "MCP-сервер для чтения состояния Redis/Memurai: ключи, очереди, TTL, паттерны; READ-ONLY; помогает диагностировать состояние кэша, очередей и Pest race-условий."
|
||
triggers:
|
||
- {keyword: "отладка redis/memurai очередей", weight: 1.0}
|
||
- {keyword: "кэша", weight: 1.0}
|
||
- {keyword: "pest-race", weight: 1.0}
|
||
# Removed 2026-05-27 (retro #8 follow-up): same reason as #34 above —
|
||
# "monitoring" classification covered bg-task-notifications, not Redis
|
||
# state inspection. Keyword triggers remain for explicit calls.
|
||
boundaries:
|
||
- {relation: "read-only"}
|
||
chain_membership: ["L13", "L8"]
|
||
attributes:
|
||
tooling_section: "§4.9 #35"
|
||
|
||
- id: "#36a"
|
||
name: "adr-kit-adr"
|
||
slug: "adr-kit:adr"
|
||
category: "off-phase"
|
||
subcategory: "architecture-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Создаёт и ведёт Architecture Decision Records (ADR) в docs/adr/ + enforcement-гейт."
|
||
triggers:
|
||
- {keyword: "архитектурные решения", weight: 1.0}
|
||
- {keyword: "adr", weight: 1.0}
|
||
- {keyword: "architecture decision record", weight: 1.0}
|
||
- {keyword: "архитектурное решение", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: ["L4", "L5"]
|
||
attributes:
|
||
tooling_section: "§4.11 #36"
|
||
install: "claude plugin install adr-kit@rvdbreemen-adr-kit"
|
||
|
||
- id: "#36b"
|
||
name: "adr-kit-judge"
|
||
slug: "adr-kit:judge"
|
||
category: "off-phase"
|
||
subcategory: "architecture-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Сверяет staged diff против принятых ADR (lefthook pre-commit job 9, без LLM); вердикт + пути разрешения."
|
||
triggers:
|
||
- {keyword: "enforcement", weight: 1.0}
|
||
boundaries:
|
||
- {relation: "adr-judge lefthook job 9"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.11 #36"
|
||
install: "claude plugin install adr-kit@rvdbreemen-adr-kit"
|
||
|
||
- id: "#37"
|
||
name: "mermaid-skill"
|
||
slug: "mermaid"
|
||
category: "off-phase"
|
||
subcategory: "architecture-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Генерирует архитектурные диаграммы в нотации Mermaid и C4 (context, container, component); вендоренный скил в `.claude/skills/mermaid/`; диаграммы сохраняются в `docs/architecture/`."
|
||
triggers:
|
||
- {keyword: "c4", weight: 1.0}
|
||
- {keyword: "architecture-диаграммы", weight: 1.0}
|
||
- {keyword: "mermaid диаграмма", weight: 1.0}
|
||
- {keyword: "c4 диаграмма", weight: 1.0}
|
||
- {keyword: "c4 модель", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: ["L4"]
|
||
attributes:
|
||
tooling_section: "§4.12 #37"
|
||
install: "vendored в .claude/skills/mermaid/"
|
||
|
||
- id: "#38"
|
||
name: "architecture-patterns"
|
||
slug: "architecture-patterns"
|
||
category: "off-phase"
|
||
subcategory: "architecture-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Справочник архитектурных паттернов: Clean Architecture, Hexagonal, DDD, CQRS, Event Sourcing и другие; предоставляет описания, примеры применения и критерии выбора."
|
||
triggers:
|
||
- {keyword: "справочник архитектурных паттернов", weight: 1.0}
|
||
- {keyword: "clean architecture", weight: 1.0}
|
||
- {keyword: "hexagonal", weight: 1.0}
|
||
- {keyword: "ddd", weight: 1.0}
|
||
- {keyword: "domain-driven", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: ["L5"]
|
||
attributes:
|
||
tooling_section: "§4.13 #38"
|
||
install: "claude plugin install architecture-patterns@claude-skills"
|
||
|
||
- id: "#39"
|
||
name: "Trail of Bits Skills"
|
||
slug: "trail-of-bits"
|
||
category: "off-phase"
|
||
subcategory: "audit-security"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Набор из 8 аудит-скилов Trail of Bits для глубокого on-demand security-анализа: diff-review, supply-chain risk, variant analysis, static analysis, инвентаризация уязвимостей."
|
||
triggers:
|
||
- {keyword: "deep аудит безопасности", weight: 1.0}
|
||
- {keyword: "diff", weight: 1.0}
|
||
- {keyword: "supply-chain", weight: 1.0}
|
||
- {keyword: "глубокий security audit", weight: 1.0}
|
||
- {keyword: "supply chain risk", weight: 1.0}
|
||
- {keyword: "audit context", weight: 1.0}
|
||
- {classification: "analysis", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: ["L15", "L6"]
|
||
attributes:
|
||
tooling_section: "§4.14 #39"
|
||
install: "enabledPlugins subsets из trailofbits/skills"
|
||
|
||
- id: "#40"
|
||
name: "Security Guidance"
|
||
slug: "security-guidance"
|
||
category: "off-phase"
|
||
subcategory: "audit-security"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Блокирующий PreToolUse-хук (sys.exit 2): перехватывает правку файлов и выводит предупреждение при обнаружении уязвимых паттернов кода (SQL-инъекции, XSS, небезопасная десериализация); одноразовый speed-bump per файл+правило."
|
||
triggers:
|
||
- {keyword: "inline-блокировка уязвимых паттернов", weight: 1.0}
|
||
- {keyword: "inline уязвимость", weight: 1.0}
|
||
- {keyword: "code security warning", weight: 1.0}
|
||
- {keyword: "уязвимый паттерн", weight: 1.0}
|
||
- {keyword: "secret pattern detection", weight: 1.0}
|
||
boundaries:
|
||
- {relation: "блокирующий PreToolUse (sys.exit 2)"}
|
||
chain_membership: ["L6"]
|
||
attributes:
|
||
tooling_section: "§4.15 #40"
|
||
install: "claude plugin install security-guidance@claude-plugins-official"
|
||
|
||
- id: "#41"
|
||
name: "CCPM"
|
||
slug: "ccpm"
|
||
category: "off-phase"
|
||
subcategory: "project-management"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Скил управления dev-проектом: PRD → эпики → issues → код; хранит артефакты в `.claude/prds/` и `.claude/epics/`; 14 bash-скриптов без lifecycle-хуков."
|
||
triggers:
|
||
- {keyword: "prd эпик issue код", weight: 1.0}
|
||
- {keyword: "dev-проекты", weight: 1.0}
|
||
- {classification: "planning", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: ["L9"]
|
||
attributes:
|
||
tooling_section: "§4.16 #41"
|
||
install: "vendored в .claude/skills/ccpm/"
|
||
|
||
- id: "#42a"
|
||
name: "write-spec"
|
||
slug: "product-management:write-spec"
|
||
category: "off-phase"
|
||
subcategory: "project-management"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Функциональная спецификация/PRD из проблемы: goals/non-goals/метрики. Входная точка продуктовых церемоний."
|
||
triggers:
|
||
- {keyword: "prd", weight: 1.0}
|
||
- {keyword: "продуктовые церемонии", weight: 1.0}
|
||
- {classification: "planning", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: ["L9"]
|
||
attributes:
|
||
tooling_section: "§4.17 #42"
|
||
install: "claude plugin install product-management@knowledge-work-plugins"
|
||
|
||
- id: "#42b"
|
||
name: "roadmap-update"
|
||
slug: "product-management:roadmap-update"
|
||
category: "off-phase"
|
||
subcategory: "project-management"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Обновление дорожной карты (Now/Next/Later), переприоритизация инициатив."
|
||
triggers:
|
||
- {keyword: "роадмап", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.17 #42"
|
||
|
||
- id: "#42c"
|
||
name: "metrics-review"
|
||
slug: "product-management:metrics-review"
|
||
category: "off-phase"
|
||
subcategory: "project-management"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Разбор продуктовых метрик: тренды, scorecard, рекомендации."
|
||
triggers:
|
||
- {keyword: "метрики", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.17 #42"
|
||
|
||
- id: "#42d"
|
||
name: "product-brainstorming"
|
||
slug: "product-management:product-brainstorming"
|
||
category: "off-phase"
|
||
subcategory: "project-management"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Открытая проработка продуктовых идей и направлений (sparring-partner)."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.17 #42"
|
||
|
||
- id: "#42e"
|
||
name: "sprint-planning"
|
||
slug: "product-management:sprint-planning"
|
||
category: "off-phase"
|
||
subcategory: "project-management"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "План спринта под ёмкость команды: scope, оценки, цели, P0 vs stretch."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.17 #42"
|
||
|
||
- id: "#42f"
|
||
name: "stakeholder-update"
|
||
slug: "product-management:stakeholder-update"
|
||
category: "off-phase"
|
||
subcategory: "project-management"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Апдейт стейкхолдерам под аудиторию (exec/eng/customer) и cadence."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.17 #42"
|
||
|
||
- id: "#42g"
|
||
name: "synthesize-research"
|
||
slug: "product-management:synthesize-research"
|
||
category: "off-phase"
|
||
subcategory: "project-management"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Синтез сырого research (интервью/опросы/тикеты) в структурированные инсайты и рекомендации."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.17 #42"
|
||
|
||
- id: "#42h"
|
||
name: "product-competitive-brief"
|
||
slug: "product-management:competitive-brief"
|
||
category: "off-phase"
|
||
subcategory: "project-management"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Продуктовый конкурентный бриф: позиционирование, gap, угрозы. (Не путать с marketing:competitive-brief.)"
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.17 #42"
|
||
|
||
- id: "#43"
|
||
name: "deptrac"
|
||
slug: "deptrac"
|
||
category: "off-phase"
|
||
subcategory: "architecture-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Статический анализ направления зависимостей между PHP-слоями (Controller/Service/Model/Job/…) по конфигу `app/deptrac.yaml`; блокирует нарушения в lefthook pre-commit job 10."
|
||
triggers:
|
||
- {keyword: "направление зависимостей", weight: 1.0}
|
||
- {keyword: "границы слоёв", weight: 1.0}
|
||
- {keyword: "архитектурная зависимость", weight: 1.0}
|
||
- {keyword: "layer dependency", weight: 1.0}
|
||
- {keyword: "deptrac.yaml", weight: 1.0}
|
||
- {classification: "refactor", weight: 1.0}
|
||
boundaries:
|
||
- {relation: "lefthook job 10"}
|
||
chain_membership: ["L14", "L5"]
|
||
attributes:
|
||
tooling_section: "§4.18 #43"
|
||
install: "composer require --dev deptrac/deptrac"
|
||
|
||
- id: "#44"
|
||
name: "Figma MCP"
|
||
slug: "figma-mcp"
|
||
category: "off-phase"
|
||
subcategory: "design-tooling"
|
||
status: "deferred"
|
||
dormancy_reason: "нет Figma-аккаунта; дизайн-источник Лидерры — статический handoff Платона, не Figma-файл"
|
||
capabilities: "MCP-сервер для извлечения дизайн-токенов, компонентов и стилей из Figma-файлов — DEFERRED: у проекта нет Figma-аккаунта, дизайн-источник — статический handoff Платона."
|
||
triggers:
|
||
- {keyword: "извлечение дизайн-токенов из figma", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.19 #44"
|
||
|
||
- id: "#45"
|
||
name: "Universal Icons MCP"
|
||
slug: "universal-icons-mcp"
|
||
category: "off-phase"
|
||
subcategory: "design-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "MCP-сервер для поиска и вставки SVG-иконок из 10+ коллекций (Material, Tabler, Phosphor и др.); используется только для не-Lucide коллекций (ADR-006: Lucide иконки — через `lucide-vue-next`)."
|
||
triggers:
|
||
- {keyword: "svg-иконки non-lucide коллекции", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-006", role: "Lucide → lucide-vue-next; raw-SVG только для не-Lucide коллекций"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.20 #45"
|
||
install: "npx -y mcp-universal-icons (в .mcp.json)"
|
||
|
||
- id: "#46a"
|
||
name: "accessibility-review"
|
||
slug: "design-plugin:accessibility-review"
|
||
category: "off-phase"
|
||
subcategory: "design-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "WCAG 2.1 AA аудит дизайна (контраст, клавиатура, тач-таргеты, screen reader). Дизайн-уровень; технический a11y SoT — Pa11y #9."
|
||
triggers: []
|
||
boundaries:
|
||
- {relation: "pre-code; Pa11y остаётся a11y SoT"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.21 #46"
|
||
install: "claude plugin install design@knowledge-work-plugins"
|
||
|
||
- id: "#46b"
|
||
name: "design-critique"
|
||
slug: "design-plugin:design-critique"
|
||
category: "off-phase"
|
||
subcategory: "design-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Структурная критика дизайна: usability, иерархия, консистентность."
|
||
triggers:
|
||
- {keyword: "дизайн-критика", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.21 #46"
|
||
|
||
- id: "#46c"
|
||
name: "design-handoff"
|
||
slug: "design-plugin:design-handoff"
|
||
category: "off-phase"
|
||
subcategory: "design-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Dev-спека из дизайна: токены, props, состояния, breakpoints, edge-cases, анимация."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.21 #46"
|
||
|
||
- id: "#46d"
|
||
name: "design-system"
|
||
slug: "design-plugin:design-system"
|
||
category: "off-phase"
|
||
subcategory: "design-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Аудит/документация/расширение дизайн-системы (naming, hardcoded-значения, новый паттерн)."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.21 #46"
|
||
|
||
- id: "#46e"
|
||
name: "design-research-synthesis"
|
||
slug: "design-plugin:research-synthesis"
|
||
category: "off-phase"
|
||
subcategory: "design-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Синтез research (интервью/тесты/тикеты/NPS) в темы, инсайты, сегменты, приоритеты."
|
||
triggers:
|
||
- {keyword: "research synthesis", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.21 #46"
|
||
|
||
- id: "#46f"
|
||
name: "user-research"
|
||
slug: "design-plugin:user-research"
|
||
category: "off-phase"
|
||
subcategory: "design-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Планирование и проведение user research: гайд интервью, юзабилити-тест, опрос."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.21 #46"
|
||
|
||
- id: "#46g"
|
||
name: "ux-copy"
|
||
slug: "design-plugin:ux-copy"
|
||
category: "off-phase"
|
||
subcategory: "design-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "UX-копирайт: microcopy, ошибки, пустые состояния, CTA."
|
||
triggers:
|
||
- {keyword: "ux-копирайт", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.21 #46"
|
||
|
||
- id: "#47"
|
||
name: "openapi-mcp-server"
|
||
slug: "openapi-mcp"
|
||
category: "off-phase"
|
||
subcategory: "integration-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "MCP-сервер для интроспекции OpenAPI/REST-спецификаций: отдаёт эндпоинты, схемы, параметры как MCP-ресурсы и инструменты; READ-ONLY; в `.mcp.json`."
|
||
triggers:
|
||
- {keyword: "introspection openapi/rest-спек", weight: 1.0}
|
||
- {keyword: "openapi", weight: 1.0}
|
||
- {keyword: "swagger", weight: 1.0}
|
||
- {keyword: "спека api", weight: 1.0}
|
||
- {keyword: "rest api", weight: 1.0}
|
||
boundaries:
|
||
- {relation: "read-only"}
|
||
chain_membership: ["L7"]
|
||
attributes:
|
||
tooling_section: "§4.22 #47"
|
||
install: "npm install @ivotoby/openapi-mcp-server (в .mcp.json)"
|
||
|
||
- id: "#48"
|
||
name: "promptfoo"
|
||
slug: "promptfoo"
|
||
category: "off-phase"
|
||
subcategory: "ml-ai-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "CLI-инструмент для eval и регрессионного тестирования LLM-промптов: ассерты, LLM-judge, red-team-сценарии; запуск вручную или в CI — не в хуке lefthook."
|
||
triggers:
|
||
- {keyword: "тестирование llm-промптов", weight: 1.0}
|
||
- {keyword: "eval", weight: 1.0}
|
||
- {keyword: "eval промпта", weight: 1.0}
|
||
- {keyword: "llm test", weight: 1.0}
|
||
- {keyword: "prompt regression", weight: 1.0}
|
||
boundaries:
|
||
- {relation: "только вручную/CI, никогда в хук"}
|
||
chain_membership: ["L10"]
|
||
attributes:
|
||
tooling_section: "§4.23 #48"
|
||
install: "npm install --save-dev promptfoo"
|
||
|
||
- id: "#49"
|
||
name: "Data Scientist skill"
|
||
slug: "data-scientist"
|
||
category: "off-phase"
|
||
subcategory: "ml-ai-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Вендоренный скил для классического ML-воркфлоу: загрузка данных, feature engineering, обучение моделей, оценка метрик, визуализация результатов."
|
||
triggers:
|
||
- {keyword: "классический ml-воркфлоу", weight: 1.0}
|
||
- {keyword: "ml модель", weight: 1.0}
|
||
- {keyword: "статистика", weight: 1.0}
|
||
- {keyword: "корреляция", weight: 1.0}
|
||
- {keyword: "машинное обучение", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: ["L10"]
|
||
attributes:
|
||
tooling_section: "§4.24 #49"
|
||
install: "vendored в .claude/skills/data-scientist/"
|
||
|
||
- id: "#50"
|
||
name: "Jupyter MCP"
|
||
slug: "jupyter-mcp"
|
||
category: "off-phase"
|
||
subcategory: "ml-ai-tooling"
|
||
status: "deferred"
|
||
dormancy_reason: "нет Python ML-окружения (pandas/scikit-learn/Jupyter) на native-Windows машине"
|
||
capabilities: "MCP-сервер для выполнения кода в Jupyter-ноутбуках — DEFERRED: требует Python ML-окружения, отсутствующего на native-Windows машине."
|
||
triggers:
|
||
- {keyword: "исполняемые jupyter-ноутбуки", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.25 #50"
|
||
|
||
- id: "#51a"
|
||
name: "operations-capacity-plan"
|
||
slug: "operations:capacity-plan"
|
||
category: "off-phase"
|
||
subcategory: "business-process"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Анализ ёмкости ресурсов + прогноз utilization (hire/deprioritize)."
|
||
triggers:
|
||
- {keyword: "capacity plan", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.26 #51"
|
||
|
||
- id: "#51b"
|
||
name: "operations-change-request"
|
||
slug: "operations:change-request"
|
||
category: "off-phase"
|
||
subcategory: "business-process"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Change request: impact-анализ + rollback-план (CAB)."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.26 #51"
|
||
|
||
- id: "#51c"
|
||
name: "operations-compliance-tracking"
|
||
slug: "operations:compliance-tracking"
|
||
category: "off-phase"
|
||
subcategory: "business-process"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Отслеживание комплаенса + audit-readiness (SOC2/ISO/GDPR)."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.26 #51"
|
||
|
||
- id: "#51d"
|
||
name: "operations-process-doc"
|
||
slug: "operations:process-doc"
|
||
category: "off-phase"
|
||
subcategory: "business-process"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Структурированная документация бизнес-процесса (flowchart, RACI, SOP)."
|
||
triggers:
|
||
- {keyword: "бизнес-процесс документ", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.26 #51"
|
||
|
||
- id: "#51e"
|
||
name: "operations-process-optimization"
|
||
slug: "operations:process-optimization"
|
||
category: "off-phase"
|
||
subcategory: "business-process"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Оптимизация процесса: устранение узких мест и лишних шагов."
|
||
triggers:
|
||
- {keyword: "документирование/оптимизация бизнес-процессов", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.26 #51"
|
||
|
||
- id: "#51f"
|
||
name: "operations-risk-assessment"
|
||
slug: "operations:risk-assessment"
|
||
category: "off-phase"
|
||
subcategory: "business-process"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Оценка операционных рисков: risk register (идентификация, оценка, митигация)."
|
||
triggers:
|
||
- {keyword: "risk assessment", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.26 #51"
|
||
|
||
- id: "#51g"
|
||
name: "operations-runbook"
|
||
slug: "operations:runbook"
|
||
category: "off-phase"
|
||
subcategory: "business-process"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Операционный runbook: пошаговые команды, troubleshooting, rollback, эскалация."
|
||
triggers:
|
||
- {keyword: "runbook", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: ["L4"]
|
||
attributes:
|
||
tooling_section: "§4.26 #51"
|
||
install: "claude plugin install operations@knowledge-work-plugins"
|
||
|
||
- id: "#51h"
|
||
name: "operations-status-report"
|
||
slug: "operations:status-report"
|
||
category: "off-phase"
|
||
subcategory: "business-process"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Статус-отчёт: KPI, риски, action items (green/yellow/red)."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.26 #51"
|
||
|
||
- id: "#51i"
|
||
name: "operations-vendor-review"
|
||
slug: "operations:vendor-review"
|
||
category: "off-phase"
|
||
subcategory: "business-process"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Оценка вендора: TCO, риски, рекомендация (renew vs replace)."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.26 #51"
|
||
|
||
- id: "#52"
|
||
name: "process-modeling"
|
||
slug: "process-modeling"
|
||
category: "off-phase"
|
||
subcategory: "business-process"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Скил для BPMN 2.0 моделирования to-be бизнес-процессов: swimlane-диаграммы, события, шлюзы, потоки управления; результаты в `docs/process/`."
|
||
triggers:
|
||
- {keyword: "моделирование to-be процесса", weight: 1.0}
|
||
- {keyword: "bpmn 2.0", weight: 1.0}
|
||
- {keyword: "bpmn", weight: 1.0}
|
||
- {keyword: "моделирование процесса", weight: 1.0}
|
||
- {keyword: "swimlane", weight: 1.0}
|
||
boundaries:
|
||
- {relation: "self-authored project skill"}
|
||
chain_membership: ["L3", "L4"]
|
||
attributes:
|
||
tooling_section: "§4.27 #52"
|
||
|
||
- id: "#53"
|
||
name: "process-analysis"
|
||
slug: "process-analysis"
|
||
category: "off-phase"
|
||
subcategory: "business-process"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Скил для as-is анализа бизнес-процессов через discovery из исходного кода Laravel: маршруты, контроллеры, джобы, очереди; выявляет узкие места и несоответствия."
|
||
triggers:
|
||
- {keyword: "анализ as-is процесса", weight: 1.0}
|
||
- {keyword: "discovery из кода", weight: 1.0}
|
||
- {keyword: "discovery процесса", weight: 1.0}
|
||
- {keyword: "узкое место", weight: 1.0}
|
||
- {keyword: "bottleneck", weight: 1.0}
|
||
- {classification: "analysis", weight: 1.0}
|
||
boundaries:
|
||
- {relation: "self-authored project skill; ADR-009 граница с #55"}
|
||
chain_membership: ["L3"]
|
||
attributes:
|
||
tooling_section: "§4.28 #53"
|
||
|
||
- id: "#54"
|
||
name: "n8n-mcp"
|
||
slug: "n8n-mcp"
|
||
category: "off-phase"
|
||
subcategory: "business-process"
|
||
status: "deferred"
|
||
dormancy_reason: "n8n не в стеке; движок процессов = очередь Laravel; принятие n8n — отдельное архитектурное решение"
|
||
capabilities: "MCP-сервер для workflow-движка n8n (автоматизация процессов) — DEFERRED: n8n не входит в стек портала, движок процессов — очередь Laravel."
|
||
triggers:
|
||
- {keyword: "workflow-движок автоматизации", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.29 #54"
|
||
|
||
- id: "#55"
|
||
name: "discovery-interview"
|
||
slug: "discovery-interview"
|
||
category: "off-phase"
|
||
subcategory: "discovery-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Скил для структурированного интервью-discovery: режим FEATURE (JTBD-интервью заказчика перед проектированием фичи → discovery-brief) + режим SYSTEM (ориентация по мета-слою проекта)."
|
||
triggers:
|
||
- {keyword: "интервью-discovery", weight: 1.0}
|
||
- {keyword: "jtbd", weight: 1.0}
|
||
- {keyword: "feature system режим", weight: 1.0}
|
||
- {keyword: "discovery", weight: 1.0}
|
||
- {keyword: "интервью заказчика", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-009", role: "граница с #53 process-analysis: discovery-interview = интервью человека; process-analysis = discovery из кода"}
|
||
chain_membership: ["L1", "L2"]
|
||
attributes:
|
||
tooling_section: "§4.30 #55"
|
||
|
||
- id: "#56"
|
||
name: "skill-creator"
|
||
slug: "skill-creator"
|
||
category: "off-phase"
|
||
subcategory: "authoring-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Плагин-конструктор standalone Claude-скилов: scaffold SKILL.md, evals.json, references/; помогает оформить skill-артефакт с eval-набором для проверки точности."
|
||
triggers:
|
||
- {keyword: "создание standalone-скилов", weight: 1.0}
|
||
- {keyword: "eval", weight: 1.0}
|
||
- {keyword: "создать скил", weight: 1.0}
|
||
- {keyword: "новый skill", weight: 1.0}
|
||
- {keyword: "skill.md", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: ["L11"]
|
||
attributes:
|
||
tooling_section: "§4.31 #56"
|
||
|
||
- id: "#57a"
|
||
name: "agent-development"
|
||
slug: "plugin-dev:agent-development"
|
||
category: "off-phase"
|
||
subcategory: "authoring-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Субагент плагина: frontmatter + when-to-use + системный промпт."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.32 #57"
|
||
|
||
- id: "#57b"
|
||
name: "command-development"
|
||
slug: "plugin-dev:command-development"
|
||
category: "off-phase"
|
||
subcategory: "authoring-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Слэш-команда плагина: YAML-frontmatter + аргументы + bash."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.32 #57"
|
||
|
||
- id: "#57c"
|
||
name: "hook-development"
|
||
slug: "plugin-dev:hook-development"
|
||
category: "off-phase"
|
||
subcategory: "authoring-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Хук плагина: событие (PreToolUse/PostToolUse/...) + matcher + скрипт ${CLAUDE_PLUGIN_ROOT}."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.32 #57"
|
||
|
||
- id: "#57d"
|
||
name: "mcp-integration"
|
||
slug: "plugin-dev:mcp-integration"
|
||
category: "off-phase"
|
||
subcategory: "authoring-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "MCP-сервер в плагине: .mcp.json (stdio/SSE/HTTP)."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.32 #57"
|
||
|
||
- id: "#57e"
|
||
name: "plugin-structure"
|
||
slug: "plugin-dev:plugin-structure"
|
||
category: "off-phase"
|
||
subcategory: "authoring-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Структура плагина: plugin.json + раскладка компонентов. Входная точка разработки Claude-плагина."
|
||
triggers:
|
||
- {keyword: "разработка claude-плагинов", weight: 1.0}
|
||
- {keyword: "плагин claude code", weight: 1.0}
|
||
- {keyword: "plugin.json", weight: 1.0}
|
||
- {keyword: "новый плагин", weight: 1.0}
|
||
- {keyword: "marketplace плагин", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: ["L11"]
|
||
attributes:
|
||
tooling_section: "§4.32 #57"
|
||
|
||
- id: "#57f"
|
||
name: "plugin-settings"
|
||
slug: "plugin-dev:plugin-settings"
|
||
category: "off-phase"
|
||
subcategory: "authoring-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Настройки плагина: .local.md (YAML-frontmatter + состояние), per-project конфиг."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.32 #57"
|
||
|
||
- id: "#57g"
|
||
name: "skill-development"
|
||
slug: "plugin-dev:skill-development"
|
||
category: "off-phase"
|
||
subcategory: "authoring-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Навык плагина: SKILL.md + прогрессивное раскрытие."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.32 #57"
|
||
|
||
- id: "#58"
|
||
name: "hookify"
|
||
slug: "hookify"
|
||
category: "off-phase"
|
||
subcategory: "authoring-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Плагин для генерации Claude Code хуков (PreToolUse, PostToolUse, Stop, UserPromptSubmit): только по явному `/hookify`; HK1 pre-check проверяет коллизии с существующей хук-архитектурой."
|
||
triggers:
|
||
- {keyword: "генерация хуков (только по явному /hookify)", weight: 1.0}
|
||
- {keyword: "хук claude", weight: 1.0}
|
||
- {keyword: "новый hook", weight: 1.0}
|
||
- {keyword: "pretooluse хук", weight: 1.0}
|
||
- {keyword: "генерация хука", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-010", role: "HK1 pre-check коллизии с существующими хуками перед генерацией"}
|
||
chain_membership: ["L11"]
|
||
attributes:
|
||
tooling_section: "§4.33 #58"
|
||
|
||
- id: "#59"
|
||
name: "claude-code-setup"
|
||
slug: "claude-code-setup"
|
||
category: "off-phase"
|
||
subcategory: "dev-support"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Рекомендатель автоматизаций Claude Code (hooks, permissions, settings): предлагает настройки на основе паттернов использования; READ-ONLY, не меняет конфигурацию."
|
||
triggers:
|
||
- {keyword: "рекомендатель claude code automations (read-only)", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.34 #59"
|
||
|
||
- id: "#60"
|
||
name: "context7"
|
||
slug: "context7"
|
||
category: "off-phase"
|
||
subcategory: "dev-support"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "MCP-сервер для получения актуальной документации библиотек и SDK (Laravel, Vue, Vuetify, npm-пакеты и др.); первый выбор для вопросов по API конкретного пакета."
|
||
triggers:
|
||
- {keyword: "актуальная документация библиотек/sdk", weight: 1.0}
|
||
- {keyword: "актуальная документация библиотеки", weight: 1.0}
|
||
- {keyword: "лайвдоки", weight: 1.0}
|
||
- {keyword: "документация пакета", weight: 1.0}
|
||
- {keyword: "документация sdk", weight: 1.0}
|
||
boundaries:
|
||
- {relation: "первый выбор для документации известной библиотеки; WebFetch — fallback на конкретный URL; WebSearch — без знания библиотеки"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.35 #60"
|
||
|
||
- id: "#61a"
|
||
name: "finance-audit-support"
|
||
slug: "finance-plugin:audit-support"
|
||
category: "off-phase"
|
||
subcategory: "finance-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Поддержка SOX-404: workpapers, sample selection, классификация deficiency."
|
||
triggers:
|
||
- {keyword: "audit support", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.36 #61"
|
||
|
||
- id: "#61b"
|
||
name: "finance-close-management"
|
||
slug: "finance-plugin:close-management"
|
||
category: "off-phase"
|
||
subcategory: "finance-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Управление month-end close: sequencing, dependencies, статус по дням."
|
||
triggers:
|
||
- {keyword: "close", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.36 #61"
|
||
|
||
- id: "#61c"
|
||
name: "finance-financial-statements"
|
||
slug: "finance-plugin:financial-statements"
|
||
category: "off-phase"
|
||
subcategory: "finance-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Финстейтменты (P&L, balance sheet, cash flow) + variance vs budget по GAAP."
|
||
triggers:
|
||
- {keyword: "us-gaap-отчётность", weight: 1.0}
|
||
- {keyword: "financial statements", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.36 #61"
|
||
|
||
- id: "#61d"
|
||
name: "finance-journal-entry"
|
||
slug: "finance-plugin:journal-entry"
|
||
category: "off-phase"
|
||
subcategory: "finance-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Финализация проводки (debits/credits) с обоснованием для аудита."
|
||
triggers:
|
||
- {keyword: "проводки", weight: 1.0}
|
||
- {keyword: "journal entry", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.36 #61"
|
||
|
||
- id: "#61e"
|
||
name: "finance-journal-entry-prep"
|
||
slug: "finance-plugin:journal-entry-prep"
|
||
category: "off-phase"
|
||
subcategory: "finance-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Подготовка проводок к закрытию: accruals, prepaid, depreciation, payroll. (Подготовка ≠ финализация journal-entry.)"
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.36 #61"
|
||
|
||
- id: "#61f"
|
||
name: "finance-reconciliation"
|
||
slug: "finance-plugin:reconciliation"
|
||
category: "off-phase"
|
||
subcategory: "finance-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Сверка GL vs subledger/bank + категоризация reconciling items."
|
||
triggers:
|
||
- {keyword: "сверка", weight: 1.0}
|
||
- {keyword: "reconciliation", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.36 #61"
|
||
|
||
- id: "#61g"
|
||
name: "finance-sox-testing"
|
||
slug: "finance-plugin:sox-testing"
|
||
category: "off-phase"
|
||
subcategory: "finance-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "SOX-404 тестирование контролей (US-only; not-applicable РФ по ADR-012)."
|
||
triggers: []
|
||
boundaries:
|
||
- {adr: "ADR-012", role: "SOX not-applicable РФ; US-GAAP частично применим"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.36 #61"
|
||
|
||
- id: "#61h"
|
||
name: "finance-variance-analysis"
|
||
slug: "finance-plugin:variance-analysis"
|
||
category: "off-phase"
|
||
subcategory: "finance-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Декомпозиция variance на драйверы + waterfall + narrative (бюджет vs факт)."
|
||
triggers:
|
||
- {keyword: "variance-анализ", weight: 1.0}
|
||
- {keyword: "variance", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.36 #61"
|
||
install: "claude plugin install finance@knowledge-work-plugins"
|
||
|
||
- id: "#62"
|
||
name: "billing-audit"
|
||
slug: "billing-audit"
|
||
category: "off-phase"
|
||
subcategory: "finance-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Проектный скил аудита корректности биллинга: инварианты bcmath-арифметики, идемпотентность списаний, tier-резолюция тарифов, дрейф CSV-reconcile, корректность `lead_charges`."
|
||
triggers:
|
||
- {keyword: "аудит списания", weight: 1.0}
|
||
- {keyword: "money-инварианты", weight: 1.0}
|
||
- {keyword: "идемпотентность", weight: 1.0}
|
||
- {keyword: "тариф-резолюция", weight: 1.0}
|
||
- {keyword: "дрейф reconcile", weight: 1.0}
|
||
- {keyword: "списание", weight: 1.0}
|
||
- {keyword: "биллинг", weight: 1.0}
|
||
- {keyword: "тариф", weight: 1.0}
|
||
- {keyword: "баланс", weight: 1.0}
|
||
- {keyword: "начисление лида", weight: 1.0}
|
||
- {keyword: "lead_charges", weight: 1.0}
|
||
- {keyword: "копейки", weight: 1.0}
|
||
- {keyword: "csv reconcile", weight: 1.0}
|
||
- {keyword: "bcmath", weight: 1.0}
|
||
- {keyword: "bcadd", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-012", role: "граница с process-*/D3/ru-tax; аудит кода биллинга, не налогов и не процесса"}
|
||
chain_membership: ["L13"]
|
||
attributes:
|
||
tooling_section: "§4.37 #62"
|
||
|
||
- id: "#63"
|
||
name: "ru-tax-accounting"
|
||
slug: "ru-tax-accounting"
|
||
category: "off-phase"
|
||
subcategory: "finance-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Проектный скил по РСБУ и НК РФ: НДС/УСН расчёты, налогооблагаемые события, формирование проводок ДТ/КТ, подготовка выгрузок для бухгалтера; закрывает РФ-gap плагина finance (#61)."
|
||
triggers:
|
||
- {keyword: "рсбу", weight: 1.0}
|
||
- {keyword: "ндс/усн", weight: 1.0}
|
||
- {keyword: "налоговая база", weight: 1.0}
|
||
- {keyword: "налогооблагаемое событие", weight: 1.0}
|
||
- {keyword: "выгрузка бухгалтеру", weight: 1.0}
|
||
- {keyword: "ндс", weight: 1.0}
|
||
- {keyword: "усн", weight: 1.0}
|
||
- {keyword: "налог на прибыль", weight: 1.0}
|
||
- {keyword: "выручка", weight: 1.0}
|
||
- {keyword: "проводка", weight: 1.0}
|
||
- {keyword: "дт/кт", weight: 1.0}
|
||
- {keyword: "бухгалтер", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-012", role: "закрывает РФ-gap US-GAAP-плагина #61; ≠ billing-audit #62 (корректность кода), ≠ D1/D2"}
|
||
chain_membership: ["L13"]
|
||
attributes:
|
||
tooling_section: "§4.38 #63"
|
||
|
||
- id: "#64"
|
||
name: "Rector"
|
||
slug: "rector"
|
||
category: "off-phase"
|
||
subcategory: "backend-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Автоматический рефакторинг PHP-кода: обновление до новых версий PHP/Laravel, удаление мёртвого кода, modernization паттернов; запускается вручную или в CI (`composer rector`), не блокирует коммит."
|
||
triggers:
|
||
- {keyword: "авто-рефакторинг", weight: 1.0}
|
||
- {keyword: "version-upgrade laravel", weight: 1.0}
|
||
- {keyword: "удаление мёртвого кода", weight: 1.0}
|
||
- {keyword: "автоматический рефакторинг", weight: 1.0}
|
||
- {keyword: "версия php", weight: 1.0}
|
||
- {keyword: "deprecated php", weight: 1.0}
|
||
- {keyword: "code modernization", weight: 1.0}
|
||
- {classification: "refactor", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-013", role: "BT1 vs Pint (трансформация vs форматирование); BT2 vs Larastan (комплементарны); BT3 vs deptrac"}
|
||
chain_membership: ["L14"]
|
||
attributes:
|
||
tooling_section: "§4.39 #64"
|
||
install: "composer require rector/rector --dev"
|
||
|
||
- id: "#65"
|
||
name: "PHP Insights"
|
||
slug: "php-insights"
|
||
category: "off-phase"
|
||
subcategory: "backend-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Измеряет метрики качества PHP-кода: цикломатическая сложность, архитектурные зависимости, code style score; базовые пороги 78/79/73; on-demand или CI (`composer insights`)."
|
||
triggers:
|
||
- {keyword: "метрики качества/сложности/архитектуры php-кода", weight: 1.0}
|
||
- {keyword: "метрики качества кода", weight: 1.0}
|
||
- {keyword: "complexity", weight: 1.0}
|
||
- {keyword: "architecture metrics", weight: 1.0}
|
||
- {keyword: "качество кода php", weight: 1.0}
|
||
- {classification: "refactor", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-013", role: "BT4 vs Pint/Larastan; уникум — оси complexity + architecture"}
|
||
chain_membership: ["L14"]
|
||
attributes:
|
||
tooling_section: "§4.40 #65"
|
||
install: "composer require nunomaduro/phpinsights --dev"
|
||
|
||
- id: "#66"
|
||
name: "laravel-backend-patterns"
|
||
slug: "laravel-backend-patterns"
|
||
category: "off-phase"
|
||
subcategory: "backend-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Справочник проектных backend-конвенций Лидерры: слоистость controller→service→job, RLS-aware паттерны, bcmath-деньги, идемпотентность джобов, partition-aware запросы."
|
||
triggers:
|
||
- {keyword: "как писать backend в лидерре", weight: 1.0}
|
||
- {keyword: "паттерн controller/service/job", weight: 1.0}
|
||
- {keyword: "rls", weight: 1.0}
|
||
- {keyword: "деньги", weight: 1.0}
|
||
- {keyword: "controller", weight: 1.0}
|
||
- {keyword: "service", weight: 1.0}
|
||
- {keyword: "job", weight: 1.0}
|
||
- {keyword: "eloquent", weight: 1.0}
|
||
- {keyword: "partition", weight: 1.0}
|
||
- {keyword: "lockforupdate", weight: 1.0}
|
||
- {keyword: "dispatch", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-013", role: "BT5 ≠ architecture-patterns #38 (generic vs проектные конвенции); BT6 ≠ billing-audit #62"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.41 #66"
|
||
|
||
- id: "#67"
|
||
name: "NightOwl"
|
||
slug: "nightowl"
|
||
category: "off-phase"
|
||
subcategory: "backend-tooling"
|
||
status: "deferred"
|
||
dormancy_reason: "pending Б-1/Linux: native-Windows нет pcntl/posix; OSS без MCP; hosted 152-ФЗ риск"
|
||
capabilities: "Self-hosted runtime-телеметрия для сквозной корреляции request/job/query трассировок — DEFERRED: требует pcntl/posix (недоступны на native-Windows), pending Б-1/Linux."
|
||
triggers:
|
||
- {keyword: "коррелированный runtime-трейс request/job/query (self-hosted)", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-013", role: "BT7 ≠ Sentry #34 (трейс vs ошибки); BT8 ≠ Pail/Boost (сквозной трейс vs tail/снапшот)"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.42 #67"
|
||
|
||
- id: "#68"
|
||
name: "OWASP ZAP"
|
||
slug: "owasp-zap"
|
||
category: "off-phase"
|
||
subcategory: "infosec-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "DAST-сканер работающего веб-приложения (OWASP ZAP): активно тестирует инъекции, XSS, обход аутентификации, IDOR; MCP-интеграция; установлен портативно (`bin/ZAP_2.17.0/`)."
|
||
triggers:
|
||
- {keyword: "глубокая боевая dast", weight: 1.0}
|
||
- {keyword: "обход входа", weight: 1.0}
|
||
- {keyword: "инъекции", weight: 1.0}
|
||
- {keyword: "xss", weight: 1.0}
|
||
- {keyword: "dast", weight: 1.0}
|
||
- {keyword: "scan running portal", weight: 1.0}
|
||
- {keyword: "проникновение в работающий портал", weight: 1.0}
|
||
- {classification: "security", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-014", role: "IS1 ≠ Semgrep #25 (динамика vs статика); IS2 ≠ Nuclei #69 (глубина vs широта)"}
|
||
chain_membership: ["L15"]
|
||
attributes:
|
||
tooling_section: "§4.43 #68"
|
||
|
||
- id: "#69"
|
||
name: "Nuclei"
|
||
slug: "nuclei"
|
||
category: "off-phase"
|
||
subcategory: "infosec-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "CLI-сканер известных уязвимостей по шаблонам (Nuclei): CVE, экспозиция эндпоинтов, слабый TLS, misconfiguration; установлен как `bin/nuclei.exe`; цель 127.0.0.1."
|
||
triggers:
|
||
- {keyword: "известные уязвимости/экспозиция/слабый tls снаружи", weight: 1.0}
|
||
- {keyword: "nuclei", weight: 1.0}
|
||
- {keyword: "уязвимость по шаблону", weight: 1.0}
|
||
- {keyword: "cve scan", weight: 1.0}
|
||
- {keyword: "nuclei сканер", weight: 1.0}
|
||
- {classification: "security", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-014", role: "IS2 ≠ ZAP #68 (широта vs глубина — комплементарны)"}
|
||
chain_membership: ["L15"]
|
||
attributes:
|
||
tooling_section: "§4.44 #69"
|
||
|
||
- id: "#70"
|
||
name: "Ward"
|
||
slug: "ward"
|
||
category: "off-phase"
|
||
subcategory: "infosec-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Go CLI-инструмент аудита безопасности настроек Laravel: `.env`, конфигурация cookie, HTTP-заголовки, секреты, зависимости; установлен как `bin/ward.exe`; заменил abandoned Enlightn."
|
||
triggers:
|
||
- {keyword: "безопасность настроек laravel", weight: 1.0}
|
||
- {keyword: ".env/config/заголовки/cookie/secrets/deps", weight: 1.0}
|
||
- {keyword: "laravel security config", weight: 1.0}
|
||
- {keyword: "env audit", weight: 1.0}
|
||
- {keyword: "secrets config", weight: 1.0}
|
||
- {classification: "security", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-014", role: "IS3 ≠ Larastan #12/Semgrep #25; заменил Enlightn (abandoned/L13)"}
|
||
chain_membership: ["L15"]
|
||
attributes:
|
||
tooling_section: "§4.45 #70"
|
||
|
||
- id: "#71"
|
||
name: "pdn-152fz-audit"
|
||
slug: "pdn-152fz-audit"
|
||
category: "off-phase"
|
||
subcategory: "infosec-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Проектный скил аудита соответствия 152-ФЗ: инвентаризация ПДн в схеме/коде, проверка согласий, маскирование, логирование доступа, работа с `pd_subject_request`."
|
||
triggers:
|
||
- {keyword: "аудит пдн / соответствие 152-фз", weight: 1.0}
|
||
- {keyword: "пдн", weight: 1.0}
|
||
- {keyword: "персональные данные", weight: 1.0}
|
||
- {keyword: "152-фз", weight: 1.0}
|
||
- {keyword: "согласие на обработку", weight: 1.0}
|
||
- {keyword: "телефон лида", weight: 1.0}
|
||
- {keyword: "маскирование", weight: 1.0}
|
||
- {keyword: "pd_subject_request", weight: 1.0}
|
||
- {classification: "security", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-014", role: "IS4 ≠ pg_anonymizer #29 (аудит vs инструмент маскирования); IS5 ≠ D2 (техника vs юридическое оформление)"}
|
||
chain_membership: ["L15"]
|
||
attributes:
|
||
tooling_section: "§4.46 #71"
|
||
|
||
- id: "#72"
|
||
name: "threat-model"
|
||
slug: "threat-model"
|
||
category: "off-phase"
|
||
subcategory: "infosec-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Проектный скил моделирования угроз по методологии STRIDE: анализ attack surface портала, приоритизация защитных мер перед публичным запуском (going-public)."
|
||
triggers:
|
||
- {keyword: "stride угрозы портала", weight: 1.0}
|
||
- {keyword: "going-public", weight: 1.0}
|
||
- {keyword: "что защищать первым", weight: 1.0}
|
||
- {keyword: "stride", weight: 1.0}
|
||
- {keyword: "моделирование угроз", weight: 1.0}
|
||
- {keyword: "attack surface", weight: 1.0}
|
||
- {keyword: "точки входа", weight: 1.0}
|
||
- {classification: "security", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-014", role: "IS6 ≠ Trail of Bits #39 (портал+STRIDE+going-public vs generic deep code-audit)"}
|
||
chain_membership: ["L15"]
|
||
attributes:
|
||
tooling_section: "§4.47 #72"
|
||
|
||
- id: "#73"
|
||
name: "security-go-live"
|
||
slug: "security-go-live"
|
||
category: "off-phase"
|
||
subcategory: "infosec-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Проектный скил-оркестратор предрелизной проверки безопасности: запускает #68-72 + D3, собирает результаты и выносит вердикт GO/NO-GO перед выходом в интернет."
|
||
triggers:
|
||
- {keyword: "прогон безопасности перед релизом", weight: 1.0}
|
||
- {keyword: "go/no-go", weight: 1.0}
|
||
- {keyword: "go-live", weight: 1.0}
|
||
- {keyword: "выход в интернет", weight: 1.0}
|
||
- {keyword: "публикация в прод", weight: 1.0}
|
||
- {keyword: "security release gate", weight: 1.0}
|
||
- {classification: "security", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-014", role: "IS7 ≠ audit-portal (только безопасность + go-live-вердикт vs полный 14-фазный аудит)"}
|
||
chain_membership: ["L15"]
|
||
attributes:
|
||
tooling_section: "§4.48 #73"
|
||
|
||
- id: "#74a"
|
||
name: "marketing-brand-review"
|
||
slug: "marketing-plugin:brand-review"
|
||
category: "off-phase"
|
||
subcategory: "marketing-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Ревью контента против голоса/гайда бренда: флаги по severity + before/after-фиксы."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.49 #74"
|
||
|
||
- id: "#74b"
|
||
name: "marketing-campaign-plan"
|
||
slug: "marketing-plugin:campaign-plan"
|
||
category: "off-phase"
|
||
subcategory: "marketing-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Бриф кампании: цели, аудитория, каналы, контент-календарь, метрики."
|
||
triggers:
|
||
- {keyword: "кампания", weight: 1.0}
|
||
- {keyword: "лендинг", weight: 1.0}
|
||
- {keyword: "реклама", weight: 1.0}
|
||
- {keyword: "лидген", weight: 1.0}
|
||
- {keyword: "вебинар", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.49 #74"
|
||
|
||
- id: "#74c"
|
||
name: "marketing-competitive-brief"
|
||
slug: "marketing-plugin:competitive-brief"
|
||
category: "off-phase"
|
||
subcategory: "marketing-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Маркетинговый конкурентный анализ: позиционирование, messaging-гэпы, угрозы, battlecards. (Не путать с product-management:competitive-brief.)"
|
||
triggers:
|
||
- {keyword: "конкурент-бриф", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.49 #74"
|
||
|
||
- id: "#74d"
|
||
name: "marketing-content-creation"
|
||
slug: "marketing-plugin:content-creation"
|
||
category: "off-phase"
|
||
subcategory: "marketing-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Фреймворки и шаблоны контента под канал (blog/social/email/landing/PR/case). Первичный resolver контента C1."
|
||
triggers:
|
||
- {keyword: "маркетинговый контент", weight: 1.0}
|
||
- {classification: "marketing", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-015", role: "MKT1 vs C2/C3; MKT2 vs product-management; MKT3 vs marketingskills #75 (решатель, не материал)"}
|
||
chain_membership: ["L16"]
|
||
attributes:
|
||
tooling_section: "§4.49 #74"
|
||
install: "claude plugin install marketing@knowledge-work-plugins"
|
||
|
||
- id: "#74e"
|
||
name: "marketing-draft-content"
|
||
slug: "marketing-plugin:draft-content"
|
||
category: "off-phase"
|
||
subcategory: "marketing-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Драфт маркетинг-контента с кросс-платформенным форматированием."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.49 #74"
|
||
|
||
- id: "#74f"
|
||
name: "marketing-email-sequence"
|
||
slug: "marketing-plugin:email-sequence"
|
||
category: "off-phase"
|
||
subcategory: "marketing-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Multi-email цепочка: логика ветвления, timing, бенчмарки."
|
||
triggers:
|
||
- {keyword: "email-цепочка", weight: 1.0}
|
||
- {keyword: "email-рассылка", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.49 #74"
|
||
|
||
- id: "#74g"
|
||
name: "marketing-performance-report"
|
||
slug: "marketing-plugin:performance-report"
|
||
category: "off-phase"
|
||
subcategory: "marketing-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Отчёт по маркетинг-метрикам: тренды, инсайты, рекомендации оптимизации."
|
||
triggers:
|
||
- {keyword: "performance-report", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.49 #74"
|
||
|
||
- id: "#74h"
|
||
name: "marketing-seo-audit"
|
||
slug: "marketing-plugin:seo-audit"
|
||
category: "off-phase"
|
||
subcategory: "marketing-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "SEO-аудит: keyword-исследование, тех-секция, контент-гэпы."
|
||
triggers:
|
||
- {keyword: "seo-аудит", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.49 #74"
|
||
|
||
- id: "#75"
|
||
name: "marketingskills"
|
||
slug: "marketingskills"
|
||
category: "off-phase"
|
||
subcategory: "marketing-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Библиотека из 40 маркетинговых фреймворков (AIDA, PAS, FAB, USP, CRO, cold-email, lead-magnets, pricing-psychology и др.); выступает как материал/резерв-библиотека, решатель — marketing (#74)."
|
||
triggers:
|
||
- {keyword: "фреймворки cro", weight: 1.0}
|
||
- {keyword: "копирайтинг", weight: 1.0}
|
||
- {keyword: "programmatic-seo", weight: 1.0}
|
||
- {keyword: "ad-creative", weight: 1.0}
|
||
- {keyword: "cold-email", weight: 1.0}
|
||
- {keyword: "lead-magnets", weight: 1.0}
|
||
- {keyword: "pricing", weight: 1.0}
|
||
- {keyword: "marketing-psychology", weight: 1.0}
|
||
- {keyword: "маркетинговая фреймворк", weight: 1.0}
|
||
- {keyword: "aida", weight: 1.0}
|
||
- {keyword: "pas", weight: 1.0}
|
||
- {keyword: "fab", weight: 1.0}
|
||
- {keyword: "usp", weight: 1.0}
|
||
- {classification: "marketing", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-015", role: "MKT3 — материал/резерв-библиотека, не решатель; решатель = marketing #74"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.50 #75"
|
||
|
||
- id: "#76a"
|
||
name: "brand-voice-enforcement"
|
||
slug: "brand-voice:brand-voice-enforcement"
|
||
category: "off-phase"
|
||
subcategory: "marketing-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Применение brand-гайдов к генерации контента (email/pitch/LinkedIn/Slack/proposal): выравнивание по голосу бренда."
|
||
triggers:
|
||
- {keyword: "тон бренда", weight: 1.0}
|
||
- {keyword: "голос бренда", weight: 1.0}
|
||
- {keyword: "тон копирайта", weight: 1.0}
|
||
- {keyword: "voice", weight: 1.0}
|
||
- {keyword: "тональность", weight: 1.0}
|
||
- {keyword: "позиционирование", weight: 1.0}
|
||
- {classification: "marketing", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-015", role: "MKT6 — вербальный бренд vs Brandbook v2 визуальный бренд; взаимодополняют"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.51 #76"
|
||
|
||
- id: "#76b"
|
||
name: "brand-voice-discover-brand"
|
||
slug: "brand-voice:discover-brand"
|
||
category: "off-phase"
|
||
subcategory: "marketing-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Автономный поиск разрозненных brand-материалов по платформам (Notion/Confluence/Drive/Box/Figma/Gong/Slack) → discovery-отчёт."
|
||
triggers: []
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.51 #76"
|
||
|
||
- id: "#76c"
|
||
name: "brand-voice-guideline-generation"
|
||
slug: "brand-voice:guideline-generation"
|
||
category: "off-phase"
|
||
subcategory: "marketing-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Генерация brand voice guidelines из исходных материалов (docs/transcripts/recordings)."
|
||
triggers:
|
||
- {keyword: "brand guidelines для текстов", weight: 1.0}
|
||
boundaries: []
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.51 #76"
|
||
|
||
- id: "#77"
|
||
name: "marketing-ru"
|
||
slug: "marketing-ru"
|
||
category: "off-phase"
|
||
subcategory: "marketing-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Проектный скил маркетинга для российского рынка: Яндекс.Директ, ВКонтакте, Telegram-каналы, конверсия лендинга, 152-ФЗ согласия на рассылки; eval 20/20."
|
||
triggers:
|
||
- {keyword: "яндекс.директ", weight: 1.0}
|
||
- {keyword: "яндекс.метрика", weight: 1.0}
|
||
- {keyword: "vk", weight: 1.0}
|
||
- {keyword: "telegram как каналы", weight: 1.0}
|
||
- {keyword: "конверсия лендинга лидерры", weight: 1.0}
|
||
- {keyword: "маркетинг 152-фз согласия на рассылки", weight: 1.0}
|
||
- {keyword: "рф-канал", weight: 1.0}
|
||
- {keyword: "вконтакте", weight: 1.0}
|
||
- {keyword: "telegram-канал", weight: 1.0}
|
||
- {keyword: "unisender", weight: 1.0}
|
||
- {keyword: "российский рынок", weight: 1.0}
|
||
- {classification: "marketing", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-015", role: "MKT9 — 152-ФЗ cross-ref #71; закрывает РФ-специфику маркетинга"}
|
||
chain_membership: ["L16"]
|
||
attributes:
|
||
tooling_section: "§4.52 #77"
|
||
|
||
- id: "#78"
|
||
name: "Яндекс.Метрика MCP"
|
||
slug: "yandex-metrika-mcp"
|
||
category: "off-phase"
|
||
subcategory: "marketing-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "MCP-сервер для чтения данных Яндекс.Метрики: визиты, источники трафика, гео, демография, поведение пользователей лендинга; READ-ONLY; активен при живом лендинге."
|
||
triggers:
|
||
- {keyword: "веб-аналитика лендинга", weight: 1.0}
|
||
- {keyword: "визиты", weight: 1.0}
|
||
- {keyword: "источники трафика", weight: 1.0}
|
||
- {keyword: "гео", weight: 1.0}
|
||
- {keyword: "демография", weight: 1.0}
|
||
- {keyword: "поведение", weight: 1.0}
|
||
- {keyword: "яндекс.метрика", weight: 1.0}
|
||
- {keyword: "статистика посещений", weight: 1.0}
|
||
- {classification: "marketing", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-015", role: "MKT8 READ-ONLY; активация при живом лендинге (Б-1)"}
|
||
chain_membership: ["L16"]
|
||
attributes:
|
||
tooling_section: "§4.53 #78"
|
||
|
||
- id: "#79"
|
||
name: "Яндекс.Директ+Wordstat MCP"
|
||
slug: "yandex-wordstat-mcp"
|
||
category: "off-phase"
|
||
subcategory: "marketing-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "MCP-сервер для подбора ключевых слов через Яндекс.Wordstat: частотность запросов по РФ, сезонность, связанные фразы; Direct-мутации отключены (только 5 read-only Wordstat-инструментов)."
|
||
triggers:
|
||
- {keyword: "подбор ключевых слов wordstat", weight: 1.0}
|
||
- {keyword: "частотность запросов рф", weight: 1.0}
|
||
- {keyword: "ключевые слова", weight: 1.0}
|
||
- {keyword: "wordstat", weight: 1.0}
|
||
- {keyword: "поисковые запросы", weight: 1.0}
|
||
- {classification: "marketing", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-015", role: "MKT8 — Direct-мутации НЕ активированы; только Wordstat-модуль (5 read-only tools)"}
|
||
chain_membership: ["L16"]
|
||
attributes:
|
||
tooling_section: "§4.54 #79"
|
||
|
||
- id: "#80"
|
||
name: "Telegram MCP"
|
||
slug: "telegram-mcp"
|
||
category: "off-phase"
|
||
subcategory: "marketing-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "MCP-сервер для управления Telegram-каналами: публикация постов, редактирование, получение аналитики, работа с медиа; использует выделенный аккаунт через SESSION_STRING."
|
||
triggers:
|
||
- {keyword: "постинг в telegram-канал", weight: 1.0}
|
||
- {keyword: "управление", weight: 1.0}
|
||
- {keyword: "получение аналитики канала", weight: 1.0}
|
||
- {keyword: "telegram", weight: 1.0}
|
||
- {keyword: "telegram-бот", weight: 1.0}
|
||
- {classification: "marketing", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-015", role: "MKT8 — SESSION_STRING только .env; выделенный аккаунт"}
|
||
chain_membership: ["L16"]
|
||
attributes:
|
||
tooling_section: "§4.55 #80"
|
||
|
||
- id: "#81"
|
||
name: "Postiz"
|
||
slug: "postiz"
|
||
category: "off-phase"
|
||
subcategory: "marketing-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Self-hosted SMM-планировщик Postiz (AGPL-3.0): создание контент-календаря, планирование публикаций в 30+ соцсетях включая ВКонтакте и Telegram."
|
||
triggers:
|
||
- {keyword: "планирование и публикация в 30+ соцсетей включая vk и telegram", weight: 1.0}
|
||
- {keyword: "контент-календарь", weight: 1.0}
|
||
- {keyword: "smm-планировщик", weight: 1.0}
|
||
- {keyword: "постинг в соцсети", weight: 1.0}
|
||
- {keyword: "postiz", weight: 1.0}
|
||
- {classification: "marketing", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-015", role: "MKT7 AGPL self-host без дистрибуции; покрывает VK-постинг"}
|
||
chain_membership: ["L16"]
|
||
attributes:
|
||
tooling_section: "§4.56 #81"
|
||
|
||
- id: "#82"
|
||
name: "DataForSEO MCP"
|
||
slug: "dataforseo-mcp"
|
||
category: "off-phase"
|
||
subcategory: "marketing-tooling"
|
||
status: "deferred"
|
||
dormancy_reason: "post-Б-1: требует платного аккаунта DataForSEO"
|
||
capabilities: "MCP-сервер DataForSEO для SEO-данных по РФ: SERP-позиции, анализ ключевых слов, бэклинки, конкурентный анализ — DEFERRED: платный, pending Б-1."
|
||
triggers:
|
||
- {keyword: "serp-позиции", weight: 1.0}
|
||
- {keyword: "ключевые слова", weight: 1.0}
|
||
- {keyword: "бэклинки", weight: 1.0}
|
||
- {keyword: "данные рф-выдачи", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-015", role: "комплементарен Wordstat #79; даёт SERP + бэклинки + широкую аналитику"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.57 #82"
|
||
|
||
- id: "#83"
|
||
name: "Unisender Go MCP"
|
||
slug: "unisender-go-mcp"
|
||
category: "off-phase"
|
||
subcategory: "marketing-tooling"
|
||
status: "deferred"
|
||
dormancy_reason: "нет готового upstream MCP; своя обёртка по потребности массовых рассылок"
|
||
capabilities: "Кастомный MCP-обёртка для массовых email-рассылок через Unisender Go API — DEFERRED: отсутствует upstream MCP-сервер, требует разработки."
|
||
triggers:
|
||
- {keyword: "массовые email-рассылки через unisender go api", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-015", role: "MKT5 — транзакционный email (продуктовый код) vs маркетинговые рассылки; 152-ФЗ согласия cross-ref #77/#71"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.58 #83"
|
||
|
||
- id: "#84"
|
||
name: "normative-sync"
|
||
slug: "normative-sync"
|
||
category: "off-phase"
|
||
subcategory: "project-agent"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Sonnet-агент для синхронизации четырёх нормативных документов (Pravila/PSR_v1/Tooling/CLAUDE.md): обновляет version bumps, §0 cross-refs, счётчики footer и §9 changelog-записи после завершённых интеграций."
|
||
triggers:
|
||
- {classification: "normative_sync_needed", weight: 1.0}
|
||
- {keyword: "синкни нормативку", weight: 1.0}
|
||
- {keyword: "нормативный синк", weight: 1.0}
|
||
- {keyword: "закрыли задачу синк", weight: 0.9}
|
||
boundaries:
|
||
- {relation: "Контроллер обязан звать после закрытия крупной off-phase интеграции, brain governance артефакта, принятого ADR — Pravila §2.4"}
|
||
- {pair: "#85", relation: "Парный project-агент — оба не входят в Tooling-канон счётчиков (#1-#83), это .claude/agents/ файлы"}
|
||
chain_membership: []
|
||
attributes:
|
||
agent_file: ".claude/agents/normative-sync.md"
|
||
spec: "docs/superpowers/specs/2026-05-24-controller-offload-agents-design.md §3"
|
||
tooling_section: null
|
||
|
||
- id: "#85"
|
||
name: "prod-deploy-validator"
|
||
slug: "prod-deploy-validator"
|
||
category: "off-phase"
|
||
subcategory: "project-agent"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "Sonnet-агент для предрелизной валидации боевого сервера liderra.ru: выполняет 8 READ-ONLY SSH-проверок (конфиг, сервисы, БД, очереди) и возвращает вердикт GO/NO-GO с указанием проблемы."
|
||
triggers:
|
||
- {classification: "prod_deploy_imminent", weight: 1.0}
|
||
- {keyword: "готовность боевого", weight: 1.0}
|
||
- {keyword: "проверь прод", weight: 1.0}
|
||
- {keyword: "ready to deploy", weight: 1.0}
|
||
boundaries:
|
||
- {relation: "Контроллер обязан звать перед любым выкатом на liderra.ru — Pravila §2.4. READ-ONLY по дизайну."}
|
||
- {pair: "#84", relation: "Парный project-агент"}
|
||
chain_membership: []
|
||
attributes:
|
||
agent_file: ".claude/agents/prod-deploy-validator.md"
|
||
spec: "docs/superpowers/specs/2026-05-24-controller-offload-agents-design.md §4"
|
||
tooling_section: null
|
||
|
||
- id: "#86"
|
||
name: "graphifyy"
|
||
slug: "graphifyy"
|
||
category: "off-phase"
|
||
subcategory: "knowledge-graph-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "CLI knowledge-graph builder для всего портала (docs+config+code). Three-phase build (docs/ + .claude/ + app/) с воспроизводимой методологией subfolder + merge-graphs. Ultimate combined: 6305 узлов / 6753 рёбер / 1009 communities. Backend: GEMINI_API_KEY/GOOGLE_API_KEY OR Claude Code subagent dispatch (используется в Лидерре). НЕ читает ANTHROPIC_API_KEY / OPENAI_API_KEY / Ollama API. Commands: query / path / explain / update / build / merge-graphs / cluster-only / export."
|
||
triggers:
|
||
- {keyword: "knowledge graph", weight: 1.0}
|
||
- {keyword: "structural map", weight: 0.9}
|
||
- {keyword: "where is X used", weight: 0.85}
|
||
- {keyword: "cross-layer query", weight: 0.85}
|
||
- {keyword: "concept map", weight: 0.85}
|
||
- {keyword: "codebase graph", weight: 0.9}
|
||
- {keyword: "/graphify", weight: 1.0}
|
||
- {keyword: "graphify", weight: 1.0}
|
||
- {classification: "knowledge_graph_query", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-017", role: "KG1 — ↔ context7 #60: внутренний codebase Лидерры (graphify) vs внешние SDK docs (context7)"}
|
||
- {adr: "ADR-017", role: "KG2 — ↔ Laravel Boost #10: static cross-layer graph (graphify) vs runtime queries app/ (Boost)"}
|
||
- {adr: "ADR-017", role: "KG3 — ↔ openapi-mcp-server #47: весь проект (graphify) vs introspection одного спека (openapi)"}
|
||
- {adr: "ADR-017", role: "KG4 — ↔ Sentry MCP #34: структурные отношения (graphify) vs runtime errors (Sentry)"}
|
||
- {adr: "ADR-017", role: "KG5 — ↔ adr-kit #36 + mermaid-skill #37: auto-discovery из исходников (graphify) vs manual authoring (ADR/mermaid)"}
|
||
- {role: "Артефакты graphify-out*/ обязательно gitignored — build-артефакты не должны попадать в diff/commit"}
|
||
- {role: "Auto-update post-commit hook ОТЛОЖЕН (Spike 27.05 раздуло граф 6305→41586 узлов). Manual /graphify --update — единственный безопасный режим до wire-in safety review"}
|
||
chain_membership: []
|
||
attributes:
|
||
tooling_section: "§4.59 #86"
|
||
skill_file: "~/.claude/skills/graphify/SKILL.md"
|
||
installation: "uv tool install graphifyy"
|
||
version: "0.8.20+"
|
||
spike_branch: "spike/graphify-2026-05-27"
|
||
|
||
- id: "#87"
|
||
name: "perplexity MCP"
|
||
slug: "perplexity-mcp"
|
||
category: "off-phase"
|
||
subcategory: "research-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "MCP-сервер веб-разведки Perplexity: perplexity_search (ранжированный web-ответ), perplexity_ask (sonar-pro real-time с цитатами), perplexity_research (sonar-deep-research, многоисточниковое расследование), perplexity_reason (sonar-reasoning-pro). READ-ONLY, живой веб; назначение — ответ-с-источниками, не сырой список ссылок."
|
||
triggers:
|
||
- {keyword: "веб-разведка", weight: 1.0}
|
||
- {keyword: "актуальные практики", weight: 1.0}
|
||
- {keyword: "что говорят источники", weight: 1.0}
|
||
- {keyword: "ранжированный веб-ответ", weight: 1.0}
|
||
- {keyword: "perplexity", weight: 1.0}
|
||
- {keyword: "sonar", weight: 1.0}
|
||
- {keyword: "deep research", weight: 1.0}
|
||
- {classification: "research", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-019", role: "RT1 ≠ context7 #60 (открытый веб/практики vs SDK-доки); RT4 — perplexity = ранжированный ответ vs exa #88 семантическое обнаружение"}
|
||
chain_membership: ["L17"]
|
||
attributes:
|
||
tooling_section: "§4.60 #87"
|
||
install: "npx -y @perplexity-ai/mcp-server (в .mcp.json; PERPLEXITY_API_KEY в env)"
|
||
|
||
- id: "#88"
|
||
name: "exa MCP"
|
||
slug: "exa-mcp"
|
||
category: "off-phase"
|
||
subcategory: "research-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "MCP-сервер нейро/семантического веб-поиска Exa: web_search_exa (находит концептуально близкое, что keyword-поиск пропускает), web_fetch_exa (страница по URL). READ-ONLY, живой веб; назначение — обнаружение источников по смыслу, а не по точным словам."
|
||
triggers:
|
||
- {keyword: "семантический поиск", weight: 1.0}
|
||
- {keyword: "нейро-поиск", weight: 1.0}
|
||
- {keyword: "обнаружение источников по смыслу", weight: 1.0}
|
||
- {keyword: "концептуально близкое", weight: 1.0}
|
||
- {keyword: "exa", weight: 1.0}
|
||
- {classification: "research", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-019", role: "RT4 — exa = семантическое обнаружение vs perplexity #87 ранжированный ответ vs firecrawl #89 глубокое чтение"}
|
||
chain_membership: ["L17"]
|
||
attributes:
|
||
tooling_section: "§4.61 #88"
|
||
install: "npx -y exa-mcp-server (в .mcp.json; EXA_API_KEY в env)"
|
||
|
||
- id: "#89"
|
||
name: "firecrawl MCP"
|
||
slug: "firecrawl-mcp"
|
||
category: "off-phase"
|
||
subcategory: "research-tooling"
|
||
status: "active"
|
||
dormancy_reason: null
|
||
capabilities: "MCP-сервер глубокого чтения и обхода веба Firecrawl: firecrawl_scrape / batch_scrape / map / search / crawl / extract + firecrawl_agent (автономный web-research) + firecrawl_agent_status. READ-ONLY (read-тяжёлый), живой веб; назначение — прочитать страницу целиком, обойти сайт, извлечь структурированное."
|
||
triggers:
|
||
- {keyword: "глубокое чтение страницы", weight: 1.0}
|
||
- {keyword: "обход сайта", weight: 1.0}
|
||
- {keyword: "scrape", weight: 1.0}
|
||
- {keyword: "crawl", weight: 1.0}
|
||
- {keyword: "извлечь структурированное со страницы", weight: 1.0}
|
||
- {keyword: "firecrawl", weight: 1.0}
|
||
- {classification: "research", weight: 1.0}
|
||
boundaries:
|
||
- {adr: "ADR-019", role: "RT4 — firecrawl = глубокое чтение/обход vs perplexity #87 ответ vs exa #88 обнаружение; RT3 ≠ openapi #47 (внешний веб vs наш REST-спек)"}
|
||
chain_membership: ["L17"]
|
||
attributes:
|
||
tooling_section: "§4.62 #89"
|
||
install: "npx -y firecrawl-mcp (в .mcp.json; FIRECRAWL_API_KEY в env)"
|
||
|
||
chains:
|
||
L1:
|
||
name: "feature discovery & implementation chain"
|
||
sequence:
|
||
- "#55"
|
||
- "superpowers:brainstorming"
|
||
- "superpowers:writing-plans"
|
||
- "superpowers:subagent-driven-development"
|
||
triggers:
|
||
- {classification: "feature"}
|
||
- {classification: "planning"}
|
||
|
||
L2:
|
||
name: "system orientation chain"
|
||
sequence:
|
||
- "#55"
|
||
- "audit-portal"
|
||
|
||
L3:
|
||
name: "as-is ↔ to-be process chain"
|
||
sequence:
|
||
- "#53"
|
||
- "#52"
|
||
|
||
L4:
|
||
name: "diagram rendering chain"
|
||
sequence:
|
||
- "adr-kit:adr"
|
||
- "#37"
|
||
- "operations:runbook"
|
||
- "#52"
|
||
|
||
L5:
|
||
name: "architecture triangle chain"
|
||
sequence:
|
||
- "adr-kit:adr"
|
||
- "#38"
|
||
- "#43"
|
||
|
||
L6:
|
||
name: "security layered chain"
|
||
sequence:
|
||
- "#40"
|
||
- "#25"
|
||
- "#39"
|
||
- "/security-review"
|
||
|
||
L7:
|
||
name: "integration development chain"
|
||
sequence:
|
||
- "#47"
|
||
- "api-docs"
|
||
- "#10"
|
||
|
||
L8:
|
||
name: "runtime debug chain"
|
||
sequence:
|
||
- "superpowers:systematic-debugging"
|
||
- "#34"
|
||
- "#35"
|
||
triggers:
|
||
- {classification: "bugfix"}
|
||
- {keyword: "runtime bug"}
|
||
|
||
L9:
|
||
name: "project management chain"
|
||
sequence:
|
||
- "#41"
|
||
- "product-management:write-spec"
|
||
- "#3"
|
||
|
||
L10:
|
||
name: "LLM feature chain"
|
||
sequence:
|
||
- "#48"
|
||
- "#49"
|
||
- "claude-api"
|
||
|
||
L11:
|
||
name: "Claude infra extension chain"
|
||
sequence:
|
||
- "#56"
|
||
- "#58"
|
||
- "plugin-dev:plugin-structure"
|
||
|
||
L12:
|
||
name: "CLAUDE.md capture chain"
|
||
sequence:
|
||
- "claude-md-management:claude-md-improver"
|
||
- "claude-md-management:revise-claude-md"
|
||
|
||
L13:
|
||
name: "finance chain"
|
||
sequence:
|
||
- "#62"
|
||
- "#18"
|
||
- "#10"
|
||
- "#34"
|
||
- "#35"
|
||
- "#63"
|
||
|
||
L14:
|
||
name: "backend-quality chain"
|
||
sequence:
|
||
- "#64"
|
||
- "#65"
|
||
- "#12"
|
||
- "#43"
|
||
|
||
L15:
|
||
name: "security go-live chain"
|
||
sequence:
|
||
- "#73"
|
||
- "#8"
|
||
- "#25"
|
||
- "#70"
|
||
- "#39"
|
||
- "#71"
|
||
- "#72"
|
||
- "#69"
|
||
- "#68"
|
||
|
||
L16:
|
||
name: "marketing chain"
|
||
sequence:
|
||
- "superpowers:brainstorming"
|
||
- "marketing-plugin:content-creation"
|
||
- "#77"
|
||
- "#78"
|
||
- "#79"
|
||
- "#80"
|
||
- "#81"
|
||
|
||
L17:
|
||
name: "research chain"
|
||
sequence:
|
||
- "superpowers:brainstorming"
|
||
- "#87"
|
||
- "#88"
|
||
- "#89"
|
||
triggers:
|
||
- {classification: "research"}
|